API リファレンス
Submissions
Management API: GET /sites/{id}/forms/{formId}/submissions, GET /sites/{id}/forms/{formId}/submissions/{submissionId}, PATCH /sites/{id}/forms/{formId}/submissions/{submissionId}
List submissions
/sites/{id}/forms/{formId}/submissionsList submissions of one form, newest first, with answers keyed by field id. Filter by status, full-text query and recent days. Attachments are returned as metadata only; downloading files and exporting CSV are not available to agents. attachments maps attachment ids used in this page's answers to their metadata. Errors: FORBIDDEN, FORM_NOT_FOUND, INVALID_CURSOR.
Parameters
idstring · pathrequiredWebsite id. Get it from sites.list or from sites.create.
formIdstring · pathrequiredForm id. Get it from forms.list.
limitinteger · queryMaximum number of items to return, 1–100. Defaults to 20.
cursorstring · queryOpaque cursor from the previous page's nextCursor. Omit for the first page.
status"ALL" | "NEW" | "READ" | "SPAM" | "ARCHIVED" · queryqstring · queryFull-text search in answers.
daysinteger · queryOnly submissions from the last N days in the website's timezone; one of 1, 7, 30, 90.
Response 200
dataobject[]requireddata[].idstringrequireddata[].statusstringrequiredNEW, READ, SPAM or ARCHIVED.
data[].submittedAtstringrequireddata[].contactIdstring | nullrequireddata[].displaystring | nullrequiredName, else email, else phone; null for anonymous forms.
data[].answersobjectrequiredKeyed by field id; file fields hold attachment ids (see attachments).
hasMorebooleanrequiredTrue when another page exists; pass nextCursor to fetch it.
nextCursorstring | nullrequiredCursor for the next page, or null on the last page.
attachmentsobjectrequired
Errors
FORBIDDEN403FORM_NOT_FOUND404INVALID_CURSOR400
MCP tool submissions_list
curl -X GET "https://app.kanorio.com/api/v1/sites/{id}/forms/{formId}/submissions?limit=20" \
-H "Authorization: Bearer $KANORIO_TOKEN"{
"data": [
{
"id": "sub_example01",
"status": "NEW",
"submittedAt": "2026-10-06T08:00:00.000Z",
"contactId": "contact_example01",
"display": "Alex Chen",
"answers": {
"name": "Alex Chen",
"email": "customer@example.com",
"message": "I'd like to pre-order a birthday cake for Saturday."
}
}
],
"attachments": {},
"hasMore": false,
"nextCursor": null
}Retrieve a submission
/sites/{id}/forms/{formId}/submissions/{submissionId}Get one submission of a form with its answers and attachment metadata. Errors: FORBIDDEN, SUBMISSION_NOT_FOUND.
Parameters
idstring · pathrequiredWebsite id. Get it from sites.list or from sites.create.
formIdstring · pathrequiredForm id. Get it from forms.list.
submissionIdstring · pathrequired
Response 200
submissionobjectrequiredsubmission.idstringrequiredsubmission.statusstringrequiredNEW, READ, SPAM or ARCHIVED.
submission.submittedAtstringrequiredsubmission.contactIdstring | nullrequiredsubmission.displaystring | nullrequiredName, else email, else phone; null for anonymous forms.
submission.answersobjectrequiredKeyed by field id; file fields hold attachment ids (see attachments).
attachmentsobjectrequired
Errors
FORBIDDEN403SUBMISSION_NOT_FOUND404
MCP tool submissions_get
curl -X GET "https://app.kanorio.com/api/v1/sites/{id}/forms/{formId}/submissions/{submissionId}" \
-H "Authorization: Bearer $KANORIO_TOKEN"{
"submission": {
"id": "sub_example01",
"status": "NEW",
"submittedAt": "2026-10-06T08:00:00.000Z",
"contactId": "contact_example01",
"display": "Alex Chen",
"answers": {
"name": "Alex Chen",
"email": "customer@example.com",
"message": "I'd like to pre-order a birthday cake for Saturday."
}
},
"attachments": {}
}Update status
/sites/{id}/forms/{formId}/submissions/{submissionId}Update the status of a form submission (NEW, READ, SPAM, or ARCHIVED). Unmarking a SPAM submission promotes it to a contact if the form collects identity. Errors: FORBIDDEN, SUBMISSION_NOT_FOUND, VALIDATION.
Parameters
idstring · pathrequiredWebsite id. Get it from sites.list or from sites.create.
formIdstring · pathrequiredForm id. Get it from forms.list.
submissionIdstring · pathrequiredSubmission id from submissions.list.
Request body
status"NEW" | "READ" | "SPAM" | "ARCHIVED"requiredTarget submission status.
Response 200
idstringrequiredSubmission id.
status"NEW" | "READ" | "SPAM" | "ARCHIVED"requiredUpdated submission status.
promotedbooleanrequiredTrue when unmarking spam promoted the submission into a Contact.
Errors
FORBIDDEN403SUBMISSION_NOT_FOUND404VALIDATION400
MCP tool submissions_update_status
curl -X PATCH "https://app.kanorio.com/api/v1/sites/{id}/forms/{formId}/submissions/{submissionId}" \
-H "Authorization: Bearer $KANORIO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"status":"READ"}'{
"id": "sub_example01",
"status": "READ",
"promoted": false
}