Documentation
REST API Reference
Retrieve, query, and export form submissions programmatically using the FormBold REST API.
API Overview
The FormBold REST API allows developers to programmatically fetch form submissions, build custom analytics dashboards, integrate internal CRM tooling, and automate data export pipelines.
📸 [Image Placeholder]: Screenshot of the API Tokens management interface in FormBold account settings.
- Base URL: https://api.formbold.com
- Format: All request and response bodies use JSON.
- HTTPS: All API calls require HTTPS.
Authentication
All API requests require authentication via a Personal Access Token sent in the HTTP Authorization header as a Bearer token:
Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKENImportant: To query submissions for a given form, ensure that 'HTTP API Access' is enabled in that form's Settings tab in the dashboard.
List Submissions Endpoint
Retrieve paginated submissions for a specific form.
GET https://api.formbold.com/api/forms/{formId}/submissions
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| formId | string | Yes | The unique identifier of your form (e.g., obkg0) |
| page | integer | No | Page number to retrieve (default: 1) |
| limit | integer | No | Number of submissions per page (default: 10, max: 100) |
Request Examples
cURL:
curl -X GET "https://api.formbold.com/api/forms/YOUR_FORM_ID/submissions?page=1&limit=10" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"JavaScript / Node.js:
fetch-submissions.js
1
2
3
4
5
6
7
8
9
const response = await fetch("https://api.formbold.com/api/forms/YOUR_FORM_ID/submissions?page=1&limit=10", {
headers: {
Authorization: "Bearer YOUR_API_TOKEN",
Accept: "application/json",
},
});
const data = await response.json();
console.log(data);Python:
fetch_submissions.py
1
2
3
4
5
6
7
8
9
10
11
import requests
url = "https://api.formbold.com/api/forms/YOUR_FORM_ID/submissions"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Accept": "application/json"
}
params = {"page": 1, "limit": 10}
response = requests.get(url, headers=headers, params=params)
print(response.json())Success Response (200 OK)
response-200.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
"data": [
{
"id": 1042,
"fields": {
"name": "Jane Doe",
"email": "[email protected]",
"message": "Hello from the contact form!"
},
"files": [],
"is_spam": false,
"created_at": "2026-09-10T10:15:30.000Z"
}
],
"meta": {
"pagination": {
"total": 48,
"count": 10,
"per_page": 10,
"current_page": 1,
"total_pages": 5,
"links": {
"previous": null,
"next": "https://api.formbold.com/api/forms/YOUR_FORM_ID/submissions?page=2&limit=10"
}
}
}
}Error Responses Reference
| HTTP Code | Status | Description |
|---|---|---|
| 400 | Bad Request | HTTP API is not enabled for this form in Settings. |
| 401 | Unauthorized | Invalid API Token or missing Bearer prefix in header. |
| 404 | Not Found | The specified formId does not exist or has been deleted. |
| 429 | Too Many Requests | API rate limit exceeded. Please throttle requests. |
Last updated: September 10, 2026