Dashform

Create a Form

Creates a Form in the Organization. The server assigns the Form's path, public id, and timestamps, so the create envelope carries none of them, and a new Form is a draft until it is published. Set validateOnly to check the envelope without writing anything.

POST
/organizations/{organizationRef}/forms

Authorization

apiKey
headerx-api-key<token>

A Dashform API key, sent in the x-api-key header. Keys are created in the dashboard and act as the user who owns them.

Path Parameters

organizationRef*||

The Organization that owns the Form, addressed by its canonical id or by its slug. Responses always carry the canonical id.

Request Body

application/json
  1. body
form*

Fields for the new Form. An omitted field takes its default value; steps replace the whole list when supplied.

validateOnly?boolean

Run every check the request would run and stop before persisting anything. The response describes the outcome the request would have had.

Defaultfalse

Response Body

OK

application/json
  1. response

Form definition.

aiHandoff*

AI Handoff links on the published Start Screen. Read from the current Form, so a change takes effect without republishing. Turning it off only hides the links; a respondent's AI can still submit a Reply. A form with a Payment Step never shows them and refuses Replies submitted by a respondent's AI.

backgrounds*array<|>

Background media assets available in the form

branding*

Custom branding settings for a form

context*array<string>

Concrete factual reference data for AI context (product specs, policies, pricing, hours, locations, rules). Do not include short topic summaries, form descriptions, interview instructions, question prompts, or generic filler; put short summary text in description instead.

createTime*string

RFC 3339 timestamp when the Form was created.

Formatdate-time
defaultMode*string

Default respondent experience mode: guided (step-by-step), conversational (chat), or voice. A form with a Payment Step must be guided.

Value in"guided""conversational""voice"
description*string

Form description summarizing its purpose

i18n*

Source language and translations.

leadScoring*
live?boolean

Output only. True when one of the Form's Revisions carries the live alternate id. Address that Revision itself through the live id under the Form's revisions collection.

Defaultfalse
marketplace*

Marketplace participation and listing profile.

maxFollowUpQuestions*integer

Maximum AI follow-up questions per response.

Range0 <= value <= 9007199254740991
name*string

Form name/title

path*string

Canonical Form resource path in the form organizations/{organization_id}/forms/{form_id}.

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)$
publicId*string

Public-facing form identifier.

publicUrl*string

Public URL where the form can be accessed

replyCount*integer

Output only. Total number of replies received.

Range0 <= value <= 9007199254740991
steps*array<||||||||||||||||||||>

Ordered start, question, and end steps.

theme*

Visual theme configuration for a form

tone*string

Conversational tone (e.g. professional, friendly, casual)

type*string

Form type: structured (Logic Funnel with explicit steps) or dynamic (AI Funnel with adaptive conversation)

Value in"structured""dynamic"
updateTime*string

RFC 3339 timestamp when the Form was last updated.

Formatdate-time
voice*

Voice availability selected by the maker.

curl -X POST 'https://getaiform.com/api/v2/organizations/497f6eca-6276-4993-bfeb-53cbbbba6f08/forms' \  -H 'Content-Type: application/json' \  -d '{  "form": {}}'
{  "aiHandoff": {    "enabled": true  },  "backgrounds": [    {      "overlayOpacity": 0,      "position": "left-half",      "type": "image",      "url": "string"    }  ],  "branding": {    "enabled": true,    "logoLinkUrl": "string",    "logoUrl": "string"  },  "context": [    "string"  ],  "createTime": "2019-08-24T14:15:22Z",  "defaultMode": "guided",  "description": "string",  "i18n": {    "sourceLocale": "string",    "supportedLocales": [      "string"    ],    "translations": {      "property1": {        "description": {          "override": true,          "sourceHash": "string",          "stale": true,          "value": "string"        },        "name": {          "override": true,          "sourceHash": "string",          "stale": true,          "value": "string"        },        "steps": {          "property1": {            "buttonText": {              "override": true,              "sourceHash": "string",              "stale": true,              "value": "string"            },            "description": {              "override": true,              "sourceHash": "string",              "stale": true,              "value": "string"            },            "options": [              {                "override": true,                "sourceHash": "string",                "stale": true,                "value": "string"              }            ],            "title": {              "override": true,              "sourceHash": "string",              "stale": true,              "value": "string"            }          },          "property2": {            "buttonText": {              "override": true,              "sourceHash": "string",              "stale": true,              "value": "string"            },            "description": {              "override": true,              "sourceHash": "string",              "stale": true,              "value": "string"            },            "options": [              {                "override": true,                "sourceHash": "string",                "stale": true,                "value": "string"              }            ],            "title": {              "override": true,              "sourceHash": "string",              "stale": true,              "value": "string"            }          }        }      },      "property2": {        "description": {          "override": true,          "sourceHash": "string",          "stale": true,          "value": "string"        },        "name": {          "override": true,          "sourceHash": "string",          "stale": true,          "value": "string"        },        "steps": {          "property1": {            "buttonText": {              "override": true,              "sourceHash": "string",              "stale": true,              "value": "string"            },            "description": {              "override": true,              "sourceHash": "string",              "stale": true,              "value": "string"            },            "options": [              {                "override": true,                "sourceHash": "string",                "stale": true,                "value": "string"              }            ],            "title": {              "override": true,              "sourceHash": "string",              "stale": true,              "value": "string"            }          },          "property2": {            "buttonText": {              "override": true,              "sourceHash": "string",              "stale": true,              "value": "string"            },            "description": {              "override": true,              "sourceHash": "string",              "stale": true,              "value": "string"            },            "options": [              {                "override": true,                "sourceHash": "string",                "stale": true,                "value": "string"              }            ],            "title": {              "override": true,              "sourceHash": "string",              "stale": true,              "value": "string"            }          }        }      }    }  },  "leadScoring": {    "enabled": true,    "high": "string",    "low": "string",    "medium": "string"  },  "live": false,  "marketplace": {    "bookingUrl": "string",    "category": "string",    "description": "string",    "industry": "string",    "languages": [      "string"    ],    "location": {      "address": "string",      "area": "string",      "city": "string"    },    "name": "string",    "services": [      {        "category": "string",        "description": "string",        "duration": "string",        "name": "string",        "priceRange": {          "currency": "string",          "max": 0,          "min": 0        }      }    ],    "enabled": true  },  "maxFollowUpQuestions": 0,  "name": "string",  "path": "string",  "publicId": "string",  "publicUrl": "string",  "replyCount": 0,  "steps": [    {      "background": {        "overlayOpacity": 0,        "position": "left-half",        "type": "image",        "url": "string"      },      "branches": [        {          "groups": [            [              {                "negate": true,                "operator": "equals",                "stepKey": "string",                "value": "string"              }            ]          ],          "targetStepKey": "string"        }      ],      "description": "string",      "key": "string",      "title": "string",      "buttonText": "string",      "logoUrl": "string",      "redirectUrl": "string",      "type": "start"    }  ],  "theme": {    "backgroundColor": "string",    "buttonRadiusPx": 0,    "buttonSize": "regular",    "buttonTextColor": "string",    "fontFamily": "sans",    "foregroundColor": "string",    "primaryColor": "string",    "textAnimation": "typing",    "textSize": "regular"  },  "tone": "string",  "type": "structured",  "updateTime": "2019-08-24T14:15:22Z",  "voice": {    "enabled": true  }}