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

    Bash
    curl "$UNDERSTANDING_API_URL/v1/decisions"

    Response

    Response

    200 OK

    {
      "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

    • decisionsarrayalways

      One entry per named decision.

      Show 8 fields
      • idstring

        The decision id you send as decision.

      • domainstring

        banking or health.

      • toolstring

        The same decision’s MCP tool.

      • titlestring

        A short name.

      • typestring

        predicate, choice or score.

      • questionstring

        What it answers.

      • inputobject

        Each input field and what it takes.

      • exampleobject

        A request body you can send.

    • pricingobjectalways

      The planned price and the limits.

      Show 6 fields
      • pricePerMillionInputTokensUsdnumber

        US dollars per million input tokens: 0.1.

      • outputTokenPriceUsdnumber

        0: output isn’t charged.

      • freeCreditUsdnumber

        Credit on a new account: 5.

      • requestsPerMinutePerKeynumber

        60.

      • maxBodyBytesnumber

        262,144 (256 KB).

      • abstainDefaultnumber

        The default line, 0.8.

    Caching

    Responses carry cache-control: public, max-age=300: a client or proxy may keep one for five minutes.