Everything an AI agent can do with the Smartsheet API.

A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.

Endpoints29
API version2.0
Last updated23 June 2026
Orientation

How the Smartsheet API works.

The Smartsheet API is how an app or AI agent works with a Smartsheet account: reading and updating sheets, adding and changing rows, building reports and dashboards, and organizing work into workspaces. Access is granted through an access token, where an OAuth token carries named scopes that set what a call can do and a raw API token inherits the access of the user who created it, limiting an agent to the sheets that token reaches. Smartsheet can also push a sheet's changes to a registered callback when something on it changes.

29Endpoints
10Capability groups
14Read
15Write
10Permissions
Authentication
Every call carries an access token in 'Authorization: Bearer '. There are two kinds: a raw API access token generated in account settings, which acts as the user who made it and does not expire on its own, and an OAuth 2.0 token, which represents a consenting user limited to granted scopes and lasts about seven days before it is refreshed. The base URL is https://api.smartsheet.com/2.0, with separate hosts for the Gov, Europe, and Australia editions.
Permissions
OAuth tokens carry named scopes that gate what a call can do, separating read from write and routine edits from admin work. Sheet data uses READ_SHEETS, WRITE_SHEETS, CREATE_SHEETS, DELETE_SHEETS, ADMIN_SHEETS, and SHARE_SHEETS; dashboards use the parallel READ_SIGHTS, CREATE_SIGHTS, ADMIN_SIGHTS, and SHARE_SIGHTS; webhooks use ADMIN_WEBHOOKS; workspaces and folders use ADMIN_WORKSPACES; users use READ_USERS and ADMIN_USERS; and READ_CONTACTS and READ_EVENTS cover contacts and the event log. A raw API access token instead inherits the full access of the user who created it, with no per-scope limit, so it reaches everything that user can.
Rate limits
The default limit is 300 requests per minute per token, returning HTTP 429 with error code 4003 when exceeded. Attaching a file and reading a cell's history each count as 10 requests, capping those operations at roughly 30 per minute. The official SDKs retry with exponential backoff by default.
Data model
The API is resource-oriented JSON at https://api.smartsheet.com/2.0. A sheet is a grid of rows and columns, where each row holds cells keyed by column id; reports roll up rows across sheets, and dashboards, called Sights in the API, present widgets. Sheets, reports, and folders are organized inside workspaces, whose sharing flows down to their contents. A change on a sheet can be pushed to a registered webhook callback.
Connect & authenticate

Connection & authentication methods.

How an app or AI agent connects to Smartsheet determines what it can reach. There is a route for making calls, a route for receiving events, and a hosted server that exposes Smartsheet tools to agents, and each is governed by the token behind it and the permissions that token carries.

Ways to connect

REST API

The REST API answers at https://api.smartsheet.com/2.0, returns JSON, and authenticates each call with a Bearer access token. Regional instances use their own hosts for the Gov, Europe, and Australia editions.

Best forConnecting an app or AI agent to Smartsheet.
Governed byThe access token and the OAuth scopes it carries.
Docs ↗

Webhooks

A webhook delivers a sheet's change events as callbacks to a registered HTTPS URL. Enabling one starts a verification handshake, where Smartsheet sends a Smartsheet-Hook-Challenge header that the receiver must echo back, and it re-verifies every 100 callbacks.

Best forReceiving Smartsheet sheet events at an app or AI agent.
Governed byThe shared secret on the webhook and the ADMIN_WEBHOOKS scope.
Docs ↗

MCP server (Model Context Protocol)

Smartsheet's hosted MCP server lets an AI agent call Smartsheet through the Model Context Protocol. It is generally available at https://mcp.smartsheet.com, with regional hosts at mcp.smartsheet.eu and mcp.smartsheet.au, and authenticates with an API access token sent as a Bearer header or with OAuth from supported AI clients. Its tools cover sheets, rows, columns, discussions, comments, and workspaces.

Best forConnecting an AI agent to Smartsheet through MCP.
Governed byThe access token or OAuth grant and the permissions it carries.
Docs ↗
Authentication

API access token

A raw API access token is generated in Smartsheet account settings and sent as 'Authorization: Bearer '. It acts as the user who created it, with that user's access, and does not expire on its own. It suits a server-side integration that acts as a single account.

