Discover/OpenMD API
live

OpenMD APIopenmd.com

Access OpenMD's medical dictionary, abbreviations, word parts, health site directory, and research guides via 11 structured API endpoints.

Endpoint health
verified 4d ago
get_prescription_abbreviations
list_research_guides
get_directory_categories
browse_dictionary_by_letter
get_dictionary_term
11/11 passing latest checkself-healing
Endpoints
11
Updated
26d ago

What is the OpenMD API?

The OpenMD API exposes 11 endpoints covering medical term definitions, abbreviations, word parts, a curated health site directory, and structured research guides. Use get_dictionary_term to retrieve definitions from multiple medical sources, phonetic pronunciation, images, and related videos for a given term. The API also surfaces specialized content like dangerous prescription abbreviations and organized health resource directories by category.

Try it
Medical term to look up (e.g. 'heart', 'lung', 'diabetes').
api.parse.bot/scraper/e3dde5ae-7ae1-4454-a7e5-127c2fd5e843/<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/e3dde5ae-7ae1-4454-a7e5-127c2fd5e843/get_dictionary_term?term=heart' \
  -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 openmd-com-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: OpenMD Medical Reference API — bounded, re-runnable."""
from parse_apis.openmd_medical_reference_api import OpenMD, Letter, TermNotFound

client = OpenMD()

# Look up a specific medical term and inspect its definitions.
term = client.terms.get(term="heart")
print(f"Term: {term.name}, Category: {term.category}, Pronunciation: {term.pronunciation}")
for defn in term.definitions[:3]:
    print(f"  [{defn.source}] {defn.text[:80]}")

# Search the dictionary — returns matching terms with optional details.
for result in client.terms.search(query="lung", limit=3):
    print(f"Search result: {result.term} — {result.url}")

# Browse terms by letter using the Letter enum.
for link in client.terms.browse(letter=Letter.B, limit=5):
    print(f"  {link.term}: {link.url}")

# List abbreviations filtered by letter.
for abbr in client.abbreviations.list(letter=Letter.A, limit=5):
    print(f"  {abbr.abbreviation} = {abbr.meaning}")

# Navigate directory: list categories, then drill into one for sites.
category = client.directorycategories.list(limit=1).first()
if category:
    for site in category.sites(limit=3):
        print(f"  {site.name} ({site.domain}): {site.description}")

# Get a research guide's structured content via the constructible accessor.
guide_content = client.guide("medical-terminology").content()
print(f"Guide: {guide_content.title}, blocks: {len(guide_content.content)}")

# Typed error handling for a term that may not exist.
try:
    client.terms.get(term="xyznonexistent12345")
except TermNotFound as exc:
    print(f"Term not found: {exc.term}")

print("Exercised: terms.get / terms.search / terms.browse / abbreviations.list / directorycategories.list / category.sites / guide.content")
All endpoints · 11 totalmissing one? ·

Retrieve full definitions and metadata for a specific medical term. Returns definitions from multiple medical sources, pronunciation, category, etymology, images, and related videos when available. Coverage is strongest for anatomy terms; some disease terms may return fewer definitions.

Input
ParamTypeDescription
termrequiredstringMedical term to look up (e.g. 'heart', 'lung', 'diabetes').
Response
{
  "type": "object",
  "fields": {
    "name": "string, canonical name of the term",
    "term": "string, the queried term",
    "images": "array of image objects with src, alt, and title",
    "videos": "array of video objects with title, url, source, and duration",
    "category": "string, medical category (e.g. Anatomy)",
    "definitions": "array of definition objects with source, text, and source_detail",
    "pronunciation": "string, phonetic pronunciation"
  },
  "sample": {
    "data": {
      "name": "heart",
      "term": "heart",
      "images": [
        {
          "alt": "Wikimedia",
          "src": "https://openmd.com/data/images/103/1004680_01.jpg",
          "title": "Wikimedia"
        }
      ],
      "videos": [
        {
          "url": "https://www.merckmanuals.com/home/multimedia/video/v49313600",
          "title": "The Heart",
          "source": "Merck Manuals",
          "duration": "0:33"
        }
      ],
      "category": "Anatomy",
      "definitions": [
        {
          "text": "The hollow, muscular organ that maintains the circulation of the blood.",
          "source": "NLM Medical Subject Headings",
          "source_detail": "U.S. National Library of Medicine, 2025"
        }
      ],
      "pronunciation": "heart [ hahrt ]"
    },
    "status": "success"
  }
}

About the OpenMD API

Medical Dictionary Endpoints

The get_dictionary_term endpoint accepts a term parameter (e.g. heart, diabetes) and returns a definitions array where each object includes source, text, and source_detail — so you can see which medical reference each definition comes from. Additional fields include pronunciation, category (e.g. Anatomy), images (with src, alt, and title), and videos (with title, url, source, and duration). Coverage is strongest for anatomy terms; some disease or syndrome entries may return fewer definition sources. search_dictionary handles cases where you don't know the exact canonical term: it returns either a direct match with full details or a list of candidate term links.

Abbreviations and Word Parts

