Amazon Clean Rooms API

API for creating and managing secure collaboration workspaces, memberships, configured tables, analysis templates, and executing privacy-preserving protected queries and jobs.

Documentation

Specifications

Examples

Schemas & Data

Other Resources

OpenAPI Specification

amazon-clean-rooms-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amazon Clean Rooms API
  description: >-
    Amazon Clean Rooms enables organizations to collaborate and analyze shared datasets
    without exposing underlying raw data to partners. Create secure data clean rooms
    and collaborate with any company while maintaining data privacy through differential
    privacy, cryptographic computing, and flexible analytics using SQL, PySpark, or ML models.
  version: '2022-02-17'
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/contact-us/
  termsOfService: https://aws.amazon.com/service-terms/
  x-generated-from: documentation
externalDocs:
  description: Amazon Clean Rooms API Reference
  url: https://docs.aws.amazon.com/clean-rooms/latest/apireference/
servers:
  - url: https://cleanrooms.{region}.amazonaws.com
    description: Amazon Clean Rooms Regional Endpoint
    variables:
      region:
        default: us-east-1
        description: AWS Region
tags:
  - name: Collaborations
    description: Operations for managing Clean Rooms collaborations
  - name: Memberships
    description: Operations for managing collaboration memberships
  - name: Configured Tables
    description: Operations for managing configured tables
  - name: Analysis Templates
    description: Operations for managing analysis templates
  - name: Protected Queries
    description: Operations for executing and managing protected queries
  - name: Privacy Budgets
    description: Operations for managing privacy budgets
