---
title: "Search PubTator3"
method: GET
path: "/v1/sources/pubtator/search"
tags: ["PubTator3"]
---

# Search PubTator3

`GET /v1/sources/pubtator/search`

## Request

- Base URL: `https://api.assyro.com`
- URL: `https://api.assyro.com/v1/sources/pubtator/search`
- Auth: none declared

Search PubTator3 (NCBI), relations text-mined from every PubMed abstract and PMC full-text article, from Assyro's monthly copy: find which genes, chemicals, diseases and variants articles relate to each other, by entity names (e.g. "metformin breast cancer") or concept ids (a MeSH id such as "MESH:D008687", an NCBI Gene id such as "5468", a dbSNP id such as "rs4986172"), and narrow by relation type (treat, cause, associate, inhibit, stimulate, positive_correlate, negative_correlate, interact, drug_interact, cotreat, prevent, compare), by the kind of entity on the other side, or by how many articles state it. Each result gives the relation, both entities with their ids, the number of articles and the newest PMIDs; the relations most articles state come first. Relations are machine readings of article text, not curated findings. Call read_pubtator_relation for up to 50 PMIDs with their PubMed pages.

## Query parameters

- `query` string: Names of the entities, every word required, e.g. "metformin breast cancer" or "BRCA1".
- `entity` string: A concept id on either side: "MESH:D008687" (chemical or disease), "5468" (NCBI Gene), "rs4986172" (variant).
- `otherEntity` string: A second concept id: keep only relations between `entity` and this one.
- `relationType` 'associate' | 'cause' | 'compare' | 'cotreat' | 'drug_interact' | 'inhibit' | 'interact' | 'negative_correlate' | 'positive_correlate' | 'prevent' | 'stimulate' | 'treat': Keep relations of this type.
- `entityType` 'gene' | 'chemical' | 'disease' | 'variant': Keep relations with a gene, chemical, disease or variant on one side, e.g. "gene" for the genes related to a drug.
- `minArticles` integer: Keep relations stated in at least this many articles.
- `limit` integer: Relations to return, default 10.
- `offset` integer: Skip this many results (for paging), default 0.

## Response `200`

Matching records.

- SearchResponse
  - `version` unknown, required
  - `source` SourceRef, required
    - `id` string, required
    - `label` string, required
    - `authority` string, required
  - `total` integer, nullable, required: Total matches the source reports, when it says.
  - `records` Record[], required
    - `id` string, required: The source's own identifier for the record.
    - `title` string, required
    - `url` string, required: The record's page at the source, to verify it.
    - `authority` string, required: Who published the record.
    - `snippet` string, nullable, required: The part of the record that matched; null where the licence allows only a link.
    - `publishedDate` string, nullable, required
    - `version` string, nullable, required: The edition or revision read.
    - `fields` object, nullable, required: The source's own fields; null where the licence allows only a link.
    - `asOf` string, nullable, required: The day Assyro's copy of the source was read (YYYY-MM-DD).
    - `attribution` string: The attribution the source's licence requires, on sources that require one.
  - `note` string
  - `summary` string[]

## Other responses

- `400`: The request is not valid: an unknown parameter or an argument the source refuses.
- `404`: No such source or record.
- `429`: Rate limited; retry after the Retry-After header.
- `503`: The source cannot answer from Assyro's copy right now.

---

[API](https://skmtc.dev/assyro/apis/assyro-public-data-api.md) - [All operations](https://skmtc.dev/assyro/apis/assyro-public-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/assyro/apis/assyro-public-data-api/revisions/c861290c9f47?raw)
