Skip to content
DecisionNodeDecisionNdedocs
  • Guides
  • API reference
  • Examples
  • Playground

start here

  • QuickstartGet startedGet an API key, send one request with three questions, and branch your code on the typed answers. Plain HTTPS, no SDK to install.
  • POST /v1/decideAPI referenceAnswer typed questions about a state and optional images. One request, one buffered JSON response, one answer per question.
  • QuestionsConceptsQuestions say what to decide. Each one has a type that fixes the shape of its answer: a choice from your options, a score on your scale, a…
  • ConfidenceConceptsProbabilities are calibrated per question type, so a threshold means what it says.
  • ImagesConceptsSend images and text in the same request. The model reads printed and handwritten text, amounts, dates, objects and layout, and answers…
  • Pricing and billingYou pay for input tokens only. Output is free because the model generates no text.
↑↓ moveopen6 suggestions
Get API keyGet API key
DecisionNodeDecisionNde

Get started

  • Introduction
  • Quickstart
  • With coding agents
  • Examples

Concepts

  • State
  • Questions
  • Choice
  • Score
  • Truth
  • Number
  • Images
  • Confidence
  • Determinism

Models

  • DecisionNode-1.0
  • DecisionNode-1.0 Flash
  • Limits

Patterns

  • Confidence-gated routing
  • Fan-out
  • Guardrails
  • Control loopscomingcoming soon

API reference

  • POST/v1/decide
  • POST/v1/sessionscomingcoming soon
  • GET/v1/models
  • Errors
  • Rate limits

Pricing and billing

  • Pricing and billing

Policies

  • Responsible use

Migrate

  • Coming from a Jev-shaped API
  • Benchmarks
  • Pricing
  • Playground
Get API key
  • Guides
  • API reference
  • Examples
  • Playground

Get started

  • Introduction
  • Quickstart
  • With coding agents
  • Examples

Concepts

  • State
  • Questions
  • Choice
  • Score
  • Truth
  • Number
  • Images
  • Confidence
  • Determinism

Models

  • DecisionNode-1.0
  • DecisionNode-1.0 Flash
  • Limits

Patterns

  • Confidence-gated routing
  • Fan-out
  • Guardrails
  • Control loopscomingcoming soon

API reference

  • POST/v1/decide
  • POST/v1/sessionscomingcoming soon
  • GET/v1/models
  • Errors
  • Rate limits

Pricing and billing

  • Pricing and billing

Policies

  • Responsible use

Migrate

  • Coming from a Jev-shaped API
  1. docs
  2. /
  3. Get started

Send state and questions. Get typed answers.

DecisionNode is a decision model and the inference API that serves it. You send text, JSON or images with typed questions and get typed answers back in milliseconds: a choice or a score with calibrated confidence, a Truth (the calibrated probability that a statement is true), or a number on your grid.

on this page5 sections
  1. What you send and what comes back
  2. Four question types
  3. Why a decision model
  4. The model and the machine
  5. Start here
your code sends

state

“Customer: I was charged twice and nobody has replied for 3 days.”

questions

  • routechoice
  • urgencyscore
  • refundtruth

POST /v1/decide3 questions, 1 call

one request
our model, our GPUs
DecisionNode-1.0 Flash5 ms p50, server side
stateread once
  • route0.87
  • urgency2.31
  • refund0.94
  • one pass
  • no text generated
  • our own GPUs
input
62 tokens
output
0, free
typed answers
your code receives

answers

  • route"billing"
  • urgency2.31
  • refund0.94true

your code acts

  • if refund >= 0.8issue_refund()
  • elif refund >= 0.4recheck()
  • elseassign(route)
One request in, typed answers out. The state is read once, every question is answered from that one reading, and the same request always gets the same answer.

What you send and what comes back#

One request carries a state (the thing to decide about) and a map of questions. The response carries one answer per question, under the same keys, in the shape its type defines. Here is a support message routed, ranked and checked for an automatic refund in one call.

{
  "model": "decisionnode-flash-latest",
  "state": "Customer: I was charged twice and nobody has replied for 3 days.",
  "questions": {
    "route": {
      "type": "choice",
      "instructions": "Where should this go?",
      "criteria": { "billing": "money", "bug": "broken", "account": "login" }
    },
    "urgency": {
      "type": "score",
      "instructions": "How urgent is this?",
      "criteria": ["routine", "today", "urgent", "critical"]
    },
    "refund": {
      "type": "truth",
      "instructions": "Refund this automatically?"
    }
  }
}

