# /reactome/pathways/search

`POST /api/reactome/pathways/search`

Price: 10 credits

Search Reactome for pathways, reactions, proteins, complexes and the other curated entries

## How to use it

Results span every kind of Reactome entry, not only pathways, so set `types` when you want one kind - `Pathway` for processes, `Reaction` for single steps, `Protein` for participants. `species` takes the display name such as `Homo sapiens`; a taxonomy id is not a species here, and Reactome carries the same process separately per species, so an unfiltered query returns the same biology many times over. Filters are enforced: a filter value with no hits among the query's own results answers 412 instead of widening back to the unfiltered set, and a query with no hits answers 412 as well, so the two are not told apart by status - drop the filter and repeat to see which it was.

## Parameters

- `access-token` (string, required)

## Request body

- `timeout` (integer) — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)
- `query` (string, required) — Search terms matched against names, identifiers and summaries (examples: "insulin", "apoptosis", "TP53", "glycolysis"; minLength: 1)
- `species` (string, nullable) — Keep only entries of this species (one of: "Arenicola marina", "Bacillus anthracis", "Bos taurus", "Caenorhabditis elegans", "Candida albicans", "Canis familiaris", "Cavia porcellus", "Cercopithecus aethiops", "Chlamydia trachomatis", "Chlorocebus sabaeus", "Clostridium botulinum", "Clostridium perfringens", "Clostridium tetani", "Corynephage beta", "Cowpox virus", "Cricetulus griseus", "Crithidia fasciculata", "Danio rerio", "Dengue virus type 2", "Dictyostelium discoideum", "Drosophila melanogaster", "Entries without species", "Escherichia coli", "Escherichia coli O127:H6", "Escherichia coli O157:H7", "Escherichia coli O6:K15:H31", "Escherichia coli O78:H11", "Felis catus", "Gallus gallus", "Hepatitis B virus", "Hepatitis C Virus", "Hepatitis C virus genotype 2a", "Hepatitis C virus subtype 1a", "Homarus americanus", "Homo sapiens", "Human SARS coronavirus", "Human alphaherpesvirus 2", "Human cytomegalovirus", "Human gammaherpesvirus 4", "Human herpesvirus 1", "Human herpesvirus 8", "Human immunodeficiency virus 1", "Human papillomavirus type 16", "Human papillomavirus type 18", "Human respiratory syncytial virus A", "Infectious bronchitis virus", "Influenza A virus", "Klebsiella pneumoniae", "Legionella pneumophila", "Leishmania major", "Leishmania mexicana", "Listeria monocytogenes", "Listeria monocytogenes serotype 1/2a", "Listeria monocytogenes serovar 1/2a", "Macaca mulatta", "Measles virus", "Meleagris gallopavo", "Molluscum contagiosum virus subtype 1", "Moloney murine leukemia virus", "Mus musculus", "Mycobacterium tuberculosis", "Mycobacterium tuberculosis H37Rv", "Neisseria gonorrhoeae", "Neisseria meningitidis serogroup B", "Oryctolagus cuniculus", "Ovis aries", "Penicillium chrysogenum", "Plasmodium falciparum", "Rattus norvegicus", "Rotavirus", "Rotavirus A", "Saccharomyces cerevisiae", "Salmonella typhimurium", "Schizosaccharomyces pombe", "Sendai virus", "Severe acute respiratory syndrome coronavirus 2", "Shigella flexneri", "Sindbis virus", "Staphylococcus aureus", "Sus scrofa", "Tick-borne encephalitis virus", "Toxoplasma gondii", "Triticum aestivum", "Vaccinia virus", "Vesicular stomatitis virus", "Vigna radiata var. radiata", "West Nile virus", "Xenopus laevis", "Xenopus tropicalis"; examples: "Homo sapiens", "Mus musculus")
- `types` (string, nullable) — Keep only entries of this kind (one of: "Cell", "Chemical Compound", "Complex", "DNA Sequence", "Drug", "Entity", "Genes and Transcripts", "Icon", "Interactor", "NegativeRegulation", "OtherEntity", "Pathway", "Polymer", "PositiveRegulation", "Protein", "RNA Sequence", "Reaction", "Set"; examples: "Pathway", "Reaction", "Protein")
- `compartments` (string, nullable) — Keep only entries located in this cellular compartment (one of: "COPII-coated ER to Golgi transport vesicle", "ER to Golgi transport vesicle membrane", "Golgi lumen", "Golgi membrane", "Golgi-associated vesicle membrane", "apical plasma membrane", "autophagosome membrane", "axonemal microtubule", "azurophil granule lumen", "azurophil granule membrane", "basolateral plasma membrane", "cell junction", "cell outer membrane", "chromosome", "chromosome, centromeric region", "ciliary base", "ciliary membrane", "ciliary tip", "cilium", "clathrin-coated endocytic vesicle", "clathrin-coated endocytic vesicle membrane", "clathrin-sculpted acetylcholine transport vesicle membrane", "clathrin-sculpted gamma-aminobutyric acid transport vesicle", "clathrin-sculpted gamma-aminobutyric acid transport vesicle membrane", "clathrin-sculpted glutamate transport vesicle membrane", "clathrin-sculpted monoamine transport vesicle membrane", "cornified envelope", "cytoplasm", "cytoplasmic side of endoplasmic reticulum membrane", "cytoplasmic side of plasma membrane", "cytoplasmic vesicle lumen", "cytoplasmic vesicle membrane", "cytosol", "double membrane vesicle viral factory outer membrane", "early endosome", "early endosome lumen", "early endosome membrane", "endocytic vesicle lumen", "endocytic vesicle membrane", "endolysosome lumen", "endolysosome membrane", "endoplasmic reticulum lumen", "endoplasmic reticulum membrane", "endoplasmic reticulum quality control compartment", "endoplasmic reticulum-Golgi intermediate compartment", "endoplasmic reticulum-Golgi intermediate compartment membrane", "endosome", "endosome lumen", "endosome membrane", "external side of plasma membrane", "extracellular exosome", "extracellular region", "ficolin-1-rich granule lumen", "ficolin-1-rich granule membrane", "lamellar body", "lamellar body membrane", "late endosome lumen", "late endosome membrane", "lipid droplet", "lumenal side of endoplasmic reticulum membrane", "lysosomal lumen", "lysosomal membrane", "melanosome lumen", "melanosome membrane", "microtubule organizing center", "mitochondrial inner membrane", "mitochondrial intermembrane space", "mitochondrial matrix", "mitochondrial outer membrane", "mitochondrion", "multivesicular body lumen", "multivesicular body, internal vesicle", "multivesicular body, internal vesicle membrane", "nuclear envelope", "nucleolus", "nucleoplasm", "peptidoglycan-based cell wall", "periplasmic space", "peroxisomal matrix", "peroxisomal membrane", "phagocytic vesicle", "phagocytic vesicle lumen", "phagocytic vesicle membrane", "phagolysosome", "phagophore assembly site membrane", "photoreceptor disc membrane", "photoreceptor outer segment membrane", "plasma membrane", "platelet alpha granule lumen", "platelet alpha granule membrane", "platelet dense granule lumen", "platelet dense granule membrane", "platelet dense tubular network membrane", "recycling endosome", "recycling endosome membrane", "sarcoplasmic reticulum membrane", "secretory granule lumen", "secretory granule membrane", "smooth endoplasmic reticulum", "specific granule lumen", "specific granule membrane", "synaptic vesicle membrane", "tertiary granule lumen", "tertiary granule membrane", "trans-Golgi network membrane", "transport vesicle", "transport vesicle membrane", "viral envelope", "viral tegument", "virion membrane"; examples: "cytosol", "nucleoplasm")
- `keywords` (string, nullable) — Keep only entries carrying this curated keyword (one of: "activates", "binds", "cleaves", "co-transports", "combines", "condenses", "converts", "deacetylates", "deaminates", "decarboxylates", "dehydrates", "dehydrogenates", "demethylates", "dephosphorylates", "desaturates", "deubiquitinates", "dioxygenates", "dismutates", "elongates", "exchanges", "extends", "hydrates", "hydrolyses", "hydroxylates", "inhibits", "initiates", "inserts", "isomerises", "ligates", "lyses", "oxidises", "phosphorylates", "reduces", "regulates", "ribosylates", "signals", "sulfates", "synthesizes", "transaminates", "transfers", "transforms", "translocates", "transports", "ubiquitinates", "unwinds"; examples: "binds", "phosphorylates")
- `count` (integer, required) — Max number of results (min: 1; max: 40000)

