curl -X POST https://win.oneshotagent.com/v1/tools/lookup/protein-domains \
-H "Content-Type: application/json" \
-H "payment-signature: <base64 x402 payment>" \
-d '{
"accession": "P04637",
"types": [
"conserved_site"
]
}'
const response = await fetch("https://win.oneshotagent.com/v1/tools/lookup/protein-domains", {
method: "POST",
headers: {
"Content-Type": "application/json",
"payment-signature": paymentProof,
},
body: JSON.stringify({
"accession": "P04637",
"types": [
"conserved_site"
]
}),
});
const result = await agent.tool('lookup/protein-domains', {
accession: 'P04637',
types: [
'conserved_site'
]
});
console.log(result.data.result);
console.log(result.data.evidence);
{
"success": true,
"data": {
"request_id": "uuid",
"receipt_id": "rcpt_...",
"status": "completed",
"tool": "protein_domains",
"result": {
"accession": "P04637",
"protein_length": 393,
"entries": [
{
"interpro_id": "IPR057064",
"name": "p53, central conserved site",
"type": "conserved_site",
"go_terms": [],
"locations": [
{
"start": 237,
"end": 249,
"discontinuous": false
}
],
"page_url": "https://www.ebi.ac.uk/interpro/entry/InterPro/IPR057064/"
}
],
"truncated": false
},
"evidence": {
"source": "InterPro (EMBL-EBI)",
"source_kind": "public",
"retrieved_at": "2026-01-15T12:00:00.000Z",
"calls": [
{
"retrieved_at": "2026-01-15T12:00:00.000Z"
}
],
"as_of": null
}
}
}
Life sciences
Protein Domains
Look up protein domains, families and conserved sites with GO terms and sequence locations.
POST
/
v1
/
tools
/
lookup
/
protein-domains
curl -X POST https://win.oneshotagent.com/v1/tools/lookup/protein-domains \
-H "Content-Type: application/json" \
-H "payment-signature: <base64 x402 payment>" \
-d '{
"accession": "P04637",
"types": [
"conserved_site"
]
}'
const response = await fetch("https://win.oneshotagent.com/v1/tools/lookup/protein-domains", {
method: "POST",
headers: {
"Content-Type": "application/json",
"payment-signature": paymentProof,
},
body: JSON.stringify({
"accession": "P04637",
"types": [
"conserved_site"
]
}),
});
const result = await agent.tool('lookup/protein-domains', {
accession: 'P04637',
types: [
'conserved_site'
]
});
console.log(result.data.result);
console.log(result.data.evidence);
{
"success": true,
"data": {
"request_id": "uuid",
"receipt_id": "rcpt_...",
"status": "completed",
"tool": "protein_domains",
"result": {
"accession": "P04637",
"protein_length": 393,
"entries": [
{
"interpro_id": "IPR057064",
"name": "p53, central conserved site",
"type": "conserved_site",
"go_terms": [],
"locations": [
{
"start": 237,
"end": 249,
"discontinuous": false
}
],
"page_url": "https://www.ebi.ac.uk/interpro/entry/InterPro/IPR057064/"
}
],
"truncated": false
},
"evidence": {
"source": "InterPro (EMBL-EBI)",
"source_kind": "public",
"retrieved_at": "2026-01-15T12:00:00.000Z",
"calls": [
{
"retrieved_at": "2026-01-15T12:00:00.000Z"
}
],
"as_of": null
}
}
}
InterPro entries from InterPro at EMBL-EBI, under CC0 1.0. Returns integrated InterPro entries only, never member-database signatures. Covers canonical UniProtKB sequences; isoform accessions are refused. Filter by entry type or omit types for all entries. An empty types list keeps no entries. Entries are sorted by their first location’s start, then identifier. Locations span the first through last fragment; discontinuous marks multiple fragments or a fragment whose dc-status is not CONTINUOUS. Releases arrive about every eight weeks; no per-entry date is supplied, so changes are recorded as observations. Returns the first page only (up to 200 entries), with truncated true when another page exists. No match completes with an empty entries list and null protein_length.
Authentication
Requires x402 payment in thepayment-signature header.
Request Body
string
required
The canonical UniProt accession identifying the protein, for example P04637; isoforms are not accepted.
string[]
Keep only these entry types; omitted means all types.
Response (200 OK)
Top-level envelope:success (boolean) and data (object). All fields below are nested under data.
string
Durable job ID for audit and lookup
string
Job status:
completedstring
Always
protein_domainsobject
The answer, described under Result below
object
Where the answer came from and when
string
The public body the data comes from. Always
InterPro (EMBL-EBI).string
public when the data comes from a public body, commercial otherwisestring
When the lookup was made, as an ISO 8601 UTC time
string
When the source says the fact was last updated, or
null when the source gives no dateResult
Nested underdata.result.
string
Accession.
integer
Protein length.
null when the source gives no value.object[]
Entries.
string
Interpro id.
string
Name.
string
Type.
object[]
Go terms.
string
Id.
string
Name.
string
Category.
object[]
Locations.
integer
Start.
integer
End.
boolean
Discontinuous.
string
Page url.
boolean
Truncated.
curl -X POST https://win.oneshotagent.com/v1/tools/lookup/protein-domains \
-H "Content-Type: application/json" \
-H "payment-signature: <base64 x402 payment>" \
-d '{
"accession": "P04637",
"types": [
"conserved_site"
]
}'
const response = await fetch("https://win.oneshotagent.com/v1/tools/lookup/protein-domains", {
method: "POST",
headers: {
"Content-Type": "application/json",
"payment-signature": paymentProof,
},
body: JSON.stringify({
"accession": "P04637",
"types": [
"conserved_site"
]
}),
});
const result = await agent.tool('lookup/protein-domains', {
accession: 'P04637',
types: [
'conserved_site'
]
});
console.log(result.data.result);
console.log(result.data.evidence);
{
"success": true,
"data": {
"request_id": "uuid",
"receipt_id": "rcpt_...",
"status": "completed",
"tool": "protein_domains",
"result": {
"accession": "P04637",
"protein_length": 393,
"entries": [
{
"interpro_id": "IPR057064",
"name": "p53, central conserved site",
"type": "conserved_site",
"go_terms": [],
"locations": [
{
"start": 237,
"end": 249,
"discontinuous": false
}
],
"page_url": "https://www.ebi.ac.uk/interpro/entry/InterPro/IPR057064/"
}
],
"truncated": false
},
"evidence": {
"source": "InterPro (EMBL-EBI)",
"source_kind": "public",
"retrieved_at": "2026-01-15T12:00:00.000Z",
"calls": [
{
"retrieved_at": "2026-01-15T12:00:00.000Z"
}
],
"as_of": null
}
}
}
See Pricing 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}