# Connectors & Services

A connector is a registered external service the assistant can call on your behalf — a marketplace, CRM, bank, document-flow system, messenger, analytics platform, and so on. The catalog ships **99 connectors** across 16 categories, and every one is reached through the same three tools: list the catalog, read a service passport, then execute a call.

## How connectors are reached

Connectors are **not** exposed as REST resources — there is no `POST /connectors/{service}/execute` endpoint. You reach them in one of two ways:

- **Through the assistant** — start a [chat session](/docs/openai-compatible) (optionally under an [agent](/docs/agents)); the model picks the right connector and call.
- **Through the connector tools directly** — `list_services`, `describe_service`, and `connector_execute`, available both as native agent tools and over the [MCP server](/docs/mcp) (`/mcp`, bearer-authenticated). See [Calling a connector](/docs/connector-flow).

The REST endpoints under `/api/v1/connectors/*` cover connection management only (connect-screen metadata, webhook URLs) — never execution.

## Connecting an account

Before a connector returns real data, the owning organization connects an account for it. Credentials are encrypted at rest and resolved per call. The catalog spans three auth flows — API credentials, popup OAuth, and device-code — covered in [Connecting accounts](/docs/connector-auth).

## The catalog

Every connector below is addressed by its `key`. The same catalog is published as machine-readable JSON for indexing and tooling.

**Machine-readable catalog**

The full catalog — `key`, `name`, `description`, `category` — is served as JSON at [`/connectors.json`](/connectors.json), generated from the backend connector manifests.

_The full connector catalog (99 services across 16 categories) is published as machine-readable JSON at /connectors.json._

## Dynamic and gated connectors

Two catalog identities are **dynamic** and configured per tenant rather than shipped as static services: `custom_api` (call any REST API you describe) and `mcp_server` (attach an external MCP server). They are not listed above because they have no fixed capability surface.

A small number of services are **admin-only** (for example `supadata`) — they appear in the catalog but are gated at execution time.

Most connectors expose a rich, structured capability passport; two messenger connectors (`telegram`, `max_messenger`) ship a thin passport — summary and transport only, without recipe enumeration.
