System
5 endpoints
Events
1 endpoint
/api/v1/{org_id}/events/streamEvent Stream
Server-Sent Events endpoint. Streams domain events to the frontend via Redis Pub/Sub. Events are published to the ``rt:{org_id}`` channel by the fanout consumer after normalization to a frontend-safe envelope. No replay is available — clients receive events published after they connect. Query params ------------ practice_id : str, optional If provided, only events for this practice are forwarded. Headers ------- X-User-Id : str (required in dev stub mode; prod uses JWT/session)
Parameters
Path Parameters
org_idstringrequiredQuery Parameters
practice_idstringDefault: ""
Responses
detailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/events/stream" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/events/stream" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"Ops
2 endpoints
/api/healthProduction health check
Health check for ALB target groups and deployment verification. Returns 200 if all checks pass, 503 if any check fails. Checks: database, redis, storage, schema_version.
Responses
curl -X GET "https://api.example.com/api/health" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/health" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/pingALB liveness check
Lightweight liveness probe — always returns 200 if the process is up.
Responses
curl -X GET "https://api.example.com/api/ping" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/ping" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"Untagged
2 endpoints
/api/v1/internal/orgsList orgs (internal)
Return the orgs visible to pbn-connect's partner-directory dropdown. The response is intentionally minimal (id, name, slug, status) — partners only need to identify and select an org. Internal-only data such as contact details, billing, shard placement, etc. is deliberately omitted.
Parameters
Query Parameters
statusstringFilter by org status. Defaults to ``active``; pass ``all`` to include every status.
Default: "active"
Responses
itemsobject[]requiredtotalintegerrequireddetailobject[]curl -X GET "https://api.example.com/api/v1/internal/orgs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/internal/orgs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/internal/auth/user-syncUser Sync Webhook
Handle user lifecycle events from auth service.
Responses
curl -X POST "https://api.example.com/api/v1/internal/auth/user-sync" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X POST "https://api.example.com/api/v1/internal/auth/user-sync" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"