Immuta Data Product API

APIs for managing data products

Operations 17

GET /api/data-product Search data products across the marketplace #
POST /api/data-product Add new data products to the marketplace #
GET /api/data-product/{id} Get data product by ID #
PUT /api/data-product/{id} Update an existing data product #
DELETE /api/data-product/{id} Delete data product by ID #
GET /api/data-product/{name}/byName Get data product by name #
PUT /api/data-product/{id}/datasources Update the data product's data sources #
GET /api/data-product/{id}/datasources Search all data sources in the data product #
GET /api/data-product/{id}/request Search all access requests for the data product #
POST /api/data-product/{id}/request Request access to a data product #
GET /api/data-product/{id}/members Search all access requests for the data product #
POST /api/data-product/{id}/request/masking-exception Request masking exception to columns in a data product #
DELETE /api/data-product/{id}/request/{requestId} Revoke access to a data product #
GET /api/data-product/{id}/datasources/all Get all data sources in the data product #
GET /api/data-product/{id}/recent-determinations Returns 5 most recent manual access determinations #
GET /api/data-product/{id}/request-forms View all request forms for a data product #
GET /api/data-product/{id}/columns Search columns in data product #

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/immuta-data-product-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

immuta-data-product-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Immuta Data Marketplace Data Product API
  description: This is the API for the Immuta Data Marketplace based on the OpenAPI 3.0 specification. The API supports the discovery and management of data products as well as access to those products including both the request and approval process.
  version: '1.0'
  contact:
    name: Support
    url: https://support.immuta.com
    email: support@immuta.com
  termsOfService: https://www.immuta.com/terms-of-service
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://{global-segment}.api.immutacloud.com/marketplace
  description: Marketplace API Endpoint
  variables:
    global-segment:
      default: na
      enum:
      - na
      - eu
      - ap
      description: Marketplace API global segment
tags:
- name: Data Product
  description: APIs for managing data products
