> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oneshotagent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Protein Interactions

> Look up a protein’s interaction partners with combined and per-channel confidence scores, by gene symbol or UniProt accession.

Returns a protein's interaction partners from the STRING network (CC BY 4.0, STRING consortium): the query protein and each partner with a combined confidence score (0 to 1) and per-channel scores. Scores combine experimental, curated and predicted (text-mining, co-expression) evidence, so a high score is not proof of physical binding. The data is for research, not medical advice.

## Authentication

Requires x402 payment in the `payment-signature` header.

## Request Body

**identifier** `string` *required*

A gene symbol or a UniProt accession, for example TP53 or P04637. Letters, digits, ".", "\_" and "-" only, 1 to 40.

**taxon\_id** `integer`

The organism as an NCBI Taxonomy ID; 9606 is human, 10090 is mouse. From 1 to 999999999. Defaults to `9606`.

**limit** `integer`

Maximum partners returned. From 1 to 50. Defaults to `10`.

**min\_score** `number`

Lowest combined confidence score kept. From 0.15 to 1. Defaults to `0.4`.

<Snippet file="audit-context-params.mdx" />

## Response (200 OK)

Top-level envelope: `success` (boolean) and `data` (object). All fields below are nested under `data`.

**data.request\_id** `string`

Durable job ID for audit and lookup

**data.status** `string`

Job status: `completed`

**data.tool** `string`

Always `protein_interactions`

**data.result** `object`

The answer, described under Result below

**data.evidence** `object`

Where the answer came from and when

**data.evidence.source** `string`

The public body the data comes from. Always `STRING consortium`.

**data.evidence.source\_kind** `string`

`public` when the data comes from a public body, `commercial` otherwise

**data.evidence.retrieved\_at** `string`

When the lookup was made, as an ISO 8601 UTC time

**data.evidence.as\_of** `string | null`

When the source says the fact was last updated, or `null` when the source gives no date

## Result

Nested under `data.result`.

**data.result.protein** `object | null`

The query protein as the source resolved it; null when there are no partners.

**data.result.protein.string\_id** `string`

The query protein’s identifier in the source network.

**data.result.protein.name** `string`

The query protein’s preferred name.

**data.result.protein.taxon\_id** `integer`

NCBI Taxonomy ID of the organism.

**data.result.partners** `object[]`

Partners in the source’s order, highest combined score first.

**data.result.partners\[].string\_id** `string`

The partner’s identifier in the source network.

**data.result.partners\[].name** `string`

The partner’s preferred name.

**data.result.partners\[].score** `number`

Combined confidence score, 0 to 1.

**data.result.partners\[].evidence** `object`

Evidence.

**data.result.partners\[].evidence.experiments** `number`

Experimental evidence score.

**data.result.partners\[].evidence.databases** `number`

Curated database evidence score.

**data.result.partners\[].evidence.text\_mining** `number`

Text-mining evidence score.

**data.result.partners\[].evidence.coexpression** `number`

Co-expression evidence score.

**data.result.partners\[].evidence.neighborhood** `number`

Genomic neighborhood evidence score.

**data.result.partners\[].evidence.gene\_fusion** `number`

Gene fusion evidence score.

**data.result.partners\[].evidence.cooccurrence** `number`

Phylogenetic co-occurrence evidence score.

**data.result.page\_url** `string | null`

The query protein’s network page; null when there are no partners.

```bash cURL theme={null}
curl -X POST https://win.oneshotagent.com/v1/tools/lookup/protein-interactions \
  -H "Content-Type: application/json" \
  -H "payment-signature: <base64 x402 payment>" \
  -d '{
    "identifier": "TP53",
    "limit": 1
  }'
```

```javascript JavaScript theme={null}
const response = await fetch("https://win.oneshotagent.com/v1/tools/lookup/protein-interactions", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "payment-signature": paymentProof,
  },
  body: JSON.stringify({
    "identifier": "TP53",
    "limit": 1
  }),
});
```

```typescript SDK theme={null}
const result = await agent.tool('lookup/protein-interactions', {
  identifier: 'TP53',
  limit: 1
});
console.log(result.result);
console.log(result.evidence);
```

```json Response (200) theme={null}
{
  "success": true,
  "data": {
    "request_id": "uuid",
    "receipt_id": "rcpt_...",
    "status": "completed",
    "tool": "protein_interactions",
    "result": {
      "protein": {
        "string_id": "9606.ENSP00000269305",
        "name": "TP53",
        "taxon_id": 9606
      },
      "partners": [
        {
          "string_id": "9606.ENSP00000212015",
          "name": "SIRT1",
          "score": 0.999,
          "evidence": {
            "experiments": 0.999,
            "databases": 0.9,
            "text_mining": 0.886,
            "coexpression": 0,
            "neighborhood": 0,
            "gene_fusion": 0,
            "cooccurrence": 0
          }
        }
      ],
      "page_url": "https://string-db.org/network/9606.ENSP00000269305"
    },
    "evidence": {
      "source": "STRING consortium",
      "source_kind": "public",
      "retrieved_at": "2026-10-25T12:00:00.000Z",
      "calls": [
        {
          "retrieved_at": "2026-10-25T12:00:00.000Z"
        }
      ],
      "as_of": null
    }
  }
}
```

> [!NOTE]
>
> See [Pricing](https://docs.oneshotagent.com/pricing.md) for this tool's price. A wallet (x402) call receives it in the 402 quote before anything is charged; a call paid from prepaid credits is charged when the API accepts the request and answers `200`.

## Notes

* Evidence channels: experiments, curated databases, text mining, co-expression, genomic neighborhood, gene fusion and phylogenetic co-occurrence, each scored 0 to 1.
* identifier is a gene symbol (TP53) or a UniProt accession (P04637); taxon\_id is human (9606) by default.
* Partners come in the source's order, highest combined score first, up to limit; min\_score is the lowest combined score kept.
* An identifier the source cannot map in that organism returns no protein and an empty partner list.
* Only the source's own combined and channel scores are returned, never records from the databases it incorporates.
* Results return inline. The finished job stays available at `/v1/requests/{request_id}`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.