# STRING API
> The STRING protein–protein interaction database as an API — the curated and predicted network of functional associations between proteins, powered by the official STRING API. Resolve gene or protein names to STRING identifiers with annotations; get a protein's top interaction partners with a combined confidence score and per-channel evidence (experimental, curated databases, co-expression, text-mining, gene fusion, neighbourhood and co-occurrence); build the interaction network among a set of proteins as scored edges; run functional enrichment of a gene set over Gene Ontology, KEGG, Reactome, Pfam, InterPro and more with p-values and false-discovery rates; and score homology between proteins. Covers 12,000+ organisms (default human, NCBI taxon 9606). Ideal for systems-biology and network-biology pipelines, gene-set and pathway analysis, drug-target and disease-gene research, and bioinformatics dashboards.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/string-api/..."
```

## Pricing
- **Free** (Free) — 530 calls/Mo, 2 req/s
- **Starter** ($7/Mo) — 19,500 calls/Mo, 6 req/s
- **Pro** ($22/Mo) — 89,000 calls/Mo, 15 req/s
- **Mega** ($59/Mo) — 345,000 calls/Mo, 40 req/s

## Endpoints

### Proteins

#### `GET /v1/resolve` — Map names to STRING identifiers

**Parameters:**
- `identifiers` (query, required, string) — Comma-separated names, e.g. TP53,MDM2 Example: `TP53,MDM2`
- `species` (query, optional, string) — NCBI taxon id (default 9606) Example: `9606`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/string-api/v1/resolve?identifiers=TP53%2CMDM2&species=9606"
```

**Response:**
```json
{
    "data": {
        "count": 2,
        "species": "9606",
        "proteins": [
            {
                "query": "TP53",
                "taxon_id": 9606,
                "string_id": "9606.ENSP00000269305",
                "annotation": "Cellular tumor antigen p53; Acts as a tumor suppressor in many tumor types; induces growth arrest or apoptosis depending on the physiological circumstances and cell type. Involved in cell cycle regulation as a trans-activator that acts to negatively regulate cell division by controlling a set of gen",
                "taxon_name": "Homo sapiens",
                "preferred_name": "TP53"
            },
            {
                "query": "MDM2",
                "taxon_id": 9606,
                "string_id": "9606.ENSP00000258149",
                "annotation": "E3 ubiquitin-protein ligase Mdm2; E3 ubiquitin-protein ligase that mediates ubiquitination of p53/TP53, leading to its degradation by the proteasome. Inhibits p53/TP53- and p73/TP73-mediated cell cycle arrest and apoptosis by binding its transcriptional activation domain. Also acts as a ubiquitin li",
                "taxon_name": "Homo sapiens",
                "preferred_name": "MDM2"
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-01T08:13:57.491Z",
        "request_id": "a1dd69fa-fe79-4033-b97c-b25af81dbdb5"
    },
    "status": "ok",
    "message": "Identifiers resolved",
    "success": true
}
```

### Interactions

#### `GET /v1/network` — Interaction network among proteins

