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.
List surveys
Section titled “List surveys”locationId is required. Use limit and skip to page through results.
curl "https://services.smbcrm.com/surveys/?locationId=<location_id>&limit=20&skip=0" \ -H "Authorization: Bearer <token>" \ -H "Version: v3"{ "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. |
List survey submissions
Section titled “List survey submissions”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.
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"{ "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. |
