API Getting Started
The Flow Forms API allows you to programmatically access your forms and submissions. Build custom integrations, automate workflows, and extend Flow Forms functionality.
Authentication
API Tokens
All API requests require authentication using API tokens:
-
Generate a Token
- Navigate to Admin → Account (admin only)
- Click "API Tokens"
- Enter a token name
- Click "Generate New Token"
- Important: Copy your token immediately - it won't be shown again
-
Using Your Token Include your token in the Authorization header:
Authorization: Bearer YOUR_API_TOKEN
Token Security
- Keep tokens secret and secure
- Use environment variables
- Rotate tokens regularly
- One token per integration
Base URL
All API requests use this base URL:
https://api.flowforms.io/api/v1
Making Your First Request
List Submissions
curl -X POST https://api.flowforms.io/api/v1/submission \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filters": {
"form_id": 123
}
}'
Get Single Submission
curl https://api.flowforms.io/api/v1/submission/456 \
-H "Authorization: Bearer YOUR_API_TOKEN"
Available Endpoints
Submissions
POST /api/v1/submission- List submissions with filtersGET /api/v1/submission/{id}- Get single submission
Response Format
All responses return JSON:
{
"data": {
"id": "456",
"form_id": "123",
"status": "completed",
"submitted_at": "2024-01-15T10:30:00Z",
"fields": {
"name": "John Doe",
"email": "[email protected]"
}
},
"success": true
}
Filtering Submissions
Filter Options
{
"filters": {
"form_id": 123,
"status": "pending",
"submitted_by": "[email protected]",
"date_from": "2024-01-01",
"date_to": "2024-01-31"
},
"page": 1,
"per_page": 50
}
Pagination
Responses include pagination data:
{
"data": [...],
"pagination": {
"current_page": 1,
"per_page": 50,
"total": 150,
"last_page": 3
}
}
Error Handling
Error Response Format
{
"error": {
"code": "INVALID_TOKEN",
"message": "The provided API token is invalid"
},
"success": false
}
Common Error Codes
INVALID_TOKEN- Authentication failedNOT_FOUND- Resource doesn't existPERMISSION_DENIED- Insufficient permissionsRATE_LIMITED- Too many requestsVALIDATION_ERROR- Invalid request data
Rate Limiting
API requests are rate limited to ensure fair usage:
- 1000 requests per hour
- Rate limit info in response headers
X-RateLimit-RemainingX-RateLimit-Reset
Best Practices
Development
- Use a separate token for testing
- Log API responses for debugging
- Handle errors gracefully
- Implement exponential backoff
Production
- Cache responses when appropriate
- Minimize API calls
- Use webhooks for real-time updates
- Monitor API usage
SDK Support
While Flow Forms doesn't provide official SDKs, the API works with any HTTP client:
- JavaScript: Axios, Fetch
- Python: Requests
- PHP: Guzzle
- Ruby: HTTParty
Getting Help
- Check response error messages
- Review API logs in your account
- Contact support for assistance