Dashform

Submit a Reply

Submits a Completed Reply to the live Form Revision of a published Form without a credential, and answers with the stored Reply. Address the Form as the Form Revision read does. The answers are validated against the Form exactly as the Form's own page validates them. The Reply is recorded as filled by an agent, and its Ending is the one the Form's Branches resolve from the answers. Completing it fires the Form's integrations.

POST
/organizations/{organizationRef}/forms/{formRef}/revisions/{formRevisionRef}/replies:submit

Path Parameters

organizationRef*||

The Organization that owns the Form: the wildcard -, its canonical id, or its slug. Responses always carry the canonical id.

formRef*||

The Form, addressed by its public id, the segment its public URL carries, or by its canonical id. The wildcard - is not accepted. Responses always carry the canonical id.

formRevisionRef*unknown

The Revision to submit to: live, the published Revision. No other Revision takes a Reply without a credential.

Request Body

application/json
  1. body
reply*

The Reply to submit. Key the answers by the step keys the live Revision lists, and answer every required question: a submitted Reply is Completed, because nothing can update it afterwards.

Response Body

OK

application/json
  1. response
answers?

The respondent's answers, keyed by the key of the question step each one answers. Read those keys from the Form Revision's steps.

Default{}
attribution?
Default
{  "campaign": "",  "content": "",  "medium": "",  "source": "",  "term": ""}
completeTime?|
Defaultnull
createTime?string
Formatdate-time
Default"2026-10-21T02:16:47.253Z"
endStepKey?string
Default""
followUps?array<>
Default[]
leadScoring?
Default
{  "override": null,  "result": null,  "scoreTime": null,  "state": "pending"}
path*string
Match^organizations\/([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)\/forms\/([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)\/revisions\/([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)\/replies\/([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
payment?|

What the respondent paid on the Form's Payment Step, or null when the Reply has not paid. Read-only: a write never sets it.

Defaultnull
respondent?
Default
{  "email": "",  "name": "",  "sentiment": "neutral"}
seenTime?|
Defaultnull
source?string
Default"web"
Value in"web""voice""agent"
updateTime?string
Formatdate-time
Default"2026-10-21T02:16:47.254Z"
voiceSession?|
Defaultnull
Example Request
curl -X POST 'https://getaiform.com/api/v1/organizations/497f6eca-6276-4993-bfeb-53cbbbba6f08/forms/497f6eca-6276-4993-bfeb-53cbbbba6f08/revisions/live/replies:submit' \  -H 'Content-Type: application/json' \  -d '{  "reply": {}}'
Example Response
{  "answers": {},  "attribution": {    "campaign": "",    "content": "",    "medium": "",    "source": "",    "term": ""  },  "completeTime": null,  "createTime": "2026-10-21T02:16:47.253Z",  "endStepKey": "",  "followUps": [],  "leadScoring": {    "override": null,    "result": null,    "scoreTime": null,    "state": "pending"  },  "path": "string",  "payment": null,  "respondent": {    "email": "",    "name": "",    "sentiment": "neutral"  },  "seenTime": null,  "source": "web",  "updateTime": "2026-10-21T02:16:47.254Z",  "voiceSession": null}