---
title: "Create a custom storage credential"
method: POST
path: "/custom_storage_credentials/{connection_id}"
tags: ["Call Recordings"]
---

# Create a custom storage credential

`POST /custom_storage_credentials/{connection_id}`

Creates a custom storage credentials configuration.

## Path parameters

- `connection_id` string, required

## Request body

- CustomStorageConfiguration
  - `backend` 'gcs' | 's3' | 's3-generic' | 'azure', required
  - `configuration` union, required
    - GCSConfigurationData
      - `backend` 'gcs', required — Storage backend type
      - `credentials` string — Opaque credential token used to authenticate and authorize with storage provider.
      - `bucket` string — Name of the bucket to be used to store recording files.
    - S3ConfigurationData
      - `backend` 's3', required — Storage backend type
      - `bucket` string, required — Name of the bucket to be used to store recording files.
      - `region` string, required — Region where the bucket is located.
      - `aws_access_key_id` string, required — AWS credentials access key id.
      - `aws_secret_access_key` string, required — AWS secret access key.
    - S3GenericConfigurationData
      - `backend` 's3-generic', required — Storage backend type
      - `bucket` string, required — Name of the bucket to be used to store recording files.
      - `region` string, required — Region where the bucket is located.
      - `endpoint` string, uri, required — URL of an S3-compatible storage endpoint, used to direct uploads and presigned download URLs to a non-AWS store (for example MinIO, Cloudflare R2, Wasabi, Backblaze B2, or Supabase). A bare host (https://s3.example.com) or a path-prefixed URL (https://xyz.supabase.co/storage/v1/s3) is accepted, and must use the http or https scheme.
      - `aws_access_key_id` string, required — AWS credentials access key id.
      - `aws_secret_access_key` string, required — AWS secret access key.
    - AzureConfigurationData
      - `backend` 'azure', required — Storage backend type
      - `bucket` string — Name of the bucket to be used to store recording files.
      - `account_name` string — Azure Blob Storage account name.
      - `account_key` string — Azure Blob Storage account key.

## Response `200`

A response containing a credentials resource.

- CredentialsResponse
  - `data` CustomStorageConfiguration, required
    - `backend` 'gcs' | 's3' | 's3-generic' | 'azure', required
    - `configuration` union, required
      - GCSConfigurationData
        - `backend` 'gcs', required — Storage backend type
        - `credentials` string — Opaque credential token used to authenticate and authorize with storage provider.
        - `bucket` string — Name of the bucket to be used to store recording files.
      - S3ConfigurationData
        - `backend` 's3', required — Storage backend type
        - `bucket` string, required — Name of the bucket to be used to store recording files.
        - `region` string, required — Region where the bucket is located.
        - `aws_access_key_id` string, required — AWS credentials access key id.
        - `aws_secret_access_key` string, required — AWS secret access key.
      - S3GenericConfigurationData
        - `backend` 's3-generic', required — Storage backend type
        - `bucket` string, required — Name of the bucket to be used to store recording files.
        - `region` string, required — Region where the bucket is located.
        - `endpoint` string, uri, required — URL of an S3-compatible storage endpoint, used to direct uploads and presigned download URLs to a non-AWS store (for example MinIO, Cloudflare R2, Wasabi, Backblaze B2, or Supabase). A bare host (https://s3.example.com) or a path-prefixed URL (https://xyz.supabase.co/storage/v1/s3) is accepted, and must use the http or https scheme.
        - `aws_access_key_id` string, required — AWS credentials access key id.
        - `aws_secret_access_key` string, required — AWS secret access key.
      - AzureConfigurationData
        - `backend` 'azure', required — Storage backend type
        - `bucket` string — Name of the bucket to be used to store recording files.
        - `account_name` string — Azure Blob Storage account name.
        - `account_key` string — Azure Blob Storage account key.
  - `connection_id` string, required — Uniquely identifies a Telnyx application (Call Control, TeXML) or Sip connection resource.
  - `record_type` 'custom_storage_credentials', required — Identifies record type.

## Other responses

- `401` — Unauthorized. The request lacks valid authentication credentials.
- `404` — Resource not found. The requested resource or URL could not be found.
- `default` — Unexpected error.

---

[API](https://skmtc.net/team-telnyx/apis/telnyx-api-2.md) · [All operations](https://skmtc.net/team-telnyx/apis/telnyx-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/team-telnyx/telnyx-api-2/versions/8f5f4e537994/schema)
