Introduction
Welcome to the EMR API documentation. This API allows partners to integrate with our Electronic Medical Record system to manage prospects, tags, and view provider availability.
/v1/{PPass}
Authentication
Our API uses API Keys to generate temporary JWT Bearer tokens.
POST /v1/{PPass}/auth/token
Exchange your API key for an access token.
Request Body
{
"apiKey": "your_api_key_here"
}
Response
{
"accessToken": "eyJhbGciOiJIUzI1NiIs...",
"tokenType": "Bearer",
"expiresIn": "24h"
}
Include the token in all subsequent requests:
Authorization: Bearer YOUR_TOKEN
Prospects
GET /v1/{PPass}/prospects
List and search prospects.
Query params: search, page, limit, prospect=true
POST /v1/{PPass}/prospects
Create a new prospect.
Example Body
{
"FirstName": "John",
"LastName": "Doe",
"EMail": "john@example.com",
"Phone": "555-0123"
}
PUT /v1/{PPass}/prospects/{id}
Update an existing prospect. Fields: FirstName, MI, LastName, FullName, NickName, Gender (m,f,o,u), DOB, LifeStage (Infant,Toddler,Child,Adolescent,EarlyAdult,Adult,AllAdults,Senior), Pronouns, SexualIdentity, PrimaryLanguage, Type (Patient,Child,Cash,Insurance,Guarantor) , Phone, CellPhone, SMSPhone, EMail, Address, Unit, City, State, Zip, Country, ProviderID, Prospect (1,0), Sh_Name, Sh_Address, Sh_Unit, Sh_City, Sh_State, Sh_Zip, Sh_Country, PtImg, Notes
Providers
Requires Providers scope.
GET /v1/{PPass}/availability/providers
List all active providers.
GET /v1/{PPass}/availability/providers/{id}
Get specific provider details.
GET /v1/{PPass}/availability/providers/{id}/schedule
Get scheduled visits for a provider within a date range.
Query params: startDate, endDate, visitType
Example Request
GET /v1/DemoOffice/availability/providers/1/schedule?startDate=2026-03-09&endDate=2026-03-15
Example Response
{
"data": {
"provider": {
"id": 1,
"name": "Jane Smith",
"title": "PA-C",
"specialty": "Aesthetics"
},
"startDate": "2026-03-09",
"endDate": "2026-03-15",
"schedule": {
"2026-03-09": [
{ "VisitID": 101, "time": "09:00:00", "duration": 30, "type": "FOLLOWUP", "booked": true }
]
},
"totalVisits": 1
}
}
GET /v1/{PPass}/availability/providers/{id}/check
Check whether a specific date/time/duration slot is available.
Query params: date, time, duration
Example Request
GET /v1/DemoOffice/availability/providers/1/check?date=2026-03-09&time=10:15:00&duration=30
Example Response
{
"data": {
"ProviderID": 1,
"Date": "2026-03-09",
"Time": "10:15:00",
"Duration": 30,
"Available": true
}
}
GET /v1/{PPass}/availability/providers/{id}/slots
Get all available slots for a provider on a specific date.
Query params: date, duration
Example Request
GET /v1/DemoOffice/availability/providers/1/slots?date=2026-03-09&duration=30
Example Response
{
"data": {
"ProviderID": 1,
"Date": "2026-03-09",
"Duration": 30,
"Slots": ["09:00:00", "11:30:00", "14:00:00"],
"Count": 3
}
}
GET /v1/{PPass}/availability/providers/{id}/next-slot
Get the next available slot for a provider.
Query params: duration, maxDays (optional, default 365)
Example Request
GET /v1/DemoOffice/availability/providers/1/next-slot?duration=30&maxDays=30
Example Response
{
"data": {
"ProviderID": 1,
"Duration": 30,
"SearchWindowDays": 30,
"TheNextSlot": {
"ProviderID": "1",
"Date": "2026-03-10",
"Time": "09:00:00"
}
}
}
Products (ProductPro)
Requires ProductPro.Products scope. These endpoints are global (no {PPass} required).
GET /v1/products
List available products. Searchable via search and vendorCode query params.
POST /v1/products
Bulk update or create products.
{
"products": [
{
"VendorCode": "V001",
"ProductCode": "P001",
"Product": "Example Product",
"RetailPrice": 99.99
}
]
}
Knowledge Base
Requires KB scope. These endpoints are global.
GET /v1/kb
List KB articles. Searchable via search, category, and type query params.
GET /v1/kb/{id}
Get details for a specific KB article.
Example Request
GET /v1/kb/12
Example Response
{
"data": {
"KBID": 12,
"Title": "Insurance Verification Workflow",
"Article": "Step-by-step process...",
"Category": "Billing",
"Type": "HowTo",
"Tags": "insurance, verification",
"Active": true
}
}
PUT /v1/kb/{id}
Update a specific KB article.
Tickets
Requires Tickets scope. These endpoints are tenant-specific.
GET /v1/{PPass}/tickets
List all tickets for the practice.
GET /v1/{PPass}/ticket/{id}
Get specific ticket details including comments.
PUT /v1/{PPass}/ticket/{id}
Update ticket status or other details.
POST /v1/{PPass}/tickets/{id}/comment
Add a comment to a ticket.
{
"Comment": "This is a new comment",
"Author": "Support Agent"
}
My Information
Read and update your own partner information. Global endpoint.
GET /v1/me
Get your partner profile details.
PATCH /v1/me
Update your partner profile.
Dashboard Overview
Multi-Tenant EnabledTotal Calls
0
Success Rate
0%
Avg Duration
0ms
Error Count
0
API Usage (Last 7 Days)
Partners
- Loading partners...
API Keys
| Name | Partner | PPass | Scopes | Last Used | Status |
|---|---|---|---|---|---|
| Loading keys... | |||||
API Access Requests
| Time | Company | Practice | Contact | Requested Scopes | Status | Action |
|---|---|---|---|---|---|---|
| Loading requests... | ||||||
Recent Activity
| Time | Method | Endpoint | Status | Duration | Partner | IP |
|---|---|---|---|---|---|---|
| Loading logs... | ||||||