List forms
GET
/v1/forms
const url = 'https://api.submeto.com/v1/forms';const options = { method: 'GET', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"status":"enabled","search":"example","limit":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.submeto.com/v1/forms \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "status": "enabled", "search": "example", "limit": 1 }'Returns the forms this API key can access, newest first, with field and submission counts. Results are cursor-paginated.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”status
Filter by form status.
string
Filter by form status.
search
Filter forms by name (max 100 chars).
string
Filter forms by name (max 100 chars).
limit
Number of forms per page (1-50, default 20).
integer
Number of forms per page (1-50, default 20).
Request Body
Section titled “Request Body”Media typeapplication/json
object
status
string
search
Must not be greater than 100 characters.
string
limit
Must be at least 1. Must not be greater than 50.
integer
Responses
Section titled “Responses”Forms page
Media typeapplication/json
object
data
Array<object>
object
id
string
name
string
status
string
endpoint_url
string
allowed_origins
Array<string>
validate_fields
boolean
notifications_enabled
boolean
delivery_channel_types
Array<string>
revision
integer
field_count
integer
submissions_count
integer
unread_count
integer
latest_submission_at
string
fields
array
created_at
string
updated_at
string
links
object
first
string
last
string
meta
object
path
string
per_page
integer
next_cursor
string
prev_cursor
string
request_id
string
Example
{ "data": [ { "id": "REQUEST_ID", "name": "Contact Form", "status": "enabled", "endpoint_url": "https://api.submeto.com/api/v1/forms/REQUEST_ID/submit", "allowed_origins": [ "https://example.com" ], "validate_fields": true, "notifications_enabled": true, "delivery_channel_types": [ "database" ], "revision": 3, "field_count": 4, "submissions_count": 128, "unread_count": 5, "latest_submission_at": "2026-08-30T14:22:00.000Z", "fields": [], "created_at": "2026-01-15T09:00:00.000Z", "updated_at": "2026-08-30T14:22:00.000Z" } ], "links": { "first": "https://api.submeto.com/api/v1/forms?cursor=...", "last": null }, "meta": { "path": "https://api.submeto.com/api/v1/forms", "per_page": 20, "next_cursor": "eyJpZCI6...", "prev_cursor": null }, "request_id": "REQUEST_ID"}Invalid API key
Media typeapplication/json
object
error
object
code
string
message
string
details
object
request_id
string
Example
{ "error": { "code": "invalid_api_key", "message": "Invalid API key.", "details": {} }, "request_id": "REQUEST_ID"}Insufficient scope
Media typeapplication/json
object
error
object
code
string
message
string
details
object
request_id
string
Example
{ "error": { "code": "insufficient_scope", "message": "This key does not have the forms:read scope.", "details": {} }, "request_id": "REQUEST_ID"}