Submissions API
Query and manage form submissions programmatically.
List Submissions
http
GET /api/v1/submissionsReturns submissions for all forms in your account.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
form | string | Filter by form slug |
since | ISO 8601 | Only submissions after this date |
until | ISO 8601 | Only submissions before this date |
limit | integer | Results per page (default: 50, max: 100) |
offset | integer | Pagination offset |
format | string | Response format: json (default) or csv |
Example Request
bash
curl "https://atlasforms.app/api/v1/submissions?form=contact&limit=10" \
-H "Authorization: Bearer fep_your_api_key"Response
json
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"form": "contact",
"form_name": "Contact Form",
"data": {
"name": "John Doe",
"email": "john@example.com",
"message": "Hello!"
},
"metadata": {
"ip": "192.168.1.1",
"user_agent": "Mozilla/5.0...",
"referrer": "https://example.com/contact",
"submitted_from": "https://example.com/contact"
},
"webhook_status": "success",
"created_at": "2024-01-15T10:30:00Z"
}
],
"pagination": {
"total": 150,
"limit": 10,
"offset": 0,
"has_more": true
}
}Response Fields
| Field | Description |
|---|---|
id | Unique submission ID |
form | Form slug |
form_name | Human-readable form name |
data | The submitted form data |
metadata.ip | Submitter's IP address |
metadata.user_agent | Browser/client user agent |
metadata.referrer | HTTP referrer |
metadata.submitted_from | Full URL of submission |
webhook_status | pending, success, or failed |
created_at | ISO 8601 timestamp |
Get Single Submission
http
GET /api/v1/submissions/{id}Returns a single submission by ID.
Example Request
bash
curl "https://atlasforms.app/api/v1/submissions/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer fep_your_api_key"Response
json
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"form": "contact",
"form_name": "Contact Form",
"data": {
"name": "John Doe",
"email": "john@example.com",
"message": "Hello!"
},
"files": [
{
"id": "file-uuid",
"field": "attachment",
"filename": "document.pdf",
"type": "application/pdf",
"size": 102400,
"url": "https://atlasforms.app/api/v1/files/file-uuid?token=xxx"
}
],
"metadata": {
"ip": "192.168.1.1",
"user_agent": "Mozilla/5.0..."
},
"webhook_status": "success",
"created_at": "2024-01-15T10:30:00Z"
}Export Submissions (CSV)
http
GET /api/v1/submissions?format=csvReturns submissions as a CSV file for import into spreadsheets.
Example Request
bash
curl "https://atlasforms.app/api/v1/submissions?format=csv&form=contact" \
-H "Authorization: Bearer fep_your_api_key" \
-o submissions.csvResponse
csv
id,form,created_at,name,email,message
550e8400...,contact,2024-01-15T10:30:00Z,John Doe,john@example.com,Hello!Date Filtering
Use since and until to filter by date range:
bash
# Submissions from the last 7 days
curl "https://atlasforms.app/api/v1/submissions?since=2024-01-08T00:00:00Z" \
-H "Authorization: Bearer fep_your_api_key"
# Submissions in January 2024
curl "https://atlasforms.app/api/v1/submissions?since=2024-01-01&until=2024-01-31" \
-H "Authorization: Bearer fep_your_api_key"Pagination
Use limit and offset to paginate through results:
bash
# First page (submissions 1-50)
curl "https://atlasforms.app/api/v1/submissions?limit=50&offset=0" \
-H "Authorization: Bearer fep_your_api_key"
# Second page (submissions 51-100)
curl "https://atlasforms.app/api/v1/submissions?limit=50&offset=50" \
-H "Authorization: Bearer fep_your_api_key"Check pagination.has_more to know if more results exist.
Error Responses
401 Unauthorized
json
{ "error": "Invalid API key" }404 Not Found
json
{ "error": "Submission not found" }429 Rate Limited
json
{ "error": "Rate limit exceeded", "retry_after": 45 }