curl -X POST https://win.oneshotagent.com/v1/tools/lookup/protein-sequence \
-H "Content-Type: application/json" \
-H "payment-signature: <base64 x402 payment>" \
-d '{
"accession": "P00001"
}'
const response = await fetch("https://win.oneshotagent.com/v1/tools/lookup/protein-sequence", {
method: "POST",
headers: {
"Content-Type": "application/json",
"payment-signature": paymentProof,
},
body: JSON.stringify({
"accession": "P00001"
}),
});
const result = await agent.tool('lookup/protein-sequence', {
accession: 'P00001'
});
console.log(result.data.result);
console.log(result.data.evidence);
{
"success": true,
"data": {
"request_id": "uuid",
"receipt_id": "rcpt_...",
"status": "completed",
"tool": "protein_sequence",
"result": {
"protein": null,
"inactive": {
"reason": "demerged",
"replaced_by": [
"P99999",
"P99998"
]
}
},
"evidence": {
"source": "UniProt Consortium",
"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 Sequence
Get the reference amino-acid sequence of a protein or an isoform by UniProt accession, with its length, weight, checksums and isoforms.
POST
/
v1
/
tools
/
lookup
/
protein-sequence
curl -X POST https://win.oneshotagent.com/v1/tools/lookup/protein-sequence \
-H "Content-Type: application/json" \
-H "payment-signature: <base64 x402 payment>" \
-d '{
"accession": "P00001"
}'
const response = await fetch("https://win.oneshotagent.com/v1/tools/lookup/protein-sequence", {
method: "POST",
headers: {
"Content-Type": "application/json",
"payment-signature": paymentProof,
},
body: JSON.stringify({
"accession": "P00001"
}),
});
const result = await agent.tool('lookup/protein-sequence', {
accession: 'P00001'
});
console.log(result.data.result);
console.log(result.data.evidence);
{
"success": true,
"data": {
"request_id": "uuid",
"receipt_id": "rcpt_...",
"status": "completed",
"tool": "protein_sequence",
"result": {
"protein": null,
"inactive": {
"reason": "demerged",
"replaced_by": [
"P99999",
"P99998"
]
}
},
"evidence": {
"source": "UniProt Consortium",
"source_kind": "public",
"retrieved_at": "2026-01-15T12:00:00.000Z",
"calls": [
{
"retrieved_at": "2026-01-15T12:00:00.000Z"
}
],
"as_of": null
}
}
}
Protein sequences from UniProt under CC BY 4.0, attributed to the UniProt Consortium. Medical or genetic information is for research and education only. The sequence is the reference sequence UniProtKB holds for a protein, never an individual’s sequence. Covers reviewed and unreviewed entries; an accession with an isoform suffix (P04637-2) returns that isoform’s sequence. Returns the one-letter sequence, length, molecular weight in daltons, CRC64 and MD5 checksums, gene, organism and the isoforms the entry lists. sequence_version and last_sequence_update describe the entry, also for an isoform. UniProt releases updates every eight weeks. Absent values are null. A merged, demerged or deleted accession returns no protein and the source’s inactive reason with any replacement accessions. No match, including an isoform the entry does not list, returns null for both.
Authentication
Requires x402 payment in thepayment-signature header.
Request Body
string
required
The UniProt accession, for example P04637, or an isoform accession, for example P04637-2.
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_sequenceobject
The answer, described under Result below
object
Where the answer came from and when
string
The public body the data comes from. Always
UniProt Consortium.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.
object
Protein.
null when the source gives no value.string
Accession.
null when the source gives no value.string
Entry name.
null when the source gives no value.boolean
Reviewed.
boolean
Is isoform.
string
Gene.
null when the source gives no value.object
Organism.
string
Scientific name.
null when the source gives no value.number
Taxon id.
null when the source gives no value.string
One-letter amino-acid sequence.
null when the source gives no value.number
Length.
null when the source gives no value.number
Molecular weight da.
null when the source gives no value.string
Crc64.
null when the source gives no value.string
Md5.
null when the source gives no value.number
The entry’s sequence version.
null when the source gives no value.string
The date the entry’s sequence last changed, YYYY-MM-DD.
null when the source gives no value.object[]
Isoforms.
string
Accession.
null when the source gives no value.string
Name.
null when the source gives no value.string[]
Synonyms.
string
Isoform sequence status, lower-cased: displayed, described or another source value.
null when the source gives no value.object
Inactive.
null when the source gives no value.string
The source’s reason for inactivation, lower-cased: merged, demerged or deleted.
null when the source gives no value.string[]
Replaced by.
curl -X POST https://win.oneshotagent.com/v1/tools/lookup/protein-sequence \
-H "Content-Type: application/json" \
-H "payment-signature: <base64 x402 payment>" \
-d '{
"accession": "P00001"
}'
const response = await fetch("https://win.oneshotagent.com/v1/tools/lookup/protein-sequence", {
method: "POST",
headers: {
"Content-Type": "application/json",
"payment-signature": paymentProof,
},
body: JSON.stringify({
"accession": "P00001"
}),
});
const result = await agent.tool('lookup/protein-sequence', {
accession: 'P00001'
});
console.log(result.data.result);
console.log(result.data.evidence);
{
"success": true,
"data": {
"request_id": "uuid",
"receipt_id": "rcpt_...",
"status": "completed",
"tool": "protein_sequence",
"result": {
"protein": null,
"inactive": {
"reason": "demerged",
"replaced_by": [
"P99999",
"P99998"
]
}
},
"evidence": {
"source": "UniProt Consortium",
"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}