Tiger Cloud: Performance, Scale, Enterprise, Free
Self-hosted products
MST
A comprehensive RESTful API for managing Tiger Cloud resources including VPCs, services, and read replicas.
API Version: 1.0.0
Base URL: https://console.cloud.timescale.com/public/api/v1
The Tiger REST API uses HTTP Basic Authentication. Include your access key and secret key in the Authorization header.
Authorization: Basic <base64(access_key:secret_key)>
# Using cURLcurl -X GET "https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services" \-H "Authorization: Basic $(echo -n 'your_access_key:your_secret_key' | base64)"
You use this endpoint to create a Tiger Cloud service with one of more of the following addons:
time-series
: a Tiger Cloud service optimized for real-time analytics. For time-stamped data like events, prices, metrics, sensor readings, or any information that changes over time.ai
: a Tiger Cloud service instance with vector extensions.
To have multiple addons when you create a new service, set "addons": ["time-series", "ai"]
. To create a
vanilla Postgres instance, set addons
to an empty list []
.
GET /projects/{project_id}/services
Retrieve all services within a project.
Response: 200 OK
[{"service_id": "p7zm9wqqii","project_id": "jz22xtzemv","name": "my-production-db","region_code": "eu-central-1","service_type": "TIMESCALEDB","status": "READY","created": "2024-01-15T10:30:00Z","paused": false,"resources": [{"id": "resource-1","spec": {"cpu_millis": 1000,"memory_gbs": 4,"volume_type": "gp2"}}],"endpoint": {"host": "my-service.com","port": 5432}}]
POST /projects/{project_id}/services
Create a new Tiger Cloud service. This is an asynchronous operation.
Request Body:
{"name": "test-2","addons": ["time-series"],"region_code": "eu-central-1","cpu_millis": 1000,"memory_gbs": 4}
Response: 202 Accepted
{"service_id": "p7zm9wqqii","project_id": "jz22xtzemv","name": "test-2","region_code": "eu-central-1","service_type": "TIMESCALEDB","created": "2025-09-04T20:46:46.265680278Z","paused": false,"status": "READY","resources": [{"id": "100927","spec": {"cpu_millis": 1000,"memory_gbs": 4,"volume_type": ""}}],"metadata": {"environment": "PROD"},"endpoint": {"host": "p7zm8wqqii.jz4qxtzemv.tsdb.cloud.timescale.com","port": 35482},"initial_password": "oamv8ch9t4ar2j8g"}
Service Types:
TIMESCALEDB
: a Tiger Cloud service instance optimized for real-time analytics service For time-stamped data like events, prices, metrics, sensor readings, or any information that changes over timePOSTGRES
: a vanilla Postgres instanceVECTOR
: a Tiger Cloud service instance with vector extensions
GET /projects/{project_id}/services/{service_id}
Retrieve details of a specific service.
Response: 200 OK
{"service_id": "p7zm9wqqii","project_id": "jz22xtzemv","name": "test-2","region_code": "eu-central-1","service_type": "TIMESCALEDB","created": "2025-09-04T20:46:46.26568Z","paused": false,"status": "READY","resources": [{"id": "100927","spec": {"cpu_millis": 1000,"memory_gbs": 4,"volume_type": ""}}],"metadata": {"environment": "DEV"},"endpoint": {"host": "p7zm8wqqii.jz4qxtzemv.tsdb.cloud.timescale.com","port": 35482}}
Service Status:
QUEUED
: Service creation is queuedDELETING
: Service is being deletedCONFIGURING
: Service is being configuredREADY
: Service is ready for useDELETED
: Service has been deletedUNSTABLE
: Service is in an unstable statePAUSING
: Service is being pausedPAUSED
: Service is pausedRESUMING
: Service is being resumedUPGRADING
: Service is being upgradedOPTIMIZING
: Service is being optimized
DELETE /projects/{project_id}/services/{service_id}
Delete a specific service. This is an asynchronous operation.
Response: 202 Accepted
POST /projects/{project_id}/services/{service_id}/resize
Change CPU and memory allocation for a service.
Request Body:
{"cpu_millis": 2000,"memory_gbs": 8}
Response: 202 Accepted
POST /projects/{project_id}/services/{service_id}/updatePassword
Set a new master password for the service.
Request Body:
{"password": "a-very-secure-new-password"}
Response: 204 No Content
POST /projects/{project_id}/services/{service_id}/setEnvironment
Set the environment type for the service.
Request Body:
{"environment": "PROD"}
Environment Values:
PROD
: Production environmentDEV
: Development environment
Response: 200 OK
{"message": "Environment set successfully"}
POST /projects/{project_id}/services/{service_id}/setHA
Change the HA configuration for a service. This is an asynchronous operation.
Request Body:
{"replica_count": 1}
Response: 202 Accepted
POST /projects/{project_id}/services/{service_id}/enablePooler
Activate the connection pooler for a service.
Response: 200 OK
{"message": "Connection pooler enabled successfully"}
POST /projects/{project_id}/services/{service_id}/disablePooler
Deactivate the connection pooler for a service.
Response: 200 OK
{"message": "Connection pooler disabled successfully"}
POST /projects/{project_id}/services/{service_id}/forkService
Create a new, independent service by taking a snapshot of an existing one.
Request Body:
{"name": "fork-test2","region_code": "eu-central-1","cpu_millis": 1000,"memory_gbs": 4}
Response: 202 Accepted
{"service_id": "otewd3pem2","project_id": "jz22xtzemv","name": "fork-test2","region_code": "eu-central-1","service_type": "TIMESCALEDB","created": "2025-09-04T20:54:09.53380732Z","paused": false,"status": "READY","resources": [{"id": "100929","spec": {"cpu_millis": 1000,"memory_gbs": 4,"volume_type": ""}}],"forked_from": {"project_id": "jz22xtzemv","service_id": "p7zm9wqqii","is_standby": false},"initial_password": "ph33bl5juuri5gem"}
Manage read replicas for improved read performance.
GET /projects/{project_id}/services/{service_id}/replicaSets
Retrieve all read replica sets associated with a primary service.
Response: 200 OK
[{"id": "l5alxb3s2g","name": "replica-set-test2","status": "active","nodes": 1,"cpu_millis": 1000,"memory_gbs": 4,"endpoint": {"host": "l5alxb3s2g.jz4qxtzemv.tsdb.cloud.timescale.com","port": 38448},"connection_pooler": {"endpoint": {"host": "l5alxb3s2g.jz4qxtzemv.tsdb.cloud.timescale.com","port": 38543}},"metadata": {"environment": "DEV"}}]
Replica Set Status:
creating
: Replica set is being createdactive
: Replica set is active and readyresizing
: Replica set is being resizeddeleting
: Replica set is being deletederror
: Replica set encountered an error
POST /projects/{project_id}/services/{service_id}/replicaSets
Create a new read replica set. This is an asynchronous operation.
Request Body:
{"name": "replica-set-test2","cpu_millis": 1000,"memory_gbs": 4,"nodes": 1}
Response: 202 Accepted
{"id": "dsldm715t2","name": "replica-set-test2","status": "active","nodes": 1,"cpu_millis": 1000,"memory_gbs": 4}
DELETE /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}
Delete a specific read replica set. This is an asynchronous operation.
Response: 202 Accepted
POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/resize
Change resource allocation for a read replica set. This operation is async.
Request Body:
{"cpu_millis": 500,"memory_gbs": 2,"nodes": 2}
Response: 202 Accepted
{"message": "Replica set resize request accepted"}
POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/enablePooler
Activate the connection pooler for a read replica set.
Response: 200 OK
{"message": "Connection pooler enabled successfully"}
POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/disablePooler
Deactivate the connection pooler for a read replica set.
Response: 200 OK
{"message": "Connection pooler disabled successfully"}
POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/setEnvironment
Set the environment type for a read replica set.
Request Body:
{"environment": "PROD"}
Response: 200 OK
{"message": "Environment set successfully"}
Virtual Private Clouds (VPCs) provide network isolation for your TigerData services.
GET /projects/{project_id}/vpcs
List all Virtual Private Clouds in a project.
Response: 200 OK
[{"id": "1234567890","name": "my-production-vpc","cidr": "10.0.0.0/16","region_code": "eu-central-1"}]
POST /projects/{project_id}/vpcs
Create a new VPC.
Request Body:
{"name": "my-production-vpc","cidr": "10.0.0.0/16","region_code": "eu-central-1"}
Response: 201 Created
{"id": "1234567890","name": "my-production-vpc","cidr": "10.0.0.0/16","region_code": "eu-central-1"}
GET /projects/{project_id}/vpcs/{vpc_id}
Retrieve details of a specific VPC.
Response: 200 OK
{"id": "1234567890","name": "my-production-vpc","cidr": "10.0.0.0/16","region_code": "eu-central-1"}
POST /projects/{project_id}/vpcs/{vpc_id}/rename
Update the name of a specific VPC.
Request Body:
{"name": "my-renamed-vpc"}
Response: 200 OK
{"id": "1234567890","name": "my-renamed-vpc","cidr": "10.0.0.0/16","region_code": "eu-central-1"}
DELETE /projects/{project_id}/vpcs/{vpc_id}
Delete a specific VPC.
Response: 204 No Content
Manage peering connections between VPCs across different accounts and regions.
GET /projects/{project_id}/vpcs/{vpc_id}/peerings
Retrieve all VPC peering connections for a given VPC.
Response: 200 OK
[{"id": "1234567890","peer_account_id": "acc-12345","peer_region_code": "eu-central-1","peer_vpc_id": "1234567890","provisioned_id": "1234567890","status": "active","error_message": null}]
POST /projects/{project_id}/vpcs/{vpc_id}/peerings
Create a new VPC peering connection.
Request Body:
{"peer_account_id": "acc-12345","peer_region_code": "eu-central-1","peer_vpc_id": "1234567890"}
Response: 201 Created
{"id": "1234567890","peer_account_id": "acc-12345","peer_region_code": "eu-central-1","peer_vpc_id": "1234567890","provisioned_id": "1234567890","status": "pending"}
GET /projects/{project_id}/vpcs/{vpc_id}/peerings/{peering_id}
Retrieve details of a specific VPC peering connection.
DELETE /projects/{project_id}/vpcs/{vpc_id}/peerings/{peering_id}
Delete a specific VPC peering connection.
Response: 204 No Content
POST /projects/{project_id}/services/{service_id}/attachToVPC
Associate a service with a VPC.
Request Body:
{"vpc_id": "1234567890"}
Response: 202 Accepted
POST /projects/{project_id}/services/{service_id}/detachFromVPC
Disassociate a service from its VPC.
Request Body:
{"vpc_id": "1234567890"}
Response: 202 Accepted
{"id": "string","name": "string","cidr": "string","region_code": "string"}
{"service_id": "string","project_id": "string","name": "string","region_code": "string","service_type": "TIMESCALEDB|POSTGRES|VECTOR","created": "2024-01-15T10:30:00Z","initial_password": "string","paused": false,"status": "READY|CONFIGURING|QUEUED|...","resources": [{"id": "string","spec": {"cpu_millis": 1000,"memory_gbs": 4,"volume_type": "string"}}],"metadata": {"environment": "PROD|DEV"},"endpoint": {"host": "string","port": 5432},"connection_pooler": {"endpoint": {"host": "string","port": 5432}}}
{"id": "string","peer_account_id": "string","peer_region_code": "string","peer_vpc_id": "string","provisioned_id": "string","status": "string","error_message": "string"}
{"id": "string","name": "string","status": "creating|active|resizing|deleting|error","nodes": 2,"cpu_millis": 1000,"memory_gbs": 4,"metadata": {"environment": "PROD|DEV"},"endpoint": {"host": "string","port": 5432},"connection_pooler": {"endpoint": {"host": "string","port": 5432}}}
Tiger Cloud REST API uses standard HTTP status codes and returns error details in JSON format.
{"code": "ERROR_CODE","message": "Human-readable error description"}
400 Bad Request
: Invalid request parameters or malformed JSON401 Unauthorized
: Missing or invalid authentication credentials403 Forbidden
: Insufficient permissions for the requested operation404 Not Found
: Requested resource does not exist409 Conflict
: Request conflicts with current resource state500 Internal Server Error
: Unexpected server error
{"code": "INVALID_REQUEST","message": "The service_type field is required"}
Found an issue on this page?Report an issue or Edit this page
in GitHub.