Endpoints
The sidebar lists the endpoints you use to set a connector up and change it. The others are linked here. Set up a connector:- List Connector Providers:
GET /connectors/providerslists the providers you can connect. Add?id={provider}to describe one, including the credentials it needs. - Create Connector:
POST /connectorsstores credentials for one provider account. - Discover Resources:
GET /connectors/{id}/discoverlists what the credentials can reach. - Configure Connector:
POST /connectors/{id}/configureactivates resources and starts the first sync.
- Get Connector Status:
GET /connectors/{id}/statussays whether the connector and each resource are working. - List Connectors:
GET /connectorslists your connectors and their sync state. - Get Connector:
GET /connectors/{id}reads one connector’s settings. - List Connector Resources:
GET /connectors/{id}/resourcesreads each resource’s settings. - Sync Connector:
POST /connectors/{id}/syncsyncs now instead of waiting for the schedule. - Pause Connector and Resume Connector:
POST /connectors/{id}/pauseand/resumeturn scheduled syncs off and back on.
- Update Connector:
PATCH /connectors/{id}changes the sync interval, connector-level instructions or credentials. - Update Connector Resource:
PATCH /connectors/{id}/resources/{resource_id}changes one resource’s instructions or access rule. - Add Connector Resource:
POST /connectors/{id}/resourcesadds one new resource. - Delete Connector Resource:
DELETE /connectors/{id}/resources/{resource_id}stops syncing a resource. - Delete Connector:
DELETE /connectors/{id}removes the connector.
Typical call sequence
POST /connectorswith the provider’s credentials.GET /connectors/{id}/discoverto see which resources are available.POST /connectors/{id}/configurewith the resources to sync. This starts the first sync.GET /connectors/{id}/statusuntilstatusishealthyandlifecycleisactive.POST /queryto search the synced data.query_appsdefaults totrue, so connector content is searched without setting it.
sync_interval_seconds (one hour by default). Call POST /connectors/{id}/sync only when you need data sooner.
Which endpoint changes what
- Instructions or access rule on one resource:
PATCH /connectors/{id}/resources/{resource_id}. Only the fields you send change. - Instructions, sync interval or credentials for the whole connector:
PATCH /connectors/{id}. Only the fields you send change. - Name, type, database, collection or metadata of resources:
POST /connectors/{id}/configure. Resources you leave out of the list are not touched. For each resource you list, sendnameandresource_typeevery time, because omitted values are cleared. Its sync position, instructions and access rule are kept. - A brand new resource:
POST /connectors/{id}/configureorPOST /connectors/{id}/resources.
{resource_id} is the resource’s id as returned by the Discover and List Resources endpoints, for example a Slack channel id or a Supabase schema.table name. URL-encode it when it contains spaces or other reserved characters.
Authentication
All connector endpoints use your HydraDB API key:Key concepts
- Connector: an authenticated connection to one external provider account. It owns every resource synced from that account.
- Resource: a syncable unit inside the account, such as a Slack channel, a GitHub repository, a Notion database or a Supabase table. You choose which resources to sync.
- Cursor: each resource’s saved sync position. Syncs are incremental: each one fetches only what changed since the cursor.
- provider_account_scope: an identifier for the external account, such as a Slack workspace id. It is part of every synced object’s deduplication key, so set a distinct value per account when you connect several accounts of one provider.
Metadata on synced objects
Every object a connector syncs carries two metadata layers. Attributes (metadata) are declared in your database’s metadata schema and indexed for fast exact-match filtering. HydraDB always writes connector_id and provider here. Add your own fields per resource with metadata on Configure Connector. The system fields win on conflict.
Custom attributes (additional_metadata) are free-form and need no schema. HydraDB always writes connector_id and resource_id here, plus provider-specific fields that List Connector Providers shows under filterable_fields when called with ?id={provider}. Add your own per resource with additional_metadata on Configure. Provider-generated fields win on conflict.
To scope a query to one connector, filter on connector_id:
Querying with a custom attribute filter
resource_id the same way to scope to one channel, repository or table.
Multiple connectors per provider
You can create more than one connector for the same provider, such as two Slack workspaces. Each has its own credentials, resources andprovider_account_scope. Give each a distinct provider_account_scope, or objects from the two accounts that share an external id can collide.
You can also route resources from one connector into different collections with Configure Connector:
