# DecisionNode > DecisionNode is a decision engine: send it text, JSON or images with a question, and it answers with calibrated probabilities, in milliseconds, through one API. 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. DecisionNode is a System One decision model behind one HTTPS endpoint, `POST https://api.decisionnode.com/v1/decide`: it reads a state (text, JSON or images) and answers typed questions in one pass, with no deliberation: a choice among options, a score on a scale, the probability that a statement is true, or a number. Every answer carries calibrated probabilities. It never generates text, which makes it the right tool for routing, triage, moderation, scoring and gating and the wrong one for writing. Made by Bynn Intelligence, Inc. ## For coding agents: the integration contract To set up DecisionNode in a project, fetch and follow the setup guide: https://decisionnode.com/agent-setup.md (the key, the docs MCP server, the call, the rules and a check). The block below is the contract it carries; follow it as written. Endpoint: POST https://api.decisionnode.com/v1/decide Auth: header "Authorization: Bearer ", key read from the DECISIONNODE_API_KEY environment variable on the server. Never ship that key to a browser, an app or a device, and never log it. The API refuses browser (cross-origin) calls except with a publishable key, so frontend code calls this app's own backend, which calls DecisionNode; a device gets a Decisions-only key of its own from the app's server. Request body (questions required; model, state, images and boosters optional; model defaults to "decisionnode-1.0"; a field sent as null equals one left out): { "model": "decisionnode-1.0", // or "decisionnode-1.0-flash", or the workspace's fine-tuned model "decisionnode-1.0@acme/fraud" "fallback": true, // default; when DecisionNode MoE has no ready capacity, DecisionNode Flash answers (body "model" and header x-decisionnode-fallback say so, billed at DecisionNode Flash's price); false = a 529 to retry instead "state": "" | { ...json }, "images": [{ "id": "photo", "media_type": "image/jpeg", "data": "" }], // up to 16; or { "id": "photo", "url": "https://..." } "boosters": ["age", "ai_generated"], // optional, up to 4, each once; specialist readings of every image, priced per picture read (`age` (Human Age) $0.024, `ai_generated` (AI-generated) $0.006, `face_detection` (Face detection) $0.001, `face_recognition` (Face recognition) $0.001 on your own collection and $0.001 on `celebrities`, `ocr` (OCR) $0.0015, `bynn_depth` (Depth Vision) free, `bynn_segment` (Segment Vision) $0.001 and `knowledge` (Knowledge) $0.001 a request). An entry may instead be { "name": "ai_generated", "images": ["photo"], "require": true } to narrow the images it reads or to fail the request (529) without it, or with "timeout_ms" (100 up to the booster's ceiling) to set its time budget for the request. The knowledge booster reads your own stored documents instead of images: { "name": "knowledge", "options": { "collection": "" } }, $0.001 a request; its passages come back cited in evidence.knowledge (docs: /docs/knowledge) "questions": { "": { "type": "choice", "instructions": "...", "criteria": { "