TokenBearer API access token
Best forServer-side integrations acting as one account
Docs ↗

OAuth 2.0

OAuth 2.0 uses the authorization-code flow: a user is sent to Smartsheet to consent to a set of scopes, the app exchanges the returned code for an access token, and the token represents that user limited to the granted scopes. The access token lasts about seven days, and a refresh token obtains a new pair.

TokenOAuth access token scoped to granted permissions
Best forApps acting on behalf of many different users
Docs ↗
Capability map

What an AI agent can do in Smartsheet.

The Smartsheet API is split into areas an agent can act on, like sheets, rows, columns, reports, dashboards, and workspaces. Each area has its own methods and its own permissions, and a write in some areas changes shared work that a whole team relies on.

Sheets

5 endpoints

List, read, create, update, and delete sheets, the grids that hold a team's rows and columns.

Writes here change real sheet data a team relies on.
View endpoints

Rows

3 endpoints

Add, update, and delete rows on a sheet.

Writes here change real row data on a shared sheet.
View endpoints

Columns & cells

3 endpoints

List and add columns, and read the change history of a single cell.

Writes here change a sheet's structure.
View endpoints

Reports

2 endpoints

List reports and read a single report, the saved views that roll up rows across sheets.

Writes here change real report data.
View endpoints

Dashboards (Sights)

2 endpoints

List dashboards, called Sights in the API, and read a single dashboard.

Writes here change real dashboard data.
View endpoints

Workspaces & folders

3 endpoints

List and read workspaces, create a workspace, and create a folder to organize sheets and reports.

Writes here change how a team's work is organized and shared.
View endpoints

Webhooks

4 endpoints

List, create, update, and delete webhooks that deliver sheet change events to a callback URL.

Writes here change which events are pushed and where.
View endpoints

Users

3 endpoints

Read the current user, list users in the organization, and add a user to a plan.

Writes here change real account membership and seats.
View endpoints

Attachments

2 endpoints

List the attachments on a sheet and attach a file to a sheet.

Writes here add real files to a shared sheet.
View endpoints

Discussions

2 endpoints

List the discussions on a sheet and start a new discussion.

Writes here post comments visible to everyone on the sheet.
View endpoints
Endpoint reference

Every Smartsheet API method.

Filter by method, access, or permission, or search any path. Select a row for version detail, rate limits, the related webhook event, and the source.

MethodEndpointWhat it doesAccessPermissionVersion

Sheets

List, read, create, update, and delete sheets, the grids that hold a team's rows and columns.5

Returns sheets accessible to the token; a raw API access token returns the sheets the owning user can see.

Acts onsheet
Permission (capability)READ_SHEETS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

READ_SHEETS also covers the sheet's attachments, discussions, and cell data.

Acts onsheet
Permission (capability)READ_SHEETS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Creating a sheet needs CREATE_SHEETS, separate from WRITE_SHEETS which edits existing sheet data.

Acts onsheet
Permission (capability)CREATE_SHEETS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Changing a sheet's column structure or publish state needs ADMIN_SHEETS instead.

Acts onsheet
Permission (capability)WRITE_SHEETS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Deleting a sheet needs DELETE_SHEETS, a scope distinct from editing sheet data.

Acts onsheet
Permission (capability)DELETE_SHEETS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Rows

Add, update, and delete rows on a sheet.3

Multiple rows are added in a single call rather than one request per row.

Acts onrow
Permission (capability)WRITE_SHEETS
VersionAvailable since the API’s base version
Webhook eventsheet-event
Rate limitStandard limits apply

Updating cell values is part of WRITE_SHEETS. Serial updates to one sheet avoid save collisions.

Acts onrow
Permission (capability)WRITE_SHEETS
VersionAvailable since the API’s base version
Webhook eventsheet-event
Rate limitStandard limits apply

Row ids are passed in the ids query parameter; child rows can be removed with the parent.

Acts onrow
Permission (capability)WRITE_SHEETS
VersionAvailable since the API’s base version
Webhook eventsheet-event
Rate limitStandard limits apply

Columns & cells

List and add columns, and read the change history of a single cell.3

Read-only; returns each column's id, type, and options.

