---
title: "Create Custom Integration"
method: POST
path: "/v2/teams/{teamId}/integrations/custom"
tags: ["Integrations"]
---

# Create Custom Integration

`POST /v2/teams/{teamId}/integrations/custom`

Create a custom integration type (team-level catalog entry) that users can then connect as user-provided MCP connections. Requires manager-or-above role.

## Path parameters

- `teamId` string, required

## Request body

- object
  - `name` string, required
  - `auth_method` 'url' | 'apikey' | 'headers' | 'oauth', required
  - `server_url` string, uri, required
  - `oauth_client_id` string
  - `oauth_client_secret` string

## Response `201`

Default Response

- object
  - `id` string, required
  - `name` string, required
  - `type` string, required
  - `provider` string, required
  - `user_id` string, nullable, required
  - `team_id` string, required
  - `server_url` string
  - `transport_type` 'stdio' | 'sse' | 'http'
  - `auth_method` string, nullable
  - `custom_integration_id` string, nullable
  - `icon_url` string, nullable
  - `oauth_provider` string, nullable
  - `oauth_provider_key` string, nullable
  - `oauth_scopes` string[], nullable
  - `has_headers` boolean
  - `has_oauth_tokens` boolean
  - `integration_id` string, nullable
  - `shared` boolean
  - `created_by` string, nullable
  - `broken_at` string, date-time, nullable
  - `broken_reason` string, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400` — Default Response
- `401` — Default Response
- `403` — Default Response
- `409` — Default Response
- `500` — Default Response

---

[API](https://skmtc.net/duvo/apis/duvo-public-api.md) · [All operations](https://skmtc.net/duvo/apis/duvo-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/duvo/duvo-public-api/revisions/dafcf3d868a9/schema)
