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, optional images and video frames. 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 on the data we measure.
  • ImagesConceptsSend up to 16 images and text in the same request. The model reads printed and handwritten text, amounts, dates, objects and layout, and…
  • Batch jobsPatternsSend up to 10,000 requests in one file and collect the answers later, at a lower price than live calls.
  • Pricing and billingYou pay for input tokens only. Output is free because the model generates no text.
↑↓ moveopen7 suggestions
Get API keyGet API key
DecisionNodeDecisionNde

Get started

  • Introduction
  • Quickstart
  • Playground
  • Console and keys
  • With coding agents
  • MCP server
  • Examples

Concepts

  • State
  • Questions
  • Choice
  • Score
  • Truth
  • Number
  • Points and boxes
  • Images
  • Video
  • Confidence
  • Determinism

Models

  • DecisionNode-1.0
  • DecisionNode-1.0 Flash
  • Limits
  • Versions
  • Dedicated capacity

Patterns

  • Confidence-gated routing
  • Fan-out
  • Guardrails
  • Control loops
  • Batch jobs

API reference

  • Overview
  • POST/v1/decide
  • GET/v1/models
  • Errors
  • Safety check
  • Rate limits

Sessions API

  • Sessions overview
  • POSTOpen a session
  • WSStream frames
  • DELEnd a session

Batch API

  • The batch object
  • POSTCreate a batch
  • POSTAdd requests
  • POSTFinalize a batch
  • GETRetrieve a batch
  • GETGet batch results
  • POSTCancel a batch
  • GETList batches

Pricing and billing

  • Pricing and billing
  • Refer & earn

Policies

  • Responsible use
  • Data and privacy
  • Benchmarks
  • Pricing
  • Playground
Get API key
  • Guides
  • API reference
  • Examples
  • Playground

Get started

  • Introduction
  • Quickstart
  • Playground
  • Console and keys
  • With coding agents
  • MCP server
  • Examples

Concepts

  • State
  • Questions
  • Choice
  • Score
  • Truth
  • Number
  • Points and boxes
  • Images
  • Video
  • Confidence
  • Determinism

Models

  • DecisionNode-1.0
  • DecisionNode-1.0 Flash
  • Limits
  • Versions
  • Dedicated capacity

Patterns

  • Confidence-gated routing
  • Fan-out
  • Guardrails
  • Control loops
  • Batch jobs

API reference

  • Overview
  • POST/v1/decide
  • GET/v1/models
  • Errors
  • Safety check
  • Rate limits

Sessions API

  • Sessions overview
  • POSTOpen a session
  • WSStream frames
  • DELEnd a session

Batch API

  • The batch object
  • POSTCreate a batch
  • POSTAdd requests
  • POSTFinalize a batch
  • GETRetrieve a batch
  • GETGet batch results
  • POSTCancel a batch
  • GETList batches

Pricing and billing

  • Pricing and billing
  • Refer & earn

Policies

  • Responsible use
  • Data and privacy
  1. docs
  2. /
  3. Concepts

Points and boxes

Two question types that answer where: point returns one spot in an image as x and y, box a rectangle around the thing. Every answer says how likely the thing is there at all and how likely the place is right.

on this page6 sections
  1. Request
  2. Referring to images
  3. Response
  4. What instructions can say
  5. How DecisionNode answers
  6. Batch jobs and sessions
  7. Price

Two new question types answer where: point gives one spot in the image, box draws a rectangle around the thing. You get coordinates you can draw, crop or hand to a machine, and every answer says how likely the thing is there at all and how likely the place is right.

No other decision API returns a place. OpenAI's Decisions API answers predicate, choice and score questions only, and has no coordinates (checked on 8 October 2026).

Try it in the playground: the belt request below, with the point and the box drawn on the frame. Or open a build: conveyor pick, panel scratch, person at the fence, landing marker.

  • Point point

    Goal
    Where is it?
    What comes back
    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).
  • Box box

    Goal
    Where is it, and how far does it reach?
    What comes back
    A rectangle around the thing, as its top-left corner (x1, y1) and bottom-right corner (x2, y2), with present and confidence.
The two types
TypeGoalWhat comes back
Point pointWhere is it?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).
Box boxWhere is it, and how far does it reach?A rectangle around the thing, as its top-left corner (x1, y1) and bottom-right corner (x2, y2), with present and confidence.

Request#

Ask for a place in plain words, next to an image: "Point to the yellow package closest to the robot arm", "Draw a box around the damaged package". Point and box questions mix freely with the other types in one request, and several of them on the same image share one read of it.

POST /v1/decide
{
  "images": [
    {
      "id": "belt",
      "url": "https://files.example.com/line-3/cam-2/0917.jpg"
    }
  ],
  "questions": {
    "pick": {
      "type": "point",
      "instructions": "Point to the yellow package closest to the robot arm."
    },
    "damage": {
      "type": "box",
      "instructions": "Draw a box around the damaged package."
    },
    "any_damage": {
      "type": "truth",
      "instructions": "Is any package on the belt damaged?"
    }
  }
}

Question fields

