# Turbine Labs API API

> Turbine Labs API API on Apizie: 44 endpoints (Returns the user object for the account authorized and making this request., Delete the specified access token., Lists Access Tokens that are configured for the authenticated user., Creates a new Access Token and associates it with the authenticated user., …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/cloud:turbinelabs/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `cloud:turbinelabs`
- Category: Cloud
- Status: byok
- Source: https://turbinelabs.io
- Page: https://apizie.tech/api/cloud/turbinelabs
- OpenAPI: https://apizie.tech/api/cloud/turbinelabs/openapi.json

The Turbine Labs API provides CRUD operations for core object types, and is mostly RESTy. The easiest way to interact with the API is with [tbnctl](https://docs.turbinelabs.io/advanced/tbnctl.html). If you want to make…

## Endpoints

### Returns the user object for the account authorized and making this request.
`GET https://apizie.tech/v1/cloud:turbinelabs/get-admin-user-self` (byok)

### Delete the specified access token.
`POST https://apizie.tech/v1/cloud:turbinelabs/delete-admin-user-self-access-token-access-token-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| access-token-key | string | yes | the key of the Access Token that should be deleted |
| checksum | string | yes | the current checksum of the user to be modified |

### Lists Access Tokens that are configured for the authenticated user.
`GET https://apizie.tech/v1/cloud:turbinelabs/get-admin-user-self-access-tokens` (byok)

### Creates a new Access Token and associates it with the authenticated user.
`POST https://apizie.tech/v1/cloud:turbinelabs/post-admin-user-self-access-tokens` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Allows an arbitrary filter to be specified and applied to the org\'s change log.
`GET https://apizie.tech/v1/cloud:turbinelabs/get-changelog-adhoc` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | no | Encoded FilterSums representing the query you would like to execute. See object definition for details. |

### get changes related to the indicated cluster
`GET https://apizie.tech/v1/cloud:turbinelabs/get-changelog-cluster-graph-cluster-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| clusterKey | string | yes | the cluster key to see an audit log for |
| start | number | no | The beginning of the window we want to see changes for; measured in microseconds since Unix Epoch. |
| end | number | no | The end of the window we want to see changes for; measured in microseconds since Unix Epoch. |
| max_results | number | no | Determines how many ChangeDescription object should be returned to the calling code. |
| ref_id | string | no | When paginating a Changelog request start on the entry that comes immediately before or after this ID (as determined by the direction… |
| direction | string | no | If set to "before" then changes will be returned that occurred before reference ID. If "after" then changes will be returned that have… |

### get changes related to the indicated domain
`GET https://apizie.tech/v1/cloud:turbinelabs/get-changelog-domain-graph-domain-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| domainKey | string | yes | the domain key to see an audit log for |
| start | number | no | The beginning of the window we want to see changes for; measured in microseconds since Unix Epoch. |
| end | number | no | The end of the window we want to see changes for; measured in microseconds since Unix Epoch. |
| max_results | number | no | Determines how many ChangeDescription object should be returned to the calling code. |
| ref_id | string | no | When paginating a Changelog request start on the entry that comes immediately before or after this ID (as determined by the direction… |
| direction | string | no | If set to "before" then changes will be returned that occurred before reference ID. If "after" then changes will be returned that have… |

### get changes related to the indicated route
`GET https://apizie.tech/v1/cloud:turbinelabs/get-changelog-route-graph-route-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| routeKey | string | yes | the route key to see an audit log for |
| start | number | no | The beginning of the window we want to see changes for; measured in microseconds since Unix Epoch. |
| end | number | no | The end of the window we want to see changes for; measured in microseconds since Unix Epoch. |
| max_results | number | no | Determines how many ChangeDescription object should be returned to the calling code. |
| ref_id | string | no | When paginating a Changelog request start on the entry that comes immediately before or after this ID (as determined by the direction… |
| direction | string | no | If set to "before" then changes will be returned that occurred before reference ID. If "after" then changes will be returned that have… |

### get changes related to the indicated SharedRules
`GET https://apizie.tech/v1/cloud:turbinelabs/get-changelog-shared-rules-graph-shared-rules-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| sharedRulesKey | string | yes | the shared rules key to see an audit log for |
| start | number | no | The beginning of the window we want to see changes for; measured in microseconds since Unix Epoch. |
| end | number | no | The end of the window we want to see changes for; measured in microseconds since Unix Epoch. |
| max_results | number | no | Determines how many ChangeDescription object should be returned to the calling code. |
| ref_id | string | no | When paginating a Changelog request start on the entry that comes immediately before or after this ID (as determined by the direction… |
| direction | string | no | If set to "before" then changes will be returned that occurred before reference ID. If "after" then changes will be returned that have… |

### get changes in a specified zone
`GET https://apizie.tech/v1/cloud:turbinelabs/get-changelog-zone-zone-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| zoneKey | string | yes | the zone key to see an audit log for |
| start | number | no | The beginning of the window we want to see changes for; measured in microseconds since Unix Epoch. |
| end | number | no | The end of the window we want to see changes for; measured in microseconds since Unix Epoch. |
| max_results | number | no | Determines how many ChangeDescription object should be returned to the calling code. |
| ref_id | string | no | When paginating a Changelog request start on the entry that comes immediately before or after this ID (as determined by the direction… |
| direction | string | no | If set to "before" then changes will be returned that occurred before reference ID. If "after" then changes will be returned that have… |

### get clusters
`GET https://apizie.tech/v1/cloud:turbinelabs/get-cluster` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filters | string | no | A JSON encoded array of ClusterFilter objects. The filter is taken as a union of intersections. In other words an object that matches… |

### create cluster
`POST https://apizie.tech/v1/cloud:turbinelabs/post-cluster` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### get cluster
`GET https://apizie.tech/v1/cloud:turbinelabs/get-cluster-cluster-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| clusterKey | string | yes | the cluster key |

### modify cluster
`POST https://apizie.tech/v1/cloud:turbinelabs/put-cluster-cluster-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| clusterKey | string | yes | the cluster key |
| body | object | yes | JSON request body |

### delete cluster
`POST https://apizie.tech/v1/cloud:turbinelabs/delete-cluster-cluster-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| clusterKey | string | yes | the cluster key |
| checksum | string | yes | the current checksum of the cluster to be deleted |

### add instance
`POST https://apizie.tech/v1/cloud:turbinelabs/post-cluster-cluster-key-instances` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| clusterKey | string | yes | the cluster to add the instance to |
| body | object | yes | JSON request body |

### remove instance
`POST https://apizie.tech/v1/cloud:turbinelabs/delete-cluster-cluster-key-instances-instance-identifier` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| checksum | string | yes | the current checksum of the instance to be deleted |
| clusterKey | string | yes | the cluster to remove an instance from |
| instanceIdentifier | string | yes | the instance to remove, identified as : |

### get domains
`GET https://apizie.tech/v1/cloud:turbinelabs/get-domain` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filters | string | no | A JSON encoded array of DomainFilter objects. The filter is taken as a union of intersections. In other words an object that matches every… |

### create domain
`POST https://apizie.tech/v1/cloud:turbinelabs/post-domain` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### get domain
`GET https://apizie.tech/v1/cloud:turbinelabs/get-domain-domain-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| domainKey | string | yes | the domain key |

### delete domain
`POST https://apizie.tech/v1/cloud:turbinelabs/delete-domain-domain-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| domainKey | string | yes | the domain key |
| checksum | string | yes | the current checksum of the domain to be deleted |

### list listeners
`GET https://apizie.tech/v1/cloud:turbinelabs/get-listener` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filters | string | no | A JSON encoded array of ListenerFilter objects. The filter is taken as a union of intersections. In other words an object that matches… |

### create listener
`POST https://apizie.tech/v1/cloud:turbinelabs/post-listener` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### get listener
`GET https://apizie.tech/v1/cloud:turbinelabs/get-listener-listener-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| listenerKey | string | yes | the listener key |

### modify listener
`POST https://apizie.tech/v1/cloud:turbinelabs/put-listener-listener-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| listenerKey | string | yes | the listener key |
| body | object | yes | JSON request body |

### delete listener
`POST https://apizie.tech/v1/cloud:turbinelabs/delete-listener-listener-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| listenerKey | string | yes | the listener key |
| checksum | string | yes | the current checksum of the listener to be deleted |

### list proxies
`GET https://apizie.tech/v1/cloud:turbinelabs/get-proxy` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filters | string | no | A JSON encoded array of ProxyFilter objects. The filter is taken as a union of intersections. In other words an object that matches every… |

### create proxy
`POST https://apizie.tech/v1/cloud:turbinelabs/post-proxy` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### get proxy
`GET https://apizie.tech/v1/cloud:turbinelabs/get-proxy-proxy-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| proxyKey | string | yes | the proxy key |

### delete proxy
`POST https://apizie.tech/v1/cloud:turbinelabs/delete-proxy-proxy-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| proxyKey | string | yes | the proxy key |
| checksum | string | yes | the current checksum of the proxy to be deleted |

### get routes
`GET https://apizie.tech/v1/cloud:turbinelabs/get-route` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filters | string | no | A JSON encoded array of RouteFilter objects. The filter is taken as a union of intersections. In other words an object that matches every… |

### create route
`POST https://apizie.tech/v1/cloud:turbinelabs/post-route` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### get route
`GET https://apizie.tech/v1/cloud:turbinelabs/get-route-route-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| routeKey | string | yes | the route key |

### modify route
`POST https://apizie.tech/v1/cloud:turbinelabs/put-route-route-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| routeKey | string | yes | the route key |
| body | object | yes | JSON request body |

### delete route
`POST https://apizie.tech/v1/cloud:turbinelabs/delete-route-route-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| routeKey | string | yes | the route key |
| checksum | string | yes | the current checksum of the route to be deleted |

### get shared_rules
`GET https://apizie.tech/v1/cloud:turbinelabs/get-shared-rules` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filters | string | no | A JSON encoded array of SharedRulesFilter objects. The filter is taken as a union of intersections. In other words an object that matches… |

### create shared_rules
`POST https://apizie.tech/v1/cloud:turbinelabs/post-shared-rules` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### get shared_rules object
`GET https://apizie.tech/v1/cloud:turbinelabs/get-shared-rules-shared-rules-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| sharedRulesKey | string | yes | the shared_rules key |

### modify shared_rules object
`POST https://apizie.tech/v1/cloud:turbinelabs/put-shared-rules-shared-rules-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| sharedRulesKey | string | yes | the shared_rules key |
| body | object | yes | JSON request body |

### delete shared_rules object
`POST https://apizie.tech/v1/cloud:turbinelabs/delete-shared-rules-shared-rules-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| sharedRulesKey | string | yes | the shared_rules key |
| checksum | string | yes | the current checksum of the shared_rules to be deleted |

### get a list of zones
`GET https://apizie.tech/v1/cloud:turbinelabs/get-zone` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filters | string | no | A JSON encoded array of ZoneFilter objects. The filter is taken as a union of intersections. In other words an object that matches every… |

### create zone
`POST https://apizie.tech/v1/cloud:turbinelabs/post-zone` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### get zone
`GET https://apizie.tech/v1/cloud:turbinelabs/get-zone-zone-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| zoneKey | string | yes | the zone key |

### delete zone
`POST https://apizie.tech/v1/cloud:turbinelabs/delete-zone-zone-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| zoneKey | string | yes | the zone key |
| checksum | string | yes | the current checksum of the zone to be deleted |

## Example
```
curl "https://apizie.tech/v1/cloud:turbinelabs/get-admin-user-self" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Turbine Labs API API?
Create a free Apizie key, then send GET https://apizie.tech/v1/cloud:turbinelabs/get-admin-user-self with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Turbine Labs API API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Turbine Labs API itself also needs your own key from turbinelabs.io.

### Can AI agents use the Turbine Labs API API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key cloud:turbinelabs.

### What is the status of the Turbine Labs API API?
Needs your own provider key (bring your own key)
