BluetickedDeveloper docs

Form submissions

2 endpoints, each with examples that open in the console prefilled.

All resources
GET/api/v1/form-submissionsforms:readTry in console

List form submissions

What visitors submitted through site forms, newest first. Poll with unread=true as an intake queue.

Query parameters
site_idstring
unreadstring
limitstring
  • payload is the form's fields exactly as the visitor filled them; the shape follows the form on the page, so read it defensively.
  • unread=true returns only submissions not yet marked read. Poll it, ingest, then PATCH each one read for an at-least-once intake loop.
  • site_id narrows to one site; business_id to one business's sites (one you can access, else 403); limit caps the page (default 50, max 200).
curl -X GET "https://app.blueticked.com/api/v1/form-submissions?unread=true&limit=50" \
  -H "Authorization: Bearer $BLUETICKED_API_KEY"
Response
{
  "ok": true,
  "submissions": [
    {
      "id": "4b8c2d1e-5f6a-4b7c-8d9e-0f1a2b3c4d5e",
      "site_id": "1d3dd43a-1f0a-4e83-ae13-4494e0d967b3",
      "page_slug": "contact",
      "payload": {
        "name": "Naledi Dlamini",
        "phone": "+27800000001",
        "message": "Do you deliver to Stellenbosch?"
      },
      "is_read": false,
      "created_at": "2026-08-05T09:12:00.000Z"
    }
  ]
}
PATCH/api/v1/form-submissions/{id}forms:writeTry in console

Mark a submission read

Flip the read flag once an external system has ingested it.

Body parameters
is_readrequiredboolean
  • Both directions are allowed: false puts one back in the unread queue.
curl -X PATCH "https://app.blueticked.com/api/v1/form-submissions/{id}" \
  -H "Authorization: Bearer $BLUETICKED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "is_read": true
}'
Response
{
  "ok": true,
  "is_read": true
}