curl 'https://api.hydradb.com/connectors/{id}/status' \
-H "Authorization: Bearer $HYDRA_DB_API_KEY" \
-H "API-Version: 2"
{
"connector_id": "{connector_id}",
"provider": "supabase",
"status": "degraded",
"lifecycle": "active",
"sync_status": "idle",
"last_successful_sync_at": "2026-09-28T19:04:10Z",
"last_attempted_sync_at": "2026-09-28T19:04:10Z",
"next_sync_at": "2026-09-28T20:04:10Z",
"error": null,
"resources": [
{
"resource_id": "public.orders",
"display_name": "public.orders",
"status": "ok",
"last_row_count": 42,
"checked_at": "2026-09-28T19:04:09Z"
},
{
"resource_id": "public.invoices",
"display_name": "public.invoices",
"status": "failed",
"last_row_count": 0,
"message": "permission denied for table invoices",
"retryable": false,
"http_status": 403,
"checked_at": "2026-09-28T19:04:09Z",
"action": "Grant the connector's database role read access to this table."
}
]
}
Get Connector Status
Check whether a connector is working, with per-resource health, in one call.
curl 'https://api.hydradb.com/connectors/{id}/status' \
-H "Authorization: Bearer $HYDRA_DB_API_KEY" \
-H "API-Version: 2"
{
"connector_id": "{connector_id}",
"provider": "supabase",
"status": "degraded",
"lifecycle": "active",
"sync_status": "idle",
"last_successful_sync_at": "2026-09-28T19:04:10Z",
"last_attempted_sync_at": "2026-09-28T19:04:10Z",
"next_sync_at": "2026-09-28T20:04:10Z",
"error": null,
"resources": [
{
"resource_id": "public.orders",
"display_name": "public.orders",
"status": "ok",
"last_row_count": 42,
"checked_at": "2026-09-28T19:04:09Z"
},
{
"resource_id": "public.invoices",
"display_name": "public.invoices",
"status": "failed",
"last_row_count": 0,
"message": "permission denied for table invoices",
"retryable": false,
"http_status": 403,
"checked_at": "2026-09-28T19:04:09Z",
"action": "Grant the connector's database role read access to this table."
}
]
}
status for the connector plus one health entry per configured resource, so a connector that syncs four tables and fails on a fifth reports degraded rather than looking healthy.
curl 'https://api.hydradb.com/connectors/{id}/status' \
-H "Authorization: Bearer $HYDRA_DB_API_KEY" \
-H "API-Version: 2"
{
"connector_id": "{connector_id}",
"provider": "supabase",
"status": "degraded",
"lifecycle": "active",
"sync_status": "idle",
"last_successful_sync_at": "2026-09-28T19:04:10Z",
"last_attempted_sync_at": "2026-09-28T19:04:10Z",
"next_sync_at": "2026-09-28T20:04:10Z",
"error": null,
"resources": [
{
"resource_id": "public.orders",
"display_name": "public.orders",
"status": "ok",
"last_row_count": 42,
"checked_at": "2026-09-28T19:04:09Z"
},
{
"resource_id": "public.invoices",
"display_name": "public.invoices",
"status": "failed",
"last_row_count": 0,
"message": "permission denied for table invoices",
"retryable": false,
"http_status": 403,
"checked_at": "2026-09-28T19:04:09Z",
"action": "Grant the connector's database role read access to this table."
}
]
}
Reading the response
status is the overall health. It is the worst of the credential state and every resource’s state:
healthy: every resource synced and nothing needs attention.degraded: the connector is still scheduled but not fully working. At least one resource is failing, the latest sync failed and is being retried, synced documents are failing to index, or no resources are configured. Checkresources[].message, orerrorwhen the whole sync failed.failed: only you can fix it, for example by reconnecting after the provider rejected the credentials, or after a sync failure that will not clear on retry.error.actionsays what to do.checking: resources were just configured and HydraDB is still testing access to them.paused: syncing was turned off for this connector. Resume Connector turns it back on.capped: a plan limit is pausing syncs.plan_capsays which limit.
lifecycle and sync_status answer a different question: what the connector is doing right now. A connector can be syncing and degraded at the same time.
For each resource, status is the result of its last sync: ok, empty (ran and found nothing new), failed, checking, or unknown. When a resource fails, retryable: false means the provider rejected it and waiting will not help. A resource with sync_blocked: true has stopped syncing until you fix the cause in sync_blocked_reason.
acl_warning on a resource means HydraDB could not read that resource’s permissions from the provider. If you set an access rule on the resource, your rule still applies. If you did not, its objects are readable by everyone until the next successful read. Set a rule with Update Connector Resource to restrict it in the meantime.page_acl_warning means restrictions on some individual pages, for example in Confluence, could not be read, so those pages are readable by everyone until a later sync reads them. See Access Control.Related Resources
- List Connector Resources: each resource’s configuration and sync cursor
- Sync Connector: start a sync after fixing a failure
- Update Connector: reconnect with new credentials when
statusisfailed
Authorizations
API key sent as a Bearer token: "Bearer prefix.secret"
Path Parameters
Connector ID
"HydraDoc1234"
Response
OK
Connector this resource belongs to.
"conn_abc123"
Connector-level failure, such as rejected credentials or a failed sync. null when the connector itself is fine; resource problems are reported on each resource.
Show child attributes
Show child attributes
null
RFC3339 timestamp of the most recent sync attempt (successful or not).
"2026-07-02T17:00:00Z"
RFC3339 timestamp of the last successful sync completion.
"2026-07-02T17:00:00Z"
What the connector is doing now: reconnect, syncing, pending_setup, ingesting or active. Independent of status.
RFC3339 timestamp when the next scheduled sync will run.
"2026-07-02T18:00:00Z"
The plan limit that is currently stopping syncs.
Show child attributes
Show child attributes
{ "message": "Success" }
External provider being synced (e.g. slack, github, linear, notion, gmail).
"slack"
One entry per configured resource with its own health. Always an array, empty when no resources are configured.
Show child attributes
Show child attributes
[ { "display_name": "general", "http_status": 1, "last_row_count": 1, "message": "Success", "resource_id": "C0123456789", "retryable": true, "status": "completed", "sync_blocked": true } ]
Overall health: healthy, degraded (partly failing, still retrying), failed (you must act, e.g. reconnect), checking (testing new resources), paused, or capped (a plan limit paused syncs).
"healthy"
syncing while a sync is running, otherwise idle. Independent of status: a connector can be syncing and degraded at once.
"idle"
Was this page helpful?
