PubMed API
Read-only access to PubMed article search, advanced fielded queries, journal searches, clinical-query filters, and full article metadata including abstracts and related PMIDs. Results are fetched live from NCBI E-utilities, the public data service used for PubMed.
Endpoint health
Loading verification…
Connect your agent
Connect through MCP so your agent can find this API, read its docs, and call its endpoints.
Add the server from your terminal.
claude mcp add --transport http agent-data https://agent-data.motie.dev/mcpIn Claude Code, run /mcp, select agent-data, then Authenticate. Sign in to your agent-data account in the browser.
Then ask your agent to use the PubMed API for your task.
Call it over HTTP
Get an API keySign up free, generate an API key, and set it as AGENT_DATA_API_KEY in your environment. Your first 100 calls each month are free.
curl --request GET --get 'https://api.agent-data.dev/pubmed-ncbi-nlm-nih-gov/v1/articles/search' \
--header "Authorization: Bearer $AGENT_DATA_API_KEY" \
--data-urlencode 'query=machine learning'Endpoints
Inputs and response fields for every endpoint in this API.
GETArticles search/v1/articles/search
Search PubMed articles
Input
queryRequiredQuery · stringSearch keyword or PubMed query string.
Example: machine learning
pageOptionalQuery · integer, min: 1, max: 10000, default: 1One-based result page.
Example: 1
sortOptionalQuery · "relevance" | "date" | "author" | "journal" | "title" | nullPubMed result ordering.
Example: relevance
limitOptionalQuery · integer, min: 1, max: 100, default: 20Number of articles to return.
Example: 2
Response
pageinteger, min: 1limitinteger, min: 1totalinteger, min: 0articlesobject[]articles[].doi?string | nullarticles[].urlstringarticles[].pmidstringarticles[].pmcid?string | nullarticles[].titlestringarticles[].authorsstring[]articles[].journal?string, default: articles[].abstract?string | nullarticles[].publication_date?string, default: Fields marked ? are optional.
GETArticles advanced search/v1/articles/advanced-search
Run an advanced PubMed query
Input
queryRequiredQuery · stringComplex PubMed query using field tags and Boolean operators.
Example: cancer[Title] AND immunotherapy[Title/Abstract]
limitOptionalQuery · integer, min: 1, max: 100, default: 20Number of articles to return.
Example: 2
Response
totalinteger, min: 0articlesobject[]articles[].doi?string | nullarticles[].urlstringarticles[].pmidstringarticles[].pmcid?string | nullarticles[].titlestringarticles[].authorsstring[]articles[].journal?string, default: articles[].abstract?string | nullarticles[].publication_date?string, default: Fields marked ? are optional.
GETArticles by journal/v1/articles/by-journal
Search PubMed articles by journal
Input
journalRequiredQuery · stringJournal name as indexed by PubMed.
Example: Nursing
limitOptionalQuery · integer, min: 1, max: 100, default: 20Number of articles to return.
Example: 2
queryOptionalQuery · string | nullOptional additional PubMed query combined with the journal filter.
Example: 2024[PDAT]
Response
totalinteger, min: 0articlesobject[]articles[].doi?string | nullarticles[].urlstringarticles[].pmidstringarticles[].pmcid?string | nullarticles[].titlestringarticles[].authorsstring[]articles[].journal?string, default: articles[].abstract?string | nullarticles[].publication_date?string, default: Fields marked ? are optional.
GETArticles clinical queries/v1/articles/clinical-queries
Search PubMed with Clinical Queries filters
Input
queryRequiredQuery · stringSearch keyword for a clinical PubMed query.
Example: diabetes
scopeOptionalQuery · "broad" | "narrow"Clinical Queries scope.
Example: broad
categoryOptionalQuery · "therapy" | "clinical prediction guides" | "diagnosis" | "etiology" | "prognosis" | "general"Predefined Clinical Queries category.
Example: therapy
limitOptionalQuery · integer, min: 1, max: 100, default: 20Number of articles to return.
Example: 2
Response
totalinteger, min: 0articlesobject[]articles[].doi?string | nullarticles[].urlstringarticles[].pmidstringarticles[].pmcid?string | nullarticles[].titlestringarticles[].authorsstring[]articles[].journal?string, default: articles[].abstract?string | nullarticles[].publication_date?string, default: Fields marked ? are optional.
GETArticles by pmid/v1/articles/{pmid}
Get full PubMed article details
Input
pmidRequiredPath · integer, min: 1, max: 999999999PubMed ID of the article.
Example: 38595734
Response
doi?string | nullurlstringpmidstringpmcid?string | nulltitlestringauthorsstring[]journal?string, default: abstract?string | nullkeywordsstring[]copyright?string | nullsimilar_pmidsstring[]publication_date?string, default: Fields marked ? are optional.
Don’t see the endpoint you need?
Ask agent-data to add an endpoint or return more fields. Extensions are free and keep existing endpoints working.
An account is required to submit an extension. Prepare your request, then sign in to build.