## Response

### 200 — Successful Response

- `@type` (string) (default: "ReactomeSearchHit")
- `id` (string, required)
- `db_id` (integer, nullable)
- `display_name` (string) (default: "")
- `record_type` (string) (default: "")
- `exact_type` (string) (default: "")
- `species` (array) (default: [])
- `compartment_names` (array) (default: [])
- `compartment_accessions` (array) (default: [])
- `summary` (string) (default: "")
- `is_disease` (boolean, nullable)
- `has_reference_entity` (boolean, nullable)
- `has_ehld` (boolean, nullable)
- `reference_database` (string) (default: "")
- `reference_identifier` (string) (default: "")
- `reference_name` (string) (default: "")
- `reference_url` (string) (default: "")
- `url` (string) (default: "")

## Errors

### 422 — Validation Error

Unknown species, type, compartment or keyword

What to do: Check the fields against this schema. A URN with the wrong prefix is the most common cause.

- `detail` (array)
  - `loc` (array, required)
  - `msg` (string, required)
  - `type` (string, required)
  - `input` (any)
  - `ctx` (object)

### 408

The request ran past its time limit

What to do: Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.

### 412

No entries match the query

What to do: Retrying will not help: either the entity does not exist, or the input points at a different one.

### 429

Too many requests: a rate limit or a usage window is exhausted

What to do: When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.

### 500

Something broke on our side

What to do: Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.

### 529

Rate limit reached, or the endpoint is overloaded

What to do: Wait at least 30 seconds, then retry.

## Response envelope

Success: Array of objects (may be empty if no results)

Error: Error may coexist with partial results if it occurs mid-execution. Check X-Error header and status code.

Every response carries these headers:

- `X-Error` — Error message text (present only on error)
- `X-Request-ID` — Unique request identifier
- `X-Execution-Time` — Execution time in seconds
- `X-Result-Count` — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.
- `X-Total-Available-Results` — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.
- `X-Warning` — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.
- `X-Retry-After` — Seconds to wait before retrying. Present only on 429.