paths:
  /api/data-product:
    get:
      description: Search data products in the marketplace using the provided filters
      operationId: searchDataProducts
      parameters:
      - name: nextToken
        required: false
        in: query
        description: Pagination token to fetch the next page of results
        schema:
          type: string
      - name: limit
        required: false
        in: query
        description: The number of items to return per page
        schema:
          minimum: 1
          maximum: 100
          default: 10
          type: number
      - name: sortOrder
        required: false
        in: query
        schema:
          default: asc
          type: string
          enum:
          - asc
          - desc
      - name: sortBy
        required: false
        in: query
        schema:
          type: string
          enum:
          - name
      - name: nameFilter
        required: false
        in: query
        schema:
          type: string
      - name: statusFilter
        required: false
        in: query
        schema:
          minItems: 0
          type: array
          items:
            type: string
            enum:
            - APPROVED
            - CANCELED
            - DENIED
            - PENDING
            - NONE
            - PUBLISHER
            - REVOKED
            - EXPIRED
      - name: roleFilter
        required: false
        in: query
        schema:
          minItems: 0
          type: array
          items:
            type: string
            enum:
            - manager
            - member
            - noRole
            - steward
      - name: expiration
        required: false
        in: query
        description: Filter data products by whether data access has an expiration.
        schema:
          type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDataProduct'
      security:
      - bearer: []
      summary: Search data products across the marketplace
      tags:
      - Data Product
    post:
      description: Add one or more data products to the marketplace
      operationId: createDataProduct
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDataProduct'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataProduct'
        '409':
          description: Data Product name in use.
      security:
      - bearer: []
      summary: Add new data products to the marketplace
      tags:
      - Data Product
  /api/data-product/{id}:
    get:
      description: Get data product metadata for the specified data product ID
      operationId: getDataProductById
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataProduct'
      security:
      - bearer: []
      summary: Get data product by ID
      tags:
      - Data Product
    put:
      description: Update an existing data product by ID
      operationId: updateDataProduct
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDataProduct'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataProduct'
      security:
      - bearer: []
      summary: Update an existing data product
      tags:
      - Data Product
    delete:
      description: Delete the specified data product from the system
      operationId: deleteDataProduct
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
      security:
      - bearer: []
      summary: Delete data product by ID
      tags:
      - Data Product
  /api/data-product/{name}/byName:
    get:
      description: Get data product metadata for the specified data product name
      operationId: getDataProductByName
      parameters:
      - name: name
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataProduct'
      security:
      - bearer: []
      summary: Get data product by name
      tags:
      - Data Product
  /api/data-product/{id}/datasources:
    put:
      description: Update the data sources associated with the data product. Any currently associated data sources not included in the payload will be removed.
      operationId: updateDataSources
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDataSources'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataProduct'
      security:
      - bearer: []
      summary: Update the data product's data sources
      tags:
      - Data Product
    get:
      description: Search all data sources for the data product using the provided filters
      operationId: searchDataSources
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: nextToken
        required: false
        in: query
        description: Pagination token to fetch the next page of results
        schema:
          type: string
      - name: limit
        required: false
        in: query
        description: The number of items to return per page
        schema:
          minimum: 1
          maximum: 100
          default: 10
          type: number
      - name: user
        required: false
        in: query
        description: The global user ID to search data source access status for
        schema:
          format: uuid
          type: string
      - name: nameFilter
        required: false
        in: query
        description: Data source name to filter by
        schema:
          default: ''
          oneOf:
          - type: string
            description: Data source name to filter by
          - type: string
            minLength: 0
            maxLength: 0
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDataSourceWithStatus'
      security:
      - bearer: []
      summary: Search all data sources in the data product
      tags:
      - Data Product
  /api/data-product/{id}/request:
    get:
      description: Search all access requests for the data product using the provided filters
      operationId: searchDataProductAccessRequests
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: searchText
        required: false
        in: query
        schema:
          type: string
      - name: status
        required: false
        in: query
        schema:
          minItems: 0
          type: array
          items:
            type: string
            enum:
            - APPROVED
            - CANCELED
            - DENIED
            - PENDING
            - NONE
            - PUBLISHER
            - REVOKED
            - EXPIRED
            example: PENDING
      - name: type
        required: false
        in: query
        schema:
          minItems: 0
          type: array
          items:
            type: string
            enum:
            - DATA_ACCESS
            - MASKING_EXCEPTION
            example: DATA_ACCESS
      - name: userIds
        required: false
        in: query
        schema:
          minItems: 0
          type: array
          items:
            type: string
      - name: includeTemporary
        required: false
        in: query
        description: Whether to include temporary access requests
        deprecated: true
        schema:
          default: false
          type: boolean
      - name: expiration
        required: false
        in: query
        description: Filter access requests by whether it has an expiration
        schema:
          type: boolean
      - name: dataProductId
        required: false
        in: query
        description: The ID of the data product to filter requests by
        schema:
          oneOf:
          - type: string
            format: cuid
            description: The ID of the data product to filter requests by
          - type: string
            format: uuid
      - name: assetId
        required: false
        in: query
        description: The ID of the asset to filter requests by
        schema:
          format: uuid
          type: string
      - name: assetType
        required: false
        in: query
        description: Filter access requests by asset type (DATA_OBJECT or DATA_PRODUCT)
        schema:
          minItems: 0
          type: array
          items:
            type: string
            enum:
            - DATA_PRODUCT
            - DATA_OBJECT
      - name: targetType
        required: false
        in: query
        description: Target type filter selections (DATA_PRODUCT, COLUMNS, or legacy type strings like table/view/schema)
        schema:
          minItems: 0
          type: array
          items:
            type: string
      - name: reviewStatus
        required: false
        in: query
        description: Filter access requests by review status
        schema:
          minItems: 0
          type: array
          items:
            type: string
            enum:
            - noReviews
            - reviewedByYou
            - awaitingReviewFromYou
      - name: offset
        required: false
        in: query
        schema:
          minimum: 0
          default: 0
          type: number
      - name: limit
        required: false
        in: query
        schema:
          minimum: 1
          default: 10
          type: number
      - name: sortOrder
        required: false
        in: query
        schema:
          default: desc
          type: string
          enum:
          - asc
          - desc
      - name: sortBy
        required: false
        in: query
        schema:
          default: createdAt
          type: string
          enum:
          - status
          - dataProduct
          - createdAt
          - updatedAt
          - expiration
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAccessRequest'
      security:
      - bearer: []
      summary: Search all access requests for the data product
      tags:
      - Data Product
    post:
      description: Create a new data access request for the specified data product
      operationId: requestAccess
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAccessRequest'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HydratedAccessRequest'
      security:
      - bearer: []
      summary: Request access to a data product
      tags:
      - Data Product
  /api/data-product/{id}/members:
    get:
      description: Search all approved access requests for the data product
      operationId: searchDataProductMembers
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: searchText
        required: false
        in: query
        schema:
          type: string
      - name: status
        required: false
        in: query
        schema:
          minItems: 0
          type: array
          items:
            type: string
            enum:
            - APPROVED
            - CANCELED
            - DENIED
            - PENDING
            - NONE
            - PUBLISHER
            - REVOKED
            - EXPIRED
            example: PENDING
      - name: type
        required: false
        in: query
        schema:
          minItems: 0
          type: array
          items:
            type: string
            enum:
            - DATA_ACCESS
            - MASKING_EXCEPTION
            example: DATA_ACCESS
      - name: userIds
        required: false
        in: query
        schema:
          minItems: 0
          type: array
          items:
            type: string
      - name: expiration
        required: false
        in: query
        description: Filter access requests by whether it has an expiration
        schema:
          type: boolean
      - name: dataProductId
        required: false
        in: query
        description: The ID of the data product to filter requests by
        schema:
          oneOf:
          - type: string
            format: cuid
            description: The ID of the data product to filter requests by
          - type: string
            format: uuid
      - name: assetId
        required: false
        in: query
        description: The ID of the asset to filter requests by
        schema:
          format: uuid
          type: string
      - name: assetType
        required: false
        in: query
        description: Filter access requests by asset type (DATA_OBJECT or DATA_PRODUCT)
        schema:
          minItems: 0
          type: array
          items:
            type: string
            enum:
            - DATA_PRODUCT
            - DATA_OBJECT
      - name: targetType
        required: false
        in: query
        description: Target type filter selections (DATA_PRODUCT, COLUMNS, or legacy type strings like table/view/schema)
        schema:
          minItems: 0
          type: array
          items:
            type: string
      - name: reviewStatus
        required: false
        in: query
        description: Filter access requests by review status
        schema:
          minItems: 0
          type: array
          items:
            type: string
            enum:
            - noReviews
            - reviewedByYou
            - awaitingReviewFromYou
      - name: offset
        required: false
        in: query
        schema:
          minimum: 0
          default: 0
          type: number
      - name: limit
        required: false
        in: query
        schema:
          minimum: 1
          default: 10
          type: number
      - name: sortOrder
        required: false
        in: query
        schema:
          default: desc
          type: string
          enum:
          - asc
          - desc
      - name: sortBy
        required: false
        in: query
        schema:
          default: createdAt
          type: string
          enum:
          - status
          - dataProduct
          - createdAt
          - updatedAt
          - expiration
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAccessRequest'
      security:
      - bearer: []
      summary: Search all access requests for the data product
      tags:
      - Data Product
  /api/data-product/{id}/request/masking-exception:
    post:
      description: Create a new masking exception request for specific columns in the specified data product
      operationId: requestMaskingException
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMaskingExceptionRequest'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HydratedAccessRequest'
      security:
      - bearer: []
      summary: Request masking exception to columns in a data product
      tags:
      - Data Product
  /api/data-product/{id}/request/{requestId}:
    delete:
      description: Updates the specified access request to revoked and revokes access to data sources associated with the data product
      operationId: revokeAccess
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: requestId
        required: true
        in: path
        schema:
          type: string
      responses:
        '204':
          description: ''
      security:
      - bearer: []
      summary: Revoke access to a data product
      tags:
      - Data Product
  /api/data-product/{id}/datasources/all:
    get:
      description: Get all data sources in the data product
      operationId: getAllDataSources
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllDataSources'
      security:
      - bearer: []
      summary: Get all data sources in the data product
      tags:
      - Data Product
  /api/data-product/{id}/recent-determinations:
    get:
      description: Returns 5 most recent data access requests with a terminal status as well as the approval records which contributed to that status.
      operationId: recentDeterminations
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: type
        required: false
        in: query
        schema:
          default: DATA_ACCESS
          type: string
          enum:
          - DATA_ACCESS
          - MASKING_EXCEPTION
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecentDeterminations'
      security:
      - bearer: []
      summary: Returns 5 most recent manual access determinations
      tags:
      - Data Product
  /api/data-product/{id}/request-forms:
    get:
      description: Get all the request forms for the specified data product
      operationId: getRequestForms
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DataProductRequestForm'
      security:
      - bearer: []
      summary: View all request forms for a data product
      tags:
      - Data Product
  /api/data-product/{id}/columns:
    get:
      description: Search and filter columns in the data product using the provided filters
      operationId: searchDataProductColumns
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: offset
        required: false
        in: query
        schema:
          minimum: 0
          default: 0
          type: number
      - name: limit
        required: false
        in: query
        schema:
          minimum: 1
          default: 10
          type: number
      - name: sortOrder
        required: false
        in: query
        schema:
          default: asc
          type: string
          enum:
          - asc
          - desc
      - name: searchText
        required: false
        in: query
        description: Search text to filter data source columns
        schema:
          type: string
      - name: maskedOnly
        required: false
        in: query
        description: Whether to filter columns that have a masking policy applied to them
        schema:
          default: false
          type: boolean
      - name: tagIds
        required: false
        in: query
        schema:
          minItems: 0
          default: []
          type: array
          items:
            type: string
      - name: dir
        required: false
        in: query
        schema:
          default: ASC
          type: string
          enum:
          - ASC
          - DESC
      - name: dataSourceIds
        required: false
        in: query
        schema:
          minItems: 0
          default: []
          type: array
          items:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedImmutaDataSourceColumns'
      security:
      - bearer: []
      summary: Search columns in data product
      tags:
      - Data Product
