Skip to the documentation
API

Design a form from a brief

A designer builds a new sign-up form from a written brief and saves it as a draft, as Create with AI does on the Forms page of the app.

POST/forms/design

Runs the real call on your workspace.

POST /forms/design

A designer builds a new sign-up form from a written brief and saves it as a draft, as Create with AI does on the Forms page of the app.

Example

Needs forms:write. brief says what the form must ask and say, up to 4,000 characters. name is optional, and the designer names the form when you leave it out.

curl
curl -X POST "$OE/forms/design" -H "$AUTH" -H 'content-type: application/json' -d '{  "brief": "A waitlist for our beta: email, first name and company, with a line on what joining means. A dark green button that says Join the waitlist."}'
Response
{  "object": "form",  "id": "frm_7d1f3b5a9c2e48f06b1d3f5a",  "name": "Beta waitlist",  "status": "draft",  "design": {    "notes": ["Made the company field optional, since the brief did not ask for it to be required."]  }}

The answer is the whole form, as GET /forms/{id} returns it, with design.notes on what the designer adjusted. Publish it with POST /forms/{id}/publish.

It spends one AI action and can take up to half a minute. A design that cannot be made valid is a 422 invalid_form, a workspace that already holds as many forms as it may a 422 workspace_limit_reached, a server with no model a 409 ai_not_configured, and a workspace out of AI actions a 429 ai_quota_exceeded. Nothing is created in any of them.

Reference