Skip to main content

What this family does

Connectors are the managed side of ingestion: instead of pushing content yourself, you authorize a provider once and Exo keeps pulling. GitHub is the only provider in v1. Connecting returns a URL to send the user to. The install is finalized by the provider’s callback. Syncing enqueues one backfill job per repository and returns the ids of the jobs it newly enqueued.

Routes

The shape of a call

List connectors.
The response:

Traps

not_connected is a status, not an error. An organization that has never connected a provider still gets a provider stub back, with status: "not_connected" and no id, so the provider stays discoverable. The connector error codes are connector_not_found and connector_not_syncable. Disconnect is a tombstone. It marks the installation disconnected and stops syncing. It is idempotent, and reconnecting means starting the connect flow again. Sync is safe to repeat. A backfill already in flight is absorbed by the queue, and the worker deduplicates content at ingest.

API reference

Base URL, authentication, and the conventions every route shares.

Errors

The problem envelope and the full code catalogue.