chatformdocs
API referenceV1

Change a form's draft with ops

Applies a batch of ops to the working document: questions, flow, endings, settings, a look, placed pictures and text, background, music, screen sounds, celebrations and branding. Each op lands on its own; one that does not fit comes back in `rejected` with the reason and the rest still land. A setting the plan does not include comes back in `locked`. Asset ids come from the elements library or the organization's uploaded pictures. The draft is saved with the same fixes as `PUT /v1/forms/{id}/doc`; nothing is live until `POST /v1/forms/{id}/publish`.

POST
/v1/forms/{id}/ops

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

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/forms/string/ops" \  -H "Content-Type: application/json" \  -d '{    "ops": [      {        "property1": null,        "property2": null      }    ]  }'
{  "saved": true,  "applied": 0,  "rejected": [    {      "op": null,      "reason": "string"    }  ],  "notes": [    {      "op": null,      "note": "string"    }  ],  "locked": [    {      "key": "string",      "feature": "string",      "plan": "string",      "value": null    }  ],  "fixes": [    {      "code": "routes_reordered",      "message": "string",      "refs": [        "string"      ]    }  ],  "issues": [    {      "level": "string",      "code": "string",      "message": "string",      "path": "string",      "refs": [        "string"      ]    }  ],  "builder_url": "string",  "next_step": "string"}