diff --git a/_partials/_devops-cli-get-started.md b/_partials/_devops-cli-get-started.md
new file mode 100644
index 0000000000..7352ee7ed0
--- /dev/null
+++ b/_partials/_devops-cli-get-started.md
@@ -0,0 +1,80 @@
+import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx";
+import CLIINSTALL from "versionContent/_partials/_devops-cli-install.mdx";
+import CLIREF from "versionContent/_partials/_devops-cli-reference.mdx";
+
+$CLI_LONG is a command-line interface that you use to manage $CLOUD_LONG resources
+including VPCs, services, read replicas, and related infrastructure. $CLI_LONG calls $REST_LONG to communicate with
+$CLOUD_LONG.
+
+This page shows you how to install and set up secure authentication for $CLI_LONG, then create your first
+service.
+
+## Prerequisites
+
+
+
+
+## Install and configure $CLI_LONG
+
+
+
+
+
+
+
+
+## Create your first $SERVICE_LONG
+
+Create a new $SERVICE_LONG using $CLI_LONG:
+
+
+
+1. **Submit a service creation request**
+ ```shell
+ tiger service create
+ ```
+ $CLOUD_LONG creates a Development environment for you. That is, no delete protection, high-availability, spooling or
+ read-replication. You see something like:
+ ```terminaloutput
+ 🚀 Creating service 'db-11111' (auto-generated name)...
+ ✅ Service creation request accepted!
+ 📋 Service ID: happyservice
+ 🔐 Password saved to system keyring for automatic authentication
+ 🎯 Set service 'happyservice' as default service.
+ ⏳ Waiting for service to be ready (wait timeout: 30m0s)...
+ ⏳ Service status: QUEUED...
+ 🎉 Service is ready and running!
+ ```
+ This $SERVICE_SHORT is set as default by the $CLI_SHORT.
+
+1. **Check the $CLI_SHORT configuration**
+ ```shell
+ tiger config show
+ ```
+ You see something like:
+ ```terminaloutput
+ api_url: https://console.cloud.timescale.com/public/api/v1
+ console_url: https://console.cloud.timescale.com
+ gateway_url: https://console.cloud.timescale.com/api
+ docs_mcp: true
+ docs_mcp_url: https://mcp.tigerdata.com/docs
+ project_id: tgrproject
+ service_id: tgrservice
+ output: table
+ analytics: true
+ password_storage: keyring
+ debug: false
+ config_dir: /Users//.config/tiger
+ ```
+
+
+
+And that is it, you are ready to use $CLI_LONG to manage your $SERVICE_SHORTs in $CLOUD_LONG.
+
+
+
+[rest-api-reference]: /api/:currentVersion:/api-reference/
+[rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings
+[get-project-id]: /integrations/:currentVersion:/find-connection-details/#find-your-project-and-service-id
+[create-client-credentials]: /integrations/:currentVersion:/find-connection-details/#create-client-credentials
+[curl]: https://curl.se/
\ No newline at end of file
diff --git a/_partials/_devops-cli-global-flags.md b/_partials/_devops-cli-global-flags.md
new file mode 100644
index 0000000000..0c79467a80
--- /dev/null
+++ b/_partials/_devops-cli-global-flags.md
@@ -0,0 +1,10 @@
+
+| Flag | Default | Description |
+|---------------------------|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| --analytics | `true` | Set to `false` to disable usage analytics. |
+| --config-dir string | `.config/tiger` | Set the directory that holds `config.yaml` |
+| --debug | No debugging | Enable debug logging |
+| -o, --output string | table | Set the output format. Options are `json`, `yaml`, or `table` |
+| --password-storage string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` |
+| --project-id string | - | Set the $PROJECT_LONG to manage. |
+| --service-id string | - | Set the $SERVICE_LONG to manage. |
diff --git a/_partials/_devops-cli-install.md b/_partials/_devops-cli-install.md
new file mode 100644
index 0000000000..1368ce1385
--- /dev/null
+++ b/_partials/_devops-cli-install.md
@@ -0,0 +1,114 @@
+1. ** Install $CLI_LONG**
+
+ Use the Terminal to install the $CLI_SHORT:
+
+
+
+
+ ```shell
+ curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.deb.sh | sudo os=any dist=any bash
+ sudo apt-get install tiger-cli
+ ```
+
+
+
+
+
+ ```shell
+ curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.deb.sh | sudo os=any dist=any bash
+ sudo apt-get install tiger-cli
+ ```
+
+
+
+
+ ```shell
+ curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.rpm.sh | sudo os=rpm_any dist=rpm_any bash
+ sudo yum install tiger-cli
+ ```
+
+
+
+
+
+ ```shell
+ curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.rpm.sh | sudo os=rpm_any dist=rpm_any bash
+ sudo yum install tiger-cli
+ ```
+
+
+
+
+
+ ```shell
+ brew install --cask timescale/tap/tiger-cli
+ ```
+
+
+
+
+
+ ```shell
+ curl -fsSL https://tiger-cli-releases.s3.amazonaws.com/install/install.sh | sh
+ ```
+
+
+
+
+
+1. **Set up API credentials**
+
+ 1. Log $CLI_LONG into your $ACCOUNT_LONG
+
+ ```shell
+ tiger auth login
+ ```
+ $CLI_LONG opens $CONSOLE_SHORT in your browser. Login, then click `Authorize`.
+
+ 1. Select a $PROJECT_LONG.
+
+ ```terminaloutput
+ Auth URL is: https://console.cloud.timescale.com/oauth/authorize?client_id=lotsOfURLstuff
+ Opening browser for authentication...
+ Select a project:
+
+ > 1. Tiger Project (tgrproject)
+ 2. YourCompany (Company wide project) (cpnproject)
+ 3. YourCompany Department (dptproject)
+
+ Use ↑/↓ arrows or number keys to navigate, enter to select, q to quit
+ ```
+ If only one $PROJECT_SHORT is associated with your $ACCOUNT_SHORT, this step is not shown.
+
+ Where possible, $CLI_LONG stores your authentication information in the system keychain/credential manager.
+ If that fails, the key is stored in `~/.config/tiger/api-key` with restricted file permissions (600).
+ $CLI_LONG stores your configuration in `~/.config/tiger/config.yaml`.
+
+1. **Test your authenticated connection to $CLOUD_LONG by listing services**
+
+ ```bash
+ tiger service list
+ ```
+
+ This call returns something like:
+ - No services:
+ ```terminaloutput
+ 🏜️ No services found! Your project is looking a bit empty.
+ 🚀 Ready to get started? Create your first service with: tiger service create
+ ```
+ - One or more services:
+
+ ```terminaloutput
+ ┌────────────┬─────────────────────┬────────┬─────────────┬──────────────┬──────────────────┐
+ │ SERVICE ID │ NAME │ STATUS │ TYPE │ REGION │ CREATED │
+ ├────────────┼─────────────────────┼────────┼─────────────┼──────────────┼──────────────────┤
+ │ tgrservice │ tiger-agent-service │ READY │ TIMESCALEDB │ eu-central-1 │ 2025-09-25 16:09 │
+ └────────────┴─────────────────────┴────────┴─────────────┴──────────────┴──────────────────┘
+ ```
+
+
+[rest-api-reference]: /api/:currentVersion:/api-reference/
+[rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings
+[get-project-id]: /integrations/:currentVersion:/find-connection-details/#find-your-project-and-service-id
+[create-client-credentials]: /integrations/:currentVersion:/find-connection-details/#create-client-credentials
+[curl]: https://curl.se/
\ No newline at end of file
diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md
new file mode 100644
index 0000000000..61704ea00c
--- /dev/null
+++ b/_partials/_devops-cli-reference.md
@@ -0,0 +1,46 @@
+import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx";
+
+## Commands
+
+You can use the following commands with $CLI_LONG. For more information on each command, use the `-h` flag. For example:
+`tiger auth login -h`
+
+| Command | Subcommand | Description |
+|---------|-----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| auth | | Manage authentication and the credentials for your $ACCOUNT_LONG |
+| | login | Create an authenticated connection to your $ACCOUNT_LONG |
+| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG |
+| | whoami | Show information about the current user |
+| version | | Show information about the currently installed version of $CLI_LONG |
+| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` |
+| config | | Manage your $CLI_LONG configuration |
+| | show | Show the current configuration |
+| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` |
+| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG |
+| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT |
+| | create `--addons=` | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible addons are: - time-series: with the Timescaledb and Timescaledb Toolkit extensions
- ai: with the Timescaledb, Timescaledb Toolkit, vector and vectorscale extensions
- free: free services have fixed compute of 0.25 CPU, 1 GiB RAM, and up to 500mb storage.
- none: vanilla Postgres
All services have Tiger features such as Tiger Storage, security, monitoring and compliance. If you do not use the `addons` flag, the default service is `time-series`. |
+| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT |
+| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT |
+| | fork `` | Fork of an existing database service. Key features are: - Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
- Resource configuration: `--cpu`, `--memory`
- Naming: `--name ` . Defaults to {source-service-name}-fork
- Wait behavior: `--no-wait`, `--wait-timeout`
- Default service: `--no-set-default`
|
+| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT |
+| | update-password `` | Update the password for a $SERVICE_SHORT |
+| db | | Database operations and management |
+| | connect `` | Connect to a $SERVICE_SHORT |
+| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT |
+| | test-connection `` | Test the connectivity to a $SERVICE_SHORT |
+| mcp | | Manage the $MCP_LONG |
+| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` |
+| | start `stdio` \| `http` | Start the $MCP_LONG with stdio or HTTP transport |
+
+
+## Flags
+
+You can use the following global flags with $CLI_LONG:
+
+
+
+[rest-api-reference]: /api/:currentVersion:/api-reference/
+[rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings
+[get-project-id]: /integrations/:currentVersion:/find-connection-details/#find-your-project-and-service-id
+[create-client-credentials]: /integrations/:currentVersion:/find-connection-details/#create-client-credentials
+[curl]: https://curl.se/
\ No newline at end of file
diff --git a/_partials/_devops-mcp-get-started.md b/_partials/_devops-mcp-get-started.md
new file mode 100644
index 0000000000..a41497d765
--- /dev/null
+++ b/_partials/_devops-mcp-get-started.md
@@ -0,0 +1,222 @@
+
+import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx";
+import CLIINSTALL from "versionContent/_partials/_devops-cli-install.mdx";
+import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx";
+
+The $MCP_LONG provides access to your $CLOUD_LONG resources through Claude and other
+AI assistants. $MCP_SHORT mirrors the functionality of $CLI_LONG and is integrated directly into the $CLI_SHORT binary.
+
+You use $MCP_SHORT to manage $CLOUD_LONG resources including VPCs, services, read replicas, and related infrastructure.
+$MCP_SHORT calls $REST_LONG to communicate with $CLOUD_LONG.
+
+This page shows you how to install $CLI_LONG and set up secure authentication for $MCP_SHORT, then manage the
+resources in your $ACCOUNT_LONG through the $MCP_LONG using your AI Assistant.
+
+## Prerequisites
+
+
+
+* An AI assistant installed on your developer device with an active API key
+
+ Supported AI assistants are: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code`
+
+## Install and configure $MCP_SHORT
+
+The $MCP_SHORT is bundled with $CLI_LONG:
+
+
+
+
+
+1. **Configure your AI Assistant to interact with the $PROJECT_SHORTs and $SERVICE_SHORTs in your $ACCOUNT_LONG**
+
+ For example:
+ ```shell
+ tiger mcp install claude-code
+ ```
+
+1. **Configure your AI Assistant to interact with the $COMPANY docs**
+
+ For example:
+ ```shell
+ claude mcp add --transport http tiger-docs https://mcp.tigerdata.com/docs
+ ```
+
+
+
+And that is it, you are ready to use the $MCP_LONG to manage your $SERVICE_SHORTs in $CLOUD_LONG.
+
+## Manage the resources in your $ACCOUNT_LONG through your AI Assistant
+
+Your AI assistant is connected to your $ACCOUNT_LONG and the $COMPANY documentation, you can now use it to
+manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG features. For example:
+
+
+
+1. **Start your $MCP_SHORT**
+ ```shell
+ tiger mcp start
+ ```
+
+1. **Run your AI assistant**
+ ```shell
+ claude
+ ```
+
+1. **Check your $MCP_LONG configuration**
+ ```shell
+ > is the tigerdata mcp server active for you?
+ ```
+ You see something like:
+ ```shell
+ MCP server is active. I can see the following TigerData-related tools available:
+
+ - mcp__tiger__get_guide - Retrieve TimescaleDB guides and best practices
+ - mcp__tiger__semantic_search_postgres_docs - Search PostgreSQL documentation
+ - mcp__tiger__semantic_search_tiger_docs - Search Tiger Cloud and TimescaleDB documentation
+ - mcp__tiger__tiger_service_create - Create new database services
+ - mcp__tiger__tiger_service_list - List all database services
+ - mcp__tiger__tiger_service_show - Show detailed service information
+ - mcp__tiger__tiger_service_update_password - Update service passwords
+
+ Is there something specific you'd like to do with the TigerData MCP server?
+ ```
+
+1. **Ask a basic question about your $SERVICE_SHORTs**
+ ```shell
+ > can you list my active services please
+ ```
+ You see something like:
+ ```shell
+ ⏺ You have 3 active services, all with the same name "my-first-service":
+
+ 1. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30
+ 2. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30
+ 3. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30
+ ```
+
+1. **Manage your $SERVICE_SHORTs without having to learn how to**
+
+ For example:
+ ```shell
+ Can you create a new ai service called bob with a read replica for me please
+ ```
+ You see something like:
+ ```shell
+ tiger - Create Database Service (MCP)(name: "bob", addons: ["ai"], replicas: 1, wait: false)
+ ...
+ Do you want to proceed?
+ ❯ 1. Yes
+ ```
+
+1. **Find best practice for things you need to do**
+
+ For example:
+ ```shell
+ > I need to migrate a database with 25 million rows of data to Tiger,
+ please tell me what service optimizations i should do before migration.
+
+ ```
+ You see something like:
+ ```shell
+ ⏺ For migrating a database with 25 million rows to Tiger, here are the key service optimizations to do before migration:
+
+ Pre-Migration Service Optimizations
+
+ 1. Right-size your compute resources:
+ - For 25M rows, start with at least 2 CPU/8GB or 4 CPU/16GB
+ - You can scale up during migration if needed, then scale down after
+
+ 2. Enable the appropriate add-ons:
+ - Use time-series addon if you're working with time-series data
+ - Use ai addon if you need vector/AI capabilities
+
+ 3. Choose optimal region:
+ - Select the region closest to your current database to minimize network transfer time
+ - This significantly reduces migration duration
+
+ 4. Consider enhanced storage (Enterprise only):
+ - If you expect high write throughput during migration, enhanced storage provides better IOPS (up to 32,000)
+
+ 5. Skip replicas initially:
+ - Start with 0 replicas during migration
+ - Add replicas after migration completes to avoid duplicate data copying
+
+ 6. Plan for storage space:
+ - Estimate your uncompressed data size
+ - Allocate sufficient high-performance storage (scales automatically but good to plan)
+ - You can enable tiered storage later for older data
+
+ During Migration Best Practices
+
+ Migration method selection:
+ - 25M rows: Use schema-then-data migration (migrate schema first, then copy data in chunks)
+ - Allows restart if a copy operation fails
+ - Better for databases >10GB
+
+ Database configuration to set AFTER migration:
+ - Set up compression policies (once data is loaded)
+ - Configure retention policies
+ - Create continuous aggregates
+ - Enable tiered storage for cost optimization
+
+ Connection settings:
+ - Use the pooled connection endpoint for better performance during bulk inserts
+ - Disable unnecessary constraints/indexes during migration, re-enable after
+
+ Would you like me to help you create an optimized service for this migration?
+ ```
+
+
+
+That beats working. Let the $MCP_LONG do it all for you.
+
+
+## $MCP_LONG commands
+
+You can use the following commands with $MCP_LONG.
+
+| Command | Parameters | Required parameter | Description |
+|-------------------------------|------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| tiger_service_list | None | - | List all $SERVICE_LONGs in your current $PROJECT_LONG |
+| tiger_service_show | service_id | ✓ | Show detailed information about a specific $SERVICE_SHORT |
+| tiger_service_create | | ✗ | Create a new $SERVICE_SHORT with a default name in your $PROJECT_LONG |
+| | name | ✗ | Set the $SERVICE_SHORT name to `name` s |
+| | addons | ✗ | Possible addons are: - time-series: with the Timescaledb and Timescaledb Toolkit extensions
- ai: with the Timescaledb, Timescaledb Toolkit, vector and vectorscale extensions
- free: free services have fixed compute of 0.25 CPU, 1 GiB RAM, and up to 500mb storage.
- none: vanilla Postgres
All services have Tiger features such as Tiger Storage, Security, Monitoring and compliance. If you do not use the `addons` flag, the default service is `time-series`. |
+| | region | ✗ | The [Region][cloud-regions] this $SERVICE is hosted in. Default is `us-east-1` |
+| | cpu_memory | ✗ | The CPU and memory allocation combination. Default is "0.5 CPU/2GB" |
+| | replicas | ✗ | The number of [high-availability replicas][readreplica]. Default is 0 |
+| | free | ✗ | Free services have fixed compute of 0.25 CPU, 1 GiB RAM, and up to 500mb storage. |
+| | wait | ✗ | Wait for this $SERVICE_SHORT to be ready. Default is to not wait |
+| | timeout | ✗ | Timeout for `wait` in minutes. The default is 30 |
+| tiger_service_update_password | service_id | ✓ | Update the master password for the 'tsdbadmin' user of a database service |
+| | password | ✓ | The new password |
+
+## $CLI_LONG commands for $MCP_SHORT
+
+Usage: `tiger mcp [subcommand] --`
+
+| Command | Subcommand | Description |
+|---------|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| mcp | | Manage the $MCP_LONG |
+| | install `[client]` | Install and configure $MCP_SHORT for a specific client installed on your developer device. Supported `client`s: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code`.
Flags: - `--no-backup`: do not back up the existing configuration
- `--config-path`: open the configuration file at a specific location
|
+| | start | Start the $MCP_SHORT. This is the same as `tiger mcp start stdio` |
+| | start stdio | Start the $MCP_SHORT with stdio transport |
+| | start http | Start the $MCP_SHORT with HTTP transport. This option is for users who wish to access $MCP_LONG without using stdio. For example, your AI assistant does not support stdio, or you do not want to run $CLI_SHORT on your device. Flags are: - `--port ` The default is 8000.
- `--host ` The default is localhost.
|
+
+
+## Global flags
+
+You can use the following $CLI_LONG global flags when you run the $MCP_SHORT:
+
+
+
+
+
+[rest-api-reference]: /api/:currentVersion:/api-reference/
+[rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings
+[get-project-id]: /integrations/:currentVersion:/find-connection-details/#find-your-project-and-service-id
+[create-client-credentials]: /integrations/:currentVersion:/find-connection-details/#create-client-credentials
+[curl]: https://curl.se/
+[cloud-regions]: /use-timescale/:currentVersion:/regions/
+[readreplica]: /use-timescale/:currentVersion:/ha-replicas/read-scaling/
\ No newline at end of file
diff --git a/_partials/_devops-rest-api-get-started.md b/_partials/_devops-rest-api-get-started.md
new file mode 100644
index 0000000000..ce78504753
--- /dev/null
+++ b/_partials/_devops-rest-api-get-started.md
@@ -0,0 +1,159 @@
+import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx";
+
+[$REST_LONG][rest-api-reference] is a comprehensive RESTful API you use to manage $CLOUD_LONG resources
+including VPCs, $SERVICE_SHORTs, and read replicas.
+
+This page shows you how to set up secure authentication for the $REST_LONG and create your first $SERVICE_SHORT.
+
+## Prerequisites
+
+
+
+* Install [curl][curl].
+
+
+## Configure secure authentication
+
+$REST_LONG uses HTTP Basic Authentication with access keys and secret keys. All API requests must include
+proper authentication headers.
+
+
+
+1. **Set up API credentials**
+
+ 1. In $CONSOLE [copy your project ID][get-project-id] and store it securely using an environment variable:
+
+ ```bash
+ export TIGERDATA_PROJECT_ID="your-project-id"
+ ```
+
+ 1. In $CONSOLE [create your client credentials][create-client-credentials] and store them securely using environment variables:
+
+ ```bash
+ export TIGERDATA_ACCESS_KEY="Public key"
+ export TIGERDATA_SECRET_KEY="Secret key"
+ ```
+
+1. **Configure the API endpoint**
+
+ Set the base URL in your environment:
+
+ ```bash
+ export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1"
+ ```
+
+1. **Test your authenticated connection to $REST_LONG by listing the $SERVICE_SHORTs in the current $PROJECT_LONG**
+
+ ```bash
+ curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \
+ -u "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" \
+ -H "Content-Type: application/json"
+ ```
+
+ This call returns something like:
+ - No $SERVICE_SHORTs:
+ ```terminaloutput
+ []%
+ ```
+ - One or more $SERVICE_SHORTs:
+
+ ```terminaloutput
+ [{"service_id":"a59clooxoe","project_id":"c8nmagk8zh","name":"events",
+ "region_code":"eu-central-1","addons":"time-series",
+ "created":"2025-09-09T08:37:15.816443Z","paused":false,"status":"READY",
+ "resources":[{"id":"101228","spec":{"cpu_millis":500,"memory_gbs":2,"volume_type":""}}],
+ "metadata":{"environment":"DEV"},"endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com",
+ "port":12345}}]
+ ```
+
+
+
+
+## Create your first $SERVICE_LONG
+
+Create a new $SERVICE_SHORT using the $REST_LONG:
+
+
+
+1. **Create a $SERVICE_SHORT using the POST endpoint**
+ ```bash
+ curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \
+ -u "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "name": "my-first-service",
+ "addons": "time-series",
+ "region_code": "us-east-1",
+ "replica_count": 1,
+ "cpu_millis": 1000,
+ "memory_gbs": 4
+ }'
+ ```
+ $CLOUD_LONG creates a Development environment for you. That is, no delete protection, high-availability, spooling or
+ read-replication. You see something like:
+ ```terminaloutput
+ {
+ "service_id":"asdfasdfasdf","project_id":"asdasdfasf","name":"my-first-service",
+ "region_code":"us-east-1", "addons":"time-series",
+ "created":"2025-09-09T09:24:31.997767396Z", "paused":false,"status":"READY",
+ "resources":[{"id":"101240",
+ "spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}],
+ "metadata":{"environment":"PROD"},
+ "endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com","port":123435},
+ "initial_password":"very-secret",
+ "ha_replicas":{"sync_replica_count":0,"replica_count":1}
+ }
+ ```
+
+1. Save `service_id` from the response to a variable:
+
+ ```bash
+ # Extract service_id from the JSON response
+ export SERVICE_ID="service_id-from-response"
+ ```
+
+1. **Check the configuration for the $SERVICE_SHORT**
+
+ ```bash
+ curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \
+ -u "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" \
+ -H "Content-Type: application/json"
+ ```
+You see something like:
+ ```terminaloutput
+ {"service_id":"tgrservice","project_id":"tgrproject","name":"my-first-service","region_code":"us-east-1",
+ "addons":"time-series","created":"2025-09-30T12:08:54.438785Z","paused":false,"status":"READY",
+ "resources":[{"id":"102879","spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}],
+ "metadata":{"environment":"DEV"},"endpoint":{"host":"ohhhh.yeahhhhh.tsdb.cloud.timescale.com","port":33867},
+ "ha_replicas":{"sync_replica_count":0,"replica_count":1}}
+ ```
+
+
+
+And that is it, you are ready to use the [$REST_LONG][rest-api-reference] to manage your
+$SERVICE_SHORTs in $CLOUD_LONG.
+
+## Security best practices
+
+Follow these security guidelines when working with the $REST_LONG:
+
+- **Credential management**
+ - Store API credentials as environment variables, not in code
+ - Use credential rotation policies for production environments
+ - Never commit credentials to version control systems
+
+- **Network security**
+ - Use HTTPS endpoints exclusively for API communication
+ - Implement proper certificate validation in your HTTP clients
+
+- **Data protection**
+ - Use secure storage for service connection strings and passwords
+ - Implement proper backup and recovery procedures for created services
+ - Follow data residency requirements for your region
+
+
+[rest-api-reference]: /api/:currentVersion:/api-reference/
+[rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings
+[get-project-id]: /integrations/:currentVersion:/find-connection-details/#find-your-project-and-service-id
+[create-client-credentials]: /integrations/:currentVersion:/find-connection-details/#create-client-credentials
+[curl]: https://curl.se/
\ No newline at end of file
diff --git a/_partials/_prereqs-cloud-account-only.md b/_partials/_prereqs-cloud-account-only.md
new file mode 100644
index 0000000000..bebd9d9f60
--- /dev/null
+++ b/_partials/_prereqs-cloud-account-only.md
@@ -0,0 +1,5 @@
+To follow the steps on this page:
+
+* Create a target [$ACCOUNT_LONG][create-account].
+
+[create-account]: /getting-started/:currentVersion:/services/#create-a-tiger-cloud-account
\ No newline at end of file
diff --git a/ai/page-index/page-index.js b/ai/page-index/page-index.js
index 4b3d2bc0f1..760aa5fa7d 100644
--- a/ai/page-index/page-index.js
+++ b/ai/page-index/page-index.js
@@ -1,6 +1,6 @@
module.exports = [
{
- title: "AI and Vector: pgai on Tiger Cloud",
+ title: "AI and Vector",
href: "ai",
filePath: "index.md",
pageComponents: ["featured-cards"],
diff --git a/api/api-reference.md b/api/api-reference.md
new file mode 100644
index 0000000000..4d04776ad1
--- /dev/null
+++ b/api/api-reference.md
@@ -0,0 +1,849 @@
+---
+title: Tiger Cloud REST API reference
+excerpt: A comprehensive RESTful API for managing Tiger Cloud resources including VPCs, services, and read replicas.
+tags: [REST]
+products: [cloud]
+---
+
+# $REST_LONG reference
+
+A comprehensive RESTful API for managing $CLOUD_LONG resources including VPCs, services, and read replicas.
+
+## Overview
+
+**API Version:** 1.0.0
+**Base URL:** `https://console.cloud.timescale.com/public/api/v1`
+
+## Authentication
+
+The $REST_LONG uses HTTP Basic Authentication. Include your access key and secret key in the Authorization header.
+
+### Basic Authentication
+```http
+Authorization: Basic
+```
+
+### Example
+```bash
+# 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)"
+```
+
+## Service Management
+
+You use this endpoint to create and manage the following Tiger Postgres services:
+
+- `time-series`: a Tiger Postgres instance optimized for real-time analytics service For time-stamped data like events,
+ prices, metrics, sensor readings, or any information that changes over time
+- `none`: a vanilla Postgres instance
+- `ai`: a Tiger Postgres instance with vector extensions
+
+### List All Services
+
+```http
+GET /projects/{project_id}/services
+```
+
+Retrieve all services within a project.
+
+**Response:** `200 OK`
+```json
+[
+ {
+ "service_id": "p7zm9wqqii",
+ "project_id": "jz22xtzemv",
+ "name": "my-production-db",
+ "region_code": "eu-central-1",
+ "addons": "time-series",
+ "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
+ }
+ }
+]
+```
+
+### Create a Service
+
+```http
+POST /projects/{project_id}/services
+```
+
+Create a new Tiger Postgres service. This is an asynchronous operation.
+
+**Request Body:**
+```json
+{
+ "name": "test-2",
+ "addons": "time-series",
+ "region_code": "eu-central-1",
+ "cpu_millis": 1000,
+ "memory_gbs": 4
+}
+```
+
+**Response:** `202 Accepted`
+```json
+{
+ "service_id": "p7zm9wqqii",
+ "project_id": "jz22xtzemv",
+ "name": "test-2",
+ "region_code": "eu-central-1",
+ "addons": "time-series",
+ "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 Postgres instance optimized for real-time analytics service For time-stamped data like events,
+ prices, metrics, sensor readings, or any information that changes over time
+- `POSTGRES`: a vanilla Postgres instance
+- `VECTOR`: a Tiger Postgres instance with vector extensions
+
+### Get a Service
+
+```http
+GET /projects/{project_id}/services/{service_id}
+```
+
+Retrieve details of a specific service.
+
+**Response:** `200 OK`
+```json
+{
+ "service_id": "p7zm9wqqii",
+ "project_id": "jz22xtzemv",
+ "name": "test-2",
+ "region_code": "eu-central-1",
+ "addons": "time-series",
+ "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 queued
+- `DELETING`: Service is being deleted
+- `CONFIGURING`: Service is being configured
+- `READY`: Service is ready for use
+- `DELETED`: Service has been deleted
+- `UNSTABLE`: Service is in an unstable state
+- `PAUSING`: Service is being paused
+- `PAUSED`: Service is paused
+- `RESUMING`: Service is being resumed
+- `UPGRADING`: Service is being upgraded
+- `OPTIMIZING`: Service is being optimized
+
+### Delete a Service
+
+```http
+DELETE /projects/{project_id}/services/{service_id}
+```
+
+Delete a specific service. This is an asynchronous operation.
+
+**Response:** `202 Accepted`
+
+### Resize a Service
+
+```http
+POST /projects/{project_id}/services/{service_id}/resize
+```
+
+Change CPU and memory allocation for a service.
+
+**Request Body:**
+```json
+{
+ "cpu_millis": 2000,
+ "memory_gbs": 8
+}
+```
+
+**Response:** `202 Accepted`
+
+### Update Service Password
+
+```http
+POST /projects/{project_id}/services/{service_id}/updatePassword
+```
+
+Set a new master password for the service.
+
+**Request Body:**
+```json
+{
+ "password": "a-very-secure-new-password"
+}
+```
+
+**Response:** `204 No Content`
+
+### Set Service Environment
+
+```http
+POST /projects/{project_id}/services/{service_id}/setEnvironment
+```
+
+Set the environment type for the service.
+
+**Request Body:**
+```json
+{
+ "environment": "PROD"
+}
+```
+
+**Environment Values:**
+- `PROD`: Production environment
+- `DEV`: Development environment
+
+**Response:** `200 OK`
+```json
+{
+ "message": "Environment set successfully"
+}
+```
+
+### Configure High Availability
+
+```http
+POST /projects/{project_id}/services/{service_id}/setHA
+```
+
+Change the HA configuration for a service. This is an asynchronous operation.
+
+**Request Body:**
+```json
+{
+ "replica_count": 1
+}
+```
+
+**Response:** `202 Accepted`
+
+### Connection Pooler Management
+
+#### Enable Connection Pooler
+
+```http
+POST /projects/{project_id}/services/{service_id}/enablePooler
+```
+
+Activate the connection pooler for a service.
+
+**Response:** `200 OK`
+```json
+{
+ "message": "Connection pooler enabled successfully"
+}
+```
+
+#### Disable Connection Pooler
+
+```http
+POST /projects/{project_id}/services/{service_id}/disablePooler
+```
+
+Deactivate the connection pooler for a service.
+
+**Response:** `200 OK`
+```json
+{
+ "message": "Connection pooler disabled successfully"
+}
+
+### Fork a Service
+
+```http
+POST /projects/{project_id}/services/{service_id}/forkService
+```
+
+Create a new, independent service by taking a snapshot of an existing one.
+
+**Request Body:**
+```json
+{
+ "name": "fork-test2",
+ "region_code": "eu-central-1",
+ "cpu_millis": 1000,
+ "memory_gbs": 4
+}
+```
+
+**Response:** `202 Accepted`
+```json
+{
+ "service_id": "otewd3pem2",
+ "project_id": "jz22xtzemv",
+ "name": "fork-test2",
+ "region_code": "eu-central-1",
+ "addons": "time-series",
+ "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"
+}
+```
+
+## Read Replica Sets
+
+Manage read replicas for improved read performance.
+
+### List Read Replica Sets
+
+```http
+GET /projects/{project_id}/services/{service_id}/replicaSets
+```
+
+Retrieve all read replica sets associated with a primary service.
+
+**Response:** `200 OK`
+```json
+[
+ {
+ "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 created
+- `active`: Replica set is active and ready
+- `resizing`: Replica set is being resized
+- `deleting`: Replica set is being deleted
+- `error`: Replica set encountered an error
+
+### Create a Read Replica Set
+
+```http
+POST /projects/{project_id}/services/{service_id}/replicaSets
+```
+
+Create a new read replica set. This is an asynchronous operation.
+
+**Request Body:**
+```json
+{
+ "name": "replica-set-test2",
+ "cpu_millis": 1000,
+ "memory_gbs": 4,
+ "nodes": 1
+}
+```
+
+**Response:** `202 Accepted`
+```json
+{
+ "id": "dsldm715t2",
+ "name": "replica-set-test2",
+ "status": "active",
+ "nodes": 1,
+ "cpu_millis": 1000,
+ "memory_gbs": 4
+}
+```
+
+### Delete a Read Replica Set
+
+```http
+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`
+
+### Resize a Read Replica Set
+
+```http
+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:**
+```json
+{
+ "cpu_millis": 500,
+ "memory_gbs": 2,
+ "nodes": 2
+}
+```
+
+**Response:** `202 Accepted`
+```json
+{
+ "message": "Replica set resize request accepted"
+}
+```
+
+### Read Replica Set Connection Pooler
+
+#### Enable Replica Set Pooler
+
+```http
+POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/enablePooler
+```
+
+Activate the connection pooler for a read replica set.
+
+**Response:** `200 OK`
+```json
+{
+ "message": "Connection pooler enabled successfully"
+}
+```
+
+#### Disable Replica Set Pooler
+
+```http
+POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/disablePooler
+```
+
+Deactivate the connection pooler for a read replica set.
+
+**Response:** `200 OK`
+```json
+{
+ "message": "Connection pooler disabled successfully"
+}
+```
+
+### Set Replica Set Environment
+
+```http
+POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/setEnvironment
+```
+
+Set the environment type for a read replica set.
+
+**Request Body:**
+```json
+{
+ "environment": "PROD"
+}
+```
+
+**Response:** `200 OK`
+```json
+{
+ "message": "Environment set successfully"
+}
+```
+
+## VPC Management
+
+Virtual Private Clouds (VPCs) provide network isolation for your TigerData services.
+
+### List All VPCs
+
+```http
+GET /projects/{project_id}/vpcs
+```
+
+List all Virtual Private Clouds in a project.
+
+**Response:** `200 OK`
+```json
+[
+ {
+ "id": "1234567890",
+ "name": "my-production-vpc",
+ "cidr": "10.0.0.0/16",
+ "region_code": "eu-central-1"
+ }
+]
+```
+
+### Create a VPC
+
+```http
+POST /projects/{project_id}/vpcs
+```
+
+Create a new VPC.
+
+**Request Body:**
+```json
+{
+ "name": "my-production-vpc",
+ "cidr": "10.0.0.0/16",
+ "region_code": "eu-central-1"
+}
+```
+
+**Response:** `201 Created`
+```json
+{
+ "id": "1234567890",
+ "name": "my-production-vpc",
+ "cidr": "10.0.0.0/16",
+ "region_code": "eu-central-1"
+}
+```
+
+### Get a VPC
+
+```http
+GET /projects/{project_id}/vpcs/{vpc_id}
+```
+
+Retrieve details of a specific VPC.
+
+**Response:** `200 OK`
+```json
+{
+ "id": "1234567890",
+ "name": "my-production-vpc",
+ "cidr": "10.0.0.0/16",
+ "region_code": "eu-central-1"
+}
+```
+
+### Rename a VPC
+
+```http
+POST /projects/{project_id}/vpcs/{vpc_id}/rename
+```
+
+Update the name of a specific VPC.
+
+**Request Body:**
+```json
+{
+ "name": "my-renamed-vpc"
+}
+```
+
+**Response:** `200 OK`
+```json
+{
+ "id": "1234567890",
+ "name": "my-renamed-vpc",
+ "cidr": "10.0.0.0/16",
+ "region_code": "eu-central-1"
+}
+```
+
+### Delete a VPC
+
+```http
+DELETE /projects/{project_id}/vpcs/{vpc_id}
+```
+
+Delete a specific VPC.
+
+**Response:** `204 No Content`
+
+## VPC Peering
+
+Manage peering connections between VPCs across different accounts and regions.
+
+### List VPC Peerings
+
+```http
+GET /projects/{project_id}/vpcs/{vpc_id}/peerings
+```
+
+Retrieve all VPC peering connections for a given VPC.
+
+**Response:** `200 OK`
+```json
+[
+ {
+ "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
+ }
+]
+```
+
+### Create VPC Peering
+
+```http
+POST /projects/{project_id}/vpcs/{vpc_id}/peerings
+```
+
+Create a new VPC peering connection.
+
+**Request Body:**
+```json
+{
+ "peer_account_id": "acc-12345",
+ "peer_region_code": "eu-central-1",
+ "peer_vpc_id": "1234567890"
+}
+```
+
+**Response:** `201 Created`
+```json
+{
+ "id": "1234567890",
+ "peer_account_id": "acc-12345",
+ "peer_region_code": "eu-central-1",
+ "peer_vpc_id": "1234567890",
+ "provisioned_id": "1234567890",
+ "status": "pending"
+}
+```
+
+### Get VPC Peering
+
+```http
+GET /projects/{project_id}/vpcs/{vpc_id}/peerings/{peering_id}
+```
+
+Retrieve details of a specific VPC peering connection.
+
+### Delete VPC Peering
+
+```http
+DELETE /projects/{project_id}/vpcs/{vpc_id}/peerings/{peering_id}
+```
+
+Delete a specific VPC peering connection.
+
+**Response:** `204 No Content`
+
+## Service VPC Operations
+
+### Attach Service to VPC
+
+```http
+POST /projects/{project_id}/services/{service_id}/attachToVPC
+```
+
+Associate a service with a VPC.
+
+**Request Body:**
+```json
+{
+ "vpc_id": "1234567890"
+}
+```
+
+**Response:** `202 Accepted`
+
+### Detach Service from VPC
+
+```http
+POST /projects/{project_id}/services/{service_id}/detachFromVPC
+```
+
+Disassociate a service from its VPC.
+
+**Request Body:**
+```json
+{
+ "vpc_id": "1234567890"
+}
+```
+
+**Response:** `202 Accepted`
+
+## Data Models
+
+### VPC Object
+```json
+{
+ "id": "string",
+ "name": "string",
+ "cidr": "string",
+ "region_code": "string"
+}
+```
+
+### Service Object
+```json
+{
+ "service_id": "string",
+ "project_id": "string",
+ "name": "string",
+ "region_code": "string",
+ "addons": "time-series|ai|none",
+ "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
+ }
+ }
+}
+```
+
+### Peering Object
+```json
+{
+ "id": "string",
+ "peer_account_id": "string",
+ "peer_region_code": "string",
+ "peer_vpc_id": "string",
+ "provisioned_id": "string",
+ "status": "string",
+ "error_message": "string"
+}
+```
+
+### Read Replica Set Object
+
+```json
+{
+ "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
+ }
+ }
+}
+```
+
+## Error Handling
+
+Tiger Cloud REST API uses standard HTTP status codes and returns error details in JSON format.
+
+### Error Response Format
+```json
+{
+ "code": "ERROR_CODE",
+ "message": "Human-readable error description"
+}
+```
+
+### Common Error Codes
+- `400 Bad Request`: Invalid request parameters or malformed JSON
+- `401 Unauthorized`: Missing or invalid authentication credentials
+- `403 Forbidden`: Insufficient permissions for the requested operation
+- `404 Not Found`: Requested resource does not exist
+- `409 Conflict`: Request conflicts with current resource state
+- `500 Internal Server Error`: Unexpected server error
+
+### Example Error Response
+```json
+{
+ "code": "INVALID_REQUEST",
+ "message": "The service_type field is required"
+}
+```
diff --git a/api/glossary.md b/api/glossary.md
index 9c9d2e4052..bba6c0d9b1 100644
--- a/api/glossary.md
+++ b/api/glossary.md
@@ -163,6 +163,8 @@ This glossary defines technical terms, concepts, and terminology used in $COMPAN
**Euclidean distance**: a measure of the straight-line distance between two points in multidimensional space.
+**Exactly-once**: a message is delivered and processed precisely once. There is no loss and no duplicates.
+
**Explain**: a $PG command that shows the execution plan for a query, useful for performance analysis.
**Event sourcing**: an architectural pattern storing all changes as a sequence of events, naturally fitting time-series database capabilities.
diff --git a/api/page-index/page-index.js b/api/page-index/page-index.js
index 5a9152cc77..5b1bb90c25 100644
--- a/api/page-index/page-index.js
+++ b/api/page-index/page-index.js
@@ -617,6 +617,12 @@ module.exports = [
description:
"An overview of what different tags represent in the API section of TigerData Documentation.",
},
+ {
+ title: "Tiger Cloud REST API",
+ href: "api-reference",
+ description:
+ "A comprehensive RESTful API for managing Tiger Cloud resources including VPCs, services, and read replicas.",
+ },
{
title: "Glossary",
href: "glossary",
diff --git a/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md
new file mode 100644
index 0000000000..5e355a7f3a
--- /dev/null
+++ b/getting-started/get-started-devops-as-code.md
@@ -0,0 +1,47 @@
+---
+title: "DevOps as code with Tiger Cloud"
+excerpt: "Configure secure authentication and create a new database service using the Tiger Cloud REST API"
+keywords:
+ - authentication
+ - service creation
+ - API setup
+ - security
+tags:
+ - setup
+ - security
+ - services
+ - authentication
+---
+
+
+import RESTGS from "versionContent/_partials/_devops-rest-api-get-started.mdx";
+import CLIGS from "versionContent/_partials/_devops-cli-get-started.mdx";
+import MCPGS from "versionContent/_partials/_devops-mcp-get-started.mdx";
+
+# DevOps as code with $CLOUD_LONG
+
+$COMPANY supplies a clean, programmatic control layer for $CLOUD_LONG. This includes RESTful APIs, CLI commands, and
+MCP endpoints that let humans, machines, and AI agents easily provision, configure, and manage $SERVICE_LONG
+programmatically.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/getting-started/page-index/page-index.js b/getting-started/page-index/page-index.js
index 08356efc97..501845fbd7 100644
--- a/getting-started/page-index/page-index.js
+++ b/getting-started/page-index/page-index.js
@@ -22,6 +22,11 @@ module.exports = [
href: "services",
excerpt: "Create a Tiger Cloud service and connect to it",
},
+ {
+ title: "DevOps as code with Tiger Cloud",
+ href: "get-started-devops-as-code",
+ excerpt: "Set up secure authentication for the TigerData Cloud REST API and create your first service",
+ },
{
title: "Run your queries from Tiger Cloud Console",
href: "run-queries-from-console",
diff --git a/integrations/find-connection-details.md b/integrations/find-connection-details.md
index 7df2ce0722..2f46815a00 100644
--- a/integrations/find-connection-details.md
+++ b/integrations/find-connection-details.md
@@ -41,7 +41,7 @@ To retrieve the connection details for your $CLOUD_LONG project and $SERVICE_LON
-1. **Retreive your project ID**:
+1. **Retrieve your project ID**:
In [$CONSOLE][console-services], click your project name in the upper left corner, then click `Copy` next to the project ID.

@@ -53,6 +53,31 @@ To retrieve the connection details for your $CLOUD_LONG project and $SERVICE_LON
+## Create client credentials
+
+You use client credentials to obtain access tokens outside of the user context.
+
+To retrieve the connection details for your $CLOUD_LONG project for programmatic usage
+such as Terraform or the [$CLOUD_LONG REST API][rest-api-reference]:
+
+
+
+1. **Open the settings for your project**:
+
+ In [$CONSOLE][console-services], click your project name in the upper left corner, then click `Project settings`.
+
+1. **Create client credentials**:
+
+ 1. Click `Create credentials`, then copy `Public key` and `Secret key` locally.
+
+ 
+
+ This is the only time you see the `Secret key`. After this, only the `Public key` is visible in this page.
+
+ 1. Click `Done`.
+
+
+
@@ -73,3 +98,6 @@ In the `Services` page of the $MST_CONSOLE_LONG, click the service you want to c
[console-services]: https://console.cloud.timescale.com/dashboard/services
[postgres-config]: https://www.postgresql.org/docs/current/runtime-config-file-locations.html
+[rest-api-reference]: /api/:currentVersion:/api-reference/
+[get-project-id]: /integrations/:currentVersion:/find-connection-details/#find-your-project-and-service-id
+[create-client-credentials]: /integrations/:currentVersion:/find-connection-details/#create-client-credentials
\ No newline at end of file