Dental PMS

System

5 endpoints

Events

1 endpoint

get/api/v1/{org_id}/events/stream

Event 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_idstringrequired
Query Parameters
practice_idstring

Default: ""

Responses

200Successful Response
422Validation Error
detailobject[]
curl
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

get/api/health

Production 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

200Successful Response
curl
curl -X GET "https://api.example.com/api/health" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/ping

ALB liveness check

Lightweight liveness probe — always returns 200 if the process is up.

Responses

200Successful Response
curl
curl -X GET "https://api.example.com/api/ping" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"

Untagged

2 endpoints

get/api/v1/internal/orgs

List 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
statusstring

Filter by org status. Defaults to ``active``; pass ``all`` to include every status.

Default: "active"

Responses

200Successful Response
itemsobject[]required
totalintegerrequired
422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/internal/orgs" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/internal/auth/user-sync

User Sync Webhook

Handle user lifecycle events from auth service.

Responses

200Successful Response
curl
curl -X POST "https://api.example.com/api/v1/internal/auth/user-sync" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"