Skip to main content
Scopes are permissions that control which API endpoints your app can access. When a clinic installs your app, they grant the scopes your app has requested.

How Scopes Work

  1. When you create your app, you declare which scopes it needs
  2. When a clinic installs your app, they review and approve those scopes
  3. When you create an API key, you select which of the approved scopes it should have
  4. At runtime, your effective permissions are the intersection of the key’s scopes and the clinic’s installation grants, and each API endpoint checks for the required scope before returning data
If you call an endpoint without the required scope, you’ll receive a 403 Forbidden response.

Available Scopes

Read Scopes

Patient Data

Appointments

Providers

Facilities

Billing

Claims

Payer Remittances (ERAs)

Per-procedure allowed, paid and patient-responsibility amounts, with the CARC/RARC adjustments explaining the gap between charge and paid. Reported for both EHRs. deductibleAmount, coinsuranceAmount and copayAmount are EzDerm only: the ModMed ERA sync does not write those columns, so they are NULL on every ModMed line even when the remit reported them. Do not derive patient responsibility by summing the three — on ModMed that sum is 0 on a line the patient really owes. Use patientResponsibilityAmount, which is populated for both EHRs. Sync on updatedSince: payer amounts keep moving for 90+ days after service as recoupments, secondary payers and 835 PLB adjustments land.

Notes

Tasks

Emails

Faxes

read:faxes also gates delivery of the fax.status_changed webhook.
GET /v3/faxes/templates opens a live session against the practice’s EHR — unlike the other two reads, which are served from our own records. It is capped at 2,000 template reads per organization per UTC day across all installed apps; over the cap it answers 429 until the budget resets at 00:00 UTC. Cover templates are practice-wide and change rarely, so fetch them once and cache them rather than calling this before every send.

Phone Numbers

Inventory

Insurance Policies

Prior Authorizations

Eligibility Checks

Write Scopes

Notes

Tasks

Emails

Faxes

Faxes are sent through the practice’s own EHR fax subsystem, so anything you attach is filed as a chart document and becomes part of the medical record. A sent fax cannot be recalled — idempotencyKey is required, and repeating a call with the same key returns the original fax instead of sending another.Sending is capped at 200 faxes per organization per UTC day across all installed apps. Over the cap, POST /v3/faxes/send answers 429; the budget resets at 00:00 UTC. Failed sends count, replays do not.A repeat with the same idempotencyKey never dials — it returns the original record, so re-asking after an unknown outcome is safe. While the first send is still in flight you get a 503 rather than the record — repeat the same request shortly, and never mint a new key for it. A 409 means something else: the key was already used for a DIFFERENT fax, and only then should you use a new key. It is scoped to (app, organization) and never expires.

Products

Inventory

Eligibility Checks

Checking Your Scopes

Use the /v3/marketplace/me endpoint to see which scopes your API key currently has. This endpoint does not require any scope — it is always available.
The response includes your granted scopes:

Insufficient Scope Error

If you call an endpoint without the required scope:
To resolve this, update your app’s requested scopes in the Max AI dashboard and have the clinic re-approve the updated permissions.