get_abbreviations_by_letter and get_word_parts_by_letter both accept an optional letter parameter (A–Z) and return arrays of abbreviation-meaning or word_part-meaning pairs respectively. These are useful for building medical terminology tools, EHR helpers, or educational flashcard systems. browse_dictionary_by_letter similarly lists all dictionary terms starting with a given letter, with each result including the term string and its url.

Health Site Directory and Research Guides

The directory side of the API starts with get_directory_categories, which returns all available category slug values (e.g. cardiology, neurology). Pass a slug to get_directory_category to get the sites listed under that category, each with name, url, description, and domain. Research guides follow the same two-step pattern: list_research_guides returns guide slug values, and get_research_guide returns the full structured content as typed blocks (text, heading, list, table).

Prescription and Safety Content

Two dedicated endpoints handle prescription-related content. get_prescription_abbreviations returns a structured guide to shorthand used in prescriptions — useful for patient-facing apps or clinical education tools. get_dangerous_abbreviations returns the guide to abbreviations flagged as error-prone, including tables identifying which abbreviations to avoid and why. Both return the same content block format as get_research_guide.

Reliability & maintenanceVerified

The OpenMD API is a managed, monitored endpoint for openmd.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when openmd.com 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 openmd.com 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.

Last verified
4d ago
Latest check
11/11 endpoints passing
Maintenance
Monitored & self-healing
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
  • Build a medical terminology lookup tool using get_dictionary_term to display multi-source definitions and pronunciation.
  • Generate alphabetical term lists for a medical education app with browse_dictionary_by_letter.
  • Populate an abbreviation decoder feature in an EHR or clinical notes tool using get_abbreviations_by_letter.
  • Create a word-parts reference for medical students using get_word_parts_by_letter (roots, prefixes, suffixes).
  • Build a curated health resource directory organized by specialty using get_directory_categories and get_directory_category.
  • Surface prescription error warnings in a clinical decision support tool using get_dangerous_abbreviations.
  • Integrate structured research guide content into a patient education platform using get_research_guide.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does OpenMD have an official developer API?+
OpenMD does not publish an official developer API or documented public endpoints for programmatic access to its dictionary and directory data.
What does `get_dictionary_term` return, and are definitions always from multiple sources?+
The endpoint returns a definitions array where each item includes source, text, and source_detail, so you can see which reference each definition comes from. Coverage varies: anatomy terms typically have more definition sources than disease or pharmacology entries, which may return only one or two definitions.
Can I retrieve full article-level content for every term, including all linked diseases and drug interactions?+
The API covers canonical definitions, images, videos, pronunciation, and category metadata per term. Drug interaction data and linked disease relationships are not currently returned as structured fields. You can fork the API on Parse and revise it to add an endpoint targeting that content.
Does the API support full-text search across the entire dictionary, or only exact-term lookups?+
search_dictionary accepts a query string and returns either a direct match with full details or a list of candidate term links. It does not currently support wildcard patterns, relevance-ranked full-text search, or filtering by category. You can fork the API on Parse and revise it to add more advanced search filtering.
Are the research guide content blocks structured enough to render programmatically?+
Yes. Both get_research_guide and the prescription/dangerous abbreviation endpoints return a content array where each block has an explicit type field — text, heading, list, or table — along with the corresponding data. This lets you render or parse each section type independently without custom HTML parsing.
Page content last updated . Spec covers 11 endpoints from openmd.com.
Related APIs in HealthcareSee all →
altibbi.com API
Search and browse comprehensive medicine and disease information from Altibbi's medical encyclopedia using commercial or scientific names. Get detailed profiles including dosage, uses, side effects, and disease descriptions to support healthcare decisions and medical research.
drugs.com API
Search for drugs and pill identifications, get detailed information about FDA approvals and drug interactions, and find medications by condition or letter. Look up side effects, dosages, and potential drug interactions to make informed health decisions.
mdpi.com API
Access MDPI's open-access academic content programmatically. Search across thousands of peer-reviewed articles, retrieve full structured text, extract key findings, and browse journal metadata including impact factors and CiteScores.
aapc.com API
Access comprehensive medical coding information including CPT, ICD-10-CM, ICD-10-PCS, and HCPCS codes with detailed hierarchies, sections, and code-specific details. Search across all medical coding systems to find the exact codes and their descriptions for billing, documentation, and compliance purposes.
examine.com API
Search and explore evidence-based information about supplements, health conditions, and outcomes with detailed supplement profiles, study summaries, and categorized health data. Get comprehensive overviews of how specific supplements affect various health conditions backed by scientific research.
ncbi.nlm.nih.gov API
Search and retrieve biomedical literature from NCBI databases including PubMed, PubMed Central, and MeSH. Supports full-text extraction, metadata lookup, and research filtering.
mayocliniclabs.com API
Search and browse Mayo Clinic Laboratories' medical test catalog to retrieve detailed information on thousands of available tests, including descriptions, specimen requirements, clinical and interpretive data, performance characteristics, fees and codes, and setup details. Use autocomplete and alphabetical browsing to quickly locate specific tests or explore the full catalog.
medex.com.bd API
Access data from medex.com.bd.