---
title: "Read one local bridge's recorded connection state"
method: GET
path: "/api/v1/federation/bridges/{project_name}"
---

# Read one local bridge's recorded connection state

`GET /api/v1/federation/bridges/{project_name}`

## Request

- The document declares no server URL.
- Auth: none declared

## Path parameters

- `project_name` string, required

## Response `200`

OK

- FederationBridgeStatusBody
  - `credential_status` string, required
  - `direction` 'bidirectional' | 'pull_only', required
  - `federation` FederationProjectStatus
    - `active_quarantine_count` integer, required
    - `active_quarantines` FederationQuarantineSummary[], required
      - `created_at` string, date-time, required
      - `direction` string, required
      - `error` string, required
      - `event_uids` string[], required
      - `first_event_id` integer, required
      - `id` integer, required
      - `last_event_id` integer, required
    - `allow_insecure` boolean
    - `bound_actor` string
    - `capabilities` string
    - `credential_expires_at` string, date-time
    - `credential_status` string
    - `embedding` FederationEmbeddingStatus
      - `artifact_limit` integer, required
      - `artifacts` FederationEmbeddingArtifactStatus[], required
        - `digest` string, required
        - `issue_uid` string, required
        - `reason` string
        - `state` string, required
      - `last_error` string: Last failed producer check on this daemon, such as an unreachable upstream hub or a missing federation credential.
      - `limited` boolean, required
      - `producer` ProjectEmbeddingProducer
        - `producer_instance_uid` string, required
        - `recipe` ArtifactIdentity, required
          - `dimensions` integer, required
          - `encoding` string, required
          - `input_hash` string
          - `input_type` string, required
          - `issue_uid` string
          - `model` string, required
          - `model_revision` string
          - `normalization` string, required
          - `preprocessing` string, required
          - `producer_instance_uid` string
          - `project_uid` string
          - `provider` string, required
          - `recipe_fingerprint` string, required
          - `recipe_version` integer, required
          - `split_max_runes` integer, required
          - `split_overlap` integer, required
      - `reason` string: Why this daemon cannot generate for the project. producer_recipe_changed: this daemon is the selected producer, but its configured recipe differs from the selected recipe; select the producer again at the root. producer_unavailable: this daemon's last check as the selected producer failed; see last_error.
      - `state` string, required
    - `enabled` boolean, required
    - `enrollment_count` integer, required
    - `hub_project_id` integer
    - `hub_project_uid` string
    - `hub_url` string
    - `last_error` string
    - `last_error_at` string, date-time
    - `last_pull_started_at` string, date-time
    - `last_pull_success_at` string, date-time
    - `last_push_started_at` string, date-time
    - `last_push_success_at` string, date-time
    - `last_reset_at` string, date-time
    - `last_successful_sync_at` string, date-time
    - `last_sync_at` string, date-time
    - `live_claim_count` integer, required
    - `pending_claim_count` integer, required
    - `pending_push_count` integer, required
    - `pending_push_high_water_event_id` integer, required
    - `project_id` integer, required
    - `project_name` string, required
    - `project_uid` string, required
    - `provider_status` string
    - `pull_cursor_event_id` integer, required
    - `push_cursor_event_id` integer, required
    - `push_enabled` boolean, required
    - `recent_violation_count` integer, required
    - `recent_violations` FederationViolationSummary[], required
      - `actor` string
      - `at` string, date-time, required
      - `event_id` integer, required
      - `event_uid` string, required
      - `issue_uid` string, required
      - `offending_event_type` string
      - `offending_event_uid` string
      - `offending_origin_instance_uid` string
      - `reason` string
      - `short_id` string
    - `relay_checkpoint_bytes` integer: Measured size in bytes of the signed relay reset checkpoint this root would build for the project now. Present only for hub projects rooted on this daemon.
    - `relay_checkpoint_capacity_bytes` integer: Largest relay reset checkpoint this root builds. New relay enrollments are refused with 409 relay_project_too_large once relay_checkpoint_bytes exceeds it. Present only for hub projects rooted on this daemon.
    - `relay_checkpoint_error` string: Why the relay checkpoint could not be measured for this status read. The size fields are omitted while it is set.
    - `reset_blocker` string
    - `role` string, required
    - `root_signing_key` 'available' | 'unavailable'
    - `unresolved_violation_count` integer, required
  - `hub_catalog` string
  - `hub_url` string, required
  - `local_account` string, required
  - `project_id` integer
  - `project_name` string, required
  - `project_uid` string, required
  - `relay` RelayBindingConfig
    - `authority_uid` string, required
    - `binding_uid` string, required
    - `hub_path` string[], required
    - `local_actor` string, required
    - `protocol_version` integer, required
    - `reset_epoch` integer, required
    - `serve_downstream` boolean, required
    - `upstream_instance_uid` string, required
    - `upstream_revoked` boolean, required
  - `state` 'connected' | 'enrollment_pending' | 'paused' | 'offline' | 'revoked' | 'signing_rejected', required
  - `upstream_account` string, required

## Other responses

- `default`: Error

## Changes

- **2026-10-14** `c5792dd95eca`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/kenn-io/apis/kata/changes/api/v1/federation/bridges/:project_name/get.md)

---

[API](https://skmtc.dev/kenn-io/apis/kata.md) - [All operations](https://skmtc.dev/kenn-io/apis/kata/llms.txt) - [OpenAPI document](https://skmtc.dev/kenn-io/apis/kata/revisions/351807923500?raw)
