Medora/Developers

Medora Partner API

For staffing firms. Search 3.39M clinician records from the CMS/NPPES public registry and submit requisitions straight from your ATS. Get a sandbox key below and make your first call in a minute — no sales call needed.

REST · JSON
Bearer key auth
Cursor pagination
OpenAPI 3.0 spec ↗
Get a sandbox key

Work email only. Instant, free, and you can start calling immediately.

Sandboxmpk_test_
  • · Real CMS/NPPES registry — the same data live keys read.
  • · Requisitions are recorded but not worked. No clinician is contacted.
  • · 60 requests/minute, up to 25 stored requisitions.
  • · Free, instant, self-serve.
Livempk_live_
  • · Requisitions enter the Medora pipeline and get worked.
  • · 600 requests/minute.
  • · White-label workflows and volume pricing available.
  • · We promote your sandbox account — same partner id, new key.

Authentication

Send your key as a bearer token on every request. Keys are per-firm and scoped; a missing scope returns 403 SCOPE_MISSING.

Authorization: Bearer mpk_test_YOUR_KEY

Medora keys start mpk_. If you also use Callora, its keys start sk_ and the two are not interchangeable — Medora and Callora are separate products with separate accounts and credentials. A Callora key sent here returns 401 WRONG_KEY_TYPE.

Endpoints

GET
/api/medora/partner/v1/meany

Your account, tier, scopes and usage. Use it to check a key works.

curl -s /api/medora/partner/v1/me \
  -H "Authorization: Bearer mpk_test_YOUR_KEY"
GET
/api/medora/partner/v1/clinicians/searchregistry:read

Search the CMS/NPPES public registry by specialty, state and surname. Cursor-paginated.

curl -s "/api/medora/partner/v1/clinicians/search?state=TX&specialty=Family%20Medicine&limit=5" \
  -H "Authorization: Bearer mpk_test_YOUR_KEY"
GET
/api/medora/partner/v1/clinicians/{npi}registry:read

One clinician by NPI. Public registry fields only.

curl -s /api/medora/partner/v1/clinicians/1003022898 \
  -H "Authorization: Bearer mpk_test_YOUR_KEY"
GET
/api/medora/partner/v1/jobsjobs:read

List the requisitions on your account. Scoped to you.

curl -s /api/medora/partner/v1/jobs \
  -H "Authorization: Bearer mpk_test_YOUR_KEY"
POST
/api/medora/partner/v1/jobsjobs:write

Submit a requisition. In sandbox it is recorded but not worked.

curl -s -X POST /api/medora/partner/v1/jobs \
  -H "Authorization: Bearer mpk_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Locum Hospitalist","specialty":"Internal Medicine","state":"TX","city":"Austin","weeks":13}'

What the API will never return

  • · Clinician results are public CMS/NPPES registry fields only.
  • · No Medora-generated data: no recruiter notes, rate floors, margins, client identities, credentialing documents or outreach history.
  • · No other partner's requisitions, ever. Every job read is scoped to your partner id.
  • · No clinician contact details we have gathered privately, and no record of who we have spoken to.

These are enforced in code by a field allowlist, not by convention.