chatformdocs
API referenceV1

Generate a form document from a natural-language prompt

Returns a document and its lint issues **without saving anything**. Pass the result to `POST /v1/forms` to keep it. Consumes one `ai_generations` unit and the tokens it costs, charged only when a usable document comes back. If you are already driving this from a model of your own, writing the document yourself and posting it to `/v1/forms` costs you nothing here. Settings the prompt asks for ("a dark, playful form that closes on the 30th") are set on `doc` and listed in `settings`, one entry per setting with its value before and after; one marked `locked` is not on your plan and was left at its default.

POST
/v1/ai/generate-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

curl -X POST "https://example.com/v1/ai/generate-form" \  -H "Content-Type: application/json" \  -d '{    "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"      ]    }  ],  "tokens": 0,  "settings": [    {      "key": "string",      "section": "string",      "label": "string",      "where": "string",      "format": "string",      "before": null,      "after": null,      "locked": {        "feature": "string"      },      "property1": null,      "property2": null    }  ]}