curl --request POST \
--url https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "my-production-db",
"addons": [
"time-series",
"ai"
],
"region_code": "us-east-1",
"replica_count": 2,
"cpu_millis": "1000",
"memory_gbs": "4",
"environment_tag": "DEV"
}
'import requests
url = "https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services"
payload = {
"name": "my-production-db",
"addons": ["time-series", "ai"],
"region_code": "us-east-1",
"replica_count": 2,
"cpu_millis": "1000",
"memory_gbs": "4",
"environment_tag": "DEV"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'my-production-db',
addons: ['time-series', 'ai'],
region_code: 'us-east-1',
replica_count: 2,
cpu_millis: '1000',
memory_gbs: '4',
environment_tag: 'DEV'
})
};
fetch('https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'my-production-db',
'addons' => [
'time-series',
'ai'
],
'region_code' => 'us-east-1',
'replica_count' => 2,
'cpu_millis' => '1000',
'memory_gbs' => '4',
'environment_tag' => 'DEV'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services"
payload := strings.NewReader("{\n \"name\": \"my-production-db\",\n \"addons\": [\n \"time-series\",\n \"ai\"\n ],\n \"region_code\": \"us-east-1\",\n \"replica_count\": 2,\n \"cpu_millis\": \"1000\",\n \"memory_gbs\": \"4\",\n \"environment_tag\": \"DEV\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"my-production-db\",\n \"addons\": [\n \"time-series\",\n \"ai\"\n ],\n \"region_code\": \"us-east-1\",\n \"replica_count\": 2,\n \"cpu_millis\": \"1000\",\n \"memory_gbs\": \"4\",\n \"environment_tag\": \"DEV\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"my-production-db\",\n \"addons\": [\n \"time-series\",\n \"ai\"\n ],\n \"region_code\": \"us-east-1\",\n \"replica_count\": 2,\n \"cpu_millis\": \"1000\",\n \"memory_gbs\": \"4\",\n \"environment_tag\": \"DEV\"\n}"
response = http.request(request)
puts response.read_body{
"service_id": "<string>",
"project_id": "<string>",
"name": "<string>",
"region_code": "us-east-1",
"service_type": "TIMESCALEDB",
"created": "2023-11-07T05:31:56Z",
"initial_password": "a-very-secure-initial-password",
"paused": true,
"status": "QUEUED",
"resources": [
{
"id": "<string>",
"spec": {
"cpu_millis": 123,
"memory_gbs": 123,
"volume_type": "<string>"
}
}
],
"metadata": {
"environment": "<string>"
},
"endpoint": {
"host": "my-service.com",
"port": 8080
},
"vpcEndpoint": {},
"forked_from": {
"project_id": "asda1b2c3",
"service_id": "bbss422fg",
"is_standby": false
},
"ha_replicas": {
"sync_replica_count": 1,
"replica_count": 1
},
"connection_pooler": {
"endpoint": {
"host": "my-service.com",
"port": 8080
}
},
"read_replica_sets": [
{
"id": "alb8jicdpr",
"name": "reporting-replica-1",
"status": "active",
"nodes": 2,
"cpu_millis": 250,
"memory_gbs": 1,
"metadata": {
"environment": "<string>"
},
"endpoint": {
"host": "my-service.com",
"port": 8080
},
"connection_pooler": {
"endpoint": {
"host": "my-service.com",
"port": 8080
}
}
}
]
}{
"code": "<string>",
"message": "<string>"
}Create a Service
Creates a new database service within a project. This is an asynchronous operation.
curl --request POST \
--url https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "my-production-db",
"addons": [
"time-series",
"ai"
],
"region_code": "us-east-1",
"replica_count": 2,
"cpu_millis": "1000",
"memory_gbs": "4",
"environment_tag": "DEV"
}
'import requests
url = "https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services"
payload = {
"name": "my-production-db",
"addons": ["time-series", "ai"],
"region_code": "us-east-1",
"replica_count": 2,
"cpu_millis": "1000",
"memory_gbs": "4",
"environment_tag": "DEV"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'my-production-db',
addons: ['time-series', 'ai'],
region_code: 'us-east-1',
replica_count: 2,
cpu_millis: '1000',
memory_gbs: '4',
environment_tag: 'DEV'
})
};
fetch('https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'my-production-db',
'addons' => [
'time-series',
'ai'
],
'region_code' => 'us-east-1',
'replica_count' => 2,
'cpu_millis' => '1000',
'memory_gbs' => '4',
'environment_tag' => 'DEV'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services"
payload := strings.NewReader("{\n \"name\": \"my-production-db\",\n \"addons\": [\n \"time-series\",\n \"ai\"\n ],\n \"region_code\": \"us-east-1\",\n \"replica_count\": 2,\n \"cpu_millis\": \"1000\",\n \"memory_gbs\": \"4\",\n \"environment_tag\": \"DEV\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"my-production-db\",\n \"addons\": [\n \"time-series\",\n \"ai\"\n ],\n \"region_code\": \"us-east-1\",\n \"replica_count\": 2,\n \"cpu_millis\": \"1000\",\n \"memory_gbs\": \"4\",\n \"environment_tag\": \"DEV\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"my-production-db\",\n \"addons\": [\n \"time-series\",\n \"ai\"\n ],\n \"region_code\": \"us-east-1\",\n \"replica_count\": 2,\n \"cpu_millis\": \"1000\",\n \"memory_gbs\": \"4\",\n \"environment_tag\": \"DEV\"\n}"
response = http.request(request)
puts response.read_body{
"service_id": "<string>",
"project_id": "<string>",
"name": "<string>",
"region_code": "us-east-1",
"service_type": "TIMESCALEDB",
"created": "2023-11-07T05:31:56Z",
"initial_password": "a-very-secure-initial-password",
"paused": true,
"status": "QUEUED",
"resources": [
{
"id": "<string>",
"spec": {
"cpu_millis": 123,
"memory_gbs": 123,
"volume_type": "<string>"
}
}
],
"metadata": {
"environment": "<string>"
},
"endpoint": {
"host": "my-service.com",
"port": 8080
},
"vpcEndpoint": {},
"forked_from": {
"project_id": "asda1b2c3",
"service_id": "bbss422fg",
"is_standby": false
},
"ha_replicas": {
"sync_replica_count": 1,
"replica_count": 1
},
"connection_pooler": {
"endpoint": {
"host": "my-service.com",
"port": 8080
}
},
"read_replica_sets": [
{
"id": "alb8jicdpr",
"name": "reporting-replica-1",
"status": "active",
"nodes": 2,
"cpu_millis": 250,
"memory_gbs": 1,
"metadata": {
"environment": "<string>"
},
"endpoint": {
"host": "my-service.com",
"port": 8080
},
"connection_pooler": {
"endpoint": {
"host": "my-service.com",
"port": 8080
}
}
}
]
}{
"code": "<string>",
"message": "<string>"
}Authorizations
HTTP Basic Authentication using your Tiger Cloud public key and secret key.
Format: Authorization: Basic <base64(public_key:secret_key)>
Example:
curl -X GET "https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services" \
-H "Authorization: Basic $(echo -n 'your_public_key:your_secret_key' | base64)"
Path Parameters
The unique identifier of the project.
"rp1pz7uyae"
Body
A human-readable name for the service.
"my-production-db"
List of addons to enable for the service. 'time-series' enables TimescaleDB, 'ai' enables AI/vector extensions.
time-series, ai ["time-series", "ai"]
The region where the service will be created. If not provided, we'll choose the best region for you.
"us-east-1"
Number of high-availability replicas to create (all replicas are asynchronous by default).
2
The initial CPU allocation in milli-cores, or 'shared' for a shared-resource service.
"1000"
The initial memory allocation in gigabytes, or 'shared' for a shared-resource service.
"4"
The environment tag for the service, 'DEV' by default.
DEV, PROD Response
Service creation request has been accepted.
The unique identifier for the service.
The project this service belongs to.
The name of the service.
The cloud region where the service is hosted.
"us-east-1"
The type of the service.
TIMESCALEDB, POSTGRES, VECTOR Creation timestamp
The initial password for the service.
"a-very-secure-initial-password"
Whether the service is paused
Current status of the service
QUEUED, DELETING, CONFIGURING, READY, DELETED, UNSTABLE, PAUSING, PAUSED, RESUMING, UPGRADING, OPTIMIZING List of resources allocated to the service
Show child attributes
Show child attributes
Additional metadata for the service
Show child attributes
Show child attributes
Show child attributes
Show child attributes
VPC endpoint configuration if available
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes