Immuta Access Request API

APIs for managing data access

Operations 15

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}/recent-determinations Returns 5 most recent manual access determinations #
GET /api/access-request Search access requests #
GET /api/access-request/approved-masking-exception-columns Get the list of approved masking exception columns for the specified user #
GET /api/access-request/{id} Get individual access request #
DELETE /api/access-request/{id} Cancel a pending access request #
GET /api/access-request/{id}/records Get approval records associated with the a request #
GET /api/access-request/{id}/risk-assessment Get the risk assessment for a specific access request #
GET /api/access-request/{id}/masking-exception-columns Search masking exception columns associated with the masking exception request #
DELETE /api/asset/{id}/request/{requestId} Revoke access to an asset #
PUT /api/approval-record/{id} Approve or reject an approval record #

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-access-request-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 email required.

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

OpenAPI Specification

immuta-access-request-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Immuta Data Marketplace Access Request 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: Access Request
  description: APIs for managing data access
paths:
  /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:
      - Access Request
    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:
      - Access Request
  /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:
      - Access Request
  /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:
      - Access Request
  /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:
      - Access Request
  /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:
      - Access Request
  /api/access-request:
    get:
      description: Search and filter access requests the current user can manage
      operationId: searchAccessRequests
      parameters:
      - 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: role
        required: false
        in: query
        schema:
          minItems: 0
          default:
          - requestor
          - manager
          - steward
          type: array
          items:
            type: string
            enum:
            - requestor
            - manager
            - steward
      - 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 access requests
      tags:
      - Access Request
  /api/access-request/approved-masking-exception-columns:
    get:
      description: Returns the list of approved masking exception columns for the specified user
      operationId: getApprovedMaskingExceptionColumns
      parameters:
      - name: userId
        required: true
        in: query
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestedMaskingExceptionColumns'
      security:
      - bearer: []
      summary: Get the list of approved masking exception columns for the specified user
      tags:
      - Access Request
  /api/access-request/{id}:
    get:
      description: Returns specific details for a specific access request
      operationId: getAccessRequestById
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HydratedAccessRequest'
      security:
      - bearer: []
      summary: Get individual access request
      tags:
      - Access Request
    delete:
      description: Cancel the specified pending access request by ID, cascading the cancellation to any pending and blocked approval records.
      operationId: cancelAccessRequest
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '204':
          description: ''
      security:
      - bearer: []
      summary: Cancel a pending access request
      tags:
      - Access Request
  /api/access-request/{id}/records:
    get:
      description: Returns all approval records associated with a specific access request
      operationId: getAccessRequestRecords
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalRecords'
      security:
      - bearer: []
      summary: Get approval records associated with the a request
      tags:
      - Access Request
  /api/access-request/{id}/risk-assessment:
    get:
      description: Returns the risk assessment for a specific access request
      operationId: getRiskAssessment
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RiskAssessmentResponse'
      security:
      - bearer: []
      summary: Get the risk assessment for a specific access request
      tags:
      - Access Request
  /api/access-request/{id}/masking-exception-columns:
    get:
      description: Search masking exception columns associated with a specific masking exception request
      operationId: searchAccessRequestMaskingExceptionColumns
      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
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMaskingExceptionColumns'
      security:
      - bearer: []
      summary: Search masking exception columns associated with the masking exception request
      tags:
      - Access Request
  /api/asset/{id}/request/{requestId}:
    delete:
      description: Updates the specified access request to revoked and revokes access to data source(s) associated with the asset.
      operationId: revokeAssetRequest
      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 an asset
      tags:
      - Access Request
  /api/approval-record/{id}:
    put:
      description: Modify a pending approval record as an approver
      operationId: updateApprovalRecord
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateApprovalRecordRequest'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalRecord'
      security:
      - bearer: []
      summary: Approve or reject an approval record
      tags:
      - Access Request
