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.
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
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