API reference/Forms
Mark a message
Try itMarks one form message read or unread, or moves it to or from spam.
PATCH
/api/v1/sites/{site_id}/submissions/{submission_id}Authentication
An API key as Authorization: Bearer or x-api-key. It needs the forms:write scope — mark messages read, unread or spam.
forms:writeChanges the draft or a recordIdempotency-Key optionalMCP tool: update_submission
Parameters
Named placeholders go in the path; the rest in a JSON body.
site_idstringPath · required- The site's id.1 to 100 characters
submission_idstringPath · required- The message's id.1 to 100 characters
readbooleanBody · optionalspambooleanBody · optional
Response
200 with JSON on success (schema on the right). Errors use the standard envelope; a retry with the same Idempotency-Key gets the first answer back (how retries work).
curl -X PATCH 'https://websites.workflowcorp.com/api/v1/sites/SITE_ID/submissions/SUBMISSION_ID' \
-H "Authorization: Bearer $WEBSITEBUDDY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"read":true}'{
"site_id": "SITE_ID",
"submission_id": "SUBMISSION_ID",
"read": true
}{
"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
}