This documentation describes the public Tulip API, which gives customers programmatic access to their Tulip data as well as tools for generating content and configuring their Tulip instance. Not all parts of the Tulip platform are currently available in public APIs, but new APIs are planned to be released in the future. If you would like to request API access to a particular part of the Tulip platform, please post a product suggestion in the Tulip Community.

See Tulip's Public API Policy for more information on compatibility, limits, and support.


The Tulip API is divided into sections called namespaces which broadly represent areas of the Tulip platform such as apps, tables, connectors, stations, and automations. Each API namespace is versioned separately in order to allow Tulip to develop improvements to parts of the API without affecting others. All Tulip APIs start with a path such as /api/{namespace}/{version}, where {version} is a version identifier of the form v1, v2, v3, etc. Refer to the Public API Policy for information on versioning semantics.


Access to the Tulip API requires the use of HTTP Basic Authentication using the credentials of an active Tulip API Token. All requests require the Authorization HTTP header with the Basic scheme to provide API credentials unless otherwise noted.


API tokens can be configured with a set of scopes which determine what parts of the API that specific token has access to. Security best practices dictate that API credentials be given the minimum set of capabilities required to fulfill their intended purpose. For example, an API token created for use in an integration that is only designed to use the Stations API should probably only be given the stations:read and stations:write scopes. In this way you can minimize risk in the event that API credentials are compromised. API endpoints will document what API token scopes are required to access that endpoint in their descriptions. If a request is made to an endpoint with an API token which does not have the required scopes, the response will be an authorization error.


Most Tulip API endpoints require a workspace context in order to specify what workspace the data should be queried in. For example, Tulip apps always exist in the context of a particular workspace, so if you have an app which exists in a particular workspace, making any request which involves that app in the context of a different workspace will result in the data not being found. If you are using a workspace-scoped API token in your request, the workspace context is automatically inferred from the token's workspace. If you are using a global API token, you will need to provide the workspace context yourself in the request. There are two ways of doing this:

  • Prefix the request path after the interface version with /w/{workspaceId} (for example /api/stations/v1/interfaces becomes /api/stations/v1/w/{workspaceId}/interfaces).
  • Set the HTTP header X-Tulip-Workspace-ID to the workspace ID.

If both a path prefix and a header are provided, the header takes precedence.

To find the ID of your workspace, you can copy it from the URL of any workspace-scoped page in Tulip, where it also appears as a path prefix of the form /w/{workspaceId}. Note that the first workspace in any Tulip instance has the ID DEFAULT.