Skip to content
Docs

Integrations API

Manage webhooks, external MCP servers, and AI providers. See Webhooks and MCP servers.

Paths are relative to https://<your-atlas-host>/api/v1. For the API key and headers every request needs, see Authentication.

Endpoint

What it does

POST /webhooks/

Create a webhook subscription

GET /webhooks/

List all webhook subscriptions for your organization

GET /webhooks/{webhook_id}

Get a webhook subscription by ID

PATCH /webhooks/{webhook_id}

Update a webhook subscription

DELETE /webhooks/{webhook_id}

Delete a webhook subscription

GET /webhooks/{webhook_id}/deliveries

List recent delivery attempts for a webhook subscription

POST /mcp-servers/

Register an external MCP server (definition only)

GET /mcp-servers/

List your organization’s registered MCP servers

GET /mcp-servers/{config_id}

Get a single MCP server configuration

PATCH /mcp-servers/{config_id}

Update a server definition (display name, URL, consumers, enabled tools…)

DELETE /mcp-servers/{config_id}

Delete a server and its connections

POST /mcp-servers/{config_id}/verify

Connect to the server, refresh its tool catalog, and record verification

POST /mcp-servers/{config_id}/connect

Set your organization-wide bearer credential for a bearer-auth server

POST /llm-providers/

Create an LLM provider configuration

GET /llm-providers/

List all LLM provider configurations for your organization

GET /llm-providers/default

Get the default LLM provider configuration

GET /llm-providers/{provider_id}

Get an LLM provider configuration by ID

PATCH /llm-providers/{provider_id}

Update an LLM provider configuration

DELETE /llm-providers/{provider_id}

Delete an LLM provider configuration

POST /llm-providers/{provider_id}/verify

Verify LLM provider credentials

Create webhook

POST /webhooks/

Create a webhook subscription.

Request body

Field

Type

Required

Description

display_name

string

Yes

target_url

string

Yes

HTTPS endpoint that receives the events. Private and internal addresses are rejected.

secret

string

Yes

Shared secret, 16 to 500 characters, that signs each delivery.

event_patterns

list of string

Glob patterns on event names, such as automation.*; * matches all. Empty matches nothing.

workspace_id

UUID

Workspace to link the webhook to. Events are not filtered by it.

max_consecutive_failures

integer

Failed deliveries in a row before the webhook turns itself off.

Response

Field

Type

id

UUID

display_name

string

target_url

string

event_patterns

list of string

is_active

boolean

consecutive_failures

integer

max_consecutive_failures

integer

last_delivered_at

datetime

disabled_at

datetime

disabled_reason

string

created_at

datetime

List webhooks

GET /webhooks/

List all webhook subscriptions for your organization.

Response A list of objects:

Field

Type

id

UUID

display_name

string

target_url

string

event_patterns

list of string

is_active

boolean

consecutive_failures

integer

max_consecutive_failures

integer

last_delivered_at

datetime

disabled_at

datetime

disabled_reason

string

created_at

datetime

Get webhook

GET /webhooks/{webhook_id}

Get a webhook subscription by ID.

Parameters

Name

In

Type

Required

webhook_id

path

UUID

Yes

Response

Field

Type

id

UUID

display_name

string

target_url

string

event_patterns

list of string

is_active

boolean

consecutive_failures

integer

max_consecutive_failures

integer

last_delivered_at

datetime

disabled_at

datetime

disabled_reason

string

created_at

datetime

Update webhook

PATCH /webhooks/{webhook_id}

Update a webhook subscription.

Parameters

Name

In

Type

Required

webhook_id

path

UUID

Yes

Request body

Field

Type

Description

display_name

string

target_url

string

HTTPS endpoint that receives the events. Private and internal addresses are rejected.

secret

string

Shared secret, 16 to 500 characters, that signs each delivery.

event_patterns

list of string

Glob patterns on event names, such as automation.*; * matches all. Empty matches nothing.

is_active

boolean

max_consecutive_failures

integer

Failed deliveries in a row before the webhook turns itself off.

Response

Field

Type

id

UUID

display_name

string

target_url

string

event_patterns

list of string

is_active

boolean

consecutive_failures

integer

max_consecutive_failures

integer

last_delivered_at

datetime

disabled_at

datetime

disabled_reason

string

created_at

datetime

Delete webhook

DELETE /webhooks/{webhook_id}

Delete a webhook subscription.

Parameters

Name

In

Type

Required

webhook_id

path

UUID

Yes

Response

The raw file content.

List webhook deliveries

GET /webhooks/{webhook_id}/deliveries

