duvo.ai Integrations API
Browse the team's catalog of available integration types
Browse the team's catalog of available integration types
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/duvoai-integrations-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Duvo Public Agent Folders Integrations API
description: Public API for programmatic access to Duvo. Authenticate with API keys created in the Duvo dashboard.
version: 1.0.0
servers:
- url: https://api.duvo.ai
description: Production server
tags:
- name: Integrations
description: Browse the team's catalog of available integration types
paths:
/v2/integrations/custom/{custom_integration_id}:
delete:
operationId: deleteCustomIntegration
tags:
- Integrations
description: Delete a custom integration type (team-level catalog entry) and cascade-remove related connections. Requires manager-or-above role.
parameters:
- schema:
type: string
format: uuid
in: path
name: custom_integration_id
required: true
description: Custom integration type ID
security:
- bearerAuth: []
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
message:
type: string
required:
- success
- message
additionalProperties: false
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'403':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'404':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'500':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
summary: Delete Custom Integration
/v2/teams/{teamId}/integrations:
get:
operationId: listIntegrations
tags:
- Integrations
description: 'List the team''s integration catalog: built-in integration types plus any custom connection types defined for the team. OAuth authorization flows are browser-based and cannot be performed via this API; use the Duvo dashboard to complete OAuth-based connections.'
parameters:
- schema:
type: string
in: query
name: type
required: false
- schema:
default: 100
type: integer
minimum: 1
maximum: 100
in: query
name: limit
required: false
- schema:
type: integer
minimum: 0
maximum: 9007199254740991
in: query
name: offset
required: false
- schema:
type: string
in: path
name: teamId
required: true
security:
- bearerAuth: []
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
integrations:
type: array
items:
type: object
properties:
id:
type: string
name:
type: string
type:
type: string
provider:
type: string
user_id:
type:
- string
- 'null'
team_id:
type: string
server_url:
type: string
transport_type:
type: string
enum:
- stdio
- sse
- http
auth_method:
type:
- string
- 'null'
custom_integration_id:
type:
- string
- 'null'
icon_url:
type:
- string
- 'null'
oauth_provider:
type:
- string
- 'null'
oauth_provider_key:
type:
- string
- 'null'
oauth_scopes:
type:
- array
- 'null'
items:
type: string
has_headers:
type: boolean
has_oauth_tokens:
type: boolean
integration_id:
type:
- string
- 'null'
shared:
type: boolean
created_by:
type:
- string
- 'null'
broken_at:
type:
- string
- 'null'
format: date-time
broken_reason:
type:
- string
- 'null'
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
required:
- id
- name
- type
- provider
- user_id
- team_id
- created_at
- updated_at
additionalProperties: false
total:
type: integer
minimum: 0
maximum: 9007199254740991
limit:
type: integer
minimum: 1
maximum: 9007199254740991
offset:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- integrations
- total
- limit
- offset
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'500':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
summary: List Integrations
/v2/teams/{teamId}/integrations/custom:
post:
operationId: createCustomIntegration
tags:
- Integrations
description: Create a custom integration type (team-level catalog entry) that users can then connect as user-provided MCP connections. Requires manager-or-above role.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
minLength: 1
auth_method:
type: string
enum:
- url
- apikey
- headers
- oauth
server_url:
type: string
format: uri
oauth_client_id:
type: string
minLength: 1
oauth_client_secret:
type: string
minLength: 1
required:
- name
- auth_method
- server_url
security:
- bearerAuth: []
parameters:
- schema:
type: string
in: path
name: teamId
required: true
responses:
'201':
description: Default Response
content:
application/json:
schema:
type: object
properties:
id:
type: string
name:
type: string
type:
type: string
provider:
type: string
user_id:
type:
- string
- 'null'
team_id:
type: string
server_url:
type: string
transport_type:
type: string
enum:
- stdio
- sse
- http
auth_method:
type:
- string
- 'null'
custom_integration_id:
type:
- string
- 'null'
icon_url:
type:
- string
- 'null'
oauth_provider:
type:
- string
- 'null'
oauth_provider_key:
type:
- string
- 'null'
oauth_scopes:
type:
- array
- 'null'
items:
type: string
has_headers:
type: boolean
has_oauth_tokens:
type: boolean
integration_id:
type:
- string
- 'null'
shared:
type: boolean
created_by:
type:
- string
- 'null'
broken_at:
type:
- string
- 'null'
format: date-time
broken_reason:
type:
- string
- 'null'
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
required:
- id
- name
- type
- provider
- user_id
- team_id
- created_at
- updated_at
additionalProperties: false
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'403':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'409':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'500':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
summary: Create Custom Integration
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: API key authentication. Get your API key from the Duvo dashboard.