Acts oncolumn
Permission (capability)READ_SHEETS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Changing a sheet's column structure needs ADMIN_SHEETS, not just WRITE_SHEETS.

Acts oncolumn
Permission (capability)ADMIN_SHEETS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Each cell history request counts as 10 requests toward the rate limit, capping it at about 30 per minute.

Acts oncell
Permission (capability)READ_SHEETS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitCounts as 10 requests

Reports

List reports and read a single report, the saved views that roll up rows across sheets.2

Reports are covered by the same READ_SHEETS scope as sheet data.

Acts onreport
Permission (capability)READ_SHEETS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Read-only; a large report is paged through page and pageSize.

Acts onreport
Permission (capability)READ_SHEETS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Dashboards (Sights)

List dashboards, called Sights in the API, and read a single dashboard.2

Dashboards use the separate READ_SIGHTS scope, not READ_SHEETS.

Acts onsight
Permission (capability)READ_SIGHTS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Read-only; changing a dashboard's structure needs ADMIN_SIGHTS.

Acts onsight
Permission (capability)READ_SIGHTS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Workspaces & folders

List and read workspaces, create a workspace, and create a folder to organize sheets and reports.3

Listing workspaces is a read covered by READ_SHEETS.

Acts onworkspace
Permission (capability)READ_SHEETS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Creating and managing workspaces and their shares needs ADMIN_WORKSPACES.

Acts onworkspace
Permission (capability)ADMIN_WORKSPACES
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Folders sit inside workspaces or home, and creating them needs ADMIN_WORKSPACES.

Acts onfolder
Permission (capability)ADMIN_WORKSPACES
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Webhooks

List, create, update, and delete webhooks that deliver sheet change events to a callback URL.4

All webhook operations, including listing, use the ADMIN_WEBHOOKS scope.

Acts onwebhook
Permission (capability)ADMIN_WEBHOOKS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

The events array must be '*.*', meaning all object and event types on the scoped sheet.

Acts onwebhook
Permission (capability)ADMIN_WEBHOOKS
VersionAvailable since the API’s base version
Webhook eventsheet-event
Rate limitStandard limits apply

Enabling a webhook here triggers Smartsheet's callback verification handshake.

Acts onwebhook
Permission (capability)ADMIN_WEBHOOKS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Deleting a webhook needs ADMIN_WEBHOOKS, the same scope as creating one.

Acts onwebhook
Permission (capability)ADMIN_WEBHOOKS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Users

Read the current user, list users in the organization, and add a user to a plan.3

Returns the user the token authenticates as; no special scope is required.

Acts onuser
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Listing the organization's users and groups needs READ_USERS.

Acts onuser
Permission (capability)READ_USERS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Adding or removing users and managing seats needs ADMIN_USERS, a system-admin scope.

Acts onuser
Permission (capability)ADMIN_USERS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Attachments

List the attachments on a sheet and attach a file to a sheet.2

Attachments are covered by READ_SHEETS.

Acts onattachment
Permission (capability)READ_SHEETS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Attaching a file counts as 10 requests toward the rate limit, capping it at about 30 per minute.

Acts onattachment
Permission (capability)WRITE_SHEETS
VersionAvailable since the API’s base version
Webhook eventsheet-event
Rate limitCounts as 10 requests

Discussions

List the discussions on a sheet and start a new discussion.2

Discussions and their comments are covered by READ_SHEETS.

Acts ondiscussion
Permission (capability)READ_SHEETS
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

A comment posted here is visible to everyone shared on the sheet.

Acts ondiscussion
Permission (capability)WRITE_SHEETS
VersionAvailable since the API’s base version
Webhook eventsheet-event
Rate limitStandard limits apply
No endpoints match those filters.
Webhooks

Webhook events.

Smartsheet can notify an app or AI agent when something changes on a sheet, like a row being added or a cell value being updated, instead of the app repeatedly asking. Smartsheet posts a callback to a URL that has been registered for the chosen sheet.

EventWhat it signalsTriggered by
sheet (*.*)Fires when an object on the scoped sheet changes, covering a row, cell, column, attachment, comment, or discussion being added, updated, or deleted. A webhook subscribes to all of these at once, since the events array must be '*.*'./sheets/{sheetId}/rows
/sheets/{sheetId}/rows
/sheets/{sheetId}/rows
/webhooks
/sheets/{sheetId}/attachments
/sheets/{sheetId}/discussions
No events match that search.
Rate limits & pagination

