Form
GET/api/v1/forms
Authorization
bearer_token In: header
Query Parameters
Full-text search query applied to form name and title
Filter by status (draft, active, paused, deprecated, disabled)
1-indexed page number
int640 <= valuePage size
int640 <= valueSort field
Sort order (asc or desc)
Value in
- "asc"
- "desc"
Include inactive versions (admin only)
Response Body
application/json
curl -X GET "https://example.com/api/v1/forms"{ "forms": [ { "approval": { "approver_role": "string", "enabled": true, "kind": "string" }, "conditional_logic": [ { "require": [ "string" ], "when": "string" } ], "created_at": "2019-08-24T14:15:22Z", "created_by": "string", "drafts": { "enabled": true, "ttl_seconds": 0 }, "execution": { "on_valid_submission": [ { "fsm_name": "string", "kind": "job", "payload_template": null, "queue": "string", "target_state": "string", "webhook_id": "string" } ] }, "fields": [ { "encrypted": true, "kind": "string", "label": "string", "name": "string" } ], "form_id": "string", "multipart": { "allowed_content_types": [ "string" ], "blob_bucket": "string", "enabled": true, "max_file_bytes": 0, "max_files": 0 }, "name": "string", "schema": {}, "spam": { "allow_anonymous": true, "honeypot_fields": [ "string" ], "min_submit_ms": 0 }, "status": "draft", "submission_count": 0, "title": "string", "updated_at": "2019-08-24T14:15:22Z", "version": 0 } ], "pagination": { "has_more": true, "page": 0, "page_size": 0, "total": 0 }}POST/api/v1/forms
Authorization
bearer_token In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/forms" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "schema": {}, "title": "string" }'{ "created_at": "2019-08-24T14:15:22Z", "form_id": "string", "name": "string", "status": "draft", "version": 0}GET/api/v1/forms/{form_id}
Authorization
bearer_token In: header
Path Parameters
Response Body
application/json
curl -X GET "https://example.com/api/v1/forms/string"{ "approval": { "approver_role": "string", "enabled": true, "kind": "string" }, "conditional_logic": [ { "require": [ "string" ], "when": "string" } ], "created_at": "2019-08-24T14:15:22Z", "created_by": "string", "drafts": { "enabled": true, "ttl_seconds": 0 }, "execution": { "on_valid_submission": [ { "fsm_name": "string", "kind": "job", "payload_template": null, "queue": "string", "target_state": "string", "webhook_id": "string" } ] }, "fields": [ { "encrypted": true, "kind": "string", "label": "string", "name": "string" } ], "form_id": "string", "multipart": { "allowed_content_types": [ "string" ], "blob_bucket": "string", "enabled": true, "max_file_bytes": 0, "max_files": 0 }, "name": "string", "schema": {}, "spam": { "allow_anonymous": true, "honeypot_fields": [ "string" ], "min_submit_ms": 0 }, "status": "draft", "submission_count": 0, "title": "string", "updated_at": "2019-08-24T14:15:22Z", "version": 0}POST/api/v1/forms/{form_id}/drafts
Authorization
bearer_token In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/forms/string/drafts" \ -H "Content-Type: application/json" \ -d '{ "partial_data": {} }'{ "draft_id": "string", "expires_at": "2019-08-24T14:15:22Z", "form_id": "string", "form_version": 0}GET/api/v1/forms/{form_id}/drafts/{draft_id}
Authorization
bearer_token In: header
Path Parameters
Response Body
application/json
curl -X GET "https://example.com/api/v1/forms/string/drafts/string"{ "draft_id": "string", "expires_at": "2019-08-24T14:15:22Z", "form_id": "string", "form_version": 0, "partial_data": {}, "subject": "string", "updated_at": "2019-08-24T14:15:22Z"}PUT/api/v1/forms/{form_id}/schema
Authorization
bearer_token In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X PUT "https://example.com/api/v1/forms/string/schema" \ -H "Content-Type: application/json" \ -d '{ "schema": {} }'{ "approval": { "approver_role": "string", "enabled": true, "kind": "string" }, "conditional_logic": [ { "require": [ "string" ], "when": "string" } ], "created_at": "2019-08-24T14:15:22Z", "created_by": "string", "drafts": { "enabled": true, "ttl_seconds": 0 }, "execution": { "on_valid_submission": [ { "fsm_name": "string", "kind": "job", "payload_template": null, "queue": "string", "target_state": "string", "webhook_id": "string" } ] }, "fields": [ { "encrypted": true, "kind": "string", "label": "string", "name": "string" } ], "form_id": "string", "multipart": { "allowed_content_types": [ "string" ], "blob_bucket": "string", "enabled": true, "max_file_bytes": 0, "max_files": 0 }, "name": "string", "schema": {}, "spam": { "allow_anonymous": true, "honeypot_fields": [ "string" ], "min_submit_ms": 0 }, "status": "draft", "submission_count": 0, "title": "string", "updated_at": "2019-08-24T14:15:22Z", "version": 0}POST/api/v1/forms/{form_id}/status
Authorization
bearer_token In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/forms/string/status" \ -H "Content-Type: application/json" \ -d '{ "status": "string" }'{ "approval": { "approver_role": "string", "enabled": true, "kind": "string" }, "conditional_logic": [ { "require": [ "string" ], "when": "string" } ], "created_at": "2019-08-24T14:15:22Z", "created_by": "string", "drafts": { "enabled": true, "ttl_seconds": 0 }, "execution": { "on_valid_submission": [ { "fsm_name": "string", "kind": "job", "payload_template": null, "queue": "string", "target_state": "string", "webhook_id": "string" } ] }, "fields": [ { "encrypted": true, "kind": "string", "label": "string", "name": "string" } ], "form_id": "string", "multipart": { "allowed_content_types": [ "string" ], "blob_bucket": "string", "enabled": true, "max_file_bytes": 0, "max_files": 0 }, "name": "string", "schema": {}, "spam": { "allow_anonymous": true, "honeypot_fields": [ "string" ], "min_submit_ms": 0 }, "status": "draft", "submission_count": 0, "title": "string", "updated_at": "2019-08-24T14:15:22Z", "version": 0}GET/api/v1/forms/{form_id}/submissions
Authorization
bearer_token In: header
Path Parameters
Query Parameters
Filter by submission status
Filter by submitter subject (admins/owners only)
1-indexed page number
int640 <= valuePage size
int640 <= valueSort field
Sort order (asc or desc)
Value in
- "asc"
- "desc"
Response Body
application/json
curl -X GET "https://example.com/api/v1/forms/string/submissions"{ "pagination": { "has_more": true, "page": 0, "page_size": 0, "total": 0 }, "submissions": [ { "anonymous": true, "attachments": [ { "blob_id": "string", "content_type": "string", "field": "string", "size_bytes": 0 } ], "created_at": "2019-08-24T14:15:22Z", "data": {}, "execution_status": { "approval": null, "fsm": null, "job": null, "webhook": null }, "form_id": "string", "form_version": 0, "status": "draft", "submission_id": "string", "submitted_by": "string", "updated_at": "2019-08-24T14:15:22Z", "validation": { "errors": [ "string" ], "schema_version": 0, "status": "valid" } } ]}POST/api/v1/forms/{form_id}/submissions
Authorization
bearer_token In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/forms/string/submissions" \ -H "Content-Type: application/json" \ -d '{ "data": {} }'{ "execution_status": { "approval": null, "fsm": null, "job": null, "webhook": null }, "form_id": "string", "form_version": 0, "status": "draft", "submission_id": "string"}POST/api/v1/forms/{form_id}/submissions/batch
Authorization
bearer_token In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
A batch of submissions for one form. Each is fully validated and processed independently and fail-fast; the server enforces a per-batch cap.
Response Body
application/json
curl -X POST "https://example.com/api/v1/forms/string/submissions/batch" \ -H "Content-Type: application/json" \ -d '{ "submissions": [ { "data": {} } ] }'{ "count": 0, "results": [ { "execution_status": { "approval": null, "fsm": null, "job": null, "webhook": null }, "form_id": "string", "form_version": 0, "status": "draft", "submission_id": "string" } ]}POST/api/v1/forms/{form_id}/submissions/multipart
Authorization
bearer_token In: header
Path Parameters
Request Body
multipart/form-data
Multipart form data: JSON data field plus one or more file fields
TypeScript Definitions
Use the request body type in TypeScript.
int320 <= valueResponse Body
application/json
curl -X POST "https://example.com/api/v1/forms/string/submissions/multipart" \ -F 0="0"{ "execution_status": { "approval": null, "fsm": null, "job": null, "webhook": null }, "form_id": "string", "form_version": 0, "status": "draft", "submission_id": "string"}POST/api/v1/forms/{form_id}/submissions/public
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/forms/string/submissions/public" \ -H "Content-Type: application/json" \ -d '{ "data": {} }'{ "execution_status": { "approval": null, "fsm": null, "job": null, "webhook": null }, "form_id": "string", "form_version": 0, "status": "draft", "submission_id": "string"}GET/api/v1/forms/{form_id}/submissions/{submission_id}
Authorization
bearer_token In: header
Path Parameters
Response Body
application/json
curl -X GET "https://example.com/api/v1/forms/string/submissions/string"{ "anonymous": true, "attachments": [ { "blob_id": "string", "content_type": "string", "field": "string", "size_bytes": 0 } ], "created_at": "2019-08-24T14:15:22Z", "data": {}, "execution_status": { "approval": null, "fsm": null, "job": null, "webhook": null }, "form_id": "string", "form_version": 0, "status": "draft", "submission_id": "string", "submitted_by": "string", "updated_at": "2019-08-24T14:15:22Z", "validation": { "errors": [ "string" ], "schema_version": 0, "status": "valid" }}POST/api/v1/forms/{form_id}/submissions/{submission_id}/retry
Authorization
bearer_token In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/forms/string/submissions/string/retry" \ -H "Content-Type: application/json" \ -d '{ "hook": "string" }'{ "execution_status": { "approval": null, "fsm": null, "job": null, "webhook": null }, "status": "draft", "submission_id": "string"}GET/api/v1/forms/{form_id}/versions
Authorization
bearer_token In: header
Path Parameters
Response Body
application/json
curl -X GET "https://example.com/api/v1/forms/string/versions"{ "versions": [ { "created_at": "2019-08-24T14:15:22Z", "fields": [ { "encrypted": true, "kind": "string", "label": "string", "name": "string" } ], "form_id": "string", "schema": {}, "updated_by": "string", "version": 0 } ]}GET/api/v1/forms/{form_id}/versions/{version}
Authorization
bearer_token In: header
Path Parameters
int320 <= valueResponse Body
application/json
curl -X GET "https://example.com/api/v1/forms/string/versions/0"{ "created_at": "2019-08-24T14:15:22Z", "fields": [ { "encrypted": true, "kind": "string", "label": "string", "name": "string" } ], "form_id": "string", "schema": {}, "updated_by": "string", "version": 0}