Skip to content

Registrations ​

← Workspace APIs

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.

EndpointMeaning
GET /registrationsList registrations. See Paging.
GET /registrations/idsThe 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 ​

ParameterTypeMeaning
event_idUUIDOnly registrations for this event.
statusstringOnly registrations with these statuses. One value or several separated by commas, for example approved,submitted. Values are listed under status below.
typestringattendee or exhibitor.
registered_afterdate or date-timeOnly registrations made at or after this time. Same format as updated_since. A time without an offset is read as UTC.
registered_beforedate or date-timeOnly 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 ​

FieldTypeMeaning
idUUIDThe registration id.
numberstring or nullThe registration number shown in Engagifii.
person_numberstring or nullThe per-person registration number Engagifii shows in the registrant list and on registration emails and PDFs. null if none is set.
event_idUUIDThe event registered for. See Events.
typestringattendee or exhibitor.
exhibitor_idUUID or nullThe exhibitor this registration is for, on exhibitor registrations.
booth_requestobject or nullExhibitor 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.boothsinteger or nullHow many booths the exhibitor asked for. null if not recorded.
booth_request.preferencesarrayThe booths the exhibitor chose, best first. Empty if none.
booth_request.preferences[].rankintegerThe choice's rank. Lower numbers are preferred.
booth_request.preferences[].booth_idUUIDThe booth chosen. An id from /event-booths.
statusstringOne of in_progress, approval_pending, eligible_approval_pending, denied, approved, cancelled, booth_assignment_pending, submitted. unknown for any other status.
personobjectThe person registered.
person.idUUID or nullThe person's id in /people.
person.first_namestring or nullThe person's first name.
person.last_namestring or nullThe person's last name.
registered_by_person_idUUID or nullThe person who created the registration.
groupobject or nullThe group registration this registration is part of. null if it is not part of a group.
group.idUUIDThe group registration's id.
group.numberstring or nullThe group registration's number.
invoice_idUUID or nullThe invoice for this registration. See /invoices.
registered_atdate-time or nullWhen the person registered.
cancelled_atdate-time or nullWhen the registration was cancelled.
cancellationobject or nullDetails of the cancellation. Present only when status is cancelled, otherwise null.
cancellation.reasonstring or nullThe cancellation reason picked. If more than one was recorded, the most recent.
cancellation.commentstring or nullThe comment given with the reason.
cancellation.cancelled_by_person_idUUID or nullThe person who cancelled the registration.
was_modifiedbooleantrue if the registration has been modified.
created_atdate-timeWhen the registration record was created.
updated_atdate-timeWhen the registration last changed.

Sync notes ​

  • person.first_name and person.last_name come from the person's record. A name change there does not move the registration's updated_at. Take names from /people, or reload registrations in full from time to time.
  • A change to only an exhibitor's booth_request may not move updated_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.

EndpointMeaning
GET /registration-itemsList registration items. See Paging.
GET /registration-items/idsThe 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 ​

ParameterTypeMeaning
event_idUUIDOnly items on registrations for this event.
registration_idUUIDOnly items of this registration.
typestringOnly 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 ​

FieldTypeMeaning
idUUIDThe registration item id.
registration_idUUIDThe registration the item belongs to. See Registrations.
event_idUUIDThe event of that registration. See Events.
person_idUUID or nullThe person the item is for: the registrant, or a booth staff member on an exhibitor registration. See /people.
typestringOne of session, class, product, bundle, event, booth, booth_preference. other for any other type.
item_idUUID or nullThe id of the item picked. For session, an id from /event-sessions.
item_namestring or nullThe item's name as recorded on the registration.
priceobject or nullThe price recorded on the registration.
price.amountstringThe amount as a decimal string with two places, for example "45.00".
price.currencystringAlways USD.
quantityinteger or nullHow many were picked.
updated_atdate-timeWhen the item's registration last changed. See the sync notes.

Sync notes ​

  • Engagifii records no change time on registration items. updated_at is the updated_at of 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 move updated_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's updated_at has 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 /registrations reports 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.

EndpointMeaning
GET /registration-answersList answers. See Paging.
GET /registration-answers/idsThe 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 ​

ParameterTypeMeaning
event_idUUIDOnly answers to questions of this event.
registration_idUUIDOnly answers given on this registration.
person_idUUIDOnly answers given by this person.
question_idUUIDOnly 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 ​

FieldTypeMeaning
idUUIDThe answer id.
event_idUUIDThe event the question belongs to. See Events.
registration_idUUID or nullThe registration the answer was given on.
person_idUUID or nullThe person who answered. See /people.
registration_typestringattendee or exhibitor: the kind of registration the answer was given on.
questionobjectThe question answered.
question.idUUIDThe question's id, as in the event's questions.
question.textstring or nullThe question text, as plain text where Engagifii has it.
question.typestringOne 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.
textstring or nullThe text answer. Always null for file_upload questions.
numberstring or nullThe number answer, as a string.
datedate-time or nullThe date answer.
date_fromdate-time or nullThe start of a date-range answer.
date_todate-time or nullThe end of a date-range answer.
has_filebooleantrue if a file was uploaded with the answer. The file itself is not available through the API.
optionsarrayThe options chosen, for questions with options. Empty when none were chosen.
options[].idUUID or nullThe option's id, as in the question's options on the event.
options[].textstring or nullThe option's text. null if the option was later deleted from the question.
options[].answer_textstring or nullText the person typed with this option.
created_atdate-timeWhen the answer was given.
updated_atdate-timeWhen the answer last changed.

Sync notes ​

  • A withdrawn answer is treated as deleted. Engagifii records no time for a withdrawal, so updated_since may 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.

EndpointMeaning
GET /registration-activitiesList activities, oldest first. See Paging.
GET /registration-activities/idsThe 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 ​

ParameterTypeMeaning
event_idUUIDOnly activities of this event.
registration_idUUIDOnly activities of this registration.
group_idUUIDOnly activities that covered this whole group registration.
typestringOne 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 ​

FieldTypeMeaning
idUUIDThe activity id.
typestringregistration, modification, cancellation, booth_assignment, viewed, email, revenue_summary, or other.
event_idUUIDThe event. See Events.
registration_idUUID or nullThe 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_idUUID or nullThe group registration the activity belongs to, as group.id on /registrations. Always set on group-wide activities.
by_person_idUUID or nullThe person who did it. An id from /people. null for most emails: Engagifii does not record who triggered them.
itemsarrayWhat the activity touched.
items[].actionstringadded, modified, removed, viewed, confirmation_email, modification_email, cancellation_email, revenue_summary, or other.
items[].item_typestringThe kind of item: session, class, product, bundle, event, booth, booth_preference (as type on registration items), invoice, or other.
items[].item_idUUID or nullThe item's id. For invoice, an id from /invoices.
items[].person_idUUID or nullThe person the action was on, or the email recipient.
items[].exhibitor_idUUID or nullThe exhibiting organization, on exhibitor registrations.
items[].rankinteger or nullThe rank of a booth preference. null otherwise.
items[].recipientobject or nullEmails only: who the email went to. null for other actions.
items[].recipient.typestringregistrant, registration_coordinator (the person who signed others up), event_contact, billing_contact, additional_person, finance_contact, approver, event_speaker, or other.
items[].recipient.person_idUUID or nullThe recipient's id from /people.
items[].recipient.namestring or nullThe name Engagifii used for the recipient.
atdate-timeWhen the action happened.
updated_atdate-timeSame 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_summary activity 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, /payments and /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_since finds every new activity.
  • Compare ids with /registration-activities/ids from time to time to find activities Engagifii has deleted.
  • Activities of deleted events are still returned.