> ## Documentation Index
> Fetch the complete documentation index at: https://developer.audioshake.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Storage Integration

Register an S3 or GCS storage integration for your account. The returned `id` is the `storageIntegrationId` you pass when [creating a Task](/api-reference/tasks/create) with `s3://` or `gs://` inputs and a `writeDestination`.

For IAM / Workload Identity setup, see [Custom Storage Integrations](/api-reference/custom-storage).


## OpenAPI

````yaml POST /storage-integrations
openapi: 3.1.0
info:
  title: AudioShake API
  version: 1.0.0
  description: >-
    API for AI-powered audio source separation, stem extraction, and
    transcription.
  license:
    name: Proprietary
    url: https://www.audioshake.ai/terms
  contact:
    name: AudioShake
    url: https://audioshake.ai
servers:
  - url: https://api.audioshake.ai
security:
  - apiKey: []
tags:
  - name: assets
    description: Audio and media file assets managed by AudioShake
  - name: tasks
    description: Stem separation, source separation, and transcription alignment tasks
  - name: models
    description: Available processing models with access and pricing
  - name: storage-integrations
    description: Customer-managed storage for reading inputs and writing task outputs
paths:
  /storage-integrations:
    post:
      tags:
        - storage-integrations
      summary: Create a storage integration for a client
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: false
              type: object
              required:
                - type
                - storageName
              properties:
                clientId:
                  minLength: 1
                  maxLength: 100
                  description: >-
                    Owning client; required for admin callers, omitted for
                    non-admin (uses authenticated client)
                  type: string
                type:
                  minLength: 1
                  maxLength: 64
                  description: e.g. aws, gcp, azure
                  type: string
                storageName:
                  minLength: 1
                  maxLength: 512
                  type: string
                authConfig:
                  anyOf:
                    - type: object
                      additionalProperties: {}
                    - type: 'null'
            examples:
              example1:
                value:
                  type: aws
                  storageName: my-audio-bucket
                  authConfig:
                    roleArn: arn:aws:iam::123456789012:role/GroovyStorageAccess
                    region: us-east-1
              example2:
                value:
                  type: gcp
                  storageName: my-gcs-bucket
                  authConfig:
                    projectId: customer-gcp-project
                    serviceAccountEmail: >-
                      audioshake-writer@customer-gcp-project.iam.gserviceaccount.com
                    workloadIdentityProvider: >-
                      projects/123456789/locations/global/workloadIdentityPools/audioshake/providers/aws
        required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                  - id
                  - clientId
                  - type
                  - storageName
                  - authConfig
                  - createdAt
                  - updatedAt
                properties:
                  id:
                    description: Unique identifier
                    type: string
                  clientId:
                    description: Owning client ID
                    type: string
                  type:
                    description: Provider type, e.g. aws, gcp, azure
                    minLength: 1
                    maxLength: 64
                    type: string
                  storageName:
                    description: Bucket / container / account display name
                    minLength: 1
                    maxLength: 512
                    type: string
                  authConfig:
                    description: Provider-specific auth / connection JSON
                    type: object
                    additionalProperties: {}
                  createdAt:
                    description: Created timestamp (ISO 8601)
                    type: string
                  updatedAt:
                    description: Updated timestamp (ISO 8601)
                    type: string
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: x-api-key
      in: header

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.