Rate limits, pagination & request size.

Smartsheet limits how fast an app or AI agent can call, through a per-token request rate measured per minute, where a few heavier operations count for more than one request each.

Request rate

Smartsheet sets a default rate limit of 300 requests per minute per access token, and exceeding it returns HTTP 429 with error code 4003 and the message 'Rate limit exceeded.' A few resource-intensive operations count for more than one request: attaching a file and reading a cell's history each count as 10, which effectively caps those to about 30 per minute. The recommended response to a 429 is to sleep at least 60 seconds, or to use exponential backoff, which the official SDKs apply by default; batching many changes into a single bulk call and serializing writes to one sheet keep request volume down.

Pagination

List endpoints page with offset-based parameters: page is the 1-based page number and pageSize sets how many items per page, defaulting to 100. The response wraps the items in an IndexResult with pageNumber, pageSize, totalPages, and totalCount alongside the data array. The older includeAll parameter, which returned every result at once, is being retired: as of 15 June 2026 several object types, including workspaces, folders, dashboards, and webhooks, moved to token-based paging with maxItems and a lastKey token that marks the position for the next page.

Request size

A page size should stay at or below 10,000 items. There is no single documented payload size limit across the whole API, though individual operations such as file attachments set their own ceilings, and bulk row operations have practical per-call limits.

Errors

Status codes & error handling.

The status codes an agent should handle, and what to do about each.

StatusCodeMeaningWhat to do
4011001 / 1002 / 1003Authentication failed: an access token is required (1001), the token is invalid (1002), or the token has expired (1003).Send a valid, unexpired access token in the Authorization header, refreshing an OAuth token where needed.
4031004The token is authenticated but not authorized for this action, often because the user lacks share access to the object or the OAuth scope does not cover the call.Grant the user access to the object, or request the scope the call needs, such as WRITE_SHEETS or ADMIN_USERS.
4041006Not found: the requested object does not exist or is not visible to this token.Confirm the id is correct and the token's user has been shared on the object.
4001008The request could not be parsed, usually a malformed body or an invalid value for a field.Read the message, which names the parsing problem, then correct the request body and resend.
4294003The rate limit was exceeded. The default is 300 requests per minute per token, and heavier operations like attaching a file or reading cell history count as 10 each.Back off and retry, sleeping at least 60 seconds or using exponential backoff, and batch changes into bulk calls.
5004002 / 4004A server-side error: the request timed out (4002) or an unexpected error occurred, which can include a concurrent update conflict on the same sheet (4004).Retry the request, and serialize writes to a single sheet to avoid save collisions.
5034001Smartsheet is temporarily offline for system maintenance.Wait and retry later, honoring any Retry-After header.
Versioning & freshness

Version history.

Smartsheet serves a single numbered version of its API at one base path, and ships dated, backward-compatible changes through its release notes rather than minting a new version for each one.

Version history

What changed, and when

Latest version2.0
2.0Current version
Current API version (2.0)

The Smartsheet API is served at version 2.0 on the base path /2.0, a single numbered version rather than dated versions. Smartsheet ships changes through dated, mostly backward-compatible release notes and gives advance notice before deprecations, so an integration tracks the changelog rather than migrating between version strings. The dated entries below are recent notable changes from that changelog.

2026-06-15Requires migration
Unbounded result sets retired

Several object types dropped the includeAll parameter and offset-based paging in favor of token-based paging, and the pageSize maximum was set to 10,000.

What changed
  • Removed includeAll for folders, workspaces, dashboards, templates, sharing, and webhooks.
  • Moved those object types to token-based pagination with maxItems and lastKey.
  • Set the pageSize maximum to 10,000.
2026-06-08Feature update
Event reporting enhancements

Added new events and properties to the event log.

What changed
  • Added events for Admin Center and authentication actions.
  • Added Event.eventDetails.sourceIpAddress.
  • Added Event.objectIdStr and deprecated Event.objectId without removing it.
2026-06-01Feature update
Webhook scale improvements