paths:
  /collaborations:
    get:
      operationId: ListCollaborations
      summary: Amazon Clean Rooms List Collaborations
      description: >-
        Lists collaborations the caller owns, is active in, or has been invited to.
      tags:
        - Collaborations
      parameters:
        - name: nextToken
          in: query
          description: The token value retrieved from a previous paginated request.
          schema:
            type: string
        - name: maxResults
          in: query
          description: The maximum number of collaborations to return.
          schema:
            type: integer
            minimum: 1
            maximum: 100
        - name: memberStatus
          in: query
          description: The caller's status in the collaborations.
          schema:
            type: string
            enum:
              - INVITED
              - ACTIVE
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCollaborationsResponse'
              examples:
                ListCollaborations200Example:
                  summary: Default ListCollaborations 200 response
                  x-microcks-default: true
                  value:
                    collaborationList:
                      - id: "collab-abc12345"
                        arn: "arn:aws:cleanrooms:us-east-1:123456789012:collaboration/collab-abc12345"
                        name: "Marketing Analytics Collaboration"
                        creatorAccountId: "123456789012"
                        creatorDisplayName: "Acme Corp"
                        createTime: "2025-03-15T14:30:00Z"
                        updateTime: "2025-03-15T14:30:00Z"
                        memberStatus: "ACTIVE"
                        membershipStatus: "ACTIVE"
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: CreateCollaboration
      summary: Amazon Clean Rooms Create a Collaboration
      description: >-
        Creates a new collaboration. A collaboration is a shared space where multiple
        parties can analyze data together without exposing raw data to one another.
      tags:
        - Collaborations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCollaborationRequest'
            examples:
              CreateCollaborationRequestExample:
                summary: Default CreateCollaboration request
                x-microcks-default: true
                value:
                  name: "Marketing Analytics Collaboration"
                  description: "Collaborative analytics for marketing measurement"
                  members:
                    - accountId: "987654321098"
                      displayName: "Partner Corp"
                      memberAbilities:
                        - CAN_QUERY
                  creatorDisplayName: "Acme Corp"
                  creatorMemberAbilities:
                    - CAN_QUERY
                  queryLogStatus: "ENABLED"
      responses:
        '200':
          description: Collaboration created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCollaborationResponse'
              examples:
                CreateCollaboration200Example:
                  summary: Default CreateCollaboration 200 response
                  x-microcks-default: true
                  value:
                    collaboration:
                      id: "collab-abc12345"
                      arn: "arn:aws:cleanrooms:us-east-1:123456789012:collaboration/collab-abc12345"
                      name: "Marketing Analytics Collaboration"
                      creatorAccountId: "123456789012"
                      queryLogStatus: "ENABLED"
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /collaborations/{collaborationIdentifier}:
    get:
      operationId: GetCollaboration
      summary: Amazon Clean Rooms Get a Collaboration
      description: >-
        Returns metadata about a collaboration, including its ID, ARN, name, description,
        creator details, and query log status.
      tags:
        - Collaborations
      parameters:
        - name: collaborationIdentifier
          in: path
          required: true
          description: The identifier for the collaboration.
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCollaborationResponse'
              examples:
                GetCollaboration200Example:
                  summary: Default GetCollaboration 200 response
                  x-microcks-default: true
                  value:
                    collaboration:
                      id: "collab-abc12345"
                      arn: "arn:aws:cleanrooms:us-east-1:123456789012:collaboration/collab-abc12345"
                      name: "Marketing Analytics Collaboration"
                      description: "Collaborative analytics for marketing measurement"
                      creatorAccountId: "123456789012"
                      queryLogStatus: "ENABLED"
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundException'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: DeleteCollaboration
      summary: Amazon Clean Rooms Delete a Collaboration
      description: >-
        Deletes a collaboration. The collaboration must have no active memberships
        before it can be deleted.
      tags:
        - Collaborations
      parameters:
        - name: collaborationIdentifier
          in: path
          required: true
          description: The identifier for the collaboration to delete.
          schema:
            type: string
      responses:
        '200':
          description: Collaboration deleted
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundException'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /memberships:
    get:
      operationId: ListMemberships
      summary: Amazon Clean Rooms List Memberships
      description: >-
        Lists all memberships resources within the caller's account.
      tags:
        - Memberships
      parameters:
        - name: nextToken
          in: query
          description: The token value retrieved from a previous paginated request.
          schema:
            type: string
        - name: maxResults
          in: query
          description: The maximum number of memberships to return.
          schema:
            type: integer
            minimum: 1
            maximum: 100
        - name: status
          in: query
          description: A filter for membership status.
          schema:
            type: string
            enum:
              - ACTIVE
              - COLLABORATION_DELETED
              - REMOVED
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListMembershipsResponse'
              examples:
                ListMemberships200Example:
                  summary: Default ListMemberships 200 response
                  x-microcks-default: true
                  value:
                    membershipList:
                      - id: "member-abc12345"
                        arn: "arn:aws:cleanrooms:us-east-1:123456789012:membership/member-abc12345"
                        collaborationArn: "arn:aws:cleanrooms:us-east-1:123456789012:collaboration/collab-abc12345"
                        collaborationId: "collab-abc12345"
                        collaborationCreatorAccountId: "123456789012"
                        collaborationCreatorDisplayName: "Acme Corp"
                        collaborationName: "Marketing Analytics Collaboration"
                        status: "ACTIVE"
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: CreateMembership
      summary: Amazon Clean Rooms Create a Membership
      description: >-
        Creates a membership for a specific collaboration identifier and joins the
        collaboration. Membership provides access to collaborate on configured tables.
      tags:
        - Memberships
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMembershipRequest'
            examples:
              CreateMembershipRequestExample:
                summary: Default CreateMembership request
                x-microcks-default: true
                value:
                  collaborationIdentifier: "collab-abc12345"
                  queryLogStatus: "ENABLED"
      responses:
        '200':
          description: Membership created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateMembershipResponse'
              examples:
                CreateMembership200Example:
                  summary: Default CreateMembership 200 response
                  x-microcks-default: true
                  value:
                    membership:
                      id: "member-abc12345"
                      arn: "arn:aws:cleanrooms:us-east-1:123456789012:membership/member-abc12345"
                      collaborationId: "collab-abc12345"
                      status: "ACTIVE"
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /memberships/{membershipIdentifier}/protectedQueries:
    get:
      operationId: ListProtectedQueries
      summary: Amazon Clean Rooms List Protected Queries
      description: >-
        Lists protected queries, sorted by the most recent query.
      tags:
        - Protected Queries
      parameters:
        - name: membershipIdentifier
          in: path
          required: true
          description: The identifier for a membership resource.
          schema:
            type: string
        - name: nextToken
          in: query
          description: The token value retrieved from a previous paginated request.
          schema:
            type: string
        - name: maxResults
          in: query
          description: The maximum number of protected queries to return.
          schema:
            type: integer
            minimum: 1
            maximum: 100
        - name: status
          in: query
          description: A filter for the status of the protected query.
          schema:
            type: string
            enum:
              - SUBMITTED
              - STARTED
              - CANCELLED
              - CANCELLING
              - FAILED
              - SUCCESS
              - TIMED_OUT
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProtectedQueriesResponse'
              examples:
                ListProtectedQueries200Example:
                  summary: Default ListProtectedQueries 200 response
                  x-microcks-default: true
                  value:
                    protectedQueries:
                      - id: "query-abc12345"
                        membershipId: "member-abc12345"
                        membershipArn: "arn:aws:cleanrooms:us-east-1:123456789012:membership/member-abc12345"
                        createTime: "2025-03-15T14:30:00Z"
                        status: "SUCCESS"
                        receiverConfigurations: []
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: StartProtectedQuery
      summary: Amazon Clean Rooms Start a Protected Query
      description: >-
        Creates a protected query that is started by AWS Clean Rooms. A protected
        query enables analysis on configured tables without exposing underlying raw data.
      tags:
        - Protected Queries
      parameters:
        - name: membershipIdentifier
          in: path
          required: true
          description: A unique identifier for the membership to run the protected query.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StartProtectedQueryRequest'
            examples:
              StartProtectedQueryRequestExample:
                summary: Default StartProtectedQuery request
                x-microcks-default: true
                value:
                  type: "SQL"
                  sqlParameters:
                    queryString: "SELECT COUNT(*) as count FROM table1"
                  resultConfiguration:
                    outputConfiguration:
                      s3:
                        bucket: "my-results-bucket"
                        keyPrefix: "clean-rooms-results/"
                        resultFormat: "CSV"
      responses:
        '200':
          description: Protected query started
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartProtectedQueryResponse'
              examples:
                StartProtectedQuery200Example:
                  summary: Default StartProtectedQuery 200 response
                  x-microcks-default: true
                  value:
                    protectedQuery:
                      id: "query-abc12345"
                      membershipId: "member-abc12345"
                      status: "SUBMITTED"
                      createTime: "2025-03-15T14:30:00Z"
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /configuredTables:
    get:
      operationId: ListConfiguredTables
      summary: Amazon Clean Rooms List Configured Tables
      description: >-
        Lists configured tables in the caller's account.
      tags:
        - Configured Tables
      parameters:
        - name: nextToken
          in: query
          description: The token value retrieved from a previous paginated request.
          schema:
            type: string
        - name: maxResults
          in: query
          description: The maximum number of configured tables to return.
          schema:
            type: integer
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListConfiguredTablesResponse'
              examples:
                ListConfiguredTables200Example:
                  summary: Default ListConfiguredTables 200 response
                  x-microcks-default: true
                  value:
                    configuredTableList:
                      - id: "table-abc12345"
                        arn: "arn:aws:cleanrooms:us-east-1:123456789012:configuredtable/table-abc12345"
                        name: "Customer Segments Table"
                        createTime: "2025-03-15T14:30:00Z"
                        updateTime: "2025-03-15T14:30:00Z"
                        analysisRuleTypes:
                          - AGGREGATION
                        analysisMethod: "DIRECT_QUERY"
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: CreateConfiguredTable
      summary: Amazon Clean Rooms Create a Configured Table
      description: >-
        Creates a new configured table resource. A configured table represents an
        AWS Glue table that is configured for Clean Rooms collaboration with specific
        analysis rules governing how it may be queried.
      tags:
        - Configured Tables
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateConfiguredTableRequest'
            examples:
              CreateConfiguredTableRequestExample:
                summary: Default CreateConfiguredTable request
                x-microcks-default: true
                value:
                  name: "Customer Segments Table"
                  description: "Customer segmentation data for marketing analytics"
                  tableReference:
                    glue:
                      databaseName: "marketing_db"
                      tableName: "customer_segments"
                  allowedColumns:
                    - "customer_id"
                    - "segment"
                    - "region"
                  analysisMethod: "DIRECT_QUERY"
      responses:
        '200':
          description: Configured table created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateConfiguredTableResponse'
              examples:
                CreateConfiguredTable200Example:
                  summary: Default CreateConfiguredTable 200 response
                  x-microcks-default: true
                  value:
                    configuredTable:
                      id: "table-abc12345"
                      arn: "arn:aws:cleanrooms:us-east-1:123456789012:configuredtable/table-abc12345"
                      name: "Customer Segments Table"
                      analysisMethod: "DIRECT_QUERY"
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

