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

# Update Snapshot

> Set a custom snapshot ID for an account. By default, updates the key owner's account. Pass account_id to target a specific account the API key has access to. This allows accounts to use a specific sandbox snapshot when creating new sandboxes, enabling reproducible environments with pre-configured tools, dependencies, and files.



## OpenAPI

````yaml api-reference/openapi/content.json PATCH /api/sandboxes
openapi: 3.1.0
info:
  title: Recoup API - Content
  description: >-
    API documentation for the Recoup platform - an AI agent platform for the
    music industry
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.recoupable.dev
security: []
paths:
  /api/sandboxes:
    patch:
      description: >-
        Set a custom snapshot ID for an account. By default, updates the key
        owner's account. Pass account_id to target a specific account the API
        key has access to. This allows accounts to use a specific sandbox
        snapshot when creating new sandboxes, enabling reproducible environments
        with pre-configured tools, dependencies, and files.
      requestBody:
        description: Snapshot configuration parameters
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSnapshotRequest'
      responses:
        '200':
          description: Snapshot ID updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateSnapshotResponse'
        '400':
          description: Bad request - invalid snapshot ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxErrorResponse'
        '401':
          description: Unauthorized - invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxErrorResponse'
        '403':
          description: >-
            Forbidden - account_id is not a member of the organization or
            account tried to use an account_id they don't have access to
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxErrorResponse'
components:
  schemas:
    UpdateSnapshotRequest:
      type: object
      required: []
      properties:
        snapshotId:
          type: string
          description: >-
            The snapshot ID to set for the account. This snapshot will be used
            as the base environment when creating new sandboxes.
          example: snap_abc123def456
        github_repo:
          type: string
          format: uri
          description: >-
            The GitHub repository URL to associate with the account's sandbox
            environment. Must be a valid URL.
          example: https://github.com/org/repo
        account_id:
          type: string
          format: uuid
          description: >-
            UUID of the account to update the snapshot for. Only applicable when
            the authenticated account has access to multiple accounts via
            organization membership. If not provided, updates the snapshot for
            the API key's own account.
    UpdateSnapshotResponse:
      type: object
      required:
        - account_id
        - snapshot_id
        - expires_at
        - github_repo
        - created_at
      properties:
        account_id:
          type: string
          format: uuid
          description: The account ID this snapshot belongs to
          example: 550e8400-e29b-41d4-a716-446655440000
        snapshot_id:
          type: string
          description: The snapshot ID that was set for the account
          example: snap_abc123def456
        expires_at:
          type: string
          format: date-time
          description: When the snapshot expires
          example: '2027-01-01T00:00:00.000Z'
        github_repo:
          type: string
          nullable: true
          description: The GitHub repository URL associated with the sandbox
          example: https://github.com/org/repo
        created_at:
          type: string
          format: date-time
          nullable: true
          description: When the snapshot record was created
          example: '2025-01-01T00:00:00.000Z'
    SandboxErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Error message describing what went wrong
          example: Failed to create sandbox

````