| title | excerpt | tags | products | ||
|---|---|---|---|---|---|
Tiger Cloud REST API reference |
A comprehensive RESTful API for managing Tiger Cloud resources including VPCs, services, and read replicas. |
|
|
A comprehensive RESTful API for managing $CLOUD_LONG resources including VPCs, services, and read replicas.
API Version: 1.0.0
Base URL: https://console.cloud.timescale.com/public/api/v1
The $REST_LONG uses HTTP Basic Authentication. Include your access key and secret key in the Authorization header.
Authorization: Basic <base64(access_key:secret_key)># Using cURL
curl -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}/servicesRetrieve 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}/servicesCreate 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}/resizeChange 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}/updatePasswordSet 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}/setEnvironmentSet 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}/setHAChange 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}/enablePoolerActivate the connection pooler for a service.
Response: 200 OK
{
"message": "Connection pooler enabled successfully"
}POST /projects/{project_id}/services/{service_id}/disablePoolerDeactivate the connection pooler for a service.
Response: 200 OK
{
"message": "Connection pooler disabled successfully"
}POST /projects/{project_id}/services/{service_id}/forkServiceCreate 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}/replicaSetsRetrieve 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}/replicaSetsCreate 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}/resizeChange 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}/enablePoolerActivate 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}/disablePoolerDeactivate 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}/setEnvironmentSet 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}/vpcsList 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}/vpcsCreate 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}/renameUpdate 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}/peeringsRetrieve 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}/peeringsCreate 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}/attachToVPCAssociate a service with a VPC.
Request Body:
{
"vpc_id": "1234567890"
}Response: 202 Accepted
POST /projects/{project_id}/services/{service_id}/detachFromVPCDisassociate 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"
}