Skip to content
DecisionNodeDecisionNde
  • Model
  • Inference
  • Benchmarks
  • Examples
  • Docs
  • Pricing
Sign inGet API keyGet API key
  • dnModelTyped answers, calibrated confidence
  • msInferenceOur own stack and GPUs, answers in ms
  • %BenchmarksAccuracy per suite, with intervals
  • exExamplesBuilds you can start from today
  • /v1DocsQuickstart, API reference, recipes
  • $PricingPay per input token, output is free
  • inSign inEmail link or Google, no password

decision model + inference api

Typed decisions in milliseconds.

Our decision model is a System One model: text, JSON or images in, a calibrated choice, score, truth, number, point or box out, in about 5 ms on DecisionNode Flash.

Get API keyGet API keyOpen playground

$0.042 per million input tokens / output is free / no sales call

$0.042 per million input tokens

output is free / no sales call

$0.042 per million input tokens

output is free / no sales call

example

DecisionNode Flash

choice
decisionnode-1.0-flash

...

“Charged twice and no reply yet.”

Where should this ticket go?

  • billingbilling...
  • bugbug...
  • accountaccount...

auto-refund?acts at 0.80

refundrefund...

confidence...

acts at 0.70deciding

Billing, refund sent

billing + refund

Routed to its queue

otherwise

1,284 actions taken

61 re-checked first

example decisionsp50 5 ms

  • 09:41:02sort parcelreturns 0.83
  • 09:41:01check chargefraud 0.12 false4 ms
  • 09:40:58moderate postseverity 0.414 ms
New ticketwebhook

one HTTPS call from anything you already run

any http client / POST /v1/decide

any http client / POST /v1/decide

one HTTPS call from anythingyou already runany http client / POST /v1/decide

also go, ruby, curl, webhooks

billing 0.875 ms

  • typescriptts/jsdn.decide()dn.decide()
  • pythonpythondn.decide()dn.decide()
  • gogodn.Decide()dn.Decide()
  • rubyrubydn.decidedn.decide
  • DecisionNode
    /v1/decideDecisionNode
  • curlcurl-X POST-X POST
  • mcpmcptools/calltools/call
  • webhookswebhookson eventon event
  • agentsagentsbefore actingbefore acting
same order, two engines

Sixteen answers before the first word.

The same order and the same sixteen checks. DecisionNode answers them all in one pass while a chat LLM is still writing.

DecisionNode Flash0 mscost0.0000¢ready
a chat LLM0 ms0.0000¢ready

$ check-order 48213 --checks 16

one request, two engines

state 3 items, €186.40, Hamburg DE to Lyon FR, gift note, WELCOME40 used 4× this week

truthIs this statement true? 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.

DecisionNode Flash

POST /v1/decide, one call

0 mscost0.0000¢
typed answersTtruthCchoiceSscore0 of 16
  • request200 OK16 questions, one callmodel decisionnode-1.0-flash
  • fraud_risktruthTasked0.04 false
  • address_validtruthTasked0.97 true
  • gift_ordertruthTasked0.93 true
  • ship_lanechoiceCaskedstandard 0.88
  • carrierchoiceCaskedcourier 0.81
  • priorityscoreSasked1.8 of 3
  • fragile_itemstruthTasked0.91 true
  • needs_signaturetruthTasked0.22 false
  • customs_formtruthTasked0.03 false
  • promo_abusetruthTasked0.71 true
  • duplicate_ordertruthTasked0.06 false
  • stock_reservedtruthTasked0.99 true
  • packagingchoiceCaskedpadded 0.76
  • delivery_riskscoreSasked0.6 of 4
  • split_shipmenttruthTasked0.12 false
  • next_actionchoiceCaskedship 0.84
  • usagepending410 tokens in, 0 out

> ready

All sixteen answered before the LLM's first word.

> Shipped by courier, padded box. WELCOME40 flagged.

a chat LLM

chat completion, "reply in JSON"

0 mscost0.0000¢
streamed text0 of 16

> ready

ready

> Nothing shipped yet.

Same order, same sixteen checks. Watch both clocks.

151×faster

and counting, the LLM is still writing

time to all 16 answers
25 ms against 3.78 s
cost of this order
0.0014¢ against 0.01¢
price ratio
about 8.8× cheaper

DecisionNode Flash against GPT-5.6 Luna, the chat LLM timed on our benchmarks page. Time: DecisionNode Flash's 19 ms end-to-end median plus 6 ms for the extra questions; GPT-5.6 Luna's first token at 630 ms, then 126 output tokens at 25 ms each. Cost is tokens times list price: 410 input tokens at $0.035 per 1M, output free, against 756 input tokens at $0.1 and 126 output tokens at $0.4 per 1M. Mock timings. Preliminary results, October 2026.

