Files

7.8 KiB

title, task, lineage_type, upstream_source, upstream_sha, imported_at, prompt_class, upstream_changes, author, validated
title task lineage_type upstream_source upstream_sha imported_at prompt_class upstream_changes author validated
STRING REST API import https://github.com/K-Dense-AI/scientific-agent-skills/blob/9c9bd2e9/skills/database-lookup/references/string.md 9c9bd2e9 2026-06-26 prompt accepted upstream false

STRING REST API

Base URL

https://string-db.org/api

URL Pattern

/api/{output_format}/{method}
  • output_format: json, tsv, tsv-no-header, image, svg (not all formats for all endpoints)
  • method: endpoint name (see below)

Authentication

No API key required. All endpoints are public.

Key Endpoints

1. Resolve protein identifiers

Map protein names/identifiers to STRING internal IDs. Always do this first to get canonical STRING IDs.

GET /api/json/resolve?identifier={query}&species={taxid}
Parameter Type Description
identifier string Required. Protein name, gene symbol, or external ID.
species int NCBI taxonomy ID (9606 = human, 10090 = mouse). Recommended to avoid ambiguity.

Example:

https://string-db.org/api/json/resolve?identifier=TP53&species=9606

Response:

[
  {
    "stringId": "9606.ENSP00000269305",
    "preferredName": "TP53",
    "ncbiTaxonId": 9606,
    "taxonName": "Homo sapiens",
    "annotation": "Cellular tumor antigen p53; ..."
  }
]

2. Get interaction partners (network)

GET /api/json/interaction_partners?identifiers={proteins}&species={taxid}
Parameter Type Description
identifiers string Required. Protein name(s). Use %0d (newline) to separate multiple.
species int NCBI taxonomy ID.
limit int Max number of interaction partners to return (per input protein).
required_score int Minimum combined score (0-1000). Default: 400. Common thresholds: 400 (medium), 700 (high), 900 (highest).
network_type string functional (default, all associations) or physical (physical binding only).

Example:

https://string-db.org/api/json/interaction_partners?identifiers=TP53&species=9606&limit=10&required_score=900

Response:

[
  {
    "stringId_A": "9606.ENSP00000269305",
    "stringId_B": "9606.ENSP00000261842",
    "preferredName_A": "TP53",
    "preferredName_B": "MDM2",
    "ncbiTaxonId": 9606,
    "score": 0.999,
    "nscore": 0,
    "fscore": 0,
    "pscore": 0,
    "ascore": 0.93,
    "escore": 0.994,
    "dscore": 0.9,
    "tscore": 0.981
  }
]

Score channels: nscore (neighborhood), fscore (fusion), pscore (phylogenetic co-occurrence), ascore (co-expression), escore (experimental), dscore (database/curated), tscore (text mining).


3. Get network interactions between a set of proteins

GET /api/json/network?identifiers={proteins}&species={taxid}
Parameter Type Description
identifiers string Required. Protein names separated by %0d (newline-encoded).
species int NCBI taxonomy ID.
required_score int Minimum combined score (0-1000).
network_type string functional or physical.
add_nodes int Number of additional interactors to add (expands the network).

Example — network among a set of proteins:

https://string-db.org/api/json/network?identifiers=TP53%0dBRCA1%0dATM%0dCHEK2%0dMDM2&species=9606&required_score=700

Returns all pairwise interactions among the input set.


4. Network image

GET /api/image/network?identifiers={proteins}&species={taxid}
GET /api/svg/network?identifiers={proteins}&species={taxid}

Returns a PNG image or SVG of the interaction network.

Example:

https://string-db.org/api/image/network?identifiers=TP53%0dBRCA1%0dMDM2&species=9606

5. Functional enrichment analysis

Perform Gene Ontology, KEGG pathway, and other enrichment analysis on a set of proteins.

GET /api/json/enrichment?identifiers={proteins}&species={taxid}
Parameter Type Description
identifiers string Required. Newline-separated (%0d) protein names.
species int NCBI taxonomy ID.

Example:

https://string-db.org/api/json/enrichment?identifiers=TP53%0dBRCA1%0dATM%0dCHEK2%0dCDK2%0dCDKN1A&species=9606

Response:

[
  {
    "category": "Process",
    "term": "GO:0006974",
    "description": "cellular response to DNA damage stimulus",
    "number_of_genes": 6,
    "number_of_genes_in_background": 781,
    "ncbiTaxonId": 9606,
    "inputGenes": "TP53,BRCA1,ATM,CHEK2,CDK2,CDKN1A",
    "preferredNames": "TP53,BRCA1,ATM,CHEK2,CDK2,CDKN1A",
    "p_value": 1.2e-12,
    "fdr": 5.6e-10
  }
]

Categories include: Process (GO Biological Process), Function (GO Molecular Function), Component (GO Cellular Component), KEGG, Pfam, InterPro, SMART, Keyword (UniProt), Reactome, WikiPathways, HPO (Human Phenotype Ontology).


6. Get protein annotations/info

GET /api/json/get_string_ids?identifiers={proteins}&species={taxid}

Maps arbitrary names to STRING IDs with annotation text.

Example:

https://string-db.org/api/json/get_string_ids?identifiers=CDK2%0dp53&species=9606

Response:

[
  {
    "queryIndex": 0,
    "queryItem": "CDK2",
    "stringId": "9606.ENSP00000266970",
    "ncbiTaxonId": 9606,
    "taxonName": "Homo sapiens",
    "preferredName": "CDK2",
    "annotation": "Cyclin-dependent kinase 2; ..."
  }
]

7. Get homology / best-hit in another species

GET /api/json/homology?identifiers={proteins}&species={taxid}&species_b={taxid_b}
Parameter Type Description
identifiers string Source protein(s).
species int Source species.
species_b int Target species for homolog lookup.

Example:

https://string-db.org/api/json/homology?identifiers=TP53&species=9606&species_b=10090

8. PPI enrichment (is my set more connected than expected?)

GET /api/json/ppi_enrichment?identifiers={proteins}&species={taxid}

Example:

https://string-db.org/api/json/ppi_enrichment?identifiers=TP53%0dBRCA1%0dATM%0dCHEK2&species=9606

Response:

[
  {
    "number_of_nodes": 4,
    "number_of_edges": 6,
    "average_node_degree": 3.0,
    "local_clustering_coefficient": 1.0,
    "expected_number_of_edges": 1,
    "p_value": 0.000123
  }
]

Common Species Taxonomy IDs

Species Taxon ID
Homo sapiens (human) 9606
Mus musculus (mouse) 10090
Rattus norvegicus (rat) 10116
Drosophila melanogaster (fruit fly) 7227
Saccharomyces cerevisiae (yeast) 4932
Caenorhabditis elegans (worm) 6239
Danio rerio (zebrafish) 7955
Escherichia coli K12 511145
Arabidopsis thaliana 3702

Rate Limits

  • No published hard rate limit, but the API is intended for programmatic access at moderate rates.
  • Recommended: max 1 request per second.
  • For large-scale data downloads, use the flat-file downloads on the STRING website instead.
  • If you send too many requests, you may receive HTTP 429 or temporary blocking.
  • Multiple identifiers per request is strongly preferred over multiple single-identifier requests.

Error Handling

  • Returns HTTP 400 for malformed requests.
  • Returns HTTP 404 if no matching protein is found.
  • Empty JSON array [] if the query is valid but returns no results (e.g., no interactions above the threshold).
  • Include species parameter whenever possible to avoid ambiguous identifier resolution.