---
title: "Get a storage destination"
method: GET
path: "/v1/storage-destinations/{id}"
tags: ["Storage Destinations"]
---

# Get a storage destination

`GET /v1/storage-destinations/{id}`

## Request

- Base URL: `https://hcti.io`
- URL: `https://hcti.io/v1/storage-destinations/{id}`
- Auth: HTTP basic

**Rate limit:** 100 requests per minute per organization, shared across all operations in the `storage-destination:read` group and all API keys belonging to that organization.

## Path parameters

- `id` string, required

## Response `200`

OK

- StorageDestination: A storage destination and the result of its most recent connection test. Secret access keys are never returned.
  - `id` string, required: Storage destination ID.
  - `name` string, required: Display name for the destination.
  - `enabled` boolean: Whether the destination is enabled.
  - `hcti_storage_disabled` boolean: Whether rendered files saved here are excluded from HCTI storage and the HCTI CDN, with no public HCTI image URL.
  - `provider` string: Display name of the storage provider, retained for compatibility. Use connection_info.provider for the provider's machine-readable identifier.
  - `connection_info` union, required: Provider-specific storage connection details. Secret access keys are never returned.
    - object: Connection details for Amazon S3.
      - `provider` 'aws_s3', required
      - `region` 'af-south-1' | 'ap-east-1' | 'ap-east-2' | 'ap-northeast-1' | 'ap-northeast-2' | 'ap-northeast-3' | 'ap-south-1' | 'ap-south-2' | 'ap-southeast-1' | 'ap-southeast-2' | 'ap-southeast-3' | 'ap-southeast-4' | 'ap-southeast-5' | 'ap-southeast-6' | 'ap-southeast-7' | 'ca-central-1' | 'ca-west-1' | 'eu-central-1' | 'eu-central-2' | 'eu-north-1' | 'eu-south-1' | 'eu-south-2' | 'eu-west-1' | 'eu-west-2' | 'eu-west-3' | 'il-central-1' | 'me-central-1' | 'me-south-1' | 'mx-central-1' | 'sa-east-1' | 'us-east-1' | 'us-east-2' | 'us-west-1' | 'us-west-2', required
      - `role_arn` string, required: ARN of the IAM role HCTI assumes to access the bucket. Configure its trust policy for this organization before saving.
      - `bucket` string, required: Name of the existing bucket or Space. HCTI does not create it.
      - `key_prefix` string, nullable: Optional prefix for object keys within the bucket. Omitted or null uses the bucket root.
    - object: Connection details for Cloudflare R2.
      - `provider` 'cloudflare_r2', required
      - `cloudflare_account_id` string, required: The 32-character hexadecimal Cloudflare account ID that owns the bucket.
      - `cloudflare_jurisdiction` unknown
      - `access_key_id` string, required: S3-compatible access key ID. For Google Cloud Storage, use an HMAC access ID beginning with GOOG.
      - `bucket` string, required: Name of the existing bucket or Space. HCTI does not create it.
      - `key_prefix` string, nullable: Optional prefix for object keys within the bucket. Omitted or null uses the bucket root.
    - object: Connection details for Backblaze B2.
      - `provider` 'backblaze_b2', required
      - `region` 'us-west-000' | 'us-west-001' | 'us-west-002' | 'us-west-004' | 'us-east-005' | 'ca-east-006' | 'eu-central-003', required
      - `access_key_id` string, required: S3-compatible access key ID. For Google Cloud Storage, use an HMAC access ID beginning with GOOG.
      - `bucket` string, required: Name of the existing bucket or Space. HCTI does not create it.
      - `key_prefix` string, nullable: Optional prefix for object keys within the bucket. Omitted or null uses the bucket root.
    - object: Connection details for DigitalOcean Spaces.
      - `provider` 'digitalocean_spaces', required
      - `region` 'nyc3' | 'ams3' | 'sfo2' | 'sfo3' | 'sgp1' | 'lon1' | 'fra1' | 'tor1' | 'blr1' | 'syd1' | 'atl1' | 'ric1' | 'mkc1', required
      - `access_key_id` string, required: S3-compatible access key ID. For Google Cloud Storage, use an HMAC access ID beginning with GOOG.
      - `bucket` string, required: Name of the existing bucket or Space. HCTI does not create it.
      - `key_prefix` string, nullable: Optional prefix for object keys within the bucket. Omitted or null uses the bucket root.
    - object: Connection details for Wasabi.
      - `provider` 'wasabi', required
      - `region` 'us-east-1' | 'us-east-2' | 'us-central-1' | 'us-west-1' | 'us-west-2' | 'ca-central-1' | 'eu-central-1' | 'eu-central-2' | 'eu-west-1' | 'eu-west-2' | 'eu-west-3' | 'eu-south-1' | 'ap-northeast-1' | 'ap-northeast-2' | 'ap-southeast-1' | 'ap-southeast-2', required
      - `access_key_id` string, required: S3-compatible access key ID. For Google Cloud Storage, use an HMAC access ID beginning with GOOG.
      - `bucket` string, required: Name of the existing bucket or Space. HCTI does not create it.
      - `key_prefix` string, nullable: Optional prefix for object keys within the bucket. Omitted or null uses the bucket root.
    - object: Connection details for Google Cloud Storage.
      - `provider` 'google_cloud_storage', required
      - `access_key_id` string, required: S3-compatible access key ID. For Google Cloud Storage, use an HMAC access ID beginning with GOOG.
      - `bucket` string, required: Name of the existing bucket or Space. HCTI does not create it.
      - `key_prefix` string, nullable: Optional prefix for object keys within the bucket. Omitted or null uses the bucket root.
    - object: Connection details for another S3-compatible provider.
      - `provider` 'other_s3_compatible', required
      - `endpoint` string, required: Public HTTPS endpoint of the S3-compatible service. Do not include a path, query string, fragment, or credentials.
      - `region` string, nullable: Signing region expected by the service. Omit or set to null to use us-east-1.
      - `force_path_style` boolean, nullable: Whether to put the bucket name in the URL path instead of the hostname. Omitted or null defaults to true.
      - `access_key_id` string, required: S3-compatible access key ID. For Google Cloud Storage, use an HMAC access ID beginning with GOOG.
      - `bucket` string, required: Name of the existing bucket or Space. HCTI does not create it.
      - `key_prefix` string, nullable: Optional prefix for object keys within the bucket. Omitted or null uses the bucket root.
  - `last_tested_at` string, date-time, nullable: UTC timestamp of the most recent connection test, or null if it has not been tested.
  - `last_test_succeeded` boolean, nullable: Whether the most recent write test succeeded, or null if it has not been tested. This does not verify read access or guarantee future availability.
  - `last_test_error` string, nullable: Sanitized error from the most recent failed connection test, or null when no failure is recorded.
  - `created_at` string, date-time: UTC timestamp when the destination was created.
  - `updated_at` string, date-time: UTC timestamp when the destination was last updated.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `429`: Too Many Requests

## Changes

- **2026-09-14** `d5730c2a58f6`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/htmlcsstoimage/apis/html-css-to-image-api/changes/v1/storage-destinations/:id/get.md)

---

[API](https://skmtc.dev/htmlcsstoimage/apis/html-css-to-image-api.md) - [All operations](https://skmtc.dev/htmlcsstoimage/apis/html-css-to-image-api/llms.txt) - [OpenAPI document](https://skmtc.dev/htmlcsstoimage/apis/html-css-to-image-api/revisions/100550373ae1?raw)