See every model compared
Race: sixteen checks on one order, DecisionNode Flash against a chat LLM
checkDecisionNode Flash, typed answera chat LLM, text answer
Is this order fraud? (truth)0.04 false"fraud_risk": "low"
Is the address deliverable? (truth)0.97 true"address_valid": "yes"
Is this a gift? (truth)0.93 true"gift_order": "true"
Which ship lane? (choice)standard 0.88"ship_lane": "standard shipping"
Which carrier? (choice)courier 0.81"carrier": "courier"
How urgent, 0 to 3? (score)1.8 of 3"priority": "medium-high"
Any fragile items? (truth)0.91 true"fragile_items": "yes, the lamp"
Needs a signature? (truth)0.22 false"needs_signature": "probably not"
Needs a customs form? (truth)0.03 false"customs_form": "no"
Is the promo code abused? (truth)0.71 true"promo_abuse": "possibly"
Is this a duplicate order? (truth)0.06 false"duplicate_order": "no"
Is the stock reserved? (truth)0.99 true"stock_reserved": "yes"
Which packaging? (choice)padded 0.76"packaging": "padded box"
Delivery risk, 0 to 4? (score)0.6 of 4"delivery_risk": "low"
Split into two parcels? (truth)0.12 false"split_shipment": "false"
Ship, hold, route or flag? (choice)ship 0.84"next_action": "ship it"
  • time to all 16 answers: 25 ms against 3.78 s
  • cost of this order: 0.0014¢ against 0.01¢
  • price ratio: about 8.8× cheaper
the decision model

A model built to decide.

Hand-written rules break on the first message nobody planned for. Chat models word the same answer differently every time. DecisionNode returns a typed answer and how sure it is, the same way every time.

How a decision runs

  1. in

    State and questions

    text, JSON or images
  2. call

    One request

    POST /v1/decide
  3. model

    Our model on our GPUs

    one pass, no text generated
  4. out

    Typed answers

    choice, score, truth, number, point or box
  5. branch

    Your code branches

    confidence < 0.70

Six ways to ask, one typed answer each

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), point (a spot in your image), box (a rectangle around the thing). Explore each type below:

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

Choice "choice", pick one option from your list

question

"route": {
  "type": "choice",
  "criteria": {
    "billing": "money",
    "bug": "broken",
    "account": "login"
  }
}

answer

"route": {
  "type": "choice",
  "choice": "billing",
  "confidence": 0.81,
  "probabilities": {
    "account": 0.05,
    "billing": 0.87,
    "bug": 0.08
  }
}

question

"urgency": {
  "type": "score",
  "criteria": [
    "routine", "today",
    "urgent", "critical"
  ]
}

answer

"urgency": {
  "type": "score",
  "score": 2.31,
  "confidence": 0.47,
  "probabilities": {
    "0": 0.01, "1": 0.09,
    "2": 0.48, "3": 0.42
  }
}

question

"refund": {
  "type": "truth",
  "instructions":
    "Refund this automatically?",
  "criteria": {
    "true":
      "Charged twice for the same order",
    "false":
      "Any other billing issue"
  }
}

answer

"refund": {
  "type": "truth",
  "truth": 0.94
}

question

"days_waiting": {
  "type": "number",
  "instructions":
    "Days without a reply?",
  "min": 0,
  "max": 30
}

answer

"days_waiting": {
  "type": "number",
  "number": 3,
  "expected": 3.06,
  "confidence": 0.88,
  "probabilities": {
    "2": 0.04, "3": 0.88,
    "4": 0.06, "5": 0.02
  }
}

question

"pick": {
  "type": "point",
  "instructions": "Point to the yellow package closest to the robot arm.",
  "image": "belt"
}

answer

"pick": {
  "type": "point",
  "x": 812,
  "y": 455,
  "present": 0.97,
  "confidence": 0.91,
  "image": "belt",
  "width": 1920,
  "height": 1080
}

question

"damage": {
  "type": "box",
  "instructions": "Draw a box around the damaged package.",
  "image": "belt"
}

answer

"damage": {
  "type": "box",
  "x1": 300,
  "y1": 120,
  "x2": 520,
  "y2": 410,
  "present": 0.95,
  "confidence": 0.88,
  "image": "belt",
  "width": 1920,
  "height": 1080
}
billing0.00
bug0.00
account0.00

picks billing, confidence 0.81

0.000.000.000.00
0routine1today2urgent3critical