List recent delivery attempts for a webhook subscription.

Parameters

Name

In

Type

Required

webhook_id

path

UUID

Yes

Response A list of objects:

Field

Type

id

UUID

task_type

string

idempotency_key

string

workspace_id

UUID

status

string

attempt

integer

max_attempts

integer

next_retry_at

datetime

started_at

datetime

completed_at

datetime

timeout_seconds

integer

pending_timeout_seconds

integer

progress_total

integer

progress_completed

integer

error_message

string

error_type

string

metadata

object

created_at

datetime

updated_at

datetime

Create MCP server

POST /mcp-servers/

Register an external MCP server (definition only).

Request body

Field

Type

Required

display_name

string

Yes

slug

string

Yes

url

string

Yes

transport

string

auth_type

string

auth_scope

string

oauth_service_type

string

allowed_consumers

list of string

timeout_seconds

integer

Response

Field

Type

id

UUID

display_name

string

slug

string

url

string

transport

string

auth_type

string

auth_scope

string

oauth_service_type

string

allowed_consumers

list of string

enabled_tools

list of string

discovered_tools

list of object

timeout_seconds

integer

is_enabled

boolean

is_verified

boolean

verified_at

datetime

last_error

string

health_status

string

is_connected_for_me

boolean

created_at

datetime

updated_at

datetime

List MCP servers

GET /mcp-servers/

List your organization’s registered MCP servers.

Response A list of objects:

Field

Type

id

UUID

display_name

string

slug

string

url

string

transport

string

auth_type

string

auth_scope

string

oauth_service_type

string

allowed_consumers

list of string

enabled_tools

list of string

discovered_tools

list of object

timeout_seconds

integer

is_enabled

boolean

is_verified

boolean

verified_at

datetime

last_error

string

health_status

string

is_connected_for_me

boolean

created_at

datetime

updated_at

datetime

Get MCP server

GET /mcp-servers/{config_id}

Get a single MCP server configuration.

Parameters

Name

In

Type

Required

config_id

path

UUID

Yes

Response

Field

Type

id

UUID

display_name

string

slug

string

url

string

transport

string

auth_type

string

auth_scope

string

oauth_service_type

string

allowed_consumers

list of string

enabled_tools

list of string

discovered_tools

list of object

timeout_seconds

integer

is_enabled

boolean

is_verified

boolean

verified_at

datetime

last_error

string

health_status

string

is_connected_for_me

boolean

created_at

datetime

updated_at

datetime

Update MCP server

PATCH /mcp-servers/{config_id}

Update a server definition (display name, URL, consumers, enabled tools…).

Parameters

Name

In

Type

Required

config_id

path

UUID

Yes

Request body

Field

Type

display_name

string

url

string

transport

string

oauth_service_type

string

allowed_consumers

list of string

enabled_tools

list of string

timeout_seconds

integer

is_enabled

boolean

Response

Field

Type

id

UUID

display_name

string

slug

string

url

string

transport

string

auth_type

string

auth_scope

string

oauth_service_type

string

allowed_consumers

list of string

enabled_tools

list of string

discovered_tools

list of object

timeout_seconds

integer

is_enabled

boolean

is_verified

boolean

verified_at

datetime

last_error

string

health_status

string

is_connected_for_me

boolean

created_at

datetime

updated_at

datetime

Delete MCP server

DELETE /mcp-servers/{config_id}

Delete a server and its connections.

Parameters

Name

In

Type

Required

config_id

path

UUID

Yes

Verify MCP server

POST /mcp-servers/{config_id}/verify

Connect to the server, refresh its tool catalog, and record verification.

Parameters

Name

In

Type

Required

config_id

path

UUID

Yes

Response

Field

Type

id

UUID

display_name

string

slug

string

url

string

transport

string

auth_type

string

auth_scope

string

oauth_service_type

string

allowed_consumers

list of string

enabled_tools

list of string

discovered_tools

list of object

timeout_seconds

integer

is_enabled

boolean

is_verified

boolean

verified_at

datetime

last_error

string

health_status

string

is_connected_for_me

boolean

created_at

datetime

updated_at

datetime

Connect MCP server

POST /mcp-servers/{config_id}/connect

Set your organization-wide bearer credential for a bearer-auth server.

Parameters

Name

In

Type

Required

config_id

path

UUID

Yes

Request body

Field

Type

Required

token

string

Yes

header_name

string

scheme

string

Response

Field

Type

id

UUID

server_id

UUID

owner_id

UUID

has_credentials

boolean

is_connected

boolean

connected_at

