The EMR stays in control.
PT365 supplies versioned content. Your EMR owns patients, assignments, delivery, PDFs, consent, and the medical record.
White-label HEP infrastructure
Search a versioned catalog or launch a complete prescription picker without sending patient data to PT365.
Start free
PT365 supplies versioned content. Your EMR owns patients, assignments, delivery, PDFs, consent, and the medical record.
Immutable revisions, checksummed media, change cursors, and signed webhooks support fast local caching and exact historical snapshots.
Launch an origin-bound, fully themed iframe and receive ordered exercise snapshots and prescriptions through exact-origin browser events.
Quickstart
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.
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/tokenUse 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"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/sessionsBrowser contract
pt365.readyThe iframe is interactive.
pt365.selection.completedOrdered prescriptions plus exact exercise snapshots.
pt365.cancelledThe 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
Read the complete implementation guide or give the workspace prompt to your coding assistant.
/api/v1/exercisesSearch, filter, paginate, and sync the licensed catalog.
/api/v1/exercises/{id}Read a current or historical content revision.
/api/v1/taxonomiesDiscover supported regions, categories, equipment, and tags.
/api/v1/catalog/changesConsume ordered publication and lifecycle events.
/api/v1/picker/sessionsCreate a 15-minute origin-bound picker launch.
/api/v1/webhooksManage signed catalog-event destinations.
No-PHI architecture