# Rollstack API > Build, update and share Rollstack reports from your own code, scripts and AI clients. The API does what you do in the app: find and create reports, add data from your BI tools, spreadsheets or your own files, ask the slides agent to build and change slides, refresh reports from their sources, export them as PDF or PowerPoint, and share, schedule and email them. Owners and admins can also manage the organization, its members and its data source connections. The API reference is at , and in Markdown, in one file, at . Clients and tools can read its OpenAPI document at . The rest of the Rollstack documentation, at , is for signed-in Rollstack users. ## Introduction - [Introduction](https://docs.rollstack.com/api) - [Getting started](https://docs.rollstack.com/api/getting-started) - [Authentication](https://docs.rollstack.com/api/authentication) - [Scopes](https://docs.rollstack.com/api/scopes) - [Requests and responses](https://docs.rollstack.com/api/requests-and-responses) - [Errors](https://docs.rollstack.com/api/errors) - [Rate limits](https://docs.rollstack.com/api/rate-limits) - [Versioning](https://docs.rollstack.com/api/versioning) - [Deprecation and sunset](https://docs.rollstack.com/api/deprecation-and-sunset) - [MCP server](https://docs.rollstack.com/api/mcp-server) - [Connect an AI assistant](https://docs.rollstack.com/api/connect-an-ai-assistant) ## Reports - [Reports](https://docs.rollstack.com/api/reports): Find, create and manage reports. A report lives in a folder, has one owner, and is shared with other members who can view or edit it. Each report answers the permission the user has on it and a link that opens it in Rollstack. - [List reports](https://docs.rollstack.com/api/reports/list-reports): `GET /reports` - [Create report](https://docs.rollstack.com/api/reports/create-report): `POST /reports` - [Get report](https://docs.rollstack.com/api/reports/get-report): `GET /reports/{id}` - [Update report](https://docs.rollstack.com/api/reports/update-report): `PATCH /reports/{id}` - [Delete report](https://docs.rollstack.com/api/reports/delete-report): `DELETE /reports/{id}` - [Transfer ownership](https://docs.rollstack.com/api/reports/transfer-report-ownership): `POST /reports/{id}/transfer-ownership` ## Chat - [Chat](https://docs.rollstack.com/api/chat): Ask the slides agent to build or change a report, or to answer a question about it, as in the chat of the app. - [Get slides agent message](https://docs.rollstack.com/api/chat/get-report-message): `GET /reports/{id}/messages/{messageId}` - [Send message to slides agent](https://docs.rollstack.com/api/chat/send-report-message): `POST /reports/{id}/messages` - [Approve slides agent proposal](https://docs.rollstack.com/api/chat/approve-report-message-proposal): `POST /reports/{id}/messages/{messageId}/replies/{replyId}/approve` - [Cancel slides agent message](https://docs.rollstack.com/api/chat/cancel-report-message): `POST /reports/{id}/messages/{messageId}/cancel` - [Reject slides agent proposal](https://docs.rollstack.com/api/chat/reject-report-message-proposal): `POST /reports/{id}/messages/{messageId}/replies/{replyId}/reject` ## Runs - [Runs](https://docs.rollstack.com/api/runs): Update a report from its sources. A run reads every datasheet again, or only the ones you pass, recalculates the report's numbers, and repairs with AI the calculations and slides the new data broke. Schedules start the same run. - [Get report run](https://docs.rollstack.com/api/runs/get-report-run): `GET /reports/{id}/runs/{runId}` - [Start report run](https://docs.rollstack.com/api/runs/start-report-run): `POST /reports/{id}/runs` - [Cancel report run](https://docs.rollstack.com/api/runs/cancel-report-run): `POST /reports/{id}/runs/{runId}/cancel` ## Exports - [Exports](https://docs.rollstack.com/api/exports): Download a report as a PDF or a PowerPoint file, as viewers see it. The export answers a link to the file, valid for 15 minutes, so download it right away. - [Export report](https://docs.rollstack.com/api/exports/export-report): `POST /reports/{id}/exports` ## Content - [Content](https://docs.rollstack.com/api/content): What viewers see on a report, for reading or checking it without downloading a file. `getReportContent` answers the text of each visible slide and the values in its charts and tables. `getReportSlideImages` renders slides as images, to check their layout. - [Get report content](https://docs.rollstack.com/api/content/get-report-content): `GET /reports/{id}/content` - [Get slide images](https://docs.rollstack.com/api/content/get-report-slide-images): `GET /reports/{id}/slides/images` ## Uploaded files - [Uploaded files](https://docs.rollstack.com/api/uploaded-files): Your own data, for the slides agent to build slides from: a CSV file sent as JSON, or an Excel workbook sent as a file, as with Upload files in the app. Uploaded files suit data that lives outside a connected BI tool or spreadsheet, such as an export from another system. - [Upload a file](https://docs.rollstack.com/api/uploaded-files/create-dataset): `POST /datasets` - [Replace an uploaded file](https://docs.rollstack.com/api/uploaded-files/replace-dataset): `PUT /datasets/{id}` - [Delete an uploaded file](https://docs.rollstack.com/api/uploaded-files/delete-dataset): `DELETE /datasets/{id}` ## Datasheets - [Datasheets](https://docs.rollstack.com/api/datasheets): The data behind a report's charts and tables. A datasheet reads one source, an uploaded file, a dashboard tab of a connection or a range of a spreadsheet, and keeps a copy of what it read; the report's charts and tables are drawn from those copies. - [List report datasheets](https://docs.rollstack.com/api/datasheets/list-report-datasheets): `GET /reports/{id}/datasheets` - [Add sources to report](https://docs.rollstack.com/api/datasheets/add-report-datasheets): `POST /reports/{id}/datasheets` - [Get datasheet data](https://docs.rollstack.com/api/datasheets/get-report-datasheet-data): `GET /reports/{id}/datasheets/{datasheetId}/data` ## Parameters - [Parameters](https://docs.rollstack.com/api/parameters): Named values of a report, such as a region, that it writes into the filters of the dashboards its datasheets read. One parameter can link differently named filters on several dashboards, and setting its value filters all of them the same way. A burst's variants each hold their own value of the parameters it varies by. - [Get report parameters](https://docs.rollstack.com/api/parameters/get-report-parameters): `GET /reports/{id}/parameters` - [Create report parameter](https://docs.rollstack.com/api/parameters/create-report-parameter): `POST /reports/{id}/parameters` ## Sharing - [Sharing](https://docs.rollstack.com/api/sharing): Who a report is shared with. Share a report with a member of the organization to let them `view` or `edit` it; they get an email. Sharing again with another permission changes it. - [Share report](https://docs.rollstack.com/api/sharing/share-report): `PUT /reports/{id}/shares/{userId}` - [Unshare report](https://docs.rollstack.com/api/sharing/unshare-report): `DELETE /reports/{id}/shares/{userId}` ## Schedules - [Schedules](https://docs.rollstack.com/api/schedules): When a report updates on its own. Each schedule starts a run of the whole report at the times it sets, in its timezone: hourly at chosen times of day, or on a cron expression for daily, weekly, monthly, quarterly and yearly ones. - [List schedules](https://docs.rollstack.com/api/schedules/get-report-schedules): `GET /reports/{id}/schedules` - [Replace report schedules](https://docs.rollstack.com/api/schedules/update-report-schedules): `PUT /reports/{id}/schedules` ## Email - [Email](https://docs.rollstack.com/api/email): Who a report's email goes to and how it is sent: its recipients, the sender it goes out through, whether it carries the report as a link, a PDF or a PowerPoint file, and which successful runs send it on their own. Set it up once, then send it now or let the report's runs send it. - [Get email settings](https://docs.rollstack.com/api/email/get-report-email-config): `GET /reports/{id}/email-config` - [Replace email settings](https://docs.rollstack.com/api/email/update-report-email-config): `PUT /reports/{id}/email-config` - [Send email](https://docs.rollstack.com/api/email/send-report-email): `POST /reports/{id}/emails` - [Send test email](https://docs.rollstack.com/api/email/send-report-test-email): `POST /reports/{id}/emails/test` ## Bursts - [Bursts](https://docs.rollstack.com/api/bursts): A burst makes one report per audience from a template report: each variant is a copy of the template that holds its own values of the report parameters the burst varies by, such as a region or an account, so its datasheets read only its data. - [List bursts](https://docs.rollstack.com/api/bursts/list-bursts): `GET /bursts` - [Create burst](https://docs.rollstack.com/api/bursts/create-burst): `POST /bursts` - [List burst variants](https://docs.rollstack.com/api/bursts/list-burst-variants): `GET /bursts/{id}/variants` - [Add burst variants](https://docs.rollstack.com/api/bursts/add-burst-variants): `POST /bursts/{id}/variants` - [Run burst variants](https://docs.rollstack.com/api/bursts/start-burst-run): `POST /bursts/{id}/runs` - [Set variant recipients](https://docs.rollstack.com/api/bursts/update-burst-variant-recipients): `PUT /bursts/{id}/variants/recipients` - [Remove burst variants](https://docs.rollstack.com/api/bursts/remove-burst-variants): `POST /bursts/{id}/variants/remove` ## Connections - [Connections](https://docs.rollstack.com/api/connections): Data source connections: the Looker, Metabase, Omni, Lightdash, Sigma, Tableau, Power BI and Salesforce instances, and Snowflake and Databricks warehouses, reports read data from. Credentials are write-only and tested before they are saved; reads never answer them. - [List connections](https://docs.rollstack.com/api/connections/list-connections): `GET /connections` - [Create connection](https://docs.rollstack.com/api/connections/create-connection): `POST /connections` - [Get connection](https://docs.rollstack.com/api/connections/get-connection): `GET /connections/{type}/{id}` - [Update connection](https://docs.rollstack.com/api/connections/update-connection): `PATCH /connections/{type}/{id}` - [Delete connection](https://docs.rollstack.com/api/connections/delete-connection): `DELETE /connections/{type}/{id}` - [Search dashboards](https://docs.rollstack.com/api/connections/search-dashboards): `GET /connections/{type}/{id}/dashboards` - [Get dashboard](https://docs.rollstack.com/api/connections/get-dashboard): `GET /connections/{type}/{id}/dashboards/{dashboardId}` - [Replace credentials](https://docs.rollstack.com/api/connections/replace-connection-credentials): `PUT /connections/{type}/{id}/credentials` ## Connection users - [Connection users](https://docs.rollstack.com/api/connection-users): Who can use a connection. Each user reads data with their own access to the connection; a user without one uses the default user's, when the connection has one. - [List connection users](https://docs.rollstack.com/api/connection-users/list-connection-users): `GET /connections/{type}/{id}/users` - [Add connection users](https://docs.rollstack.com/api/connection-users/add-connection-users): `POST /connections/{type}/{id}/users` - [Suspend connection user](https://docs.rollstack.com/api/connection-users/remove-connection-user): `DELETE /connections/{type}/{id}/users/{userId}` ## Connection admins - [Connection admins](https://docs.rollstack.com/api/connection-admins): Who can manage a connection. A connection has one owner and any number of admins. Admins manage the connection's users; only the owner can add or remove admins, or delete the connection. - [Add connection admin](https://docs.rollstack.com/api/connection-admins/set-connection-admin): `PUT /connections/{type}/{id}/admins/{userId}` - [Remove connection admin](https://docs.rollstack.com/api/connection-admins/remove-connection-admin): `DELETE /connections/{type}/{id}/admins/{userId}` ## Spreadsheets - [Spreadsheets](https://docs.rollstack.com/api/spreadsheets): The Google Sheets and Excel files the user added in Rollstack, read with the user's own Google or Microsoft account. Rollstack sees only the files added in the app, not the user's whole Drive or OneDrive. - [Search spreadsheets](https://docs.rollstack.com/api/spreadsheets/search-spreadsheets): `GET /spreadsheets` - [Get spreadsheet](https://docs.rollstack.com/api/spreadsheets/get-spreadsheet): `GET /spreadsheets/{id}` ## SMTP connections - [SMTP connections](https://docs.rollstack.com/api/smtp-connections): The SMTP connections report emails go out through: an SMTP login or a Google or Microsoft account. A connection is the user's own, or shared with the whole organization by an owner or admin. - [List SMTP connections](https://docs.rollstack.com/api/smtp-connections/list-smtp-connections): `GET /smtp-connections` - [Create SMTP connection](https://docs.rollstack.com/api/smtp-connections/create-smtp-connection): `POST /smtp-connections` - [Delete SMTP connection](https://docs.rollstack.com/api/smtp-connections/delete-smtp-connection): `DELETE /smtp-connections/{id}` ## Folders - [Folders](https://docs.rollstack.com/api/folders): The folders that organize reports, as nested in the app. Each folder answers the permission the user has on it: `view`, `edit` or `manage`. - [List folders](https://docs.rollstack.com/api/folders/list-folders): `GET /folders` ## Organization - [Organization](https://docs.rollstack.com/api/organization): The API key's organization and its settings: its name and default timezone, the email domains members may be invited from, how reports update and link to their sources, and which features are on, such as insights, memories, spreadsheets and email analytics. - [Get organization](https://docs.rollstack.com/api/organization/get-organization): `GET /organization` - [Update organization](https://docs.rollstack.com/api/organization/update-organization): `PATCH /organization` ## Members - [Members](https://docs.rollstack.com/api/members): Members of the organization, their roles and access. A member's role is `owner`, `admin` or `member`; their authentication role, `viewer` or `editor`, lets them see or change the organization's SSO settings. - [Get current user](https://docs.rollstack.com/api/members/get-me): `GET /me` - [List members](https://docs.rollstack.com/api/members/list-members): `GET /members` - [Update member](https://docs.rollstack.com/api/members/update-member): `PATCH /members/{userId}` - [Deactivate member](https://docs.rollstack.com/api/members/deactivate-member): `POST /members/{userId}/deactivate` - [Reactivate member](https://docs.rollstack.com/api/members/reactivate-member): `POST /members/{userId}/reactivate` ## Invites - [Invites](https://docs.rollstack.com/api/invites): Pending invites to join the organization, each with the role and authentication role the user joins with. - [List invites](https://docs.rollstack.com/api/invites/list-invites): `GET /invites` - [Create invites](https://docs.rollstack.com/api/invites/create-invites): `POST /invites` - [Delete invite](https://docs.rollstack.com/api/invites/delete-invite): `DELETE /invites/{inviteId}` ## LLM provider - [LLM provider](https://docs.rollstack.com/api/llm-provider): The organization's own LLM provider for the slides agent: its Anthropic, OpenAI, Azure AI Foundry, Amazon Bedrock or Google Vertex AI account, used instead of Rollstack's. Credentials are write-only: reads answer the provider's settings and status, never its keys. - [Get LLM provider](https://docs.rollstack.com/api/llm-provider/get-llm-provider): `GET /organization/llm-provider` - [Replace LLM provider](https://docs.rollstack.com/api/llm-provider/set-llm-provider): `PUT /organization/llm-provider` - [Delete LLM provider](https://docs.rollstack.com/api/llm-provider/delete-llm-provider): `DELETE /organization/llm-provider`