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
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.

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-27T11:06:59.859Z"
endStepKey?string
Default""
followUps?array<>

Output only. The Follow-ups the Player Agent added to an AI Funnel's fill, in the order it asked them. Each answer also appears in answers under the Follow-up's key.

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"
stop?|

Output only. Why the Player Agent stopped asking in a Completed AI Funnel Reply's fill. Null for an Incomplete Reply, a Logic Funnel's, and one the Player Agent did not conduct, such as a Voice Mode call or a Reply created through the API.

Defaultnull
updateTime?string
Formatdate-time
Default"2026-10-27T11:06:59.859Z"
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-27T11:06:59.859Z",  "endStepKey": "",  "followUps": [],  "leadScoring": {    "override": null,    "result": null,    "scoreTime": null,    "state": "pending"  },  "path": "string",  "payment": null,  "respondent": {    "email": "",    "name": "",    "sentiment": "neutral"  },  "seenTime": null,  "source": "web",  "stop": null,  "updateTime": "2026-10-27T11:06:59.859Z",  "voiceSession": null}