datetime

last_error

string

Create LLM provider

POST /llm-providers/

Create an LLM provider configuration.

Request body

Field

Type

Required

provider_type

openai, anthropic, azure_openai, google, google_vertex, snowflake_anthropic, openai_compatible

Yes

display_name

string

Yes

credentials

object

Yes

config

object

Response

Field

Type

Description

id

UUID

provider_type

string

display_name

string

has_credentials

boolean

configured_credential_fields

list of string

Which credential keys currently hold a value — names only, never values. Lets the edit form offer a ‘remove’ control for the optional ones, since a blank input means ‘keep’.

config

object

is_verified

boolean

verified_at

datetime

last_error

string

health_status

string

last_health_check_at

datetime

priority

integer

created_at

datetime

updated_at

datetime

List LLM providers

GET /llm-providers/

List all LLM provider configurations for your organization.

Parameters

Name

In

Type

limit

query

integer

offset

query

integer

Response A page of results (items, total, limit, offset). Each item:

Field

Type

Description

id

UUID

provider_type

string

display_name

string

has_credentials

boolean

configured_credential_fields

list of string

Which credential keys currently hold a value — names only, never values. Lets the edit form offer a ‘remove’ control for the optional ones, since a blank input means ‘keep’.

config

object

is_verified

boolean

verified_at

datetime

last_error

string

health_status

string

last_health_check_at

datetime

priority

integer

created_at

datetime

updated_at

datetime

Get default LLM provider

GET /llm-providers/default

Get the default LLM provider configuration.

Response

Field

Type

Description

id

UUID

provider_type

string

display_name

string

has_credentials

boolean

configured_credential_fields

list of string

Which credential keys currently hold a value — names only, never values. Lets the edit form offer a ‘remove’ control for the optional ones, since a blank input means ‘keep’.

config

object

is_verified

boolean

verified_at

datetime

last_error

string

health_status

string

last_health_check_at

datetime

priority

integer

created_at

datetime

updated_at

datetime

Get LLM provider

GET /llm-providers/{provider_id}

Get an LLM provider configuration by ID.

Parameters

Name

In

Type

Required

provider_id

path

UUID

Yes

Response

Field

Type

Description

id

UUID

provider_type

string

display_name

string

has_credentials

boolean

configured_credential_fields

list of string

Which credential keys currently hold a value — names only, never values. Lets the edit form offer a ‘remove’ control for the optional ones, since a blank input means ‘keep’.

config

object

is_verified

boolean

verified_at

datetime

last_error

string

health_status

string

last_health_check_at

datetime

priority

integer

created_at

datetime

updated_at

datetime

Update LLM provider

PATCH /llm-providers/{provider_id}

Update an LLM provider configuration.

Parameters

Name

In

Type

Required

provider_id

path

UUID

Yes

Request body

Field

Type

Description

display_name

string

credentials

object

config

object

clear_credential_fields

list of string

Credential keys to remove. Submitting a field blank means ‘keep the stored value’ (you cannot retype a secret you cannot see), so clearing an optional credential needs to be explicit. Removing a required key fails validation.

Response

Field

Type

Description

id

UUID

provider_type

string

display_name

string

has_credentials

boolean

configured_credential_fields

list of string

Which credential keys currently hold a value — names only, never values. Lets the edit form offer a ‘remove’ control for the optional ones, since a blank input means ‘keep’.

config

object

is_verified

boolean

verified_at

datetime

last_error

string

health_status

string

last_health_check_at

datetime

priority

integer

created_at

datetime

updated_at

datetime

Delete LLM provider

DELETE /llm-providers/{provider_id}

Delete an LLM provider configuration.

Parameters

Name

In

Type

Required

provider_id

path

UUID

Yes

Response

The raw file content.

Verify LLM provider

POST /llm-providers/{provider_id}/verify

Verify LLM provider credentials.

Parameters

Name

In

Type

Required

provider_id

path

UUID

Yes

Response

Field

Type

Description

id

UUID

provider_type

string

display_name

string

has_credentials

boolean

configured_credential_fields

list of string

Which credential keys currently hold a value — names only, never values. Lets the edit form offer a ‘remove’ control for the optional ones, since a blank input means ‘keep’.

config

object

is_verified

boolean

verified_at

datetime

last_error

string

health_status

string

last_health_check_at

datetime

priority

integer

created_at

datetime

updated_at

datetime

What’s next?

  • API overview: authentication, worked examples, and error handling

  • Webhooks: get events pushed to your systems instead of polling

  • Service accounts: create the key an integration uses

Was this page helpful?