Getting Started
The Formidable API gives you programmatic access to your published forms and submissions. Use it to validate data, create submissions, evaluate computed outputs, and export results from your own backend.
Base URL: https://api.formidable.software/v1
Create an API Key
- Open Settings > API Keys in the Formidable app.
- Click Create Key and give it a name (e.g. "Production Backend").
- Copy the key immediately — it is only shown once.
API keys start with fmb_live_ and authenticate all /v1/ requests. See Authentication for details.
Endpoints
List Forms
curl https://api.formidable.software/v1/forms \
-H "Authorization: Bearer fmb_live_your_key_here"
Response:
{
"data": [
{
"id": "abc-123",
"slug": "loan-application",
"title": "Loan Application",
"version": 2,
"createdAt": "2026-01-15T10:00:00.000Z",
"updatedAt": "2026-03-01T14:30:00.000Z"
}
],
"nextCursor": null
}
Supports cursor-based pagination via ?cursor=...&limit=20 (max 100).
Get Form
Retrieve a form's full specification by slug.
curl https://api.formidable.software/v1/forms/loan-application \
-H "Authorization: Bearer fmb_live_your_key_here"
Response:
{
"id": "abc-123",
"slug": "loan-application",
"title": "Loan Application",
"version": 2,
"formspec": { "schema": {}, "fields": {}, "fieldOrder": [] },
"createdAt": "2026-01-15T10:00:00.000Z",
"updatedAt": "2026-03-01T14:30:00.000Z"
}
The formspec field contains the complete Forma specification.
Submit Data
Create a submission with validation.
curl -X POST https://api.formidable.software/v1/forms/loan-application/submit \
-H "Authorization: Bearer fmb_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"data": {
"applicantName": "Jane Doe",
"creditScore": 720,
"annualIncome": 85000
}
}'
The API validates your data against the form's schema and custom rules before storing it.
Success (201):
{
"submissionId": "sub-456",
"computedOutputs": {
"approved": {
"value": true,
"label": "Approved",
"format": null
},
"riskScore": {
"value": 0.12,
"label": "Risk Score",
"format": "decimal(2)"
}
}
}
Validation failure (400):
{
"valid": false,
"errors": [{ "field": "creditScore", "message": "Must be at least 300" }]
}
You can include optional metadata in the request body for your own tracking purposes.
Validate Without Storing
Check data against the form's rules without creating a submission.
curl -X POST https://api.formidable.software/v1/forms/loan-application/validate \
-H "Authorization: Bearer fmb_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "data": { "creditScore": 200 } }'
Response:
{
"valid": false,
"errors": [{ "field": "creditScore", "message": "Must be at least 300" }]
}
Evaluate (Validate + Computed Outputs)
Like validate, but also returns computed outputs. Useful for calculators and scoring forms where you need the results without storing a submission.
curl -X POST https://api.formidable.software/v1/forms/loan-application/evaluate \
-H "Authorization: Bearer fmb_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"data": {
"applicantName": "Jane Doe",
"creditScore": 720,
"annualIncome": 85000
}
}'
Response:
{
"valid": true,
"errors": [],
"computedOutputs": {
"approved": {
"value": true,
"label": "Approved",
"format": null
},
"riskScore": {
"value": 0.12,
"label": "Risk Score",
"format": "decimal(2)"
}
}
}
Use evaluate for preview/dry-run scenarios where you want to show computed results to the user before they submit.
List Submissions
Retrieve submissions for a form, ordered by most recent first.
curl https://api.formidable.software/v1/forms/loan-application/submissions \
-H "Authorization: Bearer fmb_live_your_key_here"
Response:
{
"data": [
{
"id": "sub-456",
"data": { "applicantName": "Jane Doe", "creditScore": 720 },
"computedOutputs": { "approved": true },
"createdAt": "2026-03-10T09:15:00.000Z"
}
],
"nextCursor": null
}
Supports cursor-based pagination via ?cursor=...&limit=20 (max 100).
Export Submissions
Download all submissions as CSV or JSON.
# CSV (default)
curl https://api.formidable.software/v1/forms/loan-application/submissions/export \
-H "Authorization: Bearer fmb_live_your_key_here" \
-o submissions.csv
# JSON
curl "https://api.formidable.software/v1/forms/loan-application/submissions/export?format=json" \
-H "Authorization: Bearer fmb_live_your_key_here" \
-o submissions.json
The export includes all submissions and all fields.
Error Codes
| Status | Meaning |
|---|---|
400 | Validation failed — check errors array |
401 | Missing or invalid API key |
404 | Form not found or not published |
429 | Monthly submission limit reached |
Interactive Reference
For interactive examples and the full OpenAPI specification, see the API Reference.
Next Steps
- Authentication — API key management, rate limits, error responses
- End-to-End Integration — Fetch a form, render it in React, and submit data
- Webhooks — Receive real-time notifications when forms are submitted