We try to version the API using dates to maintain a highly backwards compatible API. You can
specify a version using the
tally-version header, e.g. tally-version: 2025-02-01.New endpoints
GET /forms/{formId}/analytics/metrics
Get aggregate form metricsGET /forms/{formId}/analytics/visits
Get form visits over timeGET /forms/{formId}/analytics/submissions
Get completed and partial submissions over timeGET /forms/{formId}/analytics/dimensions
Get visitor breakdowns by source, browser, OS, device and locationGET /forms/{formId}/analytics/drop-off
Get per-question drop-off statistics
Changed endpoints
POST /forms
Form settings accept rich text (htmlwithmentions) for email and redirect fieldsGET /forms/{formId}
Form settings now return rich text (htmlwithmentions) for email and redirect fieldsPATCH /forms/{formId}
Form settings accept rich text (htmlwithmentions) for email and redirect fields
Changed endpoints
GET /forms/{formId}/submissions
Each submission now includespreviewUrlandpdfUrlGET /forms/{formId}/submissions/{submissionId}
The response now includespreviewUrlandpdfUrl
Changed endpoints
GET /forms/{formId}/questions
Field references (used for default answers and mentions) can now resolve to utility fields, such asutility::today()
Breaking changes
- Block payloads are now validated against the schema. Requests with invalid block payload structures will be rejected with a
400error. Previously, malformed block payloads were accepted silently.
New endpoints
GET /forms/{formId}/questions
Get form questionsGET /forms/{formId}/submissions/{submissionId}
Get a specific form submissionGET /organizations/{organizationId}/users
View organization usersDELETE /organizations/{organizationId}/users/{userId}
Remove users from organizationGET /organizations/{organizationId}/invites
View pending invitesPOST /organizations/{organizationId}/invites
Invite users to organizationDELETE /organizations/{organizationId}/invites/{inviteId}
Cancel pending invitesGET /webhooks
List configured webhooksGET /webhooks/{webhookId}/events
List webhook eventsPOST /webhooks/{webhookId}/events/{eventId}
Retry webhook events
Changed endpoints
GET /forms/{formId}/submissions
Added new filtering options:startDate,endDate&afterId
Hello world! 🎉