List the decisions
GET /v1/decisions needs no key, so a client can find the decisions before it has one.
Not open yet. Opens with early access.
On this page
Request
curl "$UNDERSTANDING_API_URL/v1/decisions"Response
{ "decisions": [ { "id": "restricted_merchant", "tool": "check_restricted_merchant", "domain": "banking", "title": "Restricted merchant", "type": "predicate", "question": "Is this merchant a restricted one (gambling, sportsbook, casino, sweepstakes casino)?", "input": { "merchant": "string, required: descriptor as on the statement", "mcc": "string, optional: four-digit merchant category code" }, "example": { "decision": "restricted_merchant", "input": { "merchant": "DRAFTKINGS", "mcc": "7995" } } }, { "id": "spend_type", "tool": "classify_spend_type", "domain": "banking", "title": "Spend type", "type": "choice", "question": "Is a charge essential, discretionary or another kind of spending, from its merchant category?", "input": { "mcc": "string, required: four-digit merchant category code", "merchant": "string, optional" }, "example": { "decision": "spend_type", "input": { "mcc": "5411" } } }, { "id": "receipt_match", "tool": "match_receipt", "domain": "banking", "title": "Receipt match", "type": "choice", "question": "Which card transaction does this receipt belong to?", "input": { "receipt": "{ merchant, total, date }, required", "transactions": "array of { id, merchant, amount, date, mcc? }, required" }, "example": { "decision": "receipt_match", "input": { "receipt": { "merchant": "Everlane", "total": 128, "date": "2026-10-05T18:00:00Z" }, "transactions": [ { "id": "t1", "merchant": "EVERLANE", "amount": 128, "date": "2026-10-05T18:02:00Z" } ] } } }, { "id": "refund_pairing", "tool": "pair_refund", "domain": "banking", "title": "Refund pairing", "type": "choice", "question": "Which transaction is the refund for this purchase?", "input": { "purchase": "{ id, merchant, amount, date }, required, amount positive", "transactions": "array of candidate { id, merchant, amount, date }, required" }, "example": { "decision": "refund_pairing", "input": { "purchase": { "id": "p1", "merchant": "EVERLANE", "amount": 128, "date": "2026-10-05T18:02:00Z" }, "transactions": [ { "id": "r1", "merchant": "EVERLANE", "amount": -128, "date": "2026-10-12T09:00:00Z" } ] } } }, { "id": "return_window", "tool": "check_return_window", "domain": "banking", "title": "Return window", "type": "predicate", "question": "Can the member still return this purchase as of a given moment?", "input": { "merchant": "string, required", "purchasedAt": "ISO 8601 date or time, required (years 1990 to 2199; a time with no offset is read as UTC)", "deliveredAt": "ISO 8601, optional: when the item arrived", "policyDays": "whole number 1 to 365, optional: the merchant's stated window", "policyStartsAt": "'purchase' or 'delivery', optional: what the window counts from", "policyText": "string up to 2000 characters, optional: the merchant's policy wording only, never an order confirmation", "itemCategory": "string, optional", "finalSale": "boolean, optional", "asOf": "ISO 8601, optional: defaults to now; a date with no time is read as the end of that day" }, "example": { "decision": "return_window", "input": { "merchant": "Everlane", "purchasedAt": "2026-10-05T18:00:00Z", "deliveredAt": "2026-10-09T15:00:00Z", "policyDays": 30, "asOf": "2026-10-20T12:00:00Z" } } }, { "id": "support_route", "tool": "route_support_message", "domain": "banking", "title": "Support route", "type": "choice", "question": "Which queue should this support message go to: card, dispute, fraud or other?", "input": { "message": "string up to 4000 characters, required: the member's message. Card numbers and SSNs that pass the API's checks are refused (400); other card/SSN shapes are redacted before the model sees it; other identifiers are not", "context": "{ cardFrozen?, hasRecentDeclined?, hasOpenDispute? }, optional: booleans only" }, "example": { "decision": "support_route", "input": { "message": "My card was declined at the pharmacy this morning even though I have money in my account. Can you check the card settings and limits?", "context": { "hasRecentDeclined": true } } } }, { "id": "signal_baseline", "tool": "score_signal_baseline", "domain": "health", "title": "Signal baseline", "type": "score", "question": "How far is today's sleep, heart rate variability or resting heart rate from this person's own usual? A distance, not a diagnosis.", "input": { "signal": "'sleep' (minutes), 'hrv' (milliseconds) or 'resting_hr' (beats per minute), required", "today": "number, required with baseline: today's value", "baseline": "{ mean, sd?, days }, required with today: the person's own summary over 7 to 90 days", "deltaPct": "number, instead of today and baseline: the percent change already derived on the device", "baselineDays": "whole number 7 to 90, optional with deltaPct" }, "example": { "decision": "signal_baseline", "input": { "signal": "hrv", "today": 38, "baseline": { "mean": 52, "sd": 8, "days": 14 } } } }, { "id": "member_route", "tool": "route_member_message", "domain": "health", "title": "Member route", "type": "choice", "question": "Which team should this member message go to: billing, benefits, clinical or other? Not an emergency service.", "input": { "message": "string up to 4000 characters, required: the member's message. Common identifiers are redacted; names and addresses are not", "memberType": "'new' or 'existing', optional", "channel": "'chat', 'email' or 'portal', optional" }, "example": { "decision": "member_route", "input": { "message": "Is my prior authorization for the MRI approved yet, and does my plan cover it at an in-network imaging center?", "memberType": "existing", "channel": "portal" } } }, { "id": "document_complete", "tool": "check_document_complete", "domain": "health", "title": "Document complete", "type": "predicate", "question": "Is this intake form marked as having everything it needs, such as a signature? Whether each field is filled, its kind and length, never what it holds.", "input": { "formType": "generic label, required: e.g. 'new patient intake'", "requiredFields": "array of generic field labels, required", "fields": "object of label to { present, kind?, valueLength? }, required: no values, ever", "signatureRequired": "boolean, optional" }, "example": { "decision": "document_complete", "input": { "formType": "new patient intake", "requiredFields": [ "full legal name", "date of birth", "consent signature" ], "fields": { "Full Legal Name": { "present": true, "kind": "text", "valueLength": 14 }, "DOB": { "present": true, "kind": "date", "valueLength": 10 }, "Consent Signature": { "present": true, "kind": "signature" } } } } } ], "pricing": { "pricePerMillionInputTokensUsd": 0.1, "outputTokenPriceUsd": 0, "freeCreditUsd": 5, "requestsPerMinutePerKey": 60, "maxBodyBytes": 262144, "abstainDefault": 0.8 } }
Fields
decisionsarrayalwaysOne entry per named decision.
Show 8 fields
idstringThe decision id you send as
decision.domainstringbankingorhealth.toolstringThe same decision’s MCP tool.
titlestringA short name.
typestringpredicate,choiceorscore.questionstringWhat it answers.
inputobjectEach input field and what it takes.
exampleobjectA request body you can send.
pricingobjectalwaysThe planned price and the limits.
Show 6 fields
pricePerMillionInputTokensUsdnumberUS dollars per million input tokens: 0.1.
outputTokenPriceUsdnumber0: output isn’t charged.
freeCreditUsdnumberCredit on a new account: 5.
requestsPerMinutePerKeynumber60.
maxBodyBytesnumber262,144 (256 KB).
abstainDefaultnumberThe default line, 0.8.
Caching
Responses carry cache-control: public, max-age=300: a client or proxy may keep one for five minutes.
# List the decisions
`GET /v1/decisions` needs no key, so a client can find the decisions before it has one.
Not open yet. Opens with early access.
## Request
```
curl "$UNDERSTANDING_API_URL/v1/decisions"
```
## Response
Response: 200 OK
```json
{
"decisions": [
{
"id": "restricted_merchant",
"tool": "check_restricted_merchant",
"domain": "banking",
"title": "Restricted merchant",
"type": "predicate",
"question": "Is this merchant a restricted one (gambling, sportsbook, casino, sweepstakes casino)?",
"input": {
"merchant": "string, required: descriptor as on the statement",
"mcc": "string, optional: four-digit merchant category code"
},
"example": {
"decision": "restricted_merchant",
"input": { "merchant": "DRAFTKINGS", "mcc": "7995" }
}
},
{
"id": "spend_type",
"tool": "classify_spend_type",
"domain": "banking",
"title": "Spend type",
"type": "choice",
"question": "Is a charge essential, discretionary or another kind of spending, from its merchant category?",
"input": {
"mcc": "string, required: four-digit merchant category code",
"merchant": "string, optional"
},
"example": {
"decision": "spend_type",
"input": { "mcc": "5411" }
}
},
{
"id": "receipt_match",
"tool": "match_receipt",
"domain": "banking",
"title": "Receipt match",
"type": "choice",
"question": "Which card transaction does this receipt belong to?",
"input": {
"receipt": "{ merchant, total, date }, required",
"transactions": "array of { id, merchant, amount, date, mcc? }, required"
},
"example": {
"decision": "receipt_match",
"input": {
"receipt": {
"merchant": "Everlane",
"total": 128,
"date": "2026-10-05T18:00:00Z"
},
"transactions": [
{
"id": "t1",
"merchant": "EVERLANE",
"amount": 128,
"date": "2026-10-05T18:02:00Z"
}
]
}
}
},
{
"id": "refund_pairing",
"tool": "pair_refund",
"domain": "banking",
"title": "Refund pairing",
"type": "choice",
"question": "Which transaction is the refund for this purchase?",
"input": {
"purchase": "{ id, merchant, amount, date }, required, amount positive",
"transactions": "array of candidate { id, merchant, amount, date }, required"
},
"example": {
"decision": "refund_pairing",
"input": {
"purchase": {
"id": "p1",
"merchant": "EVERLANE",
"amount": 128,
"date": "2026-10-05T18:02:00Z"
},
"transactions": [
{
"id": "r1",
"merchant": "EVERLANE",
"amount": -128,
"date": "2026-10-12T09:00:00Z"
}
]
}
}
},
{
"id": "return_window",
"tool": "check_return_window",
"domain": "banking",
"title": "Return window",
"type": "predicate",
"question": "Can the member still return this purchase as of a given moment?",
"input": {
"merchant": "string, required",
"purchasedAt": "ISO 8601 date or time, required (years 1990 to 2199; a time with no offset is read as UTC)",
"deliveredAt": "ISO 8601, optional: when the item arrived",
"policyDays": "whole number 1 to 365, optional: the merchant's stated window",
"policyStartsAt": "'purchase' or 'delivery', optional: what the window counts from",
"policyText": "string up to 2000 characters, optional: the merchant's policy wording only, never an order confirmation",
"itemCategory": "string, optional",
"finalSale": "boolean, optional",
"asOf": "ISO 8601, optional: defaults to now; a date with no time is read as the end of that day"
},
"example": {
"decision": "return_window",
"input": {
"merchant": "Everlane",
"purchasedAt": "2026-10-05T18:00:00Z",
"deliveredAt": "2026-10-09T15:00:00Z",
"policyDays": 30,
"asOf": "2026-10-20T12:00:00Z"
}
}
},
{
"id": "support_route",
"tool": "route_support_message",
"domain": "banking",
"title": "Support route",
"type": "choice",
"question": "Which queue should this support message go to: card, dispute, fraud or other?",
"input": {
"message": "string up to 4000 characters, required: the member's message. Card numbers and SSNs that pass the API's checks are refused (400); other card/SSN shapes are redacted before the model sees it; other identifiers are not",
"context": "{ cardFrozen?, hasRecentDeclined?, hasOpenDispute? }, optional: booleans only"
},
"example": {
"decision": "support_route",
"input": {
"message": "My card was declined at the pharmacy this morning even though I have money in my account. Can you check the card settings and limits?",
"context": { "hasRecentDeclined": true }
}
}
},
{
"id": "signal_baseline",
"tool": "score_signal_baseline",
"domain": "health",
"title": "Signal baseline",
"type": "score",
"question": "How far is today's sleep, heart rate variability or resting heart rate from this person's own usual? A distance, not a diagnosis.",
"input": {
"signal": "'sleep' (minutes), 'hrv' (milliseconds) or 'resting_hr' (beats per minute), required",
"today": "number, required with baseline: today's value",
"baseline": "{ mean, sd?, days }, required with today: the person's own summary over 7 to 90 days",
"deltaPct": "number, instead of today and baseline: the percent change already derived on the device",
"baselineDays": "whole number 7 to 90, optional with deltaPct"
},
"example": {
"decision": "signal_baseline",
"input": {
"signal": "hrv",
"today": 38,
"baseline": { "mean": 52, "sd": 8, "days": 14 }
}
}
},
{
"id": "member_route",
"tool": "route_member_message",
"domain": "health",
"title": "Member route",
"type": "choice",
"question": "Which team should this member message go to: billing, benefits, clinical or other? Not an emergency service.",
"input": {
"message": "string up to 4000 characters, required: the member's message. Common identifiers are redacted; names and addresses are not",
"memberType": "'new' or 'existing', optional",
"channel": "'chat', 'email' or 'portal', optional"
},
"example": {
"decision": "member_route",
"input": {
"message": "Is my prior authorization for the MRI approved yet, and does my plan cover it at an in-network imaging center?",
"memberType": "existing",
"channel": "portal"
}
}
},
{
"id": "document_complete",
"tool": "check_document_complete",
"domain": "health",
"title": "Document complete",
"type": "predicate",
"question": "Is this intake form marked as having everything it needs, such as a signature? Whether each field is filled, its kind and length, never what it holds.",
"input": {
"formType": "generic label, required: e.g. 'new patient intake'",
"requiredFields": "array of generic field labels, required",
"fields": "object of label to { present, kind?, valueLength? }, required: no values, ever",
"signatureRequired": "boolean, optional"
},
"example": {
"decision": "document_complete",
"input": {
"formType": "new patient intake",
"requiredFields": [
"full legal name",
"date of birth",
"consent signature"
],
"fields": {
"Full Legal Name": {
"present": true,
"kind": "text",
"valueLength": 14
},
"DOB": {
"present": true,
"kind": "date",
"valueLength": 10
},
"Consent Signature": {
"present": true,
"kind": "signature"
}
}
}
}
}
],
"pricing": {
"pricePerMillionInputTokensUsd": 0.1,
"outputTokenPriceUsd": 0,
"freeCreditUsd": 5,
"requestsPerMinutePerKey": 60,
"maxBodyBytes": 262144,
"abstainDefault": 0.8
}
}
```
## Fields
- `decisions` (array, always): One entry per named decision.
- `id` (string): The decision id you send as `decision`.
- `domain` (string): `banking` or `health`.
- `tool` (string): The same decision’s MCP tool.
- `title` (string): A short name.
- `type` (string): `predicate`, `choice` or `score`.
- `question` (string): What it answers.
- `input` (object): Each input field and what it takes.
- `example` (object): A request body you can send.
- `pricing` (object, always): The planned price and the limits.
- `pricePerMillionInputTokensUsd` (number): US dollars per million input tokens: 0.1.
- `outputTokenPriceUsd` (number): 0: output isn’t charged.
- `freeCreditUsd` (number): Credit on a new account: 5.
- `requestsPerMinutePerKey` (number): 60.
- `maxBodyBytes` (number): 262,144 (256 KB).
- `abstainDefault` (number): The default line, 0.8.
## Caching
Responses carry `cache-control: public, max-age=300`: a client or proxy may keep one for five minutes.
Source: /api/docs/reference/decisions