**Parameters:**
- `identifiers` (query, required, string) — Comma-separated, e.g. TP53,MDM2,EGFR Example: `TP53,MDM2,EGFR,CDKN1A`
- `species` (query, optional, string) — NCBI taxon id Example: `9606`
- `required_score` (query, optional, string) — Min score 0-1000

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/string-api/v1/network?identifiers=TP53%2CMDM2%2CEGFR%2CCDKN1A&species=9606"
```

**Response:**
```json
{
    "data": {
        "edges": 6,
        "input": [
            "TP53",
            "MDM2",
            "EGFR",
            "CDKN1A"
        ],
        "nodes": 4,
        "network": [
            {
                "score": 0.897,
                "evidence": {
                    "fusion": 0,
                    "database": 0.65,
                    "textmining": 0.718,
                    "coexpression": 0,
                    "cooccurrence": 0,
                    "experimental": 0,
                    "neighborhood": 0
                },
                "protein_a": "MDM2",
                "protein_b": "EGFR",
                "string_id_a": "9606.ENSP00000258149",
                "string_id_b": "9606.ENSP00000275493"
            },
            {
                "score": 0.98,
                "evidence": {
                    "fusion": 0,
                    "database": 0,
                    "textmining": 0.873,
                    "coexpression": 0.072,
                    "cooccurrence": 0,
                    "experimental": 0.848,
                    "neighborhood": 0
                },
                "protein_a": "MDM2",
                "protein_b": "CDKN1A",
                "string_id_a": "9606.ENSP00000258149",
                "string_id_b": "9606.ENSP00000384849"
            },
            {
                "score": 0.999,
                "evidence": {
                    "fusion": 0,
                    "database": 0.9,
                    "textmining": 0.999,
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/partners` — A protein's interaction partners

**Parameters:**
- `identifiers` (query, required, string) — Protein name, e.g. TP53 Example: `TP53`
- `species` (query, optional, string) — NCBI taxon id Example: `9606`
- `limit` (query, optional, string) — Max partners (1-100)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/string-api/v1/partners?identifiers=TP53&species=9606"
```

**Response:**
```json
{
    "data": {
        "count": 20,
        "query": [
            "TP53"
        ],
        "species": "9606",
        "partners": [
            {
                "score": 0.999,
                "evidence": {
                    "fusion": 0,
                    "database": 0.75,
                    "textmining": 0.859,
                    "coexpression": 0,
                    "cooccurrence": 0,
                    "experimental": 0.981,
                    "neighborhood": 0
                },
                "protein_a": "TP53",
                "protein_b": "SFN",
                "string_id_a": "9606.ENSP00000269305",
                "string_id_b": "9606.ENSP00000340989"
            },
            {
                "score": 0.999,
                "evidence": {
                    "fusion": 0,
                    "database": 0.9,
                    "textmining": 0.998,
                    "coexpression": 0.049,
                    "cooccurrence": 0,
                    "experimental": 0.999,
                    "neighborhood": 0
                },
                "protein_a": "TP53",
                "protein_b": "EP300",
                "string_id_a": "9606.ENSP00000269305",
                "string_id_b": "9606.ENSP00000263253"
            },
            {
                "score": 0.999,
                "evidence": {
                    "fusion": 0,
                    "database": 0,
                    "textmining": 0.994,
                    "coexpression": 0,
          
…(truncated, see openapi.json for full schema)
```

### Analysis

#### `GET /v1/enrichment` — Functional enrichment of a gene set

**Parameters:**
- `identifiers` (query, required, string) — >=2 genes, comma-separated Example: `TP53,MDM2,CDKN1A,ATM`
- `species` (query, optional, string) — NCBI taxon id Example: `9606`
- `category` (query, optional, string) — Filter, e.g. KEGG

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/string-api/v1/enrichment?identifiers=TP53%2CMDM2%2CCDKN1A%2CATM&species=9606"
```

**Response:**
```json
{
    "data": {
        "count": 40,
        "terms": [
            {
                "fdr": 0.0021,
                "term": "GOCC:0005730",
                "p_value": 9.1e-7,
                "category": "COMPARTMENTS",
                "description": "Nucleolus",
                "genes_in_set": 4,
                "matching_genes": [
                    "MDM2",
                    "TP53",
                    "ATM",
                    "CDKN1A"
                ],
                "genes_in_background": 606
            },
            {
                "fdr": 0.0133,
                "term": "GOCC:0005654",
                "p_value": 1.15e-5,
                "category": "COMPARTMENTS",
                "description": "Nucleoplasm",
                "genes_in_set": 4,
                "matching_genes": [
                    "MDM2",
                    "TP53",
                    "ATM",
                    "CDKN1A"
                ],
                "genes_in_background": 1146
            },
            {
                "fdr": 2.65e-8,
                "term": "GO:0006977",
                "p_value": 1.69e-12,
                "category": "Process",
                "description": "DNA damage response, signal transduction by p53 class mediator resulting in cell cycle arrest",
                "genes_in_set": 4,
                "matching_genes": [
                    "MDM2",
                    "TP53",
                    "ATM",
                    "CDKN1A"
                ],
              
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/homology` — Homology between proteins

**Parameters:**
- `identifiers` (query, required, string) — Comma-separated proteins Example: `TP53,TP63`
- `species` (query, optional, string) — NCBI taxon id Example: `9606`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/string-api/v1/homology?identifiers=TP53%2CTP63&species=9606"
```

**Response:**
```json
{
    "data": {
        "count": 4,
        "input": [
            "TP53",
            "TP63"
        ],
        "species": "9606",
        "homology": [
            {
                "bitscore": 1420.6,
                "protein_a": "9606.ENSP00000264731",
                "protein_b": "9606.ENSP00000264731",
                "string_id_a": "9606.ENSP00000264731",
                "string_id_b": "9606.ENSP00000264731"
            },
            {
                "bitscore": 271.2,
                "protein_a": "9606.ENSP00000264731",
                "protein_b": "9606.ENSP00000269305",
                "string_id_a": "9606.ENSP00000264731",
                "string_id_b": "9606.ENSP00000269305"
            },
            {
                "bitscore": 271.2,
                "protein_a": "9606.ENSP00000269305",
                "protein_b": "9606.ENSP00000264731",
                "string_id_a": "9606.ENSP00000269305",
                "string_id_b": "9606.ENSP00000264731"
            },
            {
                "bitscore": 815.8,
                "protein_a": "9606.ENSP00000269305",
                "protein_b": "9606.ENSP00000269305",
                "string_id_a": "9606.ENSP00000269305",
                "string_id_b": "9606.ENSP00000269305"
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-01T08:13:59.630Z",
        "request_id": "04619437-b65c-44a9-be26-2799052cb91b"
    },
    "status": "ok",
    "message": "Homology retrieved",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Usage notes

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/string-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "Protein–protein interactions & associations. Identifiers are gene/protein names (comma-separated); species is an NCBI taxon id (default 9606 = human). /v1/resolve?identifiers=TP53,MDM2 = map names to STRING ids with annotation; /v1/partners?identifiers=TP53 = a protein's top interaction partners with a combined confidence score (0-1) and per-channel evidence (experimental, database, coexpression, textmining…); /v1/network?identifiers=TP53,MDM2,EGFR (filter required_score=400) = the interaction network among the given proteins (nodes & scored edges); /v1/enrichment?identifiers=TP53,MDM2,CDKN1A = functional enrichment over GO, KEGG, Reactome, Pfam… with p-value & FDR (filter category=); /v1/homology?identifiers=TP53,TP63 = homology bit-scores between the input proteins. Covers 12,000+ organisms. Data from STRING (CC-BY).",
        "source": "STRING protein–protein interaction database (string-db.org)",
        "endpoints": [
            "/v1/resolve",
            "/v1/partners",
            "/v1/network",
            "/v1/enrichment",
            "/v1/homology",
            "/v1/meta"
        ]
    },
    "meta": {
        "timestamp": "2026-06-01T08:13:59.684Z",
        "request_id": "6fd87be9-0fe0-4195-ae3f-8ffc57e7668f"
    },
    "status": "ok",
    "message": "Meta retrieved",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/string-api
OpenAPI spec: https://www.oanor.com/api/string-api/openapi.json
