REST API overview

Same data as MCP, but as standard HTTP. Useful for Zapier, custom ETL, or any tool that doesn't speak MCP.

Updated 2026-04-24 · Edit this page on GitHub


title: "REST API overview" description: "Same data as MCP, but as standard HTTP. Useful for Zapier, custom ETL, or any tool that doesn't speak MCP." order: 2 category: "api" updated_at: "2026-04-24"

Every MCP tool has an HTTP twin at /api/admin/v1/*. Same rlt_mcp_ token works on both surfaces; same 60-qph rate limit is shared across them.

Quick start

# 1. Grab your token from /admin/integrations/mcp (owner-only)
# 2. Fetch the OpenAPI spec (unauthenticated)
curl https://<tenant>.app.ralthealth.com/api/admin/v1/openapi.json

# 3. Call any endpoint with Bearer auth
curl -H "Authorization: Bearer rlt_mcp_..." \
  https://<tenant>.app.ralthealth.com/api/admin/v1/health

Endpoints

Method + PathWhat
GET /api/admin/v1/analytics/revenue-overviewRevenue Overview panel data
GET /api/admin/v1/analytics/ytd-billablesYTD Billables panel data
GET /api/admin/v1/analytics/yoy-comparisonYoY Comparison panel data
GET /api/admin/v1/patient-flowList appointments (anonymous P-XXXX codes)
GET /api/admin/v1/patient-flow/{appointmentId}Single appointment + transition history
GET /api/admin/v1/billablesList billable events with filters
GET /api/admin/v1/audit-logSearch audit log
GET /api/admin/v1/modulesList enabled modules
GET /api/admin/v1/integrations/statusIntegration connection status
GET /api/admin/v1/health{ok, server_version, ...}
GET /api/admin/v1/openapi.jsonOpenAPI 3.1 spec (public)

Common query params: window, start, end, provider, payer. Endpoint-specific params documented in the OpenAPI spec.

Authoritative docs

Full reference lives in the dashboard repo:

admin-api-integration.md on GitHub

Covers:

  • All 10 endpoints with parameter details
  • Response schemas
  • Error format (RFC 7807 problem+json)
  • Rate-limit mechanics
  • PHI safeguard behavior
  • OpenAPI client-generation recipes (TypeScript, Python)
  • CORS policy

Client generation

Any OpenAPI 3.1 codegen tool works:

npx openapi-typescript https://<tenant>.app.ralthealth.com/api/admin/v1/openapi.json -o rounds-client.d.ts

or Python:

openapi-python-client generate --url https://<tenant>.app.ralthealth.com/api/admin/v1/openapi.json

No official SDK in v1 — customers own their clients.

Rate limits

Shared with MCP. 60 requests/hour per token across both surfaces combined. A token that hit MCP 40 times and REST 25 times in the same hour returns 429 on its 66th call.

Security + CORS

  • Bearer auth required on every endpoint (except /openapi.json)
  • Same-origin only; no CORS allowlist in v1 — call from your server, not a browser
  • Every call writes to mcp_query_log + audit_log with rest: prefix in tool_name to distinguish from MCP

If you hit a problem

Most REST issues are in the dashboard operator runbook: → runbook.md § MCP server operations (REST + MCP share the troubleshooting paths)

Or email support@ralthealth.com.