Discover/DocInfo API
live

DocInfo APIdocinfo.org

Search DocInfo (FSMB) for physicians and PAs. Retrieve licenses, board certifications, education, locations, and board actions via 2 JSON endpoints.

Endpoint health
monitored
get_doctor_profile
search_doctors
Checks pendingself-healing
Endpoints
2
Updated
2h ago

What is the DocInfo API?

The DocInfo API exposes 2 endpoints that cover the Federation of State Medical Boards' practitioner database, returning structured profiles with up to 14 response fields per doctor. Use search_doctors to find physicians or physician assistants by name — optionally filtered to a single U.S. state — and then pass the returned doctor_id to get_doctor_profile to pull education, board certifications, active state licenses, reported locations, and any state medical board disciplinary actions.

This call costs2 credits / call— charged only on success
Try it
Practitioner name text to match (first, last, or full name).
Full name of a U.S. state or territory as spelled in the site's state selector (one shape: Texas). Restricts results to practitioners licensed in that state. Omitted or `all` = no state restriction.
Which practitioner category to search. Omitted = physicians only.
api.parse.bot/scraper/424dc68e-a74d-4a62-bb34-3aaaa58d4161/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/424dc68e-a74d-4a62-bb34-3aaaa58d4161/search_doctors?name=John+Smith&practitioner_type=physician' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace docinfo-org-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: DocInfo doctor lookup — search by name, drill into full profile."""
from parse_apis.docinfo_org_api import DocInfo, PractitionerType, UpstreamError

client = DocInfo()

# Search for physicians matching a name, capped to 5 results.
for doc in client.doctor_summaries.search(name="John Smith", practitioner_type=PractitionerType.PHYSICIAN, limit=5):
    locs = ", ".join(f"{loc.city}, {loc.state}" for loc in doc.locations)
    print(f"{doc.full_name} ({doc.degree}) — {locs}")

# Drill down: take the first result and fetch its full profile.
summary = client.doctor_summaries.search(name="John Smith", limit=1).first()
if summary is not None:
    try:
        profile = summary.details()
    except UpstreamError as e:
        print(f"Could not fetch profile: {e.message}")
        profile = None
    if profile is None:
        print("Profile unavailable, skipping detail view.")
    else:
        print(f"\n{profile.full_name}, {profile.degree}")
        if profile.education is not None:
            print(f"  School: {profile.education.medical_school} ({profile.education.graduation_year})")
        print(f"  Active licenses: {', '.join(profile.active_licenses)}")
        print(f"  Certifications: {', '.join(profile.certifications)}")
        print(f"  Board actions: {profile.board_action_count}")

print("\nexercised: doctor_summaries.search / details / doctors.get (via details)")
All endpoints · 2 totalmissing one? ·

Searches DocInfo for physicians and/or physician assistants whose name matches the given text, optionally restricted to practitioners licensed in one U.S. state or territory. Returns one row per practitioner with the opaque doctor_id, full name, degree code (e.g. MD, DO, PA) and the practitioner's reported city/state locations. One round trip. The site returns only the top 30 best-matching practitioners for a query and offers no further pages, so `count` is at most `max_results` (30); narrow the name or set license_state to see more specific results. A name with no matches yields an empty `doctors` array. Location cities/states are reported historically and may not reflect a current practice address.

Input
ParamTypeDescription
namerequiredstringPractitioner name text to match (first, last, or full name).
license_statestringFull name of a U.S. state or territory as spelled in the site's state selector (one shape: Texas). Restricts results to practitioners licensed in that state. Omitted or `all` = no state restriction.
practitioner_typestringWhich practitioner category to search. Omitted = physicians only.
Response
{
  "type": "object",
  "fields": {
    "name": "the name text that was searched",
    "count": "number of practitioners returned",
    "doctors": "array of matching practitioners: doctor_id (GUID string, input for get_doctor_profile), full_name, degree (MD/DO/PA/... code), locations (array of {city, state})",
    "max_results": "the site's fixed cap on returned matches (30)",
    "license_state": "the license-state restriction applied (`all` when none)",
    "practitioner_type": "the practitioner category applied"
  },
  "sample": {
    "data": {
      "name": "John Smith",
      "count": 2,
      "doctors": [
        {
          "degree": "MD",
          "doctor_id": "7020f3d8-8590-49a3-b564-7d2569805f4a",
          "full_name": "Lawrence John Smith",
          "locations": [
            {
              "city": "Eagle River",
              "state": "Alaska"
            },
            {
              "city": "Anchorage",
              "state": "Alaska"
            }
          ]
        },
        {
          "degree": "MD",
          "doctor_id": "e6b63294-56f5-40f1-a82a-c79192fb3513",
          "full_name": "Stephen John Smith",
          "locations": [
            {
              "city": "Langhorne",
              "state": "Pennsylvania"
            }
          ]
        }
      ],
      "max_results": 30,
      "license_state": "all",
      "practitioner_type": "physician"
    },
    "status": "success"
  }
}

