API reference/Forms
List form messages
Try itMessages visitors sent through one form, newest first, with each answer labelled. Spam is left out unless you ask for spam=true.
GET
/api/v1/sites/{site_id}/forms/{form_id}/submissionsAuthentication
An API key as Authorization: Bearer or x-api-key. It needs the forms:read scope — read forms and the messages visitors send.
forms:readRead onlyMCP tool: list_submissions
Parameters
Named placeholders go in the path; the rest in the query string.
site_idstringPath · required- The site's id.1 to 100 characters
form_idstringPath · required- The form's id.1 to 100 characters
spamstringQuery · optional- true = only the spam folder; default the inbox.One of: 0, 1, true, false
unreadstringQuery · optional- true = only unread messages.One of: 0, 1, true, false
limitintegerQuery · optional- How many to return (1–100).1 to 100Default
50 cursorstringQuery · optional- next_cursor from the previous page.1 to 100 characters
Response
200 with JSON on success (schema on the right). Errors use the standard envelope.
curl -X GET 'https://websites.workflowcorp.com/api/v1/sites/SITE_ID/forms/FORM_ID/submissions?unread=true' \
-H "Authorization: Bearer $WEBSITEBUDDY_API_KEY"{
"site_id": "SITE_ID",
"form_id": "FORM_ID",
"unread": "true"
}{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"form_id": {
"type": "string"
},
"received_at": {
"type": "string"
},
"page_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"read": {
"type": "boolean"
},
"spam": {
"type": "boolean"
},
"answers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field_id": {
"type": "string"
},
"label": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"field_id",
"label",
"value"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"form_id",
"received_at",
"page_path",
"read",
"spam",
"answers"
],
"additionalProperties": false
}
},
"has_more": {
"type": "boolean"
},
"next_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"data",
"has_more",
"next_cursor"
],
"additionalProperties": false
}