LiveRamp Cleanroom Questions API

The Cleanroom Questions API from LiveRamp — 5 operation(s) for cleanroom questions.

Operations 8

POST /cleanrooms/{cleanroomId}/cleanroom-questions Add Cleanroom Question #
GET /cleanrooms/{cleanroomId}/cleanroom-questions Fetch a list of all Cleanroom Questions for a Cleanroom #
GET /cleanroom-questions/{cleanroomQuestionId} Fetch a Cleanroom Question by ID #
DELETE /cleanroom-questions/{cleanroomQuestionId} Delete Cleanroom Question #
PATCH /cleanroom-questions/{cleanroomQuestionId}/compute-capacity Update the compute capacity for a cleanroom question #
GET /cleanrooms/{cleanroomId}/questions/{questionId} Get Cleanroom Question by Cleanroom ID and Question ID #
POST /cleanroom-questions/{cleanroomQuestionId}/segmentation Enable segmentation for a Cleanroom Question #
PUT /cleanroom-questions/{cleanroomQuestionId}/segmentation Update segmentation for a Cleanroom Question #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/liveramp-cleanroom-questions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

liveramp-cleanroom-questions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: v1.0.0
  title: External APIs for Customer Integration Cleanroom Questions API
  description: APIs to create and fetch Clean Room and related details from LiveRamp (previously Habu) for Customer Integration.
  contact:
    name: LiveRamp (previously Habu)
    url: https://liveramp.com/
    email: platform_admin@habu.com
servers:
- description: External APIs for Customer Integration
  url: https://api.habu.com/v1/
