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_TOKEN
Important: 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

ParameterTypeRequiredDescription
formIdstringYesThe unique identifier of your form (e.g., obkg0)
pageintegerNoPage number to retrieve (default: 1)
limitintegerNoNumber 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 CodeStatusDescription
400Bad RequestHTTP API is not enabled for this form in Settings.
401UnauthorizedInvalid API Token or missing Bearer prefix in header.
404Not FoundThe specified formId does not exist or has been deleted.
429Too Many RequestsAPI rate limit exceeded. Please throttle requests.

Last updated: September 10, 2026