SyncGet connection health

Get connection health

Return a health overview for the calling agency's connections: counts, connections in an error state, stale connections, connections failing repeatedly, connections that succeeded while committing nothing, and per-connection failure rates.

Staleness is measured against each connection's OWN cadence, not one flat rule: 48 hours for an ordinary connection, and a week plus 48 hours for one carrying a sync_dow. A weekly connection is more than 48 hours old on five days out of seven by design, and a health list that is permanently red for a healthy connection just teaches you to skip it — the genuinely broken connection is in the same list.

needs_attention is the single number worth putting on a dashboard — the count of distinct connections in any of those lists. Everything else here is reporting; that one is a work queue.

All of it derives from Airbyte's sync notifications, so a workspace where notifications were never registered reports a perfectly healthy zero. Check notifications_registered_at on GET /config.

curl -X GET "https://mythic-analytics.gulp.workers.dev/client/v1/airbyte/health" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "success": true,
  "data": {
    "total_connections": 8,
    "active": 7,
    "error_connections": [
      {
        "id": "example_string",
        "client_id": "example_string",
        "platform": "example_string",
        "error_message": "example_string"
      }
    ],
    "stale_connections": [
      {
        "id": "example_string",
        "client_id": "example_string",
        "platform": "example_string",
        "last_sync_at": "2024-12-25T10:00:00Z"
      }
    ],
    "failing_connections": [
      {
        "id": "example_string",
        "client_id": "example_string",
        "platform": "example_string",
        "consecutive_failures": 4,
        "error_type": "example_string",
        "error_message": "example_string",
        "log_url": "example_string"
      }
    ],
    "no_data_connections": [
      {
        "id": "example_string",
        "client_id": "example_string",
        "platform": "example_string",
        "last_sync_at": "2024-12-25T10:00:00Z",
        "records_committed": 0
      }
    ],
    "needs_attention": 2,
    "failure_rates": {}
  }
}
GET
/health
GET
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

Agency key as bearer token, format Bearer ak_.... Grants full read-write access scoped to the agency. Agency-wide scoped keys (mcp_ with no fixed location) are accepted too and need airbyte:read or airbyte:write; a client-bound mcp_ key gets 403 agency_key_required. See Using an mcp_ key over HTTP.

Agency key as bearer token, format Bearer ak_.... Grants full read-write access scoped to the agency. Agency-wide scoped keys (mcp_ with no fixed location) are accepted too and need airbyte:read or airbyte:write; a client-bound mcp_ key gets 403 agency_key_required. See Using an mcp_ key over HTTP.
Bearer Token
Bearer Tokenstring
Required

Location secret key as bearer token, format Bearer sk_.... Grants read-only access; the agency is resolved from the location. Write endpoints return 403.

Location secret key as bearer token, format Bearer sk_.... Grants read-only access; the agency is resolved from the location. Write endpoints return 403.
Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. Agency key as bearer token, format Bearer ak_.... Grants full read-write access scoped to the agency. Agency-wide scoped keys (mcp_ with no fixed location) are accepted too and need airbyte:read or airbyte:write; a client-bound mcp_ key gets 403 agency_key_required. See Using an mcp_ key over HTTP.

header
Authorizationstring
Required

Bearer token. Location secret key as bearer token, format Bearer sk_.... Grants read-only access; the agency is resolved from the location. Write endpoints return 403.

Responses

successboolean
dataobject