> ## 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.

# Compound Targets

> Find a compound’s protein targets and mechanisms of action, with supporting references.

Reports what the Open Targets Platform public database says about a drug or clinical candidate’s protein targets and mechanisms of action, with gene symbols and references. For research; not medical advice. Give exactly one of chembl\_id or name. A PubChem CID is not accepted: pass the compound’s name, which Compound Resolve and Compound Properties return. A name search selects the first hit and lists up to three candidates so you can retry by ChEMBL id. An unknown compound returns matched: false. Does not return indications, adverse events, warnings, measured bioactivity or synthesis and preparation data.

## Authentication

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

## Request Body

**chembl\_id** `string`

ChEMBL molecule identifier; lowercase is accepted. CHEMBL followed by 1 to 9 digits, without a leading zero.

**name** `string`

Drug or compound name; the first search hit is used. 2 to 100 characters.

<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 `compound_targets`

**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 `Open Targets Platform (EMBL-EBI and partners)`.

**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`

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

## Result

Nested under `data.result`.

**data.result.matched** `boolean`

Matched.

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

Candidates.

**data.result.candidates\[].chembl\_id** `string`

Chembl id.

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

Name.

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

Chembl id. `null` when the source gives no value.

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

Name. `null` when the source gives no value.

**data.result.drug\_type** `string`

Drug type. `null` when the source gives no value.

**data.result.max\_clinical\_stage** `string`

Max clinical stage. `null` when the source gives no value.

**data.result.action\_types** `string[]`

Action types.

**data.result.target\_types** `string[]`

Target types.

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

Mechanisms.

**data.result.mechanisms\[].mechanism** `string`

Mechanism. `null` when the source gives no value.

**data.result.mechanisms\[].action\_type** `string`

Action type. `null` when the source gives no value.

**data.result.mechanisms\[].target\_name** `string`

Target name. `null` when the source gives no value.

**data.result.mechanisms\[].targets** `object[]`

Targets.

**data.result.mechanisms\[].targets\[].ensembl\_gene\_id** `string`

Ensembl gene id.

**data.result.mechanisms\[].targets\[].symbol** `string`

Symbol. `null` when the source gives no value.

**data.result.mechanisms\[].references** `object[]`

References.

**data.result.mechanisms\[].references\[].source** `string`

Source. `null` when the source gives no value.

**data.result.mechanisms\[].references\[].urls** `string[]`

Urls.

```bash cURL theme={null}
curl -X POST https://win.oneshotagent.com/v1/tools/lookup/compound-targets \
  -H "Content-Type: application/json" \
  -H "payment-signature: <base64 x402 payment>" \
  -d '{
    "chembl_id": "CHEMBL1201580"
  }'
```

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

```typescript SDK theme={null}
const result = await agent.tool('lookup/compound-targets', {
  chembl_id: 'CHEMBL1201580'
});
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": "compound_targets",
    "result": {
      "matched": true,
      "candidates": [],
      "chembl_id": "CHEMBL1201580",
      "name": "ADALIMUMAB",
      "drug_type": "Antibody",
      "max_clinical_stage": "APPROVAL",
      "action_types": [
        "INHIBITOR"
      ],
      "target_types": [
        "single protein"
      ],
      "mechanisms": [
        {
          "mechanism": "TNF-alpha inhibitor",
          "action_type": "INHIBITOR",
          "target_name": "Tumor necrosis factor",
          "targets": [
            {
              "ensembl_gene_id": "ENSG00000232810",
              "symbol": "TNF"
            }
          ],
          "references": [
            {
              "source": "DailyMed",
              "urls": [
                "http://dailymed.nlm.nih.gov/dailymed/lookup.cfm?setid=608d4f0d-b19f-46d3-749a-7159aa5f933d"
              ]
            }
          ]
        }
      ]
    },
    "evidence": {
      "source": "Open Targets Platform (EMBL-EBI and partners)",
      "source_kind": "public",
      "retrieved_at": "2026-10-22T12:00:00.000Z",
      "calls": [
        {
          "retrieved_at": "2026-10-22T12: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

* 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.