Skip to main content

Forms

Lead capture forms for events and campaigns.

Base path:

/api/v1/{workspace_id}/forms/

CRUD​

GET /api/v1/{workspace_id}/forms/
POST /api/v1/{workspace_id}/forms/
GET /api/v1/{workspace_id}/forms/{form_id}/
PUT /api/v1/{workspace_id}/forms/{form_id}/
PATCH /api/v1/{workspace_id}/forms/{form_id}/
DELETE /api/v1/{workspace_id}/forms/{form_id}/
Authorization: Bearer <token>
Content-Type: application/json

Create form — request body​

{
"name": "Event lead capture",
"description": "Booth visitor form",
"module": "leads",
"fields": [
{
"id": "email",
"type": "email",
"label": "Work email",
"required": true
},
{
"id": "company",
"type": "text",
"label": "Company",
"required": true
}
],
"settings": {
"redirect_url": "https://example.com/thanks"
}
}

Create form — response (201 Created)​

{
"id": "990e8400-e29b-41d4-a716-446655440004",
"name": "Event lead capture",
"module": "leads",
"is_published": false,
"submission_count": 0,
"view_count": 0,
"created_at": "2026-06-20T12:00:00Z"
}

AI generation​

GET /api/v1/{workspace_id}/forms/ai-status/
POST /api/v1/{workspace_id}/forms/generate-from-prompt/
POST /api/v1/{workspace_id}/forms/{form_id}/refine-from-prompt/
GET /api/v1/{workspace_id}/forms/{form_id}/ai-chat/

Publish​

POST /api/v1/{workspace_id}/forms/{form_id}/publish/
POST /api/v1/{workspace_id}/forms/{form_id}/unpublish/
POST /api/v1/{workspace_id}/forms/{form_id}/duplicate/

Submissions​

GET /api/v1/{workspace_id}/forms/{form_id}/submissions/
PATCH /api/v1/{workspace_id}/forms/{form_id}/submissions/{submission_id}/
GET /api/v1/{workspace_id}/forms/{form_id}/analytics/
POST /api/v1/{workspace_id}/forms/{form_id}/submissions/{submission_id}/convert-to-lead/

Public submit — request body​

{
"data": {
"email": "visitor@example.com",
"company": "Visitor Co"
},
"event_id": "550e8400-e29b-41d4-a716-446655440000",
"attribution": {
"utm_source": "linkedin",
"utm_campaign": "booth-2026"
}
}

Email config​

GET /api/v1/{workspace_id}/forms/email-config/

Returns Resend email configuration status for form notifications.

Public form (no auth)​

GET /api/public/forms/{form_id}/
POST /api/public/forms/{form_id}/submit/

See Public API.