Webhooks now work on sheets of any size, with callbacks delivered for all events regardless of sheet scale.

What changed
  • Webhooks can be created, activated, deactivated, and updated on sheets of any size.
  • Callbacks are delivered for all events regardless of sheet scale.
  • Removed size-related webhook error codes.
2026-04-30Feature update
Report CRUD and seat type changes

Full create, read, update, and delete support arrived for reports, alongside a seat-type change.

What changed
  • Added endpoints giving reports full create, read, update, and delete support.
  • Deprecated the VIEWER seat type in favor of CONTRIBUTOR for internal free users, with sunset set for 30 October 2026.

An integration can rely on a stable base path and track changes through the changelog.

Smartsheet API changelog ↗
Questions

Smartsheet API, answered.

API access token or OAuth, which should I use?+
A raw API access token is the quick path for a server-side integration that acts as one account: it is generated in account settings, sent as a Bearer token, and inherits the full access of the user who made it, with no per-scope limit. OAuth 2.0 suits an app acting on behalf of many users, because each user consents to a specific set of scopes, so the token is limited to what was granted. OAuth tokens last about seven days and are renewed with a refresh token, while an API access token does not expire on its own.
What are the OAuth scopes, and how do they map to read and write?+
Scopes are named permissions checked on every OAuth call. Reading sheet data, including its attachments and discussions, needs READ_SHEETS; editing existing sheet data needs WRITE_SHEETS; creating, deleting, and restructuring sheets need CREATE_SHEETS, DELETE_SHEETS, and ADMIN_SHEETS; and sharing needs SHARE_SHEETS. Dashboards have their own parallel scopes such as READ_SIGHTS and ADMIN_SIGHTS, webhooks use ADMIN_WEBHOOKS, workspaces use ADMIN_WORKSPACES, and user administration uses READ_USERS and ADMIN_USERS. A raw API access token ignores scopes and carries the creating user's full access.
What are the rate limits?+
The default is 300 requests per minute per access token. Going over returns HTTP 429 with error code 4003 and the message 'Rate limit exceeded.' Most calls count as one request, but attaching a file and reading a cell's history each count as 10, so those are effectively limited to about 30 per minute. The recommended response is to sleep at least 60 seconds or apply exponential backoff, which the official SDKs do automatically, and to batch changes into bulk calls.
How do I receive changes instead of polling?+
Webhooks deliver a sheet's change events to a callback URL, so an integration does not have to poll. A webhook is created with ADMIN_WEBHOOKS and an events array of '*.*', meaning all object and event types on the scoped sheet, then enabled. On enabling, Smartsheet sends a verification request with a Smartsheet-Hook-Challenge header that the endpoint must echo back in a 200 response, and it re-verifies once every 100 callbacks.
How does pagination work?+
Most list endpoints use offset-based paging: page is the 1-based page number and pageSize is the items per page, defaulting to 100. The response is an IndexResult that wraps the items in a data array alongside pageNumber, pageSize, totalPages, and totalCount. A page size should stay at or below 10,000. The older includeAll parameter, which returned everything at once, is being retired, and as of 15 June 2026 object types like workspaces, folders, dashboards, and webhooks use token-based paging with maxItems and a lastKey token instead.
What does the error response look like?+
An error returns a JSON object with an errorCode, a human-readable message, and a refId that support can use to trace the request. The errorCode is a Smartsheet-specific number, distinct from the HTTP status, for example 1004 for a not-authorized 403, 1006 for a not-found 404, and 4003 for a rate-limited 429.
Related

More productivity API guides for agents

What is Bollard AI?

Control what every AI agent can do in Smartsheet.

Bollard AI sits between a team's AI agents and Smartsheet. Grant each agent exactly the access it needs, read or write, resource by resource, and every call is checked and logged.

  • Set read, write, or full access per agent, never a shared Smartsheet token.
  • Denied by default, so an agent reaches only what has been explicitly allowed.
  • Every call recorded in plain English: who, what, where, and the decision.
Smartsheet
Ops Agent
Read sheets ResourceOffReadFull use
Add and update rows ActionOffReadFull use
Manage users ResourceOffReadFull use
Per-agent access, set in Bollard AI, not in Smartsheet