ChartHero Developer Docs
API ReferenceOpenAPI JSON

Core Concepts

Public API v1

Get Started

Build secure partner integrations with ChartHero's public API. In a few minutes, you can authenticate with a bearer token, call the v1 REST API, and inspect the same OpenAPI artifact used by the reference docs.

What you can build

ChartHero exposes a public API for approved partners who need secure, server-side access to clinical workflow data. Use it to list encounters, fetch encounter details, read supported documents, retrieve finalized transcript data, and prepare for planned webhook notifications.

The API is designed for partner integrations such as syncing completed encounters into downstream systems, pulling clinical documents into an internal workflow, or preparing for transcript-ready notifications as they become available.

Base URL

The current API version is v1. Public REST routes live under /external/v1.

Examples in these docs use api.example.test as a placeholder host. Replace it with the API host ChartHero provides for your integration.

Item Value
Example API host https://api.example.test
Current version v1
Public REST prefix /external/v1
Example base URL https://api.example.test/external/v1
OpenAPI artifact /openapi/v1/openapi.json

The OpenAPI JSON artifact is published with these docs at /openapi/v1/openapi.json.

Authentication

API requests use bearer-token authentication. Send the API key ChartHero gives you in the Authorization header.

HTTP
Authorization: Bearer ch_sk_example_123

Keep production keys on your servers. Do not place them in browser code, mobile apps, logs, analytics events, screenshots, or support tickets.

Make your first request

Start by listing encounters available to your approved partner organization.

cURL
curl https://api.example.test/external/v1/encounters \
  -H "Authorization: Bearer ch_sk_example_123"

Use query parameters such as limit, offset, sort_order, start_at, and end_at when you are ready to page or filter results.

Example response

The response below uses synthetic identifiers and contains no real patient data.

JSON
{
  "items": [
    {
      "encounter_id": "enc_example_001",
      "organization_id": "org_example_001",
      "created_at": "2026-05-20T14:30:00Z",
      "updated_at": "2026-05-20T15:05:00Z",
      "date_of_service": "2026-05-20T14:30:00Z",
      "encounter_type": "ambient",
      "status": "completed",
      "patient": {
        "patient_id": "pat_example_001"
      },
      "documents": [
        {
          "document_id": "doc_example_001",
          "schema_type": "ambient_transcript",
          "status": "completed",
          "title": "Ambient transcript",
          "workflow_variant": "ambient",
          "audio_duration_seconds": 842.4
        }
      ]
    }
  ],
  "limit": 50,
  "offset": 0,
  "total": 1
}

Next steps