Skip to content

Forms

Forms are built visually in the SMBcrm UI. The form builder, field layout, and styling all live there. The API gives you read access to the forms in your account and the submissions they’ve collected, plus a way to upload files that were submitted through a form.

Base URL: https://services.smbcrm.com · Version header: v3 · Scopes: forms.readonly (list forms and submissions), forms.write (upload files). See Scopes.

GET/forms/

List the forms built in your SMBcrm account.

scope forms.readonlyauth Location token or PIT

locationId is required. Use limit and skip to page through accounts with many forms.

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

List submissions collected by a form, or by all forms in your account.

scope forms.readonlyauth Location token or PIT

locationId is required. Add formId to scope results to a single form, and startAt / endAt to filter by submission date.

Terminal window
curl "https://services.smbcrm.com/forms/submissions?locationId=<location_id>&formId=<form_id>&limit=20&page=1" \
-H "Authorization: Bearer <token>" \
-H "Version: v3"
200 OK
{
"submissions": [
{
"id": "<submission_id>",
"contactId": "<contact_id>",
"createdAt": "2026-07-08T15:04:00.000Z",
"formId": "<form_id>",
"name": "Jordan Lee",
"email": "[email protected]",
"others": {
"full_name": "Jordan Lee",
"email": "[email protected]"
}
}
],
"meta": {
"total": 1,
"currentPage": 1,
"nextPage": null,
"prevPage": null
}
}
Query param Type Required Description
locationId string Yes Your SMBcrm account/location ID.
formId string No Limit results to submissions for one form.
limit number No Maximum number of submissions to return per page.
page number No Page number, starting at 1.
q string No Search term to filter submissions.
startAt string No Only return submissions on or after this date.
endAt string No Only return submissions on or before this date.
POST/forms/upload-custom-files

Upload a file and attach it to a contact's custom field.

scope forms.writeauth Location token or PIT

locationId and contactId are required query parameters. Send the file itself as multipart/form-data, not JSON — drop the Content-Type: application/json header and let your HTTP client set the multipart boundary for you. Name the form field after the custom field the file belongs to.

Terminal window
curl -X POST "https://services.smbcrm.com/forms/upload-custom-files?locationId=<location_id>&contactId=<contact_id>" \
-H "Authorization: Bearer <token>" \
-H "Version: v3" \
-F "resume=@/path/to/resume.pdf"

A successful upload returns 200 OK.

Query param Type Required Description
locationId string Yes Your SMBcrm account/location ID.
contactId string Yes The contact to attach the uploaded file to.