Docs

Get Events Import Schema

GET /imports/events/schema?contextId={eventTypeId}

GET/imports/events/schema?contextId={eventTypeId}

Required Tokens

FieldTypeRequiredDescription
BearerAuthorization: Bearer <api-key>OptionalYour API key. Pass it as the Bearer token on every request.
Organization tokenx-Organization-TokenOptionalRun **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

FieldTypeRequiredDescription
contextIdGuidOptionalQuery. 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:

KeyKindisRequiredcanBeUniqueoptions
nameText✔️✔️null
notesTextnull
attr:{attributeId}the attribute's own kindper 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 offeredWhy
The event type itselfType governs which custom attributes exist, so changing it by import would strand the values that came with the row.
LocationResolving a place name to a location record is value resolution, not mapping.
Multi-select, rich text, filesThe stored value is JSON a spreadsheet cell cannot express.
Crew and collaborator attributesThey store an entity id. A column of people's names would write names into an id field and render blank forever.

Errors

StatusMeaning
400The event type named by contextId is archived.
403The caller lacks OrganizationAdmin.
404No such event type in this organization.