components:
  schemas:
    RiskAssessmentResponse:
      oneOf:
      - type: object
        properties:
          conflictDetected:
            type: boolean
          approvalRisk:
            type: string
            enum:
            - HIGH
            - MODERATE
            - LOW
            - INDETERMINATE
            - PENDING
          recommendation:
            oneOf:
            - type: string
              enum:
              - APPROVED
              - BLOCKED
              - CANCELED
              - DENIED
              - PENDING
            - type: string
              enum:
              - NONE
          nAllowed:
            type: number
          nDenied:
            type: number
          riskValue:
            type: number
          cohort:
            type: object
            properties:
              literals:
                type: array
                items:
                  allOf:
                  - oneOf:
                    - type: object
                      properties:
                        name:
                          type: string
                        value:
                          type: string
                      required:
                      - name
                      - value
                    - type: object
                      properties:
                        name:
                          type: string
                      required:
                      - name
                    - type: object
                      properties:
                        label:
                          type: string
                        similarRequests:
                          type: object
                          additionalProperties:
                            type: string
                      required:
                      - label
                  - type: object
                    properties:
                      negation:
                        type: boolean
            required:
            - literals
          medianApprovalTimeWindowInDays:
            oneOf:
            - type: number
          explanation:
            type: string
          approvalReasons:
            type: array
            items:
              type: string
          denialReasons:
            type: array
            items:
              type: string
        required:
        - conflictDetected
        - approvalRisk
        - recommendation
        - nAllowed
        - nDenied
        - riskValue
        - cohort
        - explanation
        - approvalReasons
        - denialReasons
      - type: object
        properties:
          approvalRisk:
            type: string
            enum:
            - HIGH
            - MODERATE
            - LOW
            - INDETERMINATE
            - PENDING
        required:
        - approvalRisk
    HydratedAccessRequest:
      type: object
      properties:
        id:
          type: string
          format: cuid
        requestingUser:
          type: object
          properties:
            id:
              type: number
            iamId:
              type: string
              description: ID of the IAM the user is associated with
            globalUserId:
              type: string
              format: uuid
              description: Immuta global user ID
            username:
              type: string
              description: Username/login name for the user
            name:
              type: string
              description: Display name
            email:
              type:
              - string
              - 'null'
              description: Email address
            authorizations:
              type: object
              additionalProperties:
                type: array
                items:
                  type: string
          required:
          - id
          - iamId
          - globalUserId
          - username
          - name
          title: Immuta User
        user:
          type: object
          properties:
            id:
              type: number
            iamId:
              type: string
              description: ID of the IAM the user is associated with
            globalUserId:
              type: string
              format: uuid
              description: Immuta global user ID
            username:
              type: string
              description: Username/login name for the user
            name:
              type: string
              description: Display name
            email:
              type:
              - string
              - 'null'
              description: Email address
            authorizations:
              type: object
              additionalProperties:
                type: array
                items:
                  type: string
          required:
          - id
          - iamId
          - globalUserId
          - username
          - name
          title: Immuta User
        formVersion:
          type: string
        form:
          description: The request form submission
        type:
          type: string
          enum:
          - DATA_ACCESS
          - MASKING_EXCEPTION
          example: DATA_ACCESS
        metadata:
          description: Metadata associated with the access request
        status:
          type: string
          enum:
          - APPROVED
          - CANCELED
          - DENIED
          - PENDING
          - NONE
          - PUBLISHER
          - REVOKED
          - EXPIRED
          example: PENDING
        expiration:
          type: string
          format: date-time
          description: When the temporary access will expire
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        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
          required:
          - id
          - name
        asset:
          type: object
          properties:
            id:
              oneOf:
              - type: string
                format: cuid
              - type: string
                format: uuid
            type:
              type: string
              enum:
              - DATA_OBJECT
            name:
              type: string
              minLength: 1
              description: Asset name
            metadata:
              type: object
              properties:
                subjectMatterExperts:
                  default: []
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Immuta global user ID of the subject matter expert
                      username:
                        type: string
                      name:
                        type: string
                    required:
                    - id
                objectPath:
                  type: array
                  items:
                    type: string
                technology:
                  type: string
                  enum:
                  - Snowflake
                  - PostgreSQL
                  - Databricks
                  - Glue
                  - MySQL
                  - Teradata
                  - MariaDB
                  - Oracle
                  - SQLServer
                  - Trino
                  - Redshift
                  - BigQuery
                host:
                  type: string
                port:
                  type: integer
                  minimum: 1
                  maximum: 65535
                legacyType:
                  type: string
                dataSourceId:
                  type: number
                description:
                  oneOf:
                  - type: string
                externalLink:
                  oneOf:
                  - type: string
              required:
              - objectPath
              description: Data object asset metadata
          required:
          - id
          - type
          - name
          - metadata
      required:
      - id
      - requestingUser
      - user
      - formVersion
      - type
      - status
      - createdAt
      - updatedAt
      title: Hydrated Access Request
      description: Access request with user and data product metadata
    RecentDeterminations:
      type: object
      properties:
        determinations:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: cuid
              requestingUser:
                type: object
                properties:
                  id:
                    type: number
                  iamId:
                    type: string
                    description: ID of the IAM the user is associated with
                  globalUserId:
                    type: string
                    format: uuid
                    description: Immuta global user ID
                  username:
                    type: string
                    description: Username/login name for the user
                  name:
                    type: string
                    description: Display name
                  email:
                    type:
                    - string
                    - 'null'
                    description: Email address
                  authorizations:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        type: string
                required:
                - id
                - iamId
                - globalUserId
                - username
                - name
                title: Immuta User
              user:
                type: object
                properties:
                  id:
                    type: number
                  iamId:
                    type: string
                    description: ID of the IAM the user is associated with
                  globalUserId:
                    type: string
                    format: uuid
                    description: Immuta global user ID
                  username:
             

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