Skip to content

Surveys

Surveys collect structured feedback from your contacts. This part of the API is read-only. Use it to list the surveys configured in your account and pull the submissions people have completed.

Base URL: https://services.smbcrm.com · Version header: v3 · Scope: surveys.readonly. See Scopes.

GET/surveys/

List the surveys configured in your SMBcrm account.

scope surveys.readonlyauth Location token or PIT

locationId is required. Use limit and skip to page through results.

Terminal window
curl "https://services.smbcrm.com/surveys/?locationId=<location_id>&limit=20&skip=0" \
-H "Authorization: Bearer <token>" \
-H "Version: v3"
200 OK
{
"surveys": [
{ "id": "<survey_id>", "locationId": "<location_id>", "name": "Customer Satisfaction" }
],
"total": 1
}
Query param Type Required Description
locationId string Yes Your SMBcrm account/location ID.
limit number No Number of surveys to return per page. Maximum 50, default 10.
skip number No Number of surveys to skip, for pagination.
type string No Filter by item type, for example folder.
GET/surveys/submissions

List submissions for one survey or all surveys in your SMBcrm account, within a date range (the last month by default).

scope surveys.readonlyauth Location token or PIT

locationId is required. Narrow to one survey with surveyId, search by contact with q, set the date range with startAt / endAt, and page through results with limit and page.

Terminal window
curl "https://services.smbcrm.com/surveys/submissions?locationId=<location_id>&surveyId=<survey_id>&limit=20&page=1&startAt=2026-06-01&endAt=2026-06-30" \
-H "Authorization: Bearer <token>" \
-H "Version: v3"
200 OK
{
"submissions": [
{
"id": "<submission_id>",
"surveyId": "<survey_id>",
"contactId": "<contact_id>",
"name": "Jordan Lee",
"email": "jordan@example.com",
"createdAt": "2026-06-14T09:15:00.000Z",
"others": {
"full_name": "Jordan Lee",
"email": "jordan@example.com",
"eventData": {
"type": "page-visit",
"page": {
"url": "https://example.com/feedback",
"title": "Customer Feedback"
},
"domain": "example.com",
"medium": "survey",
"source": "Direct traffic",
"referrer": "https://example.com/",
"pageVisitType": "survey"
},
"fieldsOriSequance": ["full_name", "email"]
}
}
],
"meta": {
"total": 1,
"currentPage": 1,
"nextPage": null,
"prevPage": null
}
}

others holds the submitted field values, keyed by field key or custom field ID, plus two metadata entries:

  • eventData: attribution and page-visit details such as the page URL, referrer, and traffic source. Use it for lead-source reporting.
  • fieldsOriSequance: the original order of the survey’s fields. The key is spelled this way in the response.

meta.nextPage is null on the last page and meta.prevPage is null on the first, so you can keep requesting pages until nextPage is null.

Query param Type Required Description
locationId string Yes Your SMBcrm account/location ID.
surveyId string No Limit results to submissions for one survey.
limit number No Number of submissions to return per page. Maximum 100, default 20.
page number No Page number. Default 1.
q string No Filter by contact ID, name, email address, or phone number.
startAt string No Return submissions on or after this date, formatted YYYY-MM-DD. Defaults to the same date one month ago.
endAt string No Return submissions on or before this date, formatted YYYY-MM-DD. Defaults to today.
  • Forms uses the same list-and-read pattern for form submissions.
  • Contacts helps you look up the contact behind a submission.
  • Scopes is the permissions reference for surveys.readonly and other scopes.