Appearance
Registrations
Registrations
A registration is one person's registration for one event, as an attendee or as an exhibitor. Cancelled registrations are included, with status cancelled. The event is on /events and the person on /people.
| Endpoint | Meaning |
|---|---|
GET /registrations | List registrations. See Paging. |
GET /registrations/ids | The id of every live registration. See Keeping a copy in sync. |
GET /registrations/{id} | One registration. 404 if it does not exist or was deleted. |
Filters
| Parameter | Type | Meaning |
|---|---|---|
event_id | UUID | Only registrations for this event. |
status | string | Only registrations with these statuses. One value or several separated by commas, for example approved,submitted. Values are listed under status below. |
type | string | attendee or exhibitor. |
registered_after | date or date-time | Only registrations made at or after this time. Same format as updated_since. A time without an offset is read as UTC. |
registered_before | date or date-time | Only registrations made before this time. Same format as registered_after. |
Example
json
{
"id": "3f0c…",
"number": "REG-10482",
"person_number": "AC26-0153",
"event_id": "7a21…",
"type": "attendee",
"exhibitor_id": null,
"booth_request": null,
"status": "cancelled",
"person": { "id": "0b9e…", "first_name": "Maria", "last_name": "Lopez" },
"registered_by_person_id": "0b9e…",
"group": { "id": "c4d2…", "number": "GRP-118" },
"invoice_id": "5e7f…",
"registered_at": "2026-09-14T15:02:41Z",
"cancelled_at": "2026-10-03T11:20:00Z",
"cancellation": {
"reason": "Schedule conflict",
"comment": "Will attend next year.",
"cancelled_by_person_id": "0b9e…"
},
"was_modified": false,
"created_at": "2026-09-14T15:02:41Z",
"updated_at": "2026-10-03T11:20:00Z"
}Fields
| Field | Type | Meaning |
|---|---|---|
id | UUID | The registration id. |
number | string or null | The registration number shown in Engagifii. |
person_number | string or null | The per-person registration number Engagifii shows in the registrant list and on registration emails and PDFs. null if none is set. |
event_id | UUID | The event registered for. See Events. |
type | string | attendee or exhibitor. |
exhibitor_id | UUID or null | The exhibitor this registration is for, on exhibitor registrations. |
booth_request | object or null | Exhibitor registrations only: what the exhibitor asked for at sign-up. null for attendees and for exhibitors who asked for nothing. The booths finally assigned are on /event-booths. |
booth_request.booths | integer or null | How many booths the exhibitor asked for. null if not recorded. |
booth_request.preferences | array | The booths the exhibitor chose, best first. Empty if none. |
booth_request.preferences[].rank | integer | The choice's rank. Lower numbers are preferred. |
booth_request.preferences[].booth_id | UUID | The booth chosen. An id from /event-booths. |
status | string | One of in_progress, approval_pending, eligible_approval_pending, denied, approved, cancelled, booth_assignment_pending, submitted. unknown for any other status. |
person | object | The person registered. |
person.id | UUID or null | The person's id in /people. |
person.first_name | string or null | The person's first name. |
person.last_name | string or null | The person's last name. |
registered_by_person_id | UUID or null | The person who created the registration. |
group | object or null | The group registration this registration is part of. null if it is not part of a group. |
group.id | UUID | The group registration's id. |
group.number | string or null | The group registration's number. |
invoice_id | UUID or null | The invoice for this registration. See /invoices. |
registered_at | date-time or null | When the person registered. |
cancelled_at | date-time or null | When the registration was cancelled. |
cancellation | object or null | Details of the cancellation. Present only when status is cancelled, otherwise null. |
cancellation.reason | string or null | The cancellation reason picked. If more than one was recorded, the most recent. |
cancellation.comment | string or null | The comment given with the reason. |
cancellation.cancelled_by_person_id | UUID or null | The person who cancelled the registration. |
was_modified | boolean | true if the registration has been modified. |
created_at | date-time | When the registration record was created. |
updated_at | date-time | When the registration last changed. |
Sync notes
person.first_nameandperson.last_namecome from the person's record. A name change there does not move the registration'supdated_at. Take names from/people, or reload registrations in full from time to time.- A change to only an exhibitor's
booth_requestmay not moveupdated_at. Reload exhibitor registrations (type=exhibitor) from time to time.
Registration items
A registration item is one thing a registration picked: an agenda session, a class, a product, a bundle, the event itself, a booth or a booth preference. price is the price recorded on the registration. What was invoiced and paid is on /invoices.
| Endpoint | Meaning |
|---|---|
GET /registration-items | List registration items. See Paging. |
GET /registration-items/ids | The id of every live registration item. See Keeping a copy in sync. |
GET /registration-items/{id} | One registration item. 404 if it does not exist or was removed. |
Filters
| Parameter | Type | Meaning |
|---|---|---|
event_id | UUID | Only items on registrations for this event. |
registration_id | UUID | Only items of this registration. |
type | string | Only items of this type. One of session, class, product, bundle, event, booth, booth_preference. |
Example
json
{
"id": "9d41…",
"registration_id": "3f0c…",
"event_id": "7a21…",
"person_id": "0b9e…",
"type": "session",
"item_id": "e2a8…",
"item_name": "Awards Luncheon",
"price": { "amount": "45.00", "currency": "USD" },
"quantity": 1,
"updated_at": "2026-10-03T11:20:00Z"
}Fields
| Field | Type | Meaning |
|---|---|---|
id | UUID | The registration item id. |
registration_id | UUID | The registration the item belongs to. See Registrations. |
event_id | UUID | The event of that registration. See Events. |
person_id | UUID or null | The person the item is for: the registrant, or a booth staff member on an exhibitor registration. See /people. |
type | string | One of session, class, product, bundle, event, booth, booth_preference. other for any other type. |
item_id | UUID or null | The id of the item picked. For session, an id from /event-sessions. |
item_name | string or null | The item's name as recorded on the registration. |
price | object or null | The price recorded on the registration. |
price.amount | string | The amount as a decimal string with two places, for example "45.00". |
price.currency | string | Always USD. |
quantity | integer or null | How many were picked. |
updated_at | date-time | When the item's registration last changed. See the sync notes. |
Sync notes
- Engagifii records no change time on registration items.
updated_atis theupdated_atof the item's registration, so an item is reported again whenever its registration changes. A change to an item that does not change its registration does not moveupdated_at. Reload registration items in full from time to time. - Items removed from a registration come back in the deleted short form with
updated_since, when the registration'supdated_athas moved. - Items of a deleted registration are not returned at all, not even in the deleted short form, and are not in
/registration-items/ids. When/registrationsreports a registration as deleted, remove its items too.
Registration answers
A registration answer is one answer to one of an event's registration questions. The questions themselves, with their options, are in the questions of each event on /events. Only answers to questions of the workspace's live events are returned.
| Endpoint | Meaning |
|---|---|
GET /registration-answers | List answers. See Paging. |
GET /registration-answers/ids | The id of every live answer. See Keeping a copy in sync. |
GET /registration-answers/{id} | One answer. 404 if it does not exist or was withdrawn. |
Filters
| Parameter | Type | Meaning |
|---|---|---|
event_id | UUID | Only answers to questions of this event. |
registration_id | UUID | Only answers given on this registration. |
person_id | UUID | Only answers given by this person. |
question_id | UUID | Only answers to this question. |
Example
json
{
"id": "a6b3…",
"event_id": "7a21…",
"registration_id": "3f0c…",
"person_id": "0b9e…",
"registration_type": "attendee",
"question": {
"id": "d18f…",
"text": "Which workshops will you attend?",
"type": "multi_select_dropdown"
},
"text": null,
"number": null,
"date": null,
"date_from": null,
"date_to": null,
"has_file": false,
"options": [
{ "id": "41c0…", "text": "Grant writing", "answer_text": null },
{ "id": "41c7…", "text": "Other", "answer_text": "Board governance" }
],
"created_at": "2026-09-14T15:04:10Z",
"updated_at": "2026-09-14T15:04:10Z"
}Fields
| Field | Type | Meaning |
|---|---|---|
id | UUID | The answer id. |
event_id | UUID | The event the question belongs to. See Events. |
registration_id | UUID or null | The registration the answer was given on. |
person_id | UUID or null | The person who answered. See /people. |
registration_type | string | attendee or exhibitor: the kind of registration the answer was given on. |
question | object | The question answered. |
question.id | UUID | The question's id, as in the event's questions. |
question.text | string or null | The question text, as plain text where Engagifii has it. |
question.type | string | One of date, date_range, dropdown, multi_select_dropdown, text, text_area, radio, file_upload, number, checkbox, email, phone, multiple_inputs. other for any other type. |
text | string or null | The text answer. Always null for file_upload questions. |
number | string or null | The number answer, as a string. |
date | date-time or null | The date answer. |
date_from | date-time or null | The start of a date-range answer. |
date_to | date-time or null | The end of a date-range answer. |
has_file | boolean | true if a file was uploaded with the answer. The file itself is not available through the API. |
options | array | The options chosen, for questions with options. Empty when none were chosen. |
options[].id | UUID or null | The option's id, as in the question's options on the event. |
options[].text | string or null | The option's text. null if the option was later deleted from the question. |
options[].answer_text | string or null | Text the person typed with this option. |
created_at | date-time | When the answer was given. |
updated_at | date-time | When the answer last changed. |
Sync notes
- A withdrawn answer is treated as deleted. Engagifii records no time for a withdrawal, so
updated_sincemay not report it. Find withdrawn answers by comparing ids with/registration-answers/ids. - When a question is deleted, or its event is deleted, the answers to it are no longer returned and drop out of
/registration-answers/ids. Comparing ids removes them as well.
Registration activities
A registration activity is one entry on a registration's activity timeline, as Engagifii shows it on the registration's Activity tab: who registered whom, what was added to or removed from a registration when it was modified, cancellations, booth assignments, who viewed the registration, which registration emails went to whom, and when a registration produced invoices.
One activity is one action at one time. Its items say what it touched: one item per person and registration item, or one per email recipient.
| Endpoint | Meaning |
|---|---|
GET /registration-activities | List activities, oldest first. See Paging. |
GET /registration-activities/ids | The id of every live activity. See Keeping a copy in sync. |
GET /registration-activities/{id} | One activity. 404 if it does not exist or was deleted. |
Filters
| Parameter | Type | Meaning |
|---|---|---|
event_id | UUID | Only activities of this event. |
registration_id | UUID | Only activities of this registration. |
group_id | UUID | Only activities that covered this whole group registration. |
type | string | One of the type values below, except other. |
Example
json
{
"id": "f1a7…",
"type": "modification",
"event_id": "7a21…",
"registration_id": "3f0c…",
"group_id": null,
"by_person_id": "0b9e…",
"items": [
{
"action": "added",
"item_type": "session",
"item_id": "e2a8…",
"person_id": "0b9e…",
"exhibitor_id": null,
"rank": null,
"recipient": null
},
{
"action": "removed",
"item_type": "session",
"item_id": "e2b3…",
"person_id": "0b9e…",
"exhibitor_id": null,
"rank": null,
"recipient": null
}
],
"at": "2026-09-20T10:41:07Z",
"updated_at": "2026-09-20T10:41:07Z"
}Fields
| Field | Type | Meaning |
|---|---|---|
id | UUID | The activity id. |
type | string | registration, modification, cancellation, booth_assignment, viewed, email, revenue_summary, or other. |
event_id | UUID | The event. See Events. |
registration_id | UUID or null | The registration, as on /registrations. null for an activity that covered a whole group, such as a group sign-up or a group email. A few activities name a registration that has since been removed. |
group_id | UUID or null | The group registration the activity belongs to, as group.id on /registrations. Always set on group-wide activities. |
by_person_id | UUID or null | The person who did it. An id from /people. null for most emails: Engagifii does not record who triggered them. |
items | array | What the activity touched. |
items[].action | string | added, modified, removed, viewed, confirmation_email, modification_email, cancellation_email, revenue_summary, or other. |
items[].item_type | string | The kind of item: session, class, product, bundle, event, booth, booth_preference (as type on registration items), invoice, or other. |
items[].item_id | UUID or null | The item's id. For invoice, an id from /invoices. |
items[].person_id | UUID or null | The person the action was on, or the email recipient. |
items[].exhibitor_id | UUID or null | The exhibiting organization, on exhibitor registrations. |
items[].rank | integer or null | The rank of a booth preference. null otherwise. |
items[].recipient | object or null | Emails only: who the email went to. null for other actions. |
items[].recipient.type | string | registrant, registration_coordinator (the person who signed others up), event_contact, billing_contact, additional_person, finance_contact, approver, event_speaker, or other. |
items[].recipient.person_id | UUID or null | The recipient's id from /people. |
items[].recipient.name | string or null | The name Engagifii used for the recipient. |
at | date-time | When the action happened. |
updated_at | date-time | Same as at. |
Notes
- Emails. Engagifii records the kind of email, the recipient's person id, the recipient type and the name it used. It does not keep the subject, address or body.
- Revenue summaries. A
revenue_summaryactivity records the invoices a registration or modification generated. Its item names the invoice (item_type: invoice) or, for older entries, the event. Engagifii's narrative text for these entries (credit notes applied, payments, status changes) is not returned: the same facts are on/invoices,/credit-notes,/paymentsand/transaction-activities. - Times are UTC. Engagifii's screen groups them by day in the workspace's time zone, from
GET /workspace.
Sync notes
- Activities are only added, never edited, so
updated_sincefinds every new activity. - Compare ids with
/registration-activities/idsfrom time to time to find activities Engagifii has deleted. - Activities of deleted events are still returned.
