Get Events Import Schema
GET /imports/events/schema?contextId={eventTypeId}
/imports/events/schema?contextId={eventTypeId}Required Tokens
| Field | Type | Required | Description |
|---|---|---|---|
| Bearer | Authorization: Bearer <api-key> | Optional | Your API key. Pass it as the Bearer token on every request. |
| Organization token | x-Organization-Token | Optional | Run **Get Tokens** in the **Organization API** collection, then set `orgToken` as a variable here. This target is org-scoped, so an event token will not authorize it. |
The attributes an events import can be mapped onto, for the event type named by contextId.
Unlike the proposal target, this schema does not exist until an organization defines it: the custom attributes come from that event type's own definition, so two orgs — or two types in one org — return different columns.
Requires OrganizationAdmin. A higher bar than creating one event through the UI — mass
create-and-update across an organization is a different action.
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| contextId | Guid | Optional | Query. The **event type** whose attributes widen the schema. Omit it and only `name` and `notes` are returned, which is the correct schema for type-less events. |
Response
Same shape as Get Import Schema. For this target:
| Key | Kind | isRequired | canBeUnique | options |
|---|---|---|---|---|
name | Text | ✔️ | ✔️ | null |
notes | Text | null | ||
attr:{attributeId} | the attribute's own kind | per its type assignment | ✔️ | the option list on a Select, otherwise null |
Every attribute returned is updatable.
options — what makes a column reviewable
A Select attribute returns its option list as [{ "value", "label" }], filtered to the options that
are not archived, in the order the organization authored them.
The presence of options is what marks the column reviewable — there is no separate flag, so
there is nothing for a client to keep in step with it. Every other kind returns null.
This is the same set the row validation enforces. A cell matches an option trimmed and lowercased,
and the value that gets written is the option as authored — so a cell reading confirmed against
an option named Confirmed lands Confirmed, and appears that way in the plan's resolvedValues.
What is deliberately absent
| Not offered | Why |
|---|---|
| The event type itself | Type governs which custom attributes exist, so changing it by import would strand the values that came with the row. |
| Location | Resolving a place name to a location record is value resolution, not mapping. |
| Multi-select, rich text, files | The stored value is JSON a spreadsheet cell cannot express. |
| Crew and collaborator attributes | They store an entity id. A column of people's names would write names into an id field and render blank forever. |
Errors
| Status | Meaning |
|---|---|
400 | The event type named by contextId is archived. |
403 | The caller lacks OrganizationAdmin. |
404 | No such event type in this organization. |