score 0.00 of 3, confidence 0.47

0.80010.00falsetrue

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.: 0.94 true

refunds at 0.80

  1. >truth >= 0.80refund issued
  2. >truth >= 0.50full model re-checks
  3. >elsebilling reply sent

3(0.88)

expected 3.00

grid 0 to 30

0.000.000.000.000.000.000.000.000.00
012345678
030

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.: 3, confidence 0.88, expected 3.06

Camera frame from above a conveyor belt: a robot arm reaches over a yellow package, a second yellow package further down, and a brown carton with a torn corner at the top left
pick
One spot in the image, as x and y, with the probability that the thing is there at all (present) and that the spot is on it (confidence).
Camera frame from above a conveyor belt: a robot arm reaches over a yellow package, a second yellow package further down, and a brown carton with a torn corner at the top left
damage
A rectangle around the thing, as its top-left corner (x1, y1) and bottom-right corner (x2, y2), with present and confidence.

returns choice, probabilities, confidenceTry it in the playground→

0101234567890012345678901

One request answers every question

Send the state once with every question you have. It is read in one pass and shared, so ten questions cost about the same as one.

POST /v1/decidereq_8c41e07breq_8c41e07banswered in 5.7 msanswered in 5.7 ms
  1. stateread once0.0 ms62 tokens
  2. routechoicebilling
  3. urgencyscore2.31 urgent
  4. refundtruth0.94 true
0245.7 ms
zoom,in parallelroute+0.4 msurgency+0.5 msrefund+0.3 ms

62 input tokens, 0 output1 pass, no text generated

02012345678900123456789012

Confidence you can act on

Every answer says how sure the model is, and the numbers are calibrated. Set a line once: above it your code acts instantly. Below it, the full model checks the same request again, or your code takes the safe path. Nobody waits.

ticket 4471routeact at
  1. DecisionNode Flashbilling, 4.8 ms0.58below line
  2. re-checkDecisionNode MoEbilling, +8.1 ms0.91above line
  3. actedmoved to billing, reply sent12.9 ms

>if (flash.confidence >= 0.70) act()>else if (full.confidence >= 0.70) act()>else safePath()

030123456789001234567890123

Text and images in one call

Attach up to 16 photos to the same request: a receipt, a camera frame, a parcel on the belt. The model reads printed text, amounts, objects and layout, and answers with the same question types. Send video as frames with their timestamps, and the model reads them as one clip.

which currency is on this receipt?choice, image + text
Photo of a till receipt from Kaffebar Norr in Stockholm, total 188,00 kr with 12% moms

read from 188,00 kr

reading the receipt…

0.000.000.000.000.000.00
  • SEKSEK
  • NOK
  • DKK
  • EUR
  • USD
  • GBP

answer SEK, read from 188,00 krconfidence 0.83

0401234567890012345678901234

point and box

Ask where, get coordinates

Two new question types answer where. A point is one spot in the image, a box is the rectangle around the thing: coordinates your code can draw, crop or hand to a machine, each with how likely the thing is there and how likely the place is right.

what you could ask

  • Production lines and sorting"point"“Point to the next yellow package to pick.”
  • Quality control"box"“Draw a box around the scratch on the panel.”
  • Surveillance"box"“Draw a box around the person climbing the fence.”
  • Traffic"box"“Draw a box around the car that stopped in the crossing.”
  • Warehouses"point"“Point to the empty slot on the second shelf.”
  • Drones and robots"point"“Point to the landing marker.”

From pixels to motion

belt camera, line 3 · 1920 × 1080

OUTBOUNDREWORK
pick
damage
  1. 01Camera frame
  2. 02Point + box
  3. 03Your controller
  4. 04Robot action

The belt advances. One camera frame carries two questions.

Illustrated playback · pause to inspect each handoff

pick "point"

Point to the yellow package closest to the robot arm.

waiting for this frame

present —confidence —

Arm 01 · pick → outbound

damage "box"

Draw a box around the damaged package.

waiting for this frame

present —confidence —

Arm 02 · box centre → rework

Your controller → arm SDK

present ≥ 0.80

Camera pixels → robot millimetres

01 —, — mm02 —, — mm

await frame.answers

Illustrative calibration: 0.25 mm per pixel

DecisionNode returns coordinates. Your calibrated controller and arm SDK turn them into motor commands.

How point and box work→
JSON response
"pick": {
  "type": "point",
  "x": 812,
  "y": 455,
  "present": 0.97,
  "confidence": 0.91
}
"damage": {
  "type": "box",
  "x1": 300,
  "y1": 120,
  "x2": 520,
  "y2": 410,
  "present": 0.95,
  "confidence": 0.88
}

