chatformdocs
API referenceV1

Ask a model to change an existing form: add, edit or remove questions and rewire the flow

Returns the proposed document **without saving it**. Send it to `PUT /v1/forms/{id}/doc` to keep it. An edit may add no questions at all: most requests about a working form change the routing rather than the wording. Pass `history` (oldest first) when this is a follow-up, or the model cannot resolve 'also', 'it' or 'instead'. A request about the form's settings (its colours, the interviewer's tone, a closing date) comes back in `settings`, one entry per setting with its value before and after, already applied to `doc` unless it is marked `locked` because the plan does not include it. A question about how to do something comes back as `answer`, with no `doc`.

POST
/v1/ai/edit-form

Authorization

AuthorizationBearer <token>

A server-side secret key. Never send one from a browser — a request carrying an Origin header is refused for this reason.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/ai/edit-form" \  -H "Content-Type: application/json" \  -d '{    "formId": "string",    "prompt": "string"  }'
{  "doc": {    "schemaVersion": 0,    "title": "string",    "description": "string",    "blocks": [      {        "property1": null,        "property2": null      }    ],    "endings": [      {        "property1": null,        "property2": null      }    ],    "endingRules": [      null    ],    "logic": [      null    ],    "layout": {      "property1": {        "x": 0,        "y": 0      },      "property2": {        "x": 0,        "y": 0      }    },    "variables": [      null    ],    "hiddenFields": [      null    ],    "settings": {      "property1": null,      "property2": null    },    "theme": {      "property1": null,      "property2": null    },    "embed": {      "property1": null,      "property2": null    },    "property1": null,    "property2": null  },  "issues": [    {      "level": "string",      "code": "string",      "message": "string",      "path": "string",      "refs": [        "string"      ]    }  ],  "property1": null,  "property2": null}