PT
PT365Developer Platform

White-label HEP infrastructure

Exercise content.
Built for the chart.

Search a versioned catalog or launch a complete prescription picker without sending patient data to PT365.

REST + OpenAPI 3.1OAuth 2.010-exercise sandboxNo PHI

Start free

Get test credentials by email.

01

The EMR stays in control.

PT365 supplies versioned content. Your EMR owns patients, assignments, delivery, PDFs, consent, and the medical record.

02

Cache without losing history.

Immutable revisions, checksummed media, change cursors, and signed webhooks support fast local caching and exact historical snapshots.

03

One picker, any product.

Launch an origin-bound, fully themed iframe and receive ordered exercise snapshots and prescriptions through exact-origin browser events.

Quickstart

From credentials to picker.

Sandbox and production use the same schema. The sandbox token can access only the designated ten exercises. Prefer an assisted setup? Copy the complete coding-assistant prompt.

  1. 1

    Exchange credentials

    Keep the client secret on your backend. Access tokens expire after one hour.

    curl -u "$PT365_CLIENT_ID:$PT365_CLIENT_SECRET" \
      -H "Content-Type: application/x-www-form-urlencoded" \
      -d "grant_type=client_credentials" \
      https://www.physicaltherapy365.com/api/v1/oauth/token
  2. 2

    Search exercises

    Use cursor pagination, filters, ETags, and the change feed to maintain a licensed cache.

    curl -H "Authorization: Bearer $PT365_ACCESS_TOKEN" \
      "https://www.physicaltherapy365.com/api/v1/exercises?region=Knee&limit=10"
  3. 3

    Create a picker session

    Send an opaque clinician identifier and an allowlisted origin—never patient or encounter context.

    curl -X POST \
      -H "Authorization: Bearer $PT365_ACCESS_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "origin": "https://sandbox.your-emr.com",
        "clinicianId": "opaque-clinician-7f21",
        "theme": { "brandName": "Your HEP", "primaryColor": "#215C5C", "backgroundColor": "#F5F8F8" }
      }' \
      https://www.physicaltherapy365.com/api/v1/picker/sessions

Browser contract

Exact-origin picker events.

pt365.ready

The iframe is interactive.

pt365.selection.completed

Ordered prescriptions plus exact exercise snapshots.

pt365.cancelled

The clinician closed without completing.

window.addEventListener("message", (event) => {
  if (event.origin !== "https://www.physicaltherapy365.com") return;
  if (event.data?.type === "pt365.selection.completed") {
    saveProgramToYourEmr(event.data.payload.items);
  }
});

API reference

A small, stable surface.

Read the complete implementation guide or give the workspace prompt to your coding assistant.

GET/api/v1/exercises

Search, filter, paginate, and sync the licensed catalog.

GET/api/v1/exercises/{id}

Read a current or historical content revision.

GET/api/v1/taxonomies

Discover supported regions, categories, equipment, and tags.

GET/api/v1/catalog/changes

Consume ordered publication and lifecycle events.

POST/api/v1/picker/sessions

Create a 15-minute origin-bound picker launch.

GET/POST/api/v1/webhooks

Manage signed catalog-event destinations.

Download OpenAPI 3.1 JSON

No-PHI architecture

Designed to stay outside the patient record.