# PubMed API

> PubMed API on Apizie: 22 endpoints (Abstract, Annotation Search, Annotations, Citation Export, …) returned as clean JSON through one API key. 22 endpoints are live now. Call it over REST at https://zieapi.vercel.app/v1/research:pubmed/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `research:pubmed`
- Category: Research
- Status: live
- Source: https://pubmed.ncbi.nlm.nih.gov
- Page: https://zieapi.vercel.app/api/research/pubmed
- OpenAPI: https://zieapi.vercel.app/api/research/pubmed/openapi.json

Biomedical literature through NCBI E-utilities, plus PubTator3 annotations, iCite metrics, NCBI gene reports and ClinicalTrials.gov.

## Endpoints

### Abstract
`GET https://zieapi.vercel.app/v1/research:pubmed/abstract`

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | PMID or comma-separated PMIDs (max 50) |

### Annotation Search
`GET https://zieapi.vercel.app/v1/research:pubmed/annotation-search`

| Parameter | Type | Required | Description |
|---|---|---|---|
| text | string | yes |  |
| page | integer | no | 1-based page number |
| sort | string | no |  |

### Annotations
`GET https://zieapi.vercel.app/v1/research:pubmed/annotations`

| Parameter | Type | Required | Description |
|---|---|---|---|
| pmids | string | yes |  |
| full | boolean | no | Use PMC full text when available |

### Citation Export
`GET https://zieapi.vercel.app/v1/research:pubmed/citation-export`

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |
| db | string | no |  |
| format | string | no |  |

### Citation Match
`GET https://zieapi.vercel.app/v1/research:pubmed/citation-match`

| Parameter | Type | Required | Description |
|---|---|---|---|
| journal | string | yes |  |
| year | integer | yes |  |
| volume | string | no |  |
| firstPage | string | no |  |
| author | string | no |  |
| key | string | no |  |

### Citation Metrics
`GET https://zieapi.vercel.app/v1/research:pubmed/citation-metrics`

| Parameter | Type | Required | Description |
|---|---|---|---|
| pmids | string | yes |  |
| includeCitationLists | boolean | no |  |

### Database Info
`GET https://zieapi.vercel.app/v1/research:pubmed/database-info`

| Parameter | Type | Required | Description |
|---|---|---|---|
| db | string | yes |  |

### Databases
`GET https://zieapi.vercel.app/v1/research:pubmed/databases`

### Entity Autocomplete
`GET https://zieapi.vercel.app/v1/research:pubmed/entity-autocomplete`

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | yes |  |
| concept | string | no |  |
| limit | integer | no | Results per page |

### Entity Relations
`GET https://zieapi.vercel.app/v1/research:pubmed/entity-relations`

| Parameter | Type | Required | Description |
|---|---|---|---|
| e1 | string | yes |  |
| type | string | no |  |
| e2 | string | no |  |
| limit | integer | no | Results per page |

### Fetch Records
`GET https://zieapi.vercel.app/v1/research:pubmed/fetch-records`

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |
| db | string | no | Entrez database |
| rettype | string | no |  |
| retmode | string | no |  |
| retstart | integer | no |  |
| retmax | integer | no |  |
| strand | string | no |  |
| seqStart | integer | no |  |
| seqStop | integer | no |  |

### Gene Report
`GET https://zieapi.vercel.app/v1/research:pubmed/gene-report/:symbol/:taxon`

| Parameter | Type | Required | Description |
|---|---|---|---|
| symbol | string | yes |  |
| taxon | string | yes | Taxon name or NCBI tax ID |
| includeGeneOntology | boolean | no |  |

### Id Convert
`GET https://zieapi.vercel.app/v1/research:pubmed/id-convert`

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | string | yes |  |
| idtype | string | no |  |
| versions | boolean | no |  |

### Link Check
`GET https://zieapi.vercel.app/v1/research:pubmed/link-check`

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |
| dbfrom | string | no |  |
| cmd | string | no |  |

### Link Provider
`GET https://zieapi.vercel.app/v1/research:pubmed/link-provider`

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |
| dbfrom | string | no |  |
| cmd | string | no |  |

### Link
`GET https://zieapi.vercel.app/v1/research:pubmed/link`

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |
| dbfrom | string | no |  |
| db | string | no |  |
| cmd | string | no |  |
| linkname | string | no |  |
| maxLinks | integer | no |  |

### Post
`GET https://zieapi.vercel.app/v1/research:pubmed/post`

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |
| db | string | no | Entrez database |
| webEnv | string | no |  |

### Search
`GET https://zieapi.vercel.app/v1/research:pubmed/search`

| Parameter | Type | Required | Description |
|---|---|---|---|
| term | string | yes | Entrez query |
| db | string | no | Entrez database |
| page | integer | no | 1-based page number |
| limit | integer | no | Results per page |
| sort | string | no |  |
| field | string | no | Restrict search to a field, e.g. title |
| datetype | string | no |  |
| mindate | string | no | YYYY or YYYY/MM/DD |
| maxdate | string | no | YYYY or YYYY/MM/DD |
| reldate | integer | no | Only items from the last N days |
| usehistory | boolean | no |  |
| summaries | boolean | no | Also fetch esummary for the returned PubMed IDs |

### Spell
`GET https://zieapi.vercel.app/v1/research:pubmed/spell`

| Parameter | Type | Required | Description |
|---|---|---|---|
| term | string | yes |  |
| db | string | no | Entrez database |

### Summary
`GET https://zieapi.vercel.app/v1/research:pubmed/summary`

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |
| db | string | no | Entrez database |
| version | string | no |  |

### Trials Detail
`GET https://zieapi.vercel.app/v1/research:pubmed/trials-detail/:nctId`

| Parameter | Type | Required | Description |
|---|---|---|---|
| nctId | string | yes |  |

### Trials Search
`GET https://zieapi.vercel.app/v1/research:pubmed/trials-search`

| Parameter | Type | Required | Description |
|---|---|---|---|
| condition | string | no |  |
| term | string | no |  |
| status | string | no |  |
| limit | integer | no | Results per page |
| cursor | string | no | nextCursor from a previous page |

## Example
```
curl "https://zieapi.vercel.app/v1/research:pubmed/abstract" \
  -H "x-api-key: $APIZIE_KEY"
```

## FAQ

### How do I call the PubMed API?
Create a free Apizie key, then send GET https://zieapi.vercel.app/v1/research:pubmed/abstract with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the PubMed API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card.

### Can AI agents use the PubMed API?
Yes. Add the Apizie MCP server (https://zieapi.vercel.app/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key research:pubmed.

### What is the status of the PubMed API?
Live: works with just an Apizie key