[ a model company and an inference company ][ model company, inference company ]

We build the decision modeland the machine it runs on.

one tick, one decision

now

  • 09:00
  • 11:00
  • 13:00
  • 15:00
  • 17:00
  • 19:00
inference

Fast because we own the path.

Our own decision model on our own inference stack and GPUs. No third-party API between your request and the answer.

Every hop is ours

One pass, no text generation, nothing in between. DecisionNode Flash answers a short request in about 5 ms.

the path of one request

  1. { }requestyour app
  2. 1×read oncetext, images
  3. ?questionsat once
  4. routebilling 0.875 msdecideour stack

no sampling: same answer every time

One fleet, two models

Both models run on our own GPUs behind one API, priced per 1M input tokens. Switch with the model field; nothing else changes.

an example traffic mix

  • DecisionNode MoE

    decisionnode-1.0

    p50
    9 ms
    per 1M in
    $0.042
    share
    61%0%
  • DecisionNode Flash

    decisionnode-1.0-flash

    p50
    5 ms
    per 1M in
    $0.035
    share
    39%0%

same request, same answer

Done before an LLM writes a word

A chat LLM writes its answer token by token and needs half a second to four seconds. DecisionNode reads the input once and answers in one pass, fast enough for every request, every payment, every camera frame.

End to end from one client, network included, one short decision; the chat LLM on the same decision. Preliminary results, October 2026.

time to a typed answer, end to end, log scale

1 msup to 68× faster on DecisionNode Flash

  • DecisionNode Flash

    5 ms on our side

    routebilling 0.8719 ms
  • DecisionNode MoE

    9 ms on our side

    refund0.94 true24 ms
  • a chat LLM

    chat LLM 1,300 ms

    1,300 ms
1 ms101001,000 ms

End to end from one client, network included, one short decision; the chat LLM on the same decision. Preliminary results, October 2026.

Time to a short typed answer, end to end from one client, on a log scale: DecisionNode Flash 19 ms, DecisionNode MoE 24 ms, a chat LLM 1,300 ms.
modeltime to answernote
DecisionNode Flash19 ms5 ms on our side
DecisionNode MoE24 ms9 ms on our side
a chat LLM1,300 msa chat LLM, 1,300 ms

up to 68× faster on DecisionNode Flash

Paste your own request and watch the clock.

How we measured→Open playground
sessions

A decision for every frame.

Open one session, send the fixed part once, then stream frames over a WebSocket. Every frame comes back as a typed decision, a decision layer that feeds your controller.

POST /v1/sessionssession opening

sent once instructions, mission brief, geofence, 2 questions, window 8, model decisionnode-1.0

each frame bills only its own tokens

Survey drone, line inspection

frames in0

/v1/sessions/ses_7f3a/stream

geofenceHhome
mission mapwind3.0 m/s
battery66%to home0 m
opening

frametelemetry JSON; text and images work too

 

window 8←leaves context

contextsent once

Typed decisions

decisions out0

waiting for the first frame

modechoiceWhich flight mode now?

  • continue...
  • hold...
  • return...
  • land...

confidence ... 

aborttruthShould the mission be aborted now?

...

0aborts at 0.801

Your flight controller 

flies the drone and reads each decision

  1. >controller.set_mode(mode.choice)
  2. >if abort.truth >= 0.80: controller.land()