type"point" | "box"required
A point for one spot, a box for a rectangle around the thing.
instructionsstring | object | arrayrequired
What to find: a short phrase ("the yellow package"), a description with conditions ("the person standing nearest the door"), or a question ("Where is the crack?"). The state and the other images are read as context, so the instructions may refer to them, an image by its id in backticks or by its number ("picture 1").
imagestring
The id of the image to look in, a string, never a number. Required when the request carries two or more images; optional with exactly one. See Referring to images.
units"pixels" | "normalized"default "pixels"
pixels: pixels of the image as you sent it, after its EXIF orientation. normalized: fractions of the width and the height, from 0 to 1.
criteriaany
Not used. Ignored like an unknown field inside a question.
  • An image is required. A request with a point or box question and no image is a 422 on that question.
  • image names an image of the request. An unknown id, or no image in a request with two or more images, is a 422 on that question's image.
  • Questions stay independent. A point or box answer does not depend on the other questions in the request, and several point and box questions on one image share one read of it.
  • Video frames: to place something on a frame of a video, send that frame as an image.

Referring to images#

With several images, the image field names the one to look in, by its id. The instructions can refer to the other images by id, in backticks, or by number, counted from 1 in the order of the images array: here the box looks in dock_3 for the package shown in picture 1. Prefer ids to numbers: an id stays right when images are added or reordered. More on Images.

A box in one image, for a package from another
{
  "images": [
    {
      "id": "dock_1",
      "url": "https://files.example.com/dock-2/cam-1/0912.jpg"
    },
    {
      "id": "dock_2",
      "url": "https://files.example.com/dock-2/cam-2/0912.jpg"
    },
    {
      "id": "dock_3",
      "url": "https://files.example.com/dock-2/cam-3/0912.jpg"
    }
  ],
  "questions": {
    "package": {
      "type": "box",
      "instructions": "Draw a box around the package from picture 1.",
      "image": "dock_3"
    }
  }
}

Response#

200 OK
{
  "answers": {
    "pick": {
      "type": "point",
      "x": 812,
      "y": 455,
      "present": 0.97,
      "confidence": 0.91,
      "image": "belt",
      "width": 1920,
      "height": 1080
    },
    "damage": {
      "type": "box",
      "x1": 300,
      "y1": 120,
      "x2": 520,
      "y2": 410,
      "present": 0.95,
      "confidence": 0.88,
      "image": "belt",
      "width": 1920,
      "height": 1080
    },
    "any_damage": { "type": "truth", "truth": 0.96 }
  }
}

Answer fields

x, ynumber
Point: the spot, measured from the top-left corner of the image, x to the right and y down. Whole pixels by default; with units: "normalized", fractions with 4 decimals.
x1, y1, x2, y2number
Box: the top-left corner (x1, y1) and the bottom-right corner (x2, y2), in the same units. x1 <= x2 and y1 <= y2.
presentnumber
The probability that what you asked for is in the image at all. "Not there" is an answer: under a low present the place is only the best guess for something that is probably absent.
confidencenumber
The probability that the place is right, if the thing is there. For a point: that it lies on the thing. For a box: that it overlaps the true box by at least half (an intersection over union of 0.5 or more). Calibrated like every probability the API returns.
image, width, heightstring, number, number
Which image the answer refers to and its size in pixels, so you can draw or convert the answer without another lookup.

Every field is always there: the shape never changes with the answer, so code stays simple. present and confidence are rounded to 2 decimals like every probability in the body.

Act on a sure place; hold on an unsure one, or hand it to a person
a = result["answers"]["pick"]
if a["present"] > 0.8 and a["confidence"] > 0.7:
    robot.pick(a["x"], a["y"])
else:
    robot.hold()  # unsure: hold, and ask again on the next frame

Holding and asking again on the next frame keeps the loop running on its own, the default for a line or a robot. Where a person is on hand, send the unsure image to them instead.

When several things match ("the yellow package" with three on the belt), the answer is the one that matches best. Say which one you mean in the instructions: "the leftmost yellow package".

What instructions can say#

Instructions can carry conditions ("the package with a torn label", "the person who entered after closing") and refer to the state and to other images in the request ("the item that matches the order in the state", "the part that differs from reference"). A fixed list of detector classes cannot.

  • Production lines and sorting

    Example question
    "Point to the next yellow package to pick."
    Type
    point
  • Quality control

    Example question
    "Draw a box around the scratch on the panel."
    Type
    box
  • Surveillance

    Example question
    "Draw a box around the person climbing the fence."
    Type
    box
  • Traffic

    Example question
    "Draw a box around the car that stopped in the crossing."
    Type
    box
  • Warehouses

    Example question
    "Point to the empty slot on the second shelf."
    Type
    point
  • Drones and robots

    Example question
    "Point to the landing marker."
    Type
    point
What point and box are for
UseExample questionType
Production lines and sorting"Point to the next yellow package to pick."point
Quality control"Draw a box around the scratch on the panel."box
Surveillance"Draw a box around the person climbing the fence."box
Traffic"Draw a box around the car that stopped in the crossing."box
Warehouses"Point to the empty slot on the second shelf."point
Drones and robots"Point to the landing marker."point

How DecisionNode answers#

DecisionNode reads the image once. A point or box question then runs as a few short readings on that one read: first whether the thing is there, then where it is across the width, then down the height at that spot (for a box, its size around that centre). Each reading is a calibrated probability, so the answer comes with honest present and confidence values instead of a guess written as text. No text is generated and nothing needs to be parsed.

Batch jobs and sessions#

A batch line takes point and box questions as the live call does. In a session they apply to a frame's image.

Price#

Billed like any other question: the tokens of its instructions, plus the image once per request at the image and video rate. No fee per point or box, and output is free. Proposed, like every price on the site. See Pricing and billing.

previousNumbernextImages

DecisionNode is built and run by Bynn Intelligence, Inc.

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

on this page

  1. Request
  2. Referring to images
  3. Response
  4. What instructions can say
  5. How DecisionNode answers
  6. Batch jobs and sessions
  7. Price