security:
- application: []
tags:
- name: Cleanroom Questions
paths:
  /cleanrooms/{cleanroomId}/cleanroom-questions:
    post:
      summary: Add Cleanroom Question
      operationId: addCleanroomQuestion
      description: This operation adds a question to an existing cleanroom.
      parameters:
      - in: path
        name: cleanroomId
        description: Cleanroom ID associated with the Cleanroom Question
        schema:
          type: string
        required: true
      - in: query
        name: questionId
        description: Question ID
        required: true
        schema:
          type: string
      - in: query
        name: isEditable
        description: Whether the resultant Cleanroom Question can be edited further
        schema:
          type: boolean
          default: true
        required: false
      responses:
        '200':
          description: Cleanroom Question created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CleanRoomQuestionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      tags:
      - Cleanroom Questions
    get:
      summary: Fetch a list of all Cleanroom Questions for a Cleanroom
      operationId: getAllCleanroomQuestions
      description: This operation fetches a list of all the Cleanroom Questions that are tied to a Cleanroom.
      parameters:
      - name: cleanroomId
        in: path
        description: The cleanroom ID to fetch all the underlying Cleanroom Questions
        schema:
          type: string
        required: true
      - name: startDate
        in: query
        description: A filter applied on the CreatedOn field for a Cleanroom Question that marks as the beginning of the range of dates. Default is empty - meaning no filter applied. The format is yyyy-MM-dd
        schema:
          type: string
          format: date
          example: 2024-01-01
      - name: endDate
        in: query
        description: A filter applied on the CreatedOn field for a Cleanroom Question that marks as the end of the range of dates. Default is empty - meaning no filter applied. The format is yyyy-MM-dd
        schema:
          type: string
          format: date
          example: 2024-01-01
      - name: limit
        in: query
        description: The number of Cleanroom Questions returned per page - default is 500
        schema:
          type: integer
          default: 500
      - name: offset
        in: query
        description: The offset - default is 0
        schema:
          type: integer
          default: 0
      - name: questionType
        in: query
        description: List or Analytical
        schema:
          type: string
      responses:
        '200':
          description: Successfully fetched Cleanroom Question details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CleanRoomQuestions'
            application/xml:
              schema:
                $ref: '#/components/schemas/CleanRoomQuestions'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      tags:
      - Cleanroom Questions
  /cleanroom-questions/{cleanroomQuestionId}:
    get:
      summary: Fetch a Cleanroom Question by ID
      operationId: getCleanroomQuestionById
      description: This operation fetches a Cleanroom Question by ID.
      parameters:
      - name: cleanroomQuestionId
        in: path
        description: The Cleanroom Question ID to fetch a single Cleanroom Question's details
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successfully fetched Cleanroom Question details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CleanRoomQuestion'
            application/xml:
              schema:
                $ref: '#/components/schemas/CleanRoomQuestion'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      tags:
      - Cleanroom Questions
    delete:
      summary: Delete Cleanroom Question
      operationId: deleteCleanroomQuestion
      description: This operation deletes an existing cleanroom question.
      parameters:
      - name: cleanroomQuestionId
        in: path
        description: Cleanroom Question ID to be deleted
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successfully deleted the cleanroom question.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      tags:
      - Cleanroom Questions
  /cleanroom-questions/{cleanroomQuestionId}/compute-capacity:
    patch:
      summary: Update the compute capacity for a cleanroom question
      operationId: updateCleanroomQuestionComputeCapacity
      description: This operation updates the compute capacity for a cleanroom question. This is currently only supported for Snowflake and Hybrid Cleanrooms
      parameters:
      - in: path
        name: cleanroomQuestionId
        description: ID of the cleanroom question
        schema:
          type: string
        required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCleanroomQuestionComputeCapacityRequest'
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdateCleanroomQuestionComputeCapacityRequest'
      responses:
        '200':
          description: Cleanroom Question created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCleanroomQuestionComputeCapacityResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      tags:
      - Cleanroom Questions
  /cleanrooms/{cleanroomId}/questions/{questionId}:
    get:
      summary: Get Cleanroom Question by Cleanroom ID and Question ID
      operationId: getCleanroomQuestion
      description: This operation fetches a Cleanroom Question for a given Cleanroom ID and Question ID.
      parameters:
      - in: path
        name: cleanroomId
        description: Cleanroom ID associated with the Cleanroom Question
        schema:
          type: string
        required: true
      - in: path
        name: questionId
        description: Question ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Cleanroom Question fetched successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Cleanroom question ID
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      tags:
      - Cleanroom Questions
  /cleanroom-questions/{cleanroomQuestionId}/segmentation:
    post:
      summary: Enable segmentation for a Cleanroom Question
      operationId: enableCleanroomQuestionSegmentation
      description: This operation enables segmentation for a Cleanroom Question.
      parameters:
      - name: cleanroomQuestionId
        in: path
        description: The Cleanroom Question ID for which segmentation is being enabled
        schema:
          type: string
        required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentationRequest'
      responses:
        '200':
          description: Segmentation enabled successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentationResponse'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
      tags:
      - Cleanroom Questions
    put:
      summary: Update segmentation for a Cleanroom Question
      operationId: updateCleanroomQuestionSegmentation
      description: This operation updates segmentation for a Cleanroom Question.
      parameters:
      - name: cleanroomQuestionId
        in: path
        description: The Cleanroom Question ID for which segmentation is being updated
        schema:
          type: string
        required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentationRequest'
      responses:
        '200':
          description: Segmentation updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentationResponse'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
      tags:
      - Cleanroom Questions