components:
  schemas:
    Collaboration:
      type: object
      description: "Represents an AWS Clean Rooms collaboration workspace."
      properties:
        id:
          type: string
          description: "The unique ID of the collaboration."
          example: "collab-abc12345"
        arn:
          type: string
          description: "The ARN of the collaboration."
          example: "arn:aws:cleanrooms:us-east-1:123456789012:collaboration/collab-abc12345"
        name:
          type: string
          description: "A human-readable identifier for the collaboration."
          example: "Marketing Analytics Collaboration"
        description:
          type: string
          description: "A description of the collaboration."
          example: "Collaborative analytics for marketing measurement"
        creatorAccountId:
          type: string
          description: "The account ID of the creator."
          example: "123456789012"
        creatorDisplayName:
          type: string
          description: "The display name of the collaboration creator."
          example: "Acme Corp"
        createTime:
          type: string
          format: date-time
          description: "The time when the collaboration was created."
        updateTime:
          type: string
          format: date-time
          description: "The time when the collaboration was last updated."
        queryLogStatus:
          type: string
          enum:
            - ENABLED
            - DISABLED
          description: "Whether query logs are enabled."

    Membership:
      type: object
      description: "Represents a member's participation in a Clean Rooms collaboration."
      properties:
        id:
          type: string
          description: "The unique ID of the membership."
          example: "member-abc12345"
        arn:
          type: string
          description: "The ARN of the membership."
        collaborationArn:
          type: string
          description: "The ARN of the collaboration."
        collaborationId:
          type: string
          description: "The ID of the collaboration."
        collaborationCreatorAccountId:
          type: string
          description: "The account ID of the collaboration creator."
        collaborationName:
          type: string
          description: "The name of the collaboration."
        status:
          type: string
          enum:
            - ACTIVE
            - COLLABORATION_DELETED
            - REMOVED
          description: "The status of the membership."

    ProtectedQuery:
      type: object
      description: "Represents a protected query executed within a Clean Rooms collaboration."
      properties:
        id:
          type: string
          description: "The unique ID of the protected query."
          example: "query-abc12345"
        membershipId:
          type: string
          description: "The ID of the membership."
        membershipArn:
          type: string
          description: "The ARN of the membership."
        createTime:
          type: string
          format: date-time
          description: "The time when the query was created."
        status:
          type: string
          enum:
            - SUBMITTED
            - STARTED
            - CANCELLED
            - CANCELLING
            - FAILED
            - SUCCESS
            - TIMED_OUT
          description: "The status of the protected query."

    ConfiguredTable:
      type: object
      description: "Represents a configured table in Clean Rooms."
      properties:
        id:
          type: string
          description: "The unique ID of the configured table."
          example: "table-abc12345"
        arn:
          type: string
          description: "The ARN of the configured table."
        name:
          type: string
          description: "A human-readable name for the configured table."
          example: "Customer Segments Table"
        description:
          type: string
          description: "A description of the configured table."
        createTime:
          type: string
          format: date-time
          description: "The time when the configured table was created."
        updateTime:
          type: string
          format: date-time
          description: "The time when the configured table was last updated."
        analysisMethod:
          type: string
          enum:
            - DIRECT_QUERY
          description: "The analysis method for the configured table."

    ListCollaborationsResponse:
      type: object
      description: "Response for listing collaborations."
      properties:
        nextToken:
          type: string
          description: "The token value retrieved from a previous paginated request."
        collaborationList:
          type: array
          items:
            $ref: '#/components/schemas/Collaboration'
          description: "The list of collaborations."

    CreateCollaborationRequest:
      type: object
      description: "Request body for creating a collaboration."
      required:
        - name
        - members
        - creatorDisplayName
        - creatorMemberAbilities
        - queryLogStatus
      properties:
        name:
          type: string
          description: "The display name for a collaboration."
          example: "Marketing Analytics Collaboration"
        description:
          type: string
          description: "A description of the collaboration."
        members:
          type: array
          items:
            type: object
          description: "A list of initial members for the collaboration."
        creatorDisplayName:
          type: string
          description: "The display name of the collaboration creator."
        creatorMemberAbilities:
          type: array
          items:
            type: string
          description: "The abilities granted to the collaboration creator."
        queryLogStatus:
          type: string
          enum:
            - ENABLED
            - DISABLED
          description: "An indicator as to whether query logging has been enabled or disabled."

    CreateCollaborationResponse:
      type: object
      description: "Response for creating a collaboration."
      properties:
        collaboration:
          $ref: '#/components/schemas/Collaboration'

    GetCollaborationResponse:
      type: object
      description: "Response for getting a collaboration."
      properties:
        collaboration:
          $ref: '#/components/schemas/Collaboration'

    ListMembershipsResponse:
      type: object
      description: "Response for listing memberships."
      properties:
        nextToken:
          type: string
          description: "The token value retrieved from a previous paginated request."
        membershipList:
          type: array
          items:
            $ref: '#/components/schemas/Membership'
          description: "The list of memberships."

    CreateMembershipRequest:
      type: object
      description: "Request body for creating a membership."
      required:
        - collaborationIdentifier
        - queryLogStatus
      properties:
        collaborationIdentifier:
          type: string
          description: "The unique ID for the associated collaboration."
          example: "collab-abc12345"
        queryLogStatus:
          type: string
          enum:
            - ENABLED
            - DISABLED
          description: "An indicator

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/amazon-clean-rooms/refs/heads/main/openapi/amazon-clean-rooms-openapi.yml