Uniform Integrations API
The Integrations API from Uniform — 5 operation(s) for integrations.
The Integrations API from Uniform — 5 operation(s) for integrations.
openapi: 3.0.3
info:
title: Uniform Platform Aggregates Integrations API
version: '2.0'
tags:
- name: Integrations
paths:
/api/v1/integration-credentials:
delete:
description: Revokes the credential for an integration definition. Future grants and refreshes will fail until a new credential is minted. In-flight delegation tokens remain valid until natural expiry.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
teamId:
type: string
format: uuid
description: The team ID that owns the integration
integrationDefinitionId:
type: string
format: uuid
description: The integration definition ID to mint or revoke credentials for
kind:
type: string
enum:
- app_secret
description: Kind of credential to rotate or revoke. Currently only `app_secret` is supported.
required:
- teamId
- integrationDefinitionId
- kind
additionalProperties: false
responses:
'204':
description: Credential revoked
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
description: Integration definition not found in this team, or no credential of the given kind is configured
'429':
$ref: '#/components/responses/RateLimitError'
'500':
$ref: '#/components/responses/InternalServerError'
tags:
- Integrations
security:
- ApiKeyAuth: []
- BearerAuth: []
post:
description: 'Mints or rotates the credential for an integration definition. Atomic: a successful response invalidates any previously-issued secret of the same kind. The plaintext secret is returned in the response body and cannot be retrieved later.'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
teamId:
type: string
format: uuid
description: The team ID that owns the integration
integrationDefinitionId:
type: string
format: uuid
description: The integration definition ID to mint or revoke credentials for
kind:
type: string
enum:
- app_secret
description: Kind of credential to rotate or revoke. Currently only `app_secret` is supported.
required:
- teamId
- integrationDefinitionId
- kind
additionalProperties: false
responses:
'200':
description: Credential minted or rotated.
content:
application/json:
schema:
type: object
properties:
kind:
type: string
enum:
- app_secret
description: Kind of credential to rotate or revoke. Currently only `app_secret` is supported.
integrationDefinitionId:
type: string
format: uuid
appSecret:
type: string
description: Plaintext app secret. Only returned on this response; cannot be retrieved later.
createdAt:
type: string
description: ISO timestamp when the secret became effective.
required:
- kind
- integrationDefinitionId
- appSecret
- createdAt
additionalProperties: false
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
description: Integration definition not found in this team
'429':
$ref: '#/components/responses/RateLimitError'
'500':
$ref: '#/components/responses/InternalServerError'
tags:
- Integrations
security:
- ApiKeyAuth: []
- BearerAuth: []
options:
tags:
- Integrations
responses:
'204':
description: ok
description: Handles preflight requests. This endpoint allows CORS.
/api/v1/integration-definitions:
get:
description: Gets a list of Mesh apps that are available for a Uniform team
parameters:
- schema:
type: string
description: The team ID
required: true
description: The team ID
name: teamId
in: query
- schema:
type: boolean
nullable: true
default: false
description: Whether to include Mesh apps that are shared publicly to all teams, or only custom apps registered on this team.
required: false
description: Whether to include Mesh apps that are shared publicly to all teams, or only custom apps registered on this team.
name: includePublic
in: query
- schema:
type: boolean
nullable: true
description: Whether to use team-specific integration types or team-agnostic types (for serialization across projects)
required: false
description: Whether to use team-specific integration types or team-agnostic types (for serialization across projects)
name: teamSpecificType
in: query
responses:
'200':
description: 200 response
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
type: object
properties:
type:
type: string
minLength: 2
pattern: ^[a-z0-9-_]+$
displayName:
type: string
minLength: 1
logoIconUrl:
type: string
badgeIconUrl:
type: string
category:
type: string
enum:
- analytics
- cdn
- classic
- commerce
- content
- comingSoon
- data
- deprecated
- email
- framework
- search
- starters
- translation
- uniform
- ai
- unknown
public:
type: boolean
scopes:
type: array
items:
type: string
identityDelegation:
type: boolean
integrationId:
type: string
format: uuid
hasAppSecret:
type: boolean
baseLocationUrl:
type: string
locations:
type: object
properties:
install:
type: object
properties:
description:
type: array
items:
type: string
informationUrl:
type: string
canvasPackageUrl:
type: string
settings:
type: object
properties:
url:
type: string
locations:
type: object
additionalProperties:
type: object
properties:
url:
type: string
layout:
type: object
properties:
height:
type: string
enum:
- full-height
width:
type: string
enum:
- wide
additionalProperties: false
required:
- url
additionalProperties: false
required:
- url
canvas:
type: object
properties:
parameterTypes:
type: array
items:
type: object
properties:
type:
type: string
displayName:
type: string
configureUrl:
type: string
editorUrl:
type: string
configurationLocations:
type: object
additionalProperties:
type: object
properties:
url:
type: string
layout:
type: object
properties:
height:
type: string
enum:
- full-height
width:
type: string
enum:
- wide
additionalProperties: false
required:
- url
additionalProperties: false
editorLocations:
type: object
additionalProperties:
type: object
properties:
url:
type: string
layout:
type: object
properties:
height:
type: string
enum:
- full-height
width:
type: string
enum:
- wide
additionalProperties: false
required:
- url
additionalProperties: false
renderableInPropertyPanel:
type: boolean
localizable:
type: string
enum:
- default-yes
- default-no
- 'yes'
- 'no'
allowedPlacement:
type: array
items:
type: string
enum:
- parameter
- field
required:
- type
- displayName
- editorUrl
editorTools:
anyOf:
- type: object
properties:
composition:
type: object
properties:
url:
type: string
required:
- url
componentPattern:
type: object
properties:
url:
type: string
required:
- url
compositionDefaults:
type: object
properties:
url:
type: string
required:
- url
entry:
type: object
properties:
url:
type: string
required:
- url
entryPattern:
type: object
properties:
url:
type: string
required:
- url
- type: array
items:
type: object
properties:
id:
type: string
minLength: 1
name:
type: string
minLength: 1
url:
type: string
minLength: 1
iconUrl:
type: string
access:
type: object
properties:
teamAdminRequired:
type: boolean
enum:
- true
additionalProperties: false
editorTypes:
type: array
items:
type: string
enum:
- composition
- componentPattern
- compositionDefaults
- entry
- entryPattern
required:
- id
- name
- url
personalization:
type: object
properties:
selectionAlgorithms:
type: object
additionalProperties:
type: object
properties:
displayName:
type: string
description:
type: string
criteriaEditorUrl:
type: string
required:
- displayName
dataConnectors:
type: array
items:
type: object
properties:
type:
type: string
displayName:
type: string
dataSourceEditorUrl:
type: string
supportsUnpublishedData:
type: boolean
dataSourceEditorLocations:
type: object
additionalProperties:
type: object
properties:
url:
type: string
layout:
type: object
properties:
height:
type: string
enum:
- full-height
width:
type: string
enum:
- wide
additionalProperties: false
required:
- url
additionalProperties: false
dataArchetypes:
type: object
additionalProperties:
type: object
properties:
displayName:
type: string
typeEditorUrl:
type: string
typeEditorLocations:
type: object
additionalProperties:
type: object
properties:
url:
type: string
layout:
type: object
properties:
height:
type: string
enum:
- full-height
width:
type: string
enum:
- wide
additionalProperties: false
required:
- url
additionalProperties: false
dataEditorUrl:
type: string
dataEditorUrlLocations:
type: object
additionalProperties:
type: object
properties:
url:
type: string
layout:
type: object
properties:
height:
type: string
enum:
- full-height
width:
type: string
enum:
- wide
additionalProperties: false
required:
- url
additionalProperties: false
embeddedEditor:
type: string
dataResourceSelectorUrl:
type: string
dataResourceSelectorLocations:
type: object
additionalProperties:
type: object
properties:
url:
type: string
layout:
type: object
properties:
height:
type: string
enum:
- full-height
width:
type: string
enum:
- wide
additionalProperties: false
required:
- url
additionalProperties: false
required:
- displayName
badgeIconUrl:
type: string
required:
- type
- displayName
assetLibrary:
type: object
properties:
assetLibraryUrl:
type: string
assetParameterUrl:
type: string
assetLibraryLocations:
type: object
additionalProperties:
type: object
properties:
url:
type: string
layout:
type: object
properties:
height:
type: string
enum:
- full-height
width:
type: string
enum:
- wide
additionalProperties: false
required:
- url
additionalProperties: false
unstable_dynamicAssets:
type: object
properties:
dataConnectorId:
type: string
assetsListArchetypeId:
type: string
singleAssetArchetypeId:
type: string
required:
- dataConnectorId
- assetsListArchetypeId
- singleAssetArchetypeId
required:
- assetLibraryUrl
- assetParameterUrl
unstable_assetLibrary:
type: object
properties:
url:
type: string
dynamicAssets:
type: object
properties:
dataConnectorId:
type: string
assetsListArchetypeId:
type: string
singleAssetArchetypeId:
type: string
required:
- dataConnectorId
- assetsListArchetypeId
- singleAssetArchetypeId
required:
- url
ai:
type: object
properties:
generateUrl:
type: string
metadataUrl:
type: string
prompts:
type: array
items:
type: object
properties:
id:
type: string
name:
type: string
text:
type: string
data:
type: object
nullable: true
properties:
arguments:
type: object
nullable: true
additionalProperties:
type: object
properties:
type:
type: string
displayName:
type: string
nullable: true
helpText:
type: string
nullable: true
default:
type: string
nullable: true
required:
- type
metadata:
nullable: true
parameterTypes:
type: array
items:
type: string
required:
- id
- name
- text
- parameterTypes
required:
- generateUrl
unstable_ai:
type: object
properties:
generateUrl:
type: string
metadataUrl:
type: string
required:
- generateUrl
aiAgents:
type: object
properties:
functionCalling:
type: object
# --- truncated at 32 KB (124 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/uniform/refs/heads/main/openapi/uniform-integrations-api-openapi.yml