# Decision Models > Low-cost hosted decision models for routing, classification and scoring. One Jev-compatible API, with Peer-to-Peer and EU tiers. Sign in with a one-time email link or with Google at https://decisionmodels.io/login, create an API key in your dashboard and use a free allowance by invitation or top up from EUR 1. Prepaid credit top-ups use Stripe with invoices. Private individuals and businesses worldwide can sign up and top up. Taxes are shown in checkout before you pay. ## Models and launch pricing s1-fast (Plumb-4B, text): Peer-to-Peer $0.032 / EU $0.034 per 1M input tokens; output tokens free. s1-pro (Surogate Rune 26B-A4B v3 (EU) · Winnow-12B Q8 fallback; Rune available on Peer-to-Peer when capacity permits, text): Peer-to-Peer $0.038 / EU $0.040 per 1M input tokens; output tokens free. s1-vision (Surogate Rune 26B-A4B v3 (EU) · no image fallback on EU tier or Peer-to-Peer without worldwide opt-in; Rune available on Peer-to-Peer when capacity permits; Gemma 4 12B image fallback only for Peer-to-Peer keys with worldwide opt-in, text + image) · text only: Peer-to-Peer $0.038 / EU $0.040 per 1M input tokens; output tokens free. s1-llm-auto-router (s1-llm-auto-router (CPU routing classifier), text): Peer-to-Peer $0.001 / EU $0.001 per 1M input tokens; output tokens free. s1-vision with image (requests containing one image, price book S1-LAUNCH-3-IMAGE): Peer-to-Peer $0.217 / EU $0.228 per 1M input tokens; all input tokens of the request (text and image tokens) are billed at this rate; output tokens free. Text-only s1-vision requests use the s1-pro rate. Image input: s1-vision only, exactly one PNG/JPEG/WebP image per request (data URL or public HTTPS URL); an image is billed as the input tokens the model reads. A request that contains an image is billed at the s1-vision image rate (price book S1-LAUNCH-3-IMAGE) for all its input tokens (text and image tokens), because image processing takes about 3x the GPU time per token of a text request; text-only s1-vision requests use the s1-pro rate. USD rates exclude applicable taxes. EUR rates are published at https://decisionmodels.io/pricing. Maximum input per request (context window): 4,096 input tokens for s1-fast, 32,000 for s1-pro and 32,000 for s1-vision (state, all questions and options, and the image, counted by the model tokenizer); larger requests get HTTP 400 invalid_request, are never truncated and are not billed. s1-llm-auto-router reads at most 512 tokens and ignores the rest. Details: https://decisionmodels.io/models#input-limits ## Tiers and data API gateway and database: Hetzner in the EU. EU inference: UpCloud in the EU. EU-tier s1-pro and s1-vision requests run on Surogate Rune 26B-A4B v3; Winnow-12B Q8 is the fallback for s1-pro (text) and also serves the Peer-to-Peer tier. s1-vision has no fallback on the EU tier or on Peer-to-Peer without worldwide opt-in: if Rune is unavailable it returns a retryable 503 (model_unavailable). Peer-to-Peer keys with worldwide processing opt-in may be served by on-demand worldwide GPUs running the Gemma 4 12B image implementation when capacity is busy. s1-fast (Plumb-4B) runs on a batched engine that processes concurrent requests together, so probabilities for identical requests can differ slightly. Peer-to-Peer first uses spare EU capacity, with EU requests taking priority. When busy, Peer-to-Peer may use on-demand GPU capacity rented through Lium (lium.io), operated by independent third-party providers in various countries, including outside the EU/EEA. This happens only for keys with “Allow worldwide processing” enabled. Without opt-in, Peer-to-Peer stays on EU capacity and may be queued or rejected when busy. Existing customers keep EU-only processing unless they opt in. Request and response content is not stored on any node. EU-tier inference always stays in the EU. Connections are encrypted and authenticated. Prompts and outputs are never used for training. New content sub-processors remain subject to the 30-day notice and objection process. Do not send personal data on opted-in worldwide keys unless an adequate transfer basis applies for your use. See the DPA and sub-processor list. ## API and MCP API base: https://api.decisionmodels.io POST /v1/systemone: model, state, and up to three typed text questions for s1-pro, or one for s1-fast and s1-vision (noul, choice or score). GET /v1/models (alias /models): live model registry. Authenticate inference with Authorization: Bearer ; choose S1-Region: global|eu. Hosted MCP: https://api.decisionmodels.io/mcp (streamable HTTP, JSON-RPC; Bearer API key). Tools: decide, list_models, get_usage, get_balance. Swagger UI: https://decisionmodels.io/docs/api/reference OpenAPI snapshot: https://decisionmodels.io/openapi.json Authoritative API OpenAPI: https://api.decisionmodels.io/openapi.json ## Resources - [llms.txt](https://decisionmodels.io/llms.txt) - [llms-full.txt](https://decisionmodels.io/llms-full.txt) - [Sign in and create a key](https://decisionmodels.io/login?next=/dashboard) - [Quickstart](https://decisionmodels.io/docs/quickstart) - [API reference (Swagger UI)](https://decisionmodels.io/docs/api/reference) - [OpenAPI JSON](https://decisionmodels.io/openapi.json) - [Hosted MCP setup](https://decisionmodels.io/mcp) - [Models](https://decisionmodels.io/models) - [Launch pricing](https://decisionmodels.io/pricing) - [EU tier](https://decisionmodels.io/eu) - [Agent guide](https://decisionmodels.io/agents) - [DPA](https://decisionmodels.io/legal/dpa) - [Sub-processors](https://decisionmodels.io/legal/subprocessors) - [Security](https://decisionmodels.io/security) ## HTTP operations - GET /v1/models: List Models V1 - GET /models: List Models Legacy Compat - POST /v1/account/invite: Redeem Account Invite - GET /v1/auth/{provider}: Begin Oauth Sign In - GET /v1/auth/{provider}/callback: Complete Oauth Sign In - POST /v1/auth/magic-link: Request Magic Link - POST /v1/auth/magic-link/consume: Consume Magic Link - GET /v1/session: Get Dashboard Session - GET /v1/session/csrf: Get Session Csrf Token - POST /v1/session/logout: Logout Session - POST /v1/session/logout-all: Logout All Sessions - GET /v1/legal/status: Legal Status - POST /v1/legal/accept: Accept Legal - GET /v1/dpa/status: Dpa Status - POST /v1/dpa/accept: Accept Dpa - GET /v1/api-keys: List Api Keys - POST /v1/api-keys: Create Api Key - PATCH /v1/api-keys/{key_id}/spend-cap: Set Api Key Spend Cap - PATCH /v1/api-keys/{key_id}: Update Api Key Processing - DELETE /v1/api-keys/{key_id}: Revoke Api Key - GET /v1/account/retention: Get Account Retention - PUT /v1/account/retention: Update Account Retention - GET /v1/balance: Get Account Balance - GET /v1/usage: Get Account Usage - POST /v1/systemone: Systemone - POST /v1/multimodal: Multimodal - POST /v1/billing/checkout: Create Billing Checkout - GET /v1/billing/invoices: List Billing Invoices - GET /v1/billing/invoices/{checkout_id}: Get Billing Invoice - GET /v1/billing/invoices/{checkout_id}/document: Get Billing Invoice Document - POST /v1/billing/refunds: Create Billing Refund - POST /v1/billing/tax-id/validate: Validate Billing Tax Id - POST /v1/billing/withdraw: Withdraw Billing Order Dashboard operations use the signed-in session; changes require X-CSRF-Token. The hosted MCP get_usage and get_balance tools use your API key for account-scoped access. One-time email links and Google sign-in are available sign-in methods. ## Request example curl https://api.decisionmodels.io/v1/systemone \ -H "Authorization: Bearer $SYSTEM1_API_KEY" \ -H "Content-Type: application/json" \ -H "S1-Region: global" \ -d '{"model":"s1-fast","state":"Mia owns a red bicycle.","questions":{"color":{"type":"choice","instructions":"Which color is the bicycle?","criteria":{"red":null,"blue":null}}}}' s1-pro supports up to three named text questions; s1-fast and s1-vision support one. Shared text is billed once plus each question prompt. Peer-to-Peer bundles need spare Rune capacity and may return retryable 503; EU requests have priority. State is at most 16 KiB serialized JSON for s1-fast and 250 KiB for s1-pro and s1-vision; the full body is at most 6 MiB. Maximum input per request (context window): s1-fast accepts up to 4,096, s1-pro 32,000 and s1-vision 32,000 input tokens counted by the model tokenizer (state, all questions and options, and the image for s1-vision); above that the API returns HTTP 400 invalid_request, never truncates and does not bill. s1-llm-auto-router reads at most 512 tokens (the first 600 characters of context if any, then the request), ignores the rest and bills only what it reads. Tested on the production API on 6 October 2026: https://decisionmodels.io/evidence/input-limits-2026-10-06.json Consult the OpenAPI schemas for exact bounds and error responses. ## Region selection Choose per API key or per request with S1-Region: global|eu. Peer-to-Peer keeps the API value global. The request header also accepts S1-Region: p2p as an alias; responses use global. EU inference remains in the EU. Peer-to-Peer first uses spare EU capacity, with EU requests taking priority. When busy, Peer-to-Peer may use on-demand GPU capacity rented through Lium (lium.io), operated by independent third-party providers in various countries, including outside the EU/EEA. This happens only for keys with “Allow worldwide processing” enabled. Without opt-in, Peer-to-Peer stays on EU capacity and may be queued or rejected when busy. Existing customers keep EU-only processing unless they opt in. Request and response content is not stored on any node. S1-Region: global alone never enables worldwide processing; the customer must opt in for the individual key. For personal data, an adequate transfer basis is also required for your use. ## EUR launch rates s1-fast: Peer-to-Peer €0.028, EU €0.030 per 1M input tokens. s1-pro: Peer-to-Peer €0.033, EU €0.035 per 1M input tokens. s1-vision (text only): Peer-to-Peer €0.033, EU €0.035 per 1M input tokens. s1-llm-auto-router: Peer-to-Peer €0.001, EU €0.001 per 1M input tokens. s1-vision with image (requests containing one image): Peer-to-Peer €0.190, EU €0.200 per 1M input tokens (text and image tokens). Output tokens are free. Rates exclude applicable taxes. ## Browser discovery WebMCP tools use public site data: get_pricing, list_models, estimate_cost, switch_region, open_page, get_quickstart, get_api_endpoints. Cost estimates exclude taxes, trial credits and output-token charges. Tools never handle keys, sign in, top up credits or call inference. ## Legal and benchmarks The legal routes are published on this site. Accept the Terms and DPA during signup; consult the sub-processor list for Google sign-in and Stripe payments. They never receive your prompts. Benchmark results cover several sources at https://decisionmodels.io/benchmarks; JevBench is run by our founder and is disclosed as one input among several. Decision Models is an independent service and is not affiliated with TypeSafe or OpenAI.