Bookings and Forms
All routes here need a project API key: Authorization: Bearer gi_live_.... See Authentication.
Bookings#
Read bookings created by visitors and confirm, decline, or cancel them.
| Method | Path | Description |
|---|---|---|
| GET | /api/projects/:projectId/bookings |
List project bookings. |
| GET | /api/projects/:projectId/bookings/:bookingId |
Get a booking. |
| PATCH | /api/projects/:projectId/bookings/:bookingId/cancel |
Cancel a booking and optionally record a reason. |
| PATCH | /api/projects/:projectId/bookings/:bookingId/confirm |
Confirm a pending booking. |
| PATCH | /api/projects/:projectId/bookings/:bookingId/decline |
Decline a pending booking. |
| GET | /api/projects/:projectId/bookings/:bookingId/form-response |
Get the intake form response attached to a booking. |
- Confirming and cancelling may update Google Calendar and send email.
- Cancel accepts an optional
reason. Decline accepts an optionalreasonandnotifyflag; confirm takes no body. - Creating bookings is covered in the Booking API.
Forms and responses#
Manage forms, their pages and fields, submitted responses, private response files, and the inbox.
| Method | Path | Description |
|---|---|---|
| GET | /api/projects/:projectId/forms |
List forms. |
| POST | /api/projects/:projectId/forms |
Create a form. |
| GET | /api/projects/:projectId/forms/:formId |
Get a form with its structure. |
| PUT | /api/projects/:projectId/forms/:formId |
Update a form. |
| DELETE | /api/projects/:projectId/forms/:formId |
Delete a form. |
| GET | /api/projects/:projectId/forms/:formId/steps |
List form steps. |
| POST | /api/projects/:projectId/forms/:formId/steps |
Create a form step. |
| PUT | /api/projects/:projectId/forms/:formId/steps/:stepId |
Update a form step. |
| DELETE | /api/projects/:projectId/forms/:formId/steps/:stepId |
Delete a form step. |
| PUT | /api/projects/:projectId/forms/:formId/steps/reorder |
Reorder form steps. |
| GET | /api/projects/:projectId/forms/:formId/fields |
List form fields. |
| POST | /api/projects/:projectId/forms/:formId/fields |
Create a form field. |
| PUT | /api/projects/:projectId/forms/:formId/fields/:fieldId |
Update a form field. |
| DELETE | /api/projects/:projectId/forms/:formId/fields/:fieldId |
Delete a form field. |
| PUT | /api/projects/:projectId/forms/:formId/fields/reorder |
Reorder form fields. |
| GET | /api/projects/:projectId/forms/:formId/responses |
List a form's responses. |
| GET | /api/projects/:projectId/forms/:formId/responses/:responseId |
Get a form response. |
| GET | /api/projects/:projectId/forms/:formId/responses/:responseId/files/:valueId |
Download a private response file. |
| GET | /api/v1/forms/:projectSlug/:formSlug/responses/:responseId/files/:valueId |
Download a private response file by project and form slug. |
| DELETE | /api/projects/:projectId/form-responses/:responseId |
Delete a form response. |
| GET | /api/projects/:projectId/responses |
List responses across every form, newest first, including unfinished ones. |
| GET | /api/projects/:projectId/inbox |
List the inbox. |
| POST | /api/projects/:projectId/inbox/:kind/:id/done |
Mark an inbox item handled. |
| PATCH | /api/projects/:projectId/form-responses/:responseId/label |
Re-label a submission. |
- Reorder endpoints take the complete ordered list of IDs.
- Each form step is one page. Keep
settings.pageLayouton the step settings andsettings.transitionon the form settings. - Forms return
name,slug,type,status, andsettings. Steps contain display and visibility data. Fields contain type, label, settings, options, contact mapping, and visibility. - Deleting a response removes its stored values and its files.
All responses. GET /responses filters by formId and pages with limit and offset. It returns { responses, hasMore }, and each response includes formName and values.
Inbox. GET /inbox with view=review (the default) returns leads and booking requests nobody has handled yet; view=screened returns pitches and spam. Filter with formId. Each item has a kind (submission or booking) and booking details when present. Returns { items, counts: { review, screened } }. POST /inbox/:kind/:id/done removes an item from the review list; confirming or declining a booking does this automatically.
Re-labeling. PATCH /form-responses/:responseId/label sets the label to lead, review, spam, junk, or bot, and the submission leaves the review list. Marking it a lead creates the contact and runs workflows. Marking it spam, junk, or bot deletes the contact the submission created when nothing else is attached to it (notes, next action, tags, bookings, or other submissions); the response reports contactRemoved.