About the DocInfo API

Searching for Practitioners

search_doctors accepts a name string (first, last, or full name) and returns up to 30 matching practitioners per query — the site's fixed cap, reflected in the max_results field. Each result includes a doctor_id GUID, full_name, and degree code (MD, DO, PA, and others). You can narrow results with license_state (full state name, e.g. Texas) or practitioner_type to include physician assistants alongside physicians. The response also echoes back the filters applied as license_state and practitioner_type fields.

Retrieving Full Profiles

get_doctor_profile takes a single doctor_id and returns the complete DocInfo profile in one response. Key fields include education (medical school name and graduation year, either of which may be null when not reported), certifications (array of board certification names), active_licenses (array of state names), and locations (array of city/state pairs). Gender is returned as M or F when the source reports it, otherwise null.

Board Actions

Disciplinary history is surfaced through two fields: board_action_count gives the total number of actions across all states, and board_actions_by_state provides a structured array with each entry containing the state name, a direct URL to that state's medical board, and a nested actions array of individual records with order_date and action text. When a practitioner has no board actions, board_actions_by_state is an empty array and board_action_count is zero.

Reliability & maintenance

The DocInfo API is a managed, monitored endpoint for docinfo.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when docinfo.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official docinfo.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Verify that a physician holds an active license in a specific state before a telehealth appointment
  • Screen practitioners for board disciplinary actions using board_action_count and board_actions_by_state
  • Build a credentialing workflow that checks board certifications from certifications alongside license status
  • Aggregate practitioner location data from locations for provider directory mapping
  • Look up medical school and graduation year from the education object for background verification
  • Filter search results to physician assistants using the practitioner_type parameter
  • Cross-reference active licenses across multiple states for multi-state practice compliance checks
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does DocInfo (FSMB) offer an official developer API?+
FSMB does not publish a public developer API for DocInfo. The data in DocInfo's practitioner profiles is available through the website at docinfo.org.
What does `get_doctor_profile` return for board actions, and how is it structured?+
get_doctor_profile returns a board_action_count integer for the total number of actions across all states, and a board_actions_by_state array. Each element in that array contains the state name, a state_board_url pointing to the relevant state medical board, and an actions array where each entry has an order_date and descriptive action text. If no actions exist, the array is empty and the count is zero.
What is the maximum number of results `search_doctors` can return in one call?+
The endpoint returns up to 30 practitioners per query, which is the site's fixed cap. This limit is reflected in the max_results field of the response. The API does not support pagination beyond this cap. If your query matches more than 30 practitioners, narrowing the search with license_state or a more specific name string will reduce the result set to the most relevant matches.
Does the API expose DEA numbers, NPI numbers, or malpractice history?+
Not currently. The API covers education, board certifications, active state licenses, reported locations, and state medical board disciplinary actions. DEA registrations, NPI numbers, and malpractice records are not included in the DocInfo profile data. You can fork this API on Parse and revise it to add an endpoint that pulls NPI data from a separate source such as the CMS NPI registry.
Can I retrieve historical or expired licenses, not just active ones?+
The active_licenses field returns only currently active state licenses as reported by DocInfo. Expired or inactive licenses are not included in the response. You can fork this API on Parse and revise it to add handling for inactive license data if DocInfo surfaces it in a separate section of the profile.
Page content last updated . Spec covers 2 endpoints from docinfo.org.
Related APIs in HealthcareSee all →
healthgrades.com API
Search for doctors and healthcare professionals by name and location to find detailed provider profiles including credentials, specialties, and patient reviews. Get comprehensive information about individual practitioners to help you make informed decisions about your healthcare providers.
zocdoc.com API
Search for doctors and medical practices on Zocdoc by specialty and location. Retrieve provider profiles, accepted insurance, office locations, patient reviews, and appointment availability.
medicalcouncil.org.nz API
Search for registered doctors in New Zealand by name, location, specialty, and professional status, then access their detailed profiles including qualifications and scope of practice. Use this to verify practitioner credentials and find healthcare professionals that match your needs.
doctoralia.com.br API
Find healthcare specialists in Brazil with their profiles, contact details, Instagram handles, pricing, and patient reviews all in one place. Search and discover doctors by specialty with autocomplete suggestions to quickly locate the right professional for your needs.
patientennavi.116117.de API
Search for available doctors and psychotherapists across Germany by entering a zip code or city name to find nearby medical professionals. Get detailed information about healthcare providers registered with the official 116117 directory to locate the right specialist for your needs.
npidb.org API
Search for healthcare providers and organizations by name to instantly retrieve their credentials, contact information, and specialty taxonomy codes from the National Provider Identifier database. Look up detailed provider profiles to verify qualifications and find the right medical professionals for your needs.
usreps.org API
Access data from usreps.org.
lybrate.com API
Search for doctors across Indian cities and specialties, view detailed profiles with patient reviews and services, and discover clinic information and health content all in one place. Find the right healthcare provider by browsing ratings, qualifications, and medical expertise tailored to your needs.