Get Started with Sigma's API
Sigma’s REST API allows developers to communicate directly with Sigma. It supports actions across a broad selection of Sigma features, including:
- Connections
- Workspaces
- Datasets
- Workbooks
- Query Downloads
- Teams
- Organization Members
All endpoints have resource-oriented URLs, which can be accessed over HTTP. Endpoints accept JSON in the request body and include JSON in their response.
Account-based HTTP authentication keeps your organization’s information secure.
Contents
Where do I start?
Identify Target Endpoint
API Testing Grounds
Swagger
cURL
View Example Scripts
Supported Endpoints
Connections
Connection Paths
Connection Grants
Workbooks
Datasets
Dataset Materialization
Queries
Teams
Organization Members
Workspaces
Workspace Grants
Who Am I?
Related Resources
Where do I start?
Your starting point with Sigma’s API is dependent on your role, purpose, and prior knowledge of APIs. To get started, find the scenario below that best matches your current situation:
Scenario #1: I don’t know what an API is.
API stands for Application Programming Interface. APIs act as a middleman between two applications, allowing them to communicate various information.
APIs consist of endpoints for specific lines of communication–similar to how large companies have multiple phone lines that each serve a different purpose.
Developers on your team can run code that “calls” an endpoint on Sigma’s API. Sigma will respond with the requested information or perform the requested action.
Scenario #2: I’m an organization admin looking to get my developers up and running with Sigma’s API.
Before a developer can get started with Sigma’s API, you will need to provide them with a Client ID and API Token. These values will allow the developer to authenticate with Sigma’s API.
We highly recommend that you create a new Client ID/API Token pair for each individual developer, as API tokens are account-based, allowing you control over any given user’s access. Get started.
Scenario #3: I’m a developer who wants to get started with Sigma’s API.
If you do not already have a Client ID and API token to authenticate with Sigma’s API, please contact an organization Admin. They can use the instructions to get you set up: Get an API Token and Client ID.
Once you have these values, you’re ready to explore Sigma’s API endpoints. We recommend using either Swagger or cURL to get started.
Identify Target Endpoint
For GCP organizations, use:
POST https://api.sigmacomputing.com/v2/auth/token
For AWS organizations, use:
POST https://aws-api.sigmacomputing.com/v2/auth/token
For Azure organizations, use:
POST https://api.us.azure.sigmacomputing.com/
API Testing Grounds
Both Swagger and cURL can be used as testing grounds for Sigma’s API endpoints.
There is no limit to the number of API calls per day.
Swagger
Swagger allows you to use Sigma’s API directly from the browser.
Learn more about Sigma and Swagger or go directly to Sigma’s Swagger playground.
cURL
You may prefer to use cURL to access Sigma’s API. Example cURL requests are included throughout Sigma’s API endpoint documentation.
For authentication instructions visit Authenticating with cURL.
View Example Scripts
Sigma's Sample API repository contains example scripts that use Sigma's public API. This is intended as a quick start for interacting with the API and understanding common patterns and flows.
Supported Endpoints
Connections
POST /v2/connections
Use this endpoint to create a data warehouse connection object. Learn more.
GET /v2/connections?limit=<number>&page=<page-string>
Returns a list the active data warehouse connection object.
GET /v2/connections/{connectionId}
Returns a connection object based on the input connectionId. Learn more.
PUT /v2/connections/:id
This endpoint allows you to update or restore a connection object to a data warehouse. Learn more.
GET /v2/connections/:connectionId/test
Use this endpoint to validate a data warehouse connection object. Learn more.
DELETE /v2/connections/:connectionId
Use this endpoint to delete a data warehouse connection object. Learn more.
Connection Paths
POST /v2/connection/{connectionId}/lookup
Returns the inodeId associated with the requested warehouse connection path. Learn more
Connection Grants
GET /v2/connections/{connectionId}/grants
Returns a list grants associated with the requested connection. Learn more
POST /v2/connections/{connectionId}/grants
Creates a connection grant for a team or user. Returns an empty object. Learn more
DELETE /v2/connections/{connectionId}/grants/{grantId}
Revokes an existing grant. Returns an empty object. Learn more
Workbooks
GET /v2/workbooks
Returns a list of available workbooks. Learn more
GET /v2/workbooks/{workbookId}
Returns a workbook object based on a unique workbook identifier, workbookId. Learn more
GET /v2/workbooks/{workbookId}/schema
Returns a workbook schema object based on a workbookId. Learn more
POST /v2/workbooks/{workbookId}/export
Returns a workbook export query object based on a workbookId. Learn more
Datasets
GET /v2/datasets
Returns a list of datasets in your organization. Learn more
GET /v2/datasets/{datasetId}
Returns a dataset object based on its unique identifier, datasetId. Learn more
Dataset Materialization
GET /v2/datasets/{datasetId}/materialization
Returns a list of materializations for the dataset. Learn more
POST /v2/datasets/{datasetId}/materialization
Initiates a new materialization of the specified dataset. Learn more
Queries
GET /v2/query/{queryId}/download
Downloads the result of a successful query. Learn more
Teams
GET /v2/teams
Returns a list of teams in your organization. Learn more
GET /v2/teams/{teamId}
Returns a team object based on its unique identifier, teamId. Learn more
POST /v2/teams
Creates a new team, and returns a team object. Learn more
PATCH /v2/teams/{teamId}
Updates the team's metadata and returns the associated team object. Learn more
PATCH /v2/teams/{teamId}/members
Based on the entered parameters, adds or removes team members. Returns an empty object. Learn more
DELETE /v2/teams/{teamId}
Deletes a team based on the provided unique identifier, teamId. Returns an empty object. Learn Learn more
Organization Members
GET /v2/members
Returns a list of members in your organization. Learn more
GET /v2/members/{memberId}
Returns a member object based on its unique identifier, memberId. Learn more
POST /v2/members
Sends an invite to your soon-to-be new organization member. Returns an object containing a unique identifier (memberId) associated with the new user. Learn more
PATCH /v2/members/{memberId}
Updates a user's attributes based on its unique identifier, memberId, and the request body. Returns the associated member object. Learn more
DELETE /v2/members/{memberId}
Deactivates a user based on its unique identifier, memberId. Returns an empty object. Learn more
Workspaces
GET /v2/workspaces
Returns a list workspaces in the organization. Learn more
GET /v2/workspaces/{workspaceId}
Returns a workspace’s metadata. Learn more
POST /v2/workspaces
Creates a new workspace. Returns a workspace object.
Learn more
PATCH /v2/workspaces/{workspaceId}
Update the workspace’s metadata. Returns a workspace object.
Learn more
DELETE /v2/workspaces/{workspaceId}
Deletes the workspace. Returns an empty object. Learn more
Workspace Grants
GET /v2/workspaces/{workspaceId}/grants
Returns a list grants associated with the requested workspace. Learn more
POST /v2/workspaces/{workspaceId}/grants
Creates a workspace grant for a team or user. Returns an empty object. Learn more
DELETE /v2/workspaces/{workspaceId}/grants/{grantId}
Revokes an existing grant. Returns an empty object. Learn more
Who Am I?
GET /v2/whoami
Returns an object identifying the current authenticated user’s id and organization. Learn more