Skip to main content
GET
/
api
/
v1
/
forms
/
{formId}
/
submissions
List Submissions
curl --request GET \
  --url https://api.example.com/api/v1/forms/{formId}/submissions
{
  "400": {},
  "401": {},
  "403": {},
  "404": {},
  "429": {},
  "500": {},
  "submissions": [
    {
      "id": "<string>",
      "createdAt": "<string>",
      "email": "<string>",
      "data": {
        "_meta": {
          "browser": "<string>",
          "country": "<string>",
          "timestamp": "<string>"
        }
      }
    }
  ],
  "nextCursor": "<string>",
  "plan": "<string>"
}

Authentication

This endpoint requires an API key for authentication. You can provide it in two ways:
  • Recommended: X-API-Key header
  • Alternative: apiKey query parameter

Path Parameters

formId
string
required
The unique identifier of the form

Query Parameters

limit
number
default:"50"
Number of submissions to return per page. Minimum: 1, Maximum: 100
cursor
string
Cursor for pagination. Use the nextCursor value from the previous response to fetch the next page
startDate
string
Filter submissions created on or after this date (ISO 8601 format). Only available for STANDARD and PRO plans
endDate
string
Filter submissions created before this date (ISO 8601 format). The full day is included. Only available for STANDARD and PRO plans
apiKey
string
API key for authentication (alternative to X-API-Key header)

Response

submissions
array
Array of submission objects
id
string
Unique identifier for the submission
createdAt
string
ISO 8601 timestamp of when the submission was created
email
string
Email address associated with the submission, if provided
data
object
The form submission data
_meta
object
Metadata about the submission. Available for STANDARD and PRO plans only.
browser
string
Browser information (e.g., “Chrome”, “Safari”)
country
string
Country code (e.g., “US”, “GB”)
timestamp
string
Timestamp of the submission
nextCursor
string
Cursor to use for fetching the next page. If undefined, there are no more results
plan
string
The user’s current plan: FREE, STANDARD, or PRO

Rate Limiting

This endpoint is rate limited. When rate limits are enabled, the following headers are included in the response:
  • X-RateLimit-Limit: Maximum number of requests allowed
  • X-RateLimit-Remaining: Number of requests remaining
  • X-RateLimit-Reset: Unix timestamp when the rate limit resets
If you exceed the rate limit, you’ll receive a 429 status code.

Plan-Based Features

Date Filtering

  • FREE plan: Date filtering is not available. Requesting startDate or endDate returns a 403 error
  • STANDARD & PRO plans: Can filter submissions using startDate and endDate parameters

Metadata Access

  • FREE plan: The _meta field is completely removed from submission data
  • STANDARD & PRO plans: Receive sanitized metadata including browser, country, and timestamp
curl -X GET "https://api.mantlz.com/api/v1/forms/form_123/submissions?limit=20" \
  -H "X-API-Key: your_api_key_here"

Response Example

{
  "submissions": [
    {
      "id": "submission_123",
      "createdAt": "2024-01-15T10:30:00.000Z",
      "email": "[email protected]",
      "data": {
        "name": "John Doe",
        "message": "This is a test submission",
        "_meta": {
          "browser": "Chrome",
          "country": "US",
          "timestamp": "2024-01-15T10:30:00.000Z"
        }
      }
    }
  ],
  "nextCursor": "submission_124",
  "plan": "PRO"
}

Error Responses

400
Bad Request
Invalid parameters (e.g., limit out of range, invalid API key format)
401
Unauthorized
Invalid or inactive API key
403
Forbidden
  • Date filtering attempted on FREE plan
  • Form not found or access denied
404
Not Found
User or form not found
429
Rate Limited
Too many requests. Check rate limit headers for reset time
500
Internal Server Error
Server error occurred while processing the request
The API key’s lastUsedAt timestamp is automatically updated when this endpoint is called successfully.

Build docs developers (and LLMs) love