Go to section:

The SmartSuite REST API gives you the ability to list all of your Solutions, Apps, Fields, Members and their properties.

The metadata calls can be accessed with your existing SmartSuite API Key and account id. No additional credentials are required.

SmartSuite does not consider adding keys to response objects as breaking changes, so the shape of objects may change without notice. Existing keys will not be removed without a deprecation warning and timeframe.


Just like the standard portions of the REST API, SmartSuite uses token-based authentication for metadata requests. You can generate or manage your API key in your User Profile. All API requests must be authenticated and made over HTTPS.

IMPORTANT! Your API key conveys the same privileges as the Member account it is generated in, so it should be treated as securely as a password.

You authenticate to the API by providing your API key in the Authorization header, as well as your Workspace Id in an Account-Id header, as shown below.


  • Authorization: Token API_KEY_HERE


NOTE: Your Workspace Id is the 8 characters that follow https://app.smartsuite.com/ in the SmartSuite URL when you’re logged in.

Example: https://app.smartsuite.com/sv25cxf2/solution/62c4b…


Most endpoints that return multiple results can be instructed to return results in pages to reduce the size of individual responses. By default each endpoint will return all entities requested, but you can explicitly set the page size by appending a "limit" parameter to the request URL, like this:


This will have the effect of returning the first 100 items. You can retrieve subsequent pages by specifying an offset value:


This will tell the API to ignore the first 100 items and send the next 100.

The total number of results is contained in the total property:

"total": 5000,
"offset": 0,
"limit": 0,
"items": [

Metadata Request Endpoints

The following metadata endpoints are available in the v1 REST API.

List Solutions

GET https://app.smartsuite.com/api/v1/solutions/

Returns a list of all solutions present in the Workspace. Results can optionally be paginated.

Return Specific Solution

GET https://app.smartsuite.com/api/v1/solutions/[Solution_Id]/

Returns a specific solution.

Create a Solution

POST https://app.smartsuite.com/api/v1/solutions/

Creates a new Solution. The following parameters should be included in the body of the request:

"name": "My New Solution"
"logo_icon":"overline", <-- Material Design icon name
"logo_color":"#3A86FF" <-- Hex color for the icon

Duplicate a Solution

POST https://app.smartsuite.com/api/v1/solutions/[Solution_Id]/duplicate/

Duplicates a Solution. The following parameters should be included in the body of the request:

"name":"Copied Solution",
"duplicate_records":true, <-- true to duplicate records
"duplicate_comments":true <-- true to duplicate comments

List All Apps

GET https://app.smartsuite.com/api/v1/applications/

Returns a list of all apps. Results can optionally be paginated.

Return Specific App

GET https://app.smartsuite.com/api/v1/applications/[App_id]/

Returns a specific app.

Create an App

POST https://app.smartsuite.com/api/v1/applications/

Creates a new App. Note that all new Apps will contain default fields.

Include the following JSON body to specify name and solution properties:

"name": "[App Name]",
"solution": "[App Id]",
"structure": []

Add a Field to an App

POST https://app.smartsuite.com/api/v1/applications/[App_Id]/add_field/

Adds a field of the specified type to an App.

Include the following JSON body to specify field parameters:

"field": {
"slug": "[Random 10 digit alphanumeric value]",
"label": "[Field Name]",
"field_type": "[Field Type]",
"params": {
[Field-Specific Parameters]
"is_new": true
"Field_Position": {
"prev_sibling_slug": "[Previous Field Slug (or null)]"
"auto_fill_structure_layout": true

NOTE: A separate help article is under construction that documents field type and params values.

Bulk Add Fields to an App

POST https://app.smartsuite.com/api/v1/applications/[App_Id]/bulk-add-fields/

Adds a field of the specified type to an App.

Include the following JSON body to specify field parameters:

"fields": [
"field_type": {field_type},
"label": {label},
"slug: {slug}, # not required
"params": {params}, # can be empty {}

"set_as_visible_fields_in_reports": [{report_id}] # can be empty []

At this time a limited number of field types are supported by the bulk endpoint. The following list of field types are NOT supported:


List Workspace Members

POST https://app.smartsuite.com/api/v1/applications/members/records/list/

Returns a list of workspace Members and their profiles. Results can optionally be paginated.

Update Member Profile

PATCH https://app.smartsuite.com/api/v1/applications/members/records/[Id]/

Updates a member's profile by their unique id.

Get Tag Field values for a Solution

GET https://app.smartsuite.com/api/v1/tags/?solution=[Solution_Id]/ 

Gets a list of Tag Field values for the specified solution. Note that this request does not support pagination.

List Record Comments

GET https://app.smartsuite.com/api/v1/comments/?record=[Record_Id]

Gets a record's comments. Returns an array of comment objects.

Add Comment to Record

POST https://app.smartsuite.com/api/v1/comments/

Adds a comment to a record. Pass the following JSON structure in the body of the POST:

"assigned_to": [Member Id or null],
"message": {
"data": {
"type": "doc",
"content": [
"type": "paragraph",
"content": [
"type": "text",
"text": "[Comment Text]"
"parent_comment": "[Parent Comment Id if applicable]",
"application": "[App_Id]",
"record": "[Record_Id]"

You can optionally send HTML to the endpoint as well, and SmartSuite will translate the HTML to markup for you:

"assigned_to": [Member Id or null],
"message": {
"html": "<b>A test</b>"
"application": "[App_Id]",
"record": "[Record_Id]"

Related Articles

Did this answer your question?