Automette docs

Get a form

GET
/api/v1/forms/{id}

Authorization

ApiKeyAuth
AuthorizationBearer <token>

API key from Settings → API Keys.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/forms/string"
{  "id": "string",  "self": "http://example.com",  "title": "string",  "status": "draft",  "version": 0,  "public_url": "http://example.com",  "embed_url": "http://example.com",  "accepting_submissions": true,  "closed": true,  "closed_reason": "manual",  "closed_message": "string",  "archived": true,  "captcha": true,  "submission_count": 0,  "fields": [    {      "key": "string",      "type": "string",      "label": "string",      "required": true,      "description": "string",      "placeholder": "string",      "options": [        {          "value": "string",          "label": "string"        }      ],      "editable": true    }  ],  "heading": "string",  "description": "string",  "appearance": {    "background": "string",    "surface": "string",    "card": "card"  },  "submit_label": "string",  "sender_name": "string",  "notifications": {    "emails": [      "user@example.com"    ],    "reply_to_field": "string",    "include_document_link": true  },  "respondent_confirmation": {    "email_field": "string",    "subject": "string",    "message": "string",    "include_document": true,    "include_answers": true,    "reply_to": "user@example.com"  },  "limits": {    "close_at": "2019-08-24T14:15:22Z",    "max_submissions": 1,    "one_submission_per_device": true  },  "after_submit": {    "action": "show_page",    "redirect_url": "http://example.com"  },  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}

Create a form POST

Creates a form as a **draft**. Nothing is reachable by respondents until you call publish. You choose each field's `key`, and that key is what you will receive back in webhooks and in the submissions endpoint. Keys must match `[a-z][a-z0-9_]*` and be unique within the form. Design — theme, layout, logic, multi-page flow — belongs in the dashboard builder. This endpoint provisions the questions; editing the look of a form afterwards never disturbs them.

Update a form PATCH

Content keys (`title`, `description`, `submit_label`, `captcha`, `fields`) edit the **draft** — respondents keep seeing the published version until you publish again, the same rule the builder follows. Operational keys (`closed`, `closed_message`, `archived`) take effect immediately, because closing a form is not a new version of it. Send only the keys you are changing. `fields`, when sent, is the complete list you want the form to have: - a field whose `key` you send again is updated in place, keeping its identity and its answers' history; - a `key` the form does not have yet is added at the end; - a `key` you leave out is removed, along with any conditional logic that depended on it — **unless** it is a question this API cannot create, which is kept instead. That last rule is what makes the round trip safe: `GET` a form, change one label, `PATCH` the whole `fields` array back, and nothing built in the dashboard is lost. Anything the update did beyond what you asked for comes back in `warnings`. Layout authored in the builder survives — extra pages, prose between questions, columns. Only the questions themselves change.