Forms
GET
/api/v1/projects/{project_id}/forms/
List all forms for a website.
{
"success": true,
"data": [
{
"id": "uuid",
"name": "Contact Form",
"slug": "contact",
"description": "Main contact form",
"is_active": true,
"field_count": 4,
"submission_count": 150,
"created_at": "2026-01-01T00:00:00Z"
}
],
"count": 3
}
POST
/api/v1/projects/{project_id}/forms/
Create a new form.
{
"name": "Newsletter Signup",
"slug": "newsletter",
"description": "Email newsletter subscription",
"submit_button_text": "Subscribe",
"success_message": "Thanks for subscribing!",
"redirect_url": "/thank-you/",
"is_active": true
}
GET
PUT
DELETE
/api/v1/projects/{project_id}/forms/{form_id}/
Get, update, or delete a form.
Form Embedding
Embed forms in pages using shortcodes:
| Shortcode | Behavior |
|---|---|
[FORM] | Uses the page's linked form |
[FORM:uuid] | Uses a specific form by ID |
Form Fields
GET
/api/v1/projects/{project_id}/forms/{form_id}/fields/
List all fields for a form.
{
"success": true,
"data": [
{
"id": "uuid",
"name": "email",
"field_type": "email",
"label": "Email Address",
"placeholder": "[email protected]",
"required": true,
"order": 0,
"is_active": true
}
]
}
POST
/api/v1/projects/{project_id}/forms/{form_id}/fields/
Create a new field.
{
"name": "company",
"field_type": "text",
"label": "Company Name",
"placeholder": "Acme Inc.",
"required": false,
"order": 3
}
Field Types
| Type | Description |
|---|---|
text | Single line text |
email | Email (validated) |
phone | Phone number |
number | Numeric input |
textarea | Multi-line text |
select | Dropdown |
checkbox | Checkbox |
radio | Radio buttons |
hidden | Hidden field |
date | Date picker |
url | URL input |
PUT
DELETE
/api/v1/projects/{project_id}/forms/{form_id}/fields/{field_id}/
Update or delete a field.
Form Submissions
GET
/api/v1/projects/{project_id}/forms/{form_id}/submissions/
List submissions for a specific form. Supports pagination.
Query params: ?page=2&page_size=50
{
"success": true,
"data": [
{
"id": "uuid",
"data": {
"name": "John Doe",
"email": "[email protected]",
"message": "Hello!"
},
"ip_address": "192.168.1.1",
"status": "delivered",
"created_at": "2026-04-01T10:00:00Z"
}
],
"pagination": {
"page": 1,
"page_size": 25,
"total": 150,
"total_pages": 6
}
}
Statuses: submitted | processing | delivered | failed
Submissions (Website-Wide)
Enhanced submissions endpoint that works across all forms on a website.
GET
/api/v1/projects/{project_id}/submissions/
List all submissions across all forms.
Query params: ?form_id=uuid&status=submitted&limit=50&offset=0
GET
/api/v1/projects/{project_id}/submissions/{submission_id}/
Get a specific submission.
POST
/api/v1/projects/{project_id}/submissions/export/
Export submissions as CSV or JSON.
{"format": "csv"}
Formats: csv | json. CSV exports capped at 5,000 records.