components:
  schemas:
    CleanRoomQuestionRun:
      type: object
      properties:
        runId:
          type: string
          description: Run ID
        status:
          type: string
        startTimestamp:
          type: string
          format: date-time
          description: Start Timestamp of the Run
        endTimestamp:
          type: string
          format: date-time
          description: End Timestamp of the Run
    SegmentationRequest:
      description: Request body for enabling or updating segmentation for a Cleanroom Question
      required:
      - assetDisplayName
      - rampID
      properties:
        assetDisplayName:
          type: string
          description: Display name for the asset
          example: CRQ-065269-Feb2
        rampID:
          type: string
          description: Ramp ID type
          example: NAME
    UpdateCleanroomQuestionComputeCapacityRequest:
      type: object
      properties:
        computeCapacity:
          $ref: '#/components/schemas/CleanroomQuestionComputeCapacity'
          description: The new warehouse size for the cleanroom question
    DeleteResponse:
      type: object
      properties:
        success:
          type: boolean
    SegmentationResponse:
      description: Response when segmentation is enabled or updated successfully
      x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)'
      properties:
        assetId:
          type: string
          description: The created or updated asset ID
          example: 5f3e2b1a-90ab-4cde-8fgh-1234567890ab
        success:
          type: boolean
          description: Indicates whether the operation succeeded
          example: true
    CleanRoomQuestionResponse:
      type: object
      properties:
        id:
          type: string
          description: Cleanroom question ID
        cleanRoomId:
          type: string
          description: Cleanroom ID
        ownerOrganizationId:
          type: string
          description: OrganizationID that brought the question into the clean room
        questionId:
          type: string
          description: Question ID
        title:
          type: string
          description: Title of the Question
        category:
          type: string
          description: Category of the Question
        stage:
          type: string
          description: Stage of the Cleanroom Question
        status:
          type: string
        latestRun:
          $ref: '#/components/schemas/CleanRoomQuestionRun'
        datasetCount:
          type: integer
          description: Count of required datasets for this Question
        runCount:
          type: integer
          description: Count of Report Runs
        isEditable:
          type: boolean
          description: Is Editable
        questionStatus:
          type: string
        questionVersion:
          type: integer
          description: Question Version
        displayId:
          type: string
          description: display ID
        description:
          type: string
          description: Description of the Question
    CleanRoomQuestions:
      description: A list of Cleanroom Questions and their details
      type: array
      items:
        $ref: '#/components/schemas/CleanRoomQuestion'
    UpdateCleanroomQuestionComputeCapacityResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Indicates if the warehouse size was updated successfully
    CleanroomQuestionComputeCapacity:
      type: string
      description: possible compute capacities for cleanroom questions. This can be set for Hybrid, LinkedIn, Snowflake and Habu Confidential Compute. Snowflake cleanroom questions can only be DEFAULT or LARGE.
      enum:
      - DEFAULT
      - MEDIUM
      - LARGE
      - XLARGE
    CleanRoomQuestion:
      description: Model containing the Cleanroom Question details
      properties:
        id:
          type: string
        name:
          type: string
        displayId:
          type: string
        questionType:
          type: string
        category:
          type: string
        createdOn:
          type: string
          format: date-time
        status:
          type: string
        dataTypes:
          type: object
          additionalProperties:
            type: string
        parameters:
          type: object
          additionalProperties:
            type: string
        dimension:
          type: object
          additionalProperties:
            type: string
        metrics:
          type: object
          additionalProperties:
            type: string
        cleanroomId:
          type: string
        ownerOrganizationId:
          type: string
        customerQueryTemplate:
          type: string
        questionId:
          type: string
    ReturnObject:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
      required:
      - code
      - message
  responses:
    NotFound:
      description: The specified resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReturnObject'
        application/xml:
          schema:
            $ref: '#/components/schemas/ReturnObject'
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReturnObject'
        application/xml:
          schema:
            $ref: '#/components/schemas/ReturnObject'
    Unauthorized:
      description: Authorization information was missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReturnObject'
        application/xml:
          schema:
            $ref: '#/components/schemas/ReturnObject'
    Forbidden:
      description: This action is not allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReturnObject'
        application/xml:
          schema:
            $ref: '#/components/schemas/ReturnObject'
    BadRequest:
      description: Bad Request - Incorrect syntax or request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReturnObject'
        application/xml:
          schema:
            $ref: '#/components/schemas/ReturnObject'
  securitySchemes:
    application:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.habu.com/v1/oauth/token
          scopes: {}