components:
  schemas:
    CreateMaskingExceptionRequest:
      type: object
      properties:
        user:
          type: string
          format: uuid
          description: Immuta global user ID of the user for whom access is being requested
        form:
          description: The request form submission
        columns:
          type: array
          items:
            type: object
            properties:
              columnName:
                type: string
                description: The name of the column to request masking exception for
              sourceId:
                type: string
                description: The ID of the data source this column belongs to
            required:
            - columnName
            - sourceId
            description: Column in the data source to request masking exception for
          description: List of columns to request masking exception for
      required:
      - user
      - columns
    DataProduct:
      type: object
      properties:
        id:
          oneOf:
          - type: string
            format: cuid
          - type: string
            format: uuid
        name:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\p{L}\p{M}\p{N})(\-_/\\\s]*$
          description: Data product name
        description:
          oneOf:
          - type: string
            description: Data product description
            example: All sales records from the current fiscal year
          description: Data product description
        domains:
          type: array
          items:
            type: string
          minItems: 1
          example:
          - 4d004a3a-4568-4c1d-822e-30958ef898dc
        suspended:
          type: boolean
          description: Whether access to the data product's data sources is suspended
          example: false
        createdBy:
          type: string
          format: uuid
          description: Immuta global user ID of the user who created the data product
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - APPROVED
          - CANCELED
          - DENIED
          - PENDING
          - NONE
          - PUBLISHER
          - REVOKED
          - EXPIRED
          example: PENDING
        expiration:
          oneOf:
          - type: string
            format: date-time
        stats:
          type: object
          properties:
            dataSourceCount:
              type: integer
              description: Count of data sources in a data product
            pendingRequestCount:
              type: integer
              description: Count of pending requests for a data product
            approvedRequestCount:
              type: integer
              description: Count of approved requests for a data product
            revokedRequestCount:
              type: integer
              description: Count of revoked requests for a data product
            canceledRequestCount:
              type: integer
              description: Count of canceled requests for a data product
            deniedRequestCount:
              type: integer
              description: Count of denied requests for a data product
            totalRequestCount:
              type: integer
              description: Count of total requests for a data product
          required:
          - dataSourceCount
          - pendingRequestCount
          - approvedRequestCount
          - revokedRequestCount
          - canceledRequestCount
          - deniedRequestCount
          - totalRequestCount
          description: Data product statistics
          title: Data Product Stats
        requestId:
          type: string
          format: cuid
          description: If requested, the ID of the access request for the data product
        sourceTypes:
          type: array
          items:
            type: string
          description: The types of data sources contained in the data product.
          example:
          - Databricks
          - Redshift
          - Snowflake
        metadata:
          oneOf:
          - type: object
            properties:
              subjectMatterExpert:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: Immuta global user ID of the subject matter expert for this data product
                  username:
                    type: string
                  name:
                    type: string
                required:
                - id
            required:
            - subjectMatterExpert
        dataAccessPolicy:
          default:
            rules: []
            defaultEvent:
              type: review
              params:
                stages:
                - any:
                  - type: PERMISSION
                    permission: GOVERNANCE
                  - type: DOMAIN PERMISSION
                    permission: Manage Data Products
          type: object
          properties:
            version:
              type: string
              description: Policy schema version
            rules:
              type: array
              items:
                type: object
                properties:
                  conditions:
                    oneOf:
                    - type: object
                      properties:
                        all:
                          type: array
                          items: {}
                      required:
                      - all
                      additionalProperties: false
                    - type: object
                      properties:
                        any:
                          type: array
                          items: {}
                      required:
                      - any
                      additionalProperties: false
                    - type: object
                      properties:
                        not: {}
                      required:
                      - not
                      additionalProperties: false
                  event:
                    discriminator:
                      propertyName: type
                    oneOf:
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                          - approve
                        params:
                          type: object
                          properties:
                            comment:
                              type: string
                            duration:
                              type: number
                              minimum: 1
                            durationUnit:
                              type: string
                              enum:
                              - HOURS
                              - DAYS
                              - WEEKS
                              - MONTHS
                              - YEARS
                          additionalProperties: false
                      required:
                      - type
                      - params
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                          - deny
                        params:
                          type: object
                          properties:
                            comment:
                              type: string
                      required:
                      - type
                      - params
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                          - review
                        params:
                          type: object
                          properties:
                            stages:
                              type: array
                              items:
                                oneOf:
                                - type: object
                                  properties:
                                    all:
                                      type: array
                                      items:
                                        oneOf:
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                              - USER
                                              description: Entity type
                                            id:
                                              type: string
                                              description: Entity ID
                                            displayName:
                                              type: string
                                              description: Entity display name
                                          required:
                                          - type
                                          - id
                                        - type: object
                                          properties:
                                            type:
                                              type: string
                                              enum:
                                              - GROUP
                                              description: Entity type
                                            id:
                                              type: number
             

# --- truncated at 32 KB (426 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/immuta/refs/heads/main/openapi/immuta-data-product-api-openapi.yml