replies

    More than 10 decisions a second? Use a session.

    Same models, same typed and calibrated answers, the same safety check on every frame. The context is billed once when the session opens; each frame, its own tokens.

    Read the sessions docs
    A survey drone streams telemetry frames into one session; every frame is answered with a flight mode and an abort probability
    frametelemetrymode: Which flight mode now?abort: Should the mission be aborted now?
    1battery 0.64, wind 4.2 m/s, 155 m from homecontinue 0.93, confidence 0.91 (continue 0.93, hold 0.04, return 0.02, land 0.01)0.02 false
    2battery 0.63, wind 4.6 m/s, 225 m from homecontinue 0.93, confidence 0.91 (continue 0.93, hold 0.04, return 0.02, land 0.01)0.02 false
    3battery 0.61, wind 5.1 m/s, 295 m from homecontinue 0.92, confidence 0.89 (continue 0.92, hold 0.05, return 0.02, land 0.01)0.02 false
    4battery 0.60, wind 5.8 m/s, 365 m from homecontinue 0.91, confidence 0.88 (continue 0.91, hold 0.05, return 0.03, land 0.01)0.03 false
    5battery 0.58, wind 6.6 m/s, 435 m from homecontinue 0.88, confidence 0.84 (continue 0.88, hold 0.07, return 0.04, land 0.01)0.03 false
    6battery 0.56, wind 8.9 m/s, 500 m from homecontinue 0.71, confidence 0.61 (continue 0.71, hold 0.22, return 0.06, land 0.01)0.06 false
    7battery 0.54, wind 11.8 m/s, 530 m from homehold 0.62, confidence 0.49 (continue 0.27, hold 0.62, return 0.09, land 0.02)0.14 false
    8battery 0.52, wind 12.6 m/s, 535 m from homehold 0.71, confidence 0.61 (continue 0.19, hold 0.71, return 0.08, land 0.02)0.17 false
    9battery 0.51, wind 12.2 m/s, 535 m from homelatest wins: skipped, a newer frame came in
    10battery 0.50, wind 11.4 m/s, 540 m from homelatest wins: skipped, a newer frame came in
    11battery 0.48, wind 9.6 m/s, 565 m from homecontinue 0.58, confidence 0.44 (continue 0.58, hold 0.33, return 0.07, land 0.02)0.09 false
    12battery 0.45, wind 9.2 m/s, 635 m from homecontinue 0.69, confidence 0.59 (continue 0.69, hold 0.23, return 0.06, land 0.02)0.06 false
    13battery 0.42, wind 10.1 m/s, 705 m from homecontinue 0.62, confidence 0.49 (continue 0.62, hold 0.21, return 0.15, land 0.02)0.06 false
    14battery 0.39, wind 10.6 m/s, 770 m from homecontinue 0.44, confidence 0.25 (continue 0.44, hold 0.17, return 0.37, land 0.02)0.07 false
    15battery 0.36, wind 11.0 m/s, 835 m from homereturn 0.52, confidence 0.36 (continue 0.31, hold 0.14, return 0.52, land 0.03)0.08 false
    16battery 0.34, wind 11.2 m/s, 830 m from homereturn 0.71, confidence 0.61 (continue 0.17, hold 0.09, return 0.71, land 0.03)0.08 false
    17battery 0.31, wind 11.4 m/s, 820 m from homereturn 0.84, confidence 0.79 (continue 0.09, hold 0.05, return 0.84, land 0.02)0.07 false
    18battery 0.29, wind 11.9 m/s, 750 m from homereturn 0.88, confidence 0.84 (continue 0.06, hold 0.04, return 0.88, land 0.02)0.06 false
    19battery 0.27, wind 12.3 m/s, 670 m from homereturn 0.90, confidence 0.87 (continue 0.05, hold 0.03, return 0.90, land 0.02)0.06 false
    20battery 0.25, wind 12.8 m/s, 585 m from homereturn 0.91, confidence 0.88 (continue 0.04, hold 0.03, return 0.91, land 0.02)0.06 false
    boosters

    Specialist models read your pictures first.

    Name one beside your questions. It reads every picture before the decision, and DecisionNode weighs its reading as evidence in the same request. Priced per picture read.

    A seller's selfie: a smiling woman with long dark hair, in a living room full of plants.

    one request, two boosters

    "boosters": ["age", "ai_generated"]
    • Human Ageabout 34 years (29 to 40), confidence 0.82
    • AI-generatedlikely generated, probability 0.96, most likely GPT Image (0.88)

    the model answers live_selfie 0.06: seller held, a live selfie requested in the app

    • Human Ageage

      $0.024 a picture

      Age-gate a store from a selfie, and ask for an ID only when the answer is close.

      Estimates a person's age from a face in the picture, using the agemin.com (opens in a new tab) age estimation model, ranked #1 by NIST for Child Online Safety (ages 13 to 16) on true positive rate.

      reads a picture of a person; returns age_years, low, high, confidence, faces

    • AI-generatedai_generated

      $0.006 a picture

      Catch a generated profile photo before it goes live.

      Whether a picture was made by an image generator, and which kind, using Trinity, the state-of-the-art AI image detection model from detector24.ai (opens in a new tab).

      reads any picture; returns generated, confidence, method, top_generator, c2pa_signer, c2pa

    • Face detectionface_detection

      $0.001 a picture

      Count the faces in a frame and see where each one is.

      Finds the faces in a picture: how many it shows and where each one is, with a box and a confidence per face, from Bynn's face detection model.

      reads any picture; returns faces, detections

    • Face recognitionface_recognition

      from $0.001 a picture

      Recognise the faces you enroll once, your staff or your members, or a public figure on stage.

      Matches the faces in a picture against a collection: one of your own, enrolled through the API or the console, or the public celebrities collection. Each match carries a score and the item's reference, with your label or the public figure's name, and never a picture.

      reads a picture of a person; returns faces, collection_name, matches

    • OCRocr

      $0.0015 a picture

      Read every word of an invoice before deciding on it: plain text, a table, a formula or the fields of your JSON schema.

      The text a picture shows, read by Bynn OCR: all of it by default, or what a prompt asks for, such as a formula in LaTeX, a table in HTML or Markdown, or the fields of a JSON schema. Full support for English and Chinese; other languages need a prompt that names them.

      reads any picture; returns text, truncated

    • Depth Visionbynn_depth

      free

      How far away things are, in meters: straight ahead, in seven directions and cell by cell.

      Distance in meters to what's in the picture: the nearest obstacle straight ahead, seven directions from left to right, and a grid of up to 16 by 16 cells.

      reads any picture; returns ahead, directions, ground, grid_rows, grid_cols, grid, depth_min, depth_max, depth_median, width, height

    • Segment Visionbynn_segment

      $0.001 a picture

      Where the things you name are: each one's outline, box and centre, and with depth on, how far away and how large it is.

      Finds what you name in words in the picture: each match's outline, box and centre, and with depth on, its distance and size in meters.

      reads any picture; returns prompts, instances, depth_source, assumed_hfov_deg, width, height

    Name a booster beside the questions it informs; its reading comes back with the answer.

    How boosters work→Run the seller check
    benchmarks

    How accurate it is, measured.

    15 suites of real decisions, from policy rules to web tasks and prompt injection. Every system answered the same items.

    15-suite mean

    Mean accuracy over every text suite, one dot per system.

    25,134 items

    Preliminary results, October 2026

    0.550.600.650.700.750.800.85
    1. 3Cloudflare Clef 27B0.7860.786
    2. 5Cloudflare Clef-flash 9B0.7590.759
    3. 7Cygnet (Gemma 4 12B)0.7170.717
    4. 1DecisionNode MoEours0.8160.816
    5. 4DecisionNode Flashours0.7840.784
    6. 2TypeSafe Jev 1.13, note 10.8030.803
    7. 8Kev-4B0.7170.717
    8. 6pplx-decider-27b0.7460.746
    9. 9Strands Decider 2B, note 20.6220.622

    accuracy; on a suite, the line across a dot is its 95% interval

    1. 1Note 1, TypeSafe Jev 1.13: called through its official API. Reads text only, so it has no image results.
    2. 2Note 2, Strands Decider 2B: its published training data contains items of two of our test sets.

    where we lead

    Pick a suite to rank every system.

    0.500.751.00

    where we trail

    0.500.751.00

    DecisionNode MoEJevline length is the gap in points

    DecisionNode Flash, end to end

    19 ms

    5 ms of it on our side

    DecisionNode FlashGPT-5.6 Luna1 ms10 ms100 ms1 s10 s

    DecisionNode Flash answers in 19 ms end to end, 5 ms of it on our side. GPT-5.6 Luna took 1,300 ms on the same decision, timed from the same client.

    up to 68× faster than GPT-5.6 Luna, a chat LLM, on the same decision, timed end to end from one client.

    15 text suites, 25,134 items, development splits. 95% intervals for our models and Jev from a bootstrap that resamples whole inputs. Jev was called through its official API; open models ran on our GPUs as their authors serve them. October 2026.

    DecisionNode is not affiliated with TypeSafe AI, Cloudflare, OpenAI or the other model publishers. Their names identify the systems measured.

    See every suite
    pricing

    You pay for input, not for output.

    Answers generate no text, so output costs nothing. Pay per million input tokens from a prepaid balance. No seats, no minimums.

    estimate at list prices

    1B tokens

    10M100M1B10B

    about 2,000,000 requests at 500 input tokens each

    DecisionNode MoE, a month

    $42.00$​0123456789 40123456789 20123456789 .00123456789 00123456789 0.,

    DecisionNode Flash, a month

    $35.00$​0123456789 30123456789 50123456789 .00123456789 00123456789 0.,

    output tokens$0.00

    batch jobs30% to 50% off

    Get API keyGet API key
    • DecisionNode Flash

      $0.035

      per 1M input tokens

      batch jobs $0.0175, 50% off

      decisionnode-1.0-flash

      • our fastest tier
      • a lower price per token
      • the same answer shapes
      • one field to switch models
      Get API keyGet API key
      Get API keyGet API key
    • DecisionNode MoE

      full model

      $0.042

      per 1M input tokens

      batch jobs $0.0294, 30% off

      decisionnode-1.0

      • our most accurate model
      • best on subtle calls
      • images and video at $0.09 per 1M tokens
      • the playground default
      Get API keyGet API key
      Get API keyGet API key
    • Dedicated

      Custom

      capacity reserved for you

      both models

      • capacity on our own GPUs
      • custom rate limits
      • same API, no code changes
      • a direct line to our engineers
      Talk to usTalk to us
      Talk to usTalk to us

    both models

    • text and up to 16 images per request
    • up to 64k tokens of context
    • output always free
    • one API

    images and video

    • $0.09 per 1M image and video tokens on DecisionNode MoE, $0.08 on DecisionNode Flash
    • no per-image fee
    • about one token per 32 × 32 pixels: a 1,024 × 1,024 image is about 1,026 tokens
    • a video frame at the default size is about 64 tokens

    compared

    • OpenAI Decisions API: $0.10 per 1M input tokens, images $0.10 per 1M
    • DecisionNode MoE at 42% of that text price, DecisionNode Flash at 35%

    free tier

    • 50 DecisionNode Flash requests, 20 DecisionNode MoE requests and 10 booster calls a day on your first workspace, playground and API keys alike, renewed at 00:00 UTC
    faq

    Questions developers ask.

    The short answers. The docs have the long ones, with the request and response for every case.

    Read the docs
    • A chat model writes its answer token by token, so a short answer takes half a second to several seconds and rarely answers the same way twice. DecisionNode reads your input once and answers your typed questions in one pass, each answer with how sure the model is: a choice, a score, a truth or a number. It generates no text, so it answers in milliseconds. A System One model is a class of AI model that returns typed, probabilistic decisions from a fixed answer space instead of generating text. Given a piece of state and a set of questions defined in code, it answers each one with a schema-valid value such as a chosen option, a score, or a probability, and then stops. That is the right tool for routing, triage, moderation, scoring and gating, and the wrong one for writing.

    • 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), point (a spot in your image), box (a rectangle around the thing).

      Choice picks one option from the list you send and returns a probability for each.

      Score places the input on your ordered scale, for example routine to critical, and returns the expected level.

      Truth, truth in the API, asks whether a statement is true: one calibrated probability from 0.00 to 1.00, so 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.

      Number, number in the API, asks: How many, or what value? 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. A count of cars in a photo, overdue invoices in a statement, a year, a rating out of ten.

      Point, point in the API, and box, box, answer where. A point is one spot in the image, as x and y, with the probability that the thing is there at all (present) and that the spot is on it (confidence). A box is a rectangle around the thing, as its top-left corner (x1, y1) and bottom-right corner (x2, y2), with present and confidence.

    • You pay per million input tokens from a prepaid balance: $0.042 on DecisionNode MoE, $0.035 on DecisionNode Flash. Image and video tokens are priced per million too, $0.09 on DecisionNode MoE and $0.08 on DecisionNode Flash, with no fee per image. Work that can wait runs as a batch, 30% off the live price on DecisionNode MoE and 50% off on DecisionNode Flash. The model writes no text, so every response reports output_tokens: 0 and output never costs anything. No seats, no minimums.

      A repeated state is billed in full each time, with no discount for input sent before. Your first workspace has a free tier: 50 DecisionNode Flash requests, 20 DecisionNode MoE requests and 10 booster calls every day, from the playground and from API keys alike.

    • DecisionNode Flash when speed and volume come first, at $0.035 per million input tokens. DecisionNode MoE for the hard calls, where accuracy matters most. Many builds run both: DecisionNode Flash first, and any answer under your confidence threshold is re-checked on DecisionNode MoE before your code acts.

    • Yes. Send up to 16 images next to your text in the same request, as base64 or an https URL. The model reads printed and handwritten text, amounts, dates, objects and layout, and answers through the same question types: count the cars in a camera frame, check a parcel on the belt, match a receipt to a claim.

    • Yes. Two question types, point and box, answer where. Ask "Point to the yellow package closest to the robot arm" or "Draw a box around the person at the door" and get coordinates you can draw, crop or hand to a machine. Every answer also says how likely it is that the thing is there at all (present), so your code acts on a sure answer and takes the safe path on an unsure one. Each place carries a confidence too, not calibrated yet, so act on present. The instructions can carry conditions and refer to the state and to other images, which a fixed list of detector classes cannot: production lines and sorting, quality control, surveillance and more.

      Billed by the rows it runs, like any question: the input tokens of its presence row and of the coordinate rows of the place it answers (two for a point, four for a box), about 140 tokens for a point and 250 for a box, plus the image once per request at the image and video rate. No fee per point or box, and output is free.

      • Read about point and box
    • Yes, from camera images and from video sent as frames. Monitoring areas comes first: traffic and its flow (counts, turns, congestion, wrong-way drivers, pedestrians crossing), people in an area (counts, flow, crowding) and incidents (break-ins, theft, fire and smoke). Then production lines and sorting: one decision per item at the sorter (damaged, mislabelled, upside down, which lane), counting products, spotting jams and stoppages. Drones can be monitored from above through their camera frames, and a session hands a drone's own controller a typed decision for every frame. Warehouse machines get command-level decisions the same way: go, stop, which aisle.

      Need it on your own hardware, on premises, at the edge or next to the cameras? For qualifying deployments, talk to us at hello@bynn.com.

      • Industry templates
      • Talk to us
    • Yes, sent as frames. Cameras, edge boxes and production lines already produce frames: send them with their timestamps, and the model reads them as one video, in order and with timing, so it can answer what happens over time: how many cars passed, which way a vehicle turned, whether smoke appeared, whether the conveyor stopped. We take frames, not video files or links, and a small helper cuts a local file into frames on your own machine.

      • Read about video
    • More than 10 decisions a second? Use a session. It is built for loops: survey, inspection and delivery drones, simulators and games, machine monitoring, long-running agents. You open it once with the instructions, the fixed state and the questions, then stream frames (text, JSON or an image) over one WebSocket and get a typed decision back for each frame. Your context stays loaded for the whole session, so each frame costs only its own tokens, and a client that falls behind gets the newest frame answered, never a backlog, with the skipped frames reported. A session is a decision layer that feeds your controller: the vehicle's own control loop keeps flying it.

      • Read the sessions docs
    • Yes. The same request to the same model version returns the same answer, every time. There is no sampling, so your tests hold and every logged decision can be replayed.

    • Get an API key, paste one curl and branch on the typed answer. The quickstart takes under five minutes. To try a request in your browser first, the playground runs it with a free account.

      • Get API key
      • Open playground
      • Quickstart
    • Requests are processed to return your answers and to run the service. Unless you opt out in the console, they also help improve the models, with identifiers removed first; with zero retention, on an Order Form or under a Defence Contract Addendum they never do. Inputs and answers are deleted 30 days after each request by default, and zero retention is available on request on every plan. The Privacy Policy and the Data Processing Addendum have the details; questions go to privacy@bynn.com.

      • Privacy Policy
      • Data processing
    DecisionNodeDecisionNde

    Add a decision engine with one prompt.

    Paste into your coding agent.

    start building

    Your first decision in minutes.

    Make a key, connect your project, branch on a typed answer. Prepaid, no sales call.

    • api all systems normalapi normal
    • output is always freeoutput always free
    • same request, same answersame request, same answer

    DecisionNode is built and run by Bynn Intelligence, Inc.

    We train the model and serve it on our own GPUs.

    hello@bynn.com

    product

    • Model
    • Inference
    • Benchmarks
    • Pricing

    developers

    • Docs
    • Quickstart
    • Examples
    • Playground
    • Console
    • Status

    company

    • Contact
    • Security
    • Report abuse
    • Dedicated

    legal

    • Terms
    • Acceptable use
    • Privacy
    • Data processing
    • Defence addendum
    • Cookies
    • Affiliate program

    compliance

    • SOC 2, SOC 2 report, monitored continuously (opens the trust center in a new tab)
    • ISO 27001:2022, Information security management, certified (opens the trust center in a new tab)
    • ISO/IEC 42001:2023, AI management system, controls mapped to ISO/IEC 42001:2023; compliant, not certified (opens the trust center in a new tab)
    • GDPR, Processor terms under Article 28 in the Data Processing Addendum; a law, not a certification (opens the trust center in a new tab)
    • CCPA, Service-provider terms in the Data Processing Addendum; a law, not a certification (opens the trust center in a new tab)
    • PCI DSS SAQ A, Card data is handled by the payment provider and never stored by us; a self-assessment, not a certification (opens the trust center in a new tab)
    • NIST Cybersecurity Framework, Controls mapped to the NIST CSF; a framework, not a certification (opens the trust center in a new tab)
    • HIPAA (BAA available), Protected health information only under a signed Business Associate Agreement, available on request; HIPAA is not a certification (opens the trust center in a new tab)
    • EU AI Act, Controls mapped to the EU AI Act; a law, not a certification, and no determination that any customer use complies (opens the trust center in a new tab)

    © 2026 Bynn Intelligence, Inc.

    prices in USD per 1M input tokens