Introduction
Grayson is Finic's decision model for fraud and risk. Send it a case and typed questions, and get a calibrated probability for every answer.
Grayson answers questions about fraud and risk cases with probabilities. You send a state, everything you know about a case, and a set of named, typed questions. Grayson returns a calibrated probability for every possible answer. Nothing is generated: there is no rationale or free text, only numbers you can threshold, rank and log.
Model grayson-1 · Base URL https://api.finic.ai · Endpoint POST /v1/decide
{
"model": "grayson-1",
"state": {
"events": [
{ "ts": "2026-09-14T15:02:11Z", "type": "sim_change" },
{ "ts": "2026-09-14T15:09:40Z", "type": "login", "new_device": true },
{ "ts": "2026-09-14T15:12:03Z", "type": "p2p_out", "amount_usd": 2400.0, "payee_added": "2026-09-14T15:11:20Z" }
]
},
"questions": {
"ato": { "type": "noul", "instructions": "Are there signs of account takeover?" }
}
}{
"id": "dec_01J9QK2V7R4T",
"model": "grayson-1",
"answers": {
"ato": { "type": "noul", "value": true, "probability": 0.9137 }
},
"usage": { "input_tokens": 94 }
}How a decision works
- Describe the case. Put account records, events, transactions and notes in
state, as JSON or plain text. There is no schema. See State. - Ask typed questions. Give each question a name, a type and instructions, up to 128 per request. See Questions.
- Read the probabilities. Each answer comes back under its question's name. Apply your own thresholds and act. See Answers and probabilities.
The same request always returns the same answers. Each question is answered on its own: questions never see each other.
Choose a question type
| Type | Use it when | Example | You get |
|---|---|---|---|
noul | The answer is yes or no | "Are there signs of account takeover?" | P(yes) |
choice | Exactly one option is right | "Which team should this alert be escalated to?" | A distribution over the options that sums to 1 |
multi_choice | Any number of options can be right | "Which of these fraud typologies are present?" | An independent probability for each option |
score | The answer is a point on an ordered scale, including every "How likely…" question | "How likely is it that this ACH debit will be returned?" | A distribution over the levels, the most likely level and the expected value |
Try it in the portal
The portal playground has 10 synthetic cases you can run and edit before you write code: account takeover after a SIM change, a P2P scam during a phone call, business wires into a new account, an onboarding review, ACH returns, merchant transaction laundering, a card dispute, a wire release, a crypto withdrawal and a merchant website scan.
Start here
Quickstart
Create an API key and make your first decision with curl, Python or TypeScript.
Questions
The four question types, and how to write instructions, options and levels.
Create a decision
Every request and response field of POST /v1/decide.
Errors
Error types, what causes each one and which to retry.