Tebra Clinical API

USCDI-aligned clinical data classes for the authenticated patient. Base host (api.tebra.com) is the host documented in Tebra's own "General API Documentation" (Oct 2023) PDF and matches this spec's servers[], but as of 2026-08-14 it returns NXDOMAIN on public DNS resolvers (8.8.8.8, 1.1.1.1, system resolver) - the documented host no longer resolves. See lifecycle/ for detail; Tebra's newer FHIR API (tebra:tebra-fhir-api) covers most of the same USCDI resource set and is live.

Operations 12

GET /patient/allergyIntolerance/medication Get medication allergies and intolerances #
GET /patient/carePlan Get care plan #
GET /patient/condition/problemList Get problem list conditions #
GET /patient/device Get implantable devices #
GET /patient/diagnosticReport Get diagnostic reports #
GET /patient/encounter Get encounters #
GET /patient/goal Get goals #
GET /patient/immunization Get immunizations #
GET /patient/medicationStatement Get medications #
GET /patient/observation/vitalSigns Get vital signs #
GET /patient/procedure Get procedures #
GET /patient/smokingStatus Get smoking status #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tebra-clinical-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tebra-clinical-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tebra Data Clinical API
  description: 'Read-only REST access to a patient''s clinical health information held in the Tebra (formerly Kareo + PatientPop) platform. This is Tebra''s ONC / 21st Century Cures Act "patient access" API surface (published under tebra.com/macra), exposing USCDI-aligned clinical resources for a single authenticated patient. Every request is authenticated with an API Key passed in the `X-Api-Key` header; the key is generated by the patient from the Tebra Patient Portal under My Account > API Access Key. Connections must use HTTPS (TLS) and callers are asked to limit connection frequency to what their use case requires.

    The resource paths and the X-Api-Key authentication in this document are confirmed from Tebra''s official "General API Documentation" (Oct 2023). The request query parameters and response schemas below are MODELED to reflect typical USCDI / FHIR-flavored patient-access payloads and should be verified against the current Tebra API documentation before production use.'
  version: '1.0'
  contact:
    name: Tebra
    url: https://www.tebra.com/macra
  license:
    name: Proprietary (Tebra API Terms of Use)
    url: https://www.tebra.com
servers:
- url: https://api.tebra.com/clinical/v1/api
  description: Tebra Clinical Data API (production)
security:
- apiKeyAuth: []
tags:
- name: Clinical
  description: USCDI-aligned clinical data classes for the authenticated patient.
paths:
  /patient/allergyIntolerance/medication:
    get:
      tags:
      - Clinical
      summary: Get medication allergies and intolerances
      description: Retrieves allergy and intolerance records associated with the patient. Confirmed endpoint; response is modeled as a USCDI AllergyIntolerance list.
      operationId: getAllergyIntolerance
      responses:
        '200':
          description: Allergy / intolerance list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /patient/carePlan:
    get:
      tags:
      - Clinical
      summary: Get care plan
      description: Retrieves care plan entries for the patient. Confirmed endpoint; response modeled.
      operationId: getCarePlan
      responses:
        '200':
          description: Care plan list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /patient/condition/problemList:
    get:
      tags:
      - Clinical
      summary: Get problem list conditions
      description: Retrieves problem-list conditions for the patient. Confirmed endpoint; response modeled.
      operationId: getProblemList
      responses:
        '200':
          description: Condition list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /patient/device:
    get:
      tags:
      - Clinical
      summary: Get implantable devices
      description: Retrieves device records associated with the patient. Confirmed endpoint; response modeled.
      operationId: getDevice
      responses:
        '200':
          description: Device list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /patient/diagnosticReport:
    get:
      tags:
      - Clinical
      summary: Get diagnostic reports
      description: Retrieves diagnostic report records for the patient. Confirmed endpoint; response modeled.
      operationId: getDiagnosticReport
      responses:
        '200':
          description: Diagnostic report list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /patient/encounter:
    get:
      tags:
      - Clinical
      summary: Get encounters
      description: Retrieves encounter records associated with the patient. Confirmed endpoint; response modeled.
      operationId: getEncounter
      responses:
        '200':
          description: Encounter list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /patient/goal:
    get:
      tags:
      - Clinical
      summary: Get goals
      description: Retrieves care goals for the patient. Confirmed endpoint; response modeled.
      operationId: getGoal
      responses:
        '200':
          description: Goal list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /patient/immunization:
    get:
      tags:
      - Clinical
      summary: Get immunizations
      description: Retrieves immunization records for the patient. Confirmed endpoint; response modeled.
      operationId: getImmunization
      responses:
        '200':
          description: Immunization list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /patient/medicationStatement:
    get:
      tags:
      - Clinical
      summary: Get medications
      description: Retrieves medication statement records for the patient. Confirmed endpoint; response modeled.
      operationId: getMedicationStatement
      responses:
        '200':
          description: Medication statement list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /patient/observation/vitalSigns:
    get:
      tags:
      - Clinical
      summary: Get vital signs
      description: Retrieves vital sign observations for the patient. Confirmed endpoint; response modeled.
      operationId: getVitalSigns
      responses:
        '200':
          description: Vital sign observation list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /patient/procedure:
    get:
      tags:
      - Clinical
      summary: Get procedures
      description: Retrieves procedure records for the patient. Confirmed endpoint; response modeled.
      operationId: getProcedure
      responses:
        '200':
          description: Procedure list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /patient/smokingStatus:
    get:
      tags:
      - Clinical
      summary: Get smoking status
      description: Retrieves the patient's smoking status observation. Confirmed endpoint; response modeled.
      operationId: getSmokingStatus
      responses:
        '200':
          description: Smoking status observation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    ResourceList:
      type: object
      description: Generic container for a list of USCDI-aligned clinical resources (modeled). Actual payloads follow Tebra's clinical data format.
      properties:
        resourceType:
          type: string
        entry:
          type: array
          items:
            type: object
            additionalProperties: true
    Error:
      type: object
      properties:
        status:
          type: integer
          example: 401
        message:
          type: string
          example: Unauthorized
  responses:
    Unauthorized:
      description: The API Key is missing, revoked, or otherwise not valid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: Patient-generated API Key from the Tebra Patient Portal (My Account > API Access Key). A missing, revoked, or invalid key returns 401 Unauthorized.