The model read the message once and answered three questions in one pass. It generated no text, so output_tokens is 0 and you pay only for the 62 input tokens. This request goes to DecisionNode-⁠1.0 Flash, about 5 ms server side. A refund in the unsure middle (0.40 to 0.80) is re-checked by the full model, decisionnode-latest, as the diagram shows; everything else is settled by the first answer.

Four question types#

Every type names its answer: choice (one of your labels), score (a level on your scale), truth (a probability), number (a value on your grid).

  • Choice

    In the API
    "type": "choice"
    What it asks
    Pick one option from the list you give
    What comes back
    choice (always one of your keys), probabilities per option, confidence
  • Score

    In the API
    "type": "score"
    What it asks
    Place the input on your ordered scale
    What comes back
    score (expected level), probabilities per level, legend, confidence
  • Truth

    In the API
    "type": "truth"
    What it asks
    Is this statement true?
    What comes back
    truth, one number from 0.00 to 1.00: the probability that the statement is true
  • Number

    In the API
    "type": "number"
    What it asks
    How many, or what value?
    What comes back
    number (a value on your grid), expected, confidence, probabilities per value
The four question types
TypeIn the APIWhat it asksWhat comes back
Choice"type": "choice"Pick one option from the list you givechoice (always one of your keys), probabilities per option, confidence
Score"type": "score"Place the input on your ordered scalescore (expected level), probabilities per level, legend, confidence
Truth"type": "truth"Is this statement true?truth, one number from 0.00 to 1.00: the probability that the statement is true
Number"type": "number"How many, or what value?number (a value on your grid), expected, confidence, probabilities per value

Reading a Truth answer. One calibrated probability from 0.00 to 1.00 that the statement is true. 0.80 means true about 8 times in 10. Your code picks the cut-off: 0.50 for a plain yes or no, higher when acting on a false yes is costly.

Reading a Number answer. One value on a grid you set (min, max and an optional step), with a calibrated probability for every value: the most probable value, the expected value and the confidence. Count the cars in a drone frame, read the year off a contract, count the overdue invoices in a statement. See Number.

Streaming decisions comingcoming soon. More than 10 decisions a second, for a drone, a simulator or a monitoring loop? Open a session: send the context once, stream frames over a WebSocket and get a typed decision for each. Control loops shows where it fits.

Why a decision model#

Rules break on real input: a regex does not know that "charged twice" is a billing problem. A chat model knows, but it writes text you have to parse, and it does not answer the same way twice. DecisionNode is trained to decide, not to write.

  • Always valid. Every answer has the shape its type defines. A choice is always one of the keys you sent, so there is nothing to parse or repair.
  • Calibrated. Probabilities are calibrated per question type, so a threshold on confidence means what it says. See Confidence.
  • Deterministic. The same request to the same model version returns the same answer. There is no sampling. See Determinism.
  • State read once. The state and images are encoded once and shared by every question, so ten questions cost little more than one.

The model and the machine#

We train the models and we run them, on our own inference stack and our own GPUs. There is no third-party API between your request and the answer, so nothing waits in someone else's queue. DecisionNode-⁠1.0 Flash answers a short request in about 5 ms, measured server side in October 2026: fast enough to sit inside every request, every payment and every frame of a robot's loop.

  • DecisionNode-⁠1.0

    Model id
    decisionnode-latest
    Price per 1M input tokens
    $0.042
    Output
    Free
  • DecisionNode-⁠1.0 Flash

    Model id
    decisionnode-flash-latest
    Price per 1M input tokens
    $0.021 (provisional)
    Output
    Free
The two models
ModelModel idPrice per 1M input tokensOutput
DecisionNode-⁠1.0decisionnode-latest$0.042Free
DecisionNode-⁠1.0 Flashdecisionnode-flash-latest$0.021 (provisional)Free

Start here#

  • Quickstart5 minGet a key, send one request, branch on the answer. Under five minutes.Read
  • With coding agentsagentsA prompt to paste into your coding agent and a decide tool for your own agents.Read
  • ExamplesrecipesComplete recipes: support triage, moderation, receipts, listing photos, lead scoring.Read
  • POST /v1/decidereferenceEvery field of the request and the response, headers and errors.Read
nextQuickstart

DecisionNode is built and run by Bynn Intelligence, Inc.

  • Home
  • Playground
  • Examples
  • Console
  • Responsible use
  • Terms
  • Acceptable use
  • Privacy
  • Data processing
  • Defence addendum
  • Cookies

on this page

  1. What you send and what comes back
  2. Four question types
  3. Why a decision model
  4. The model and the machine
  5. Start here