Developers

A question in, a probability for every option out.

Send a situation and the questions you need answered. Myles returns a calibrated probability for every option in one pass, so your code decides what to automate and what to hand to a person.

Three ways in

Quick start

One request, one routing decision. Every option comes back with a probability, not just the winner.

Request
curl https://api.launchables.ai/v1/decide \
  -H "Authorization: Bearer $LAUNCHABLES_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "state": "Charged twice for order 4471, need the extra payment back",
    "questions": {
      "route": {
        "type": "choice",
        "instructions": "Which team should handle this?",
        "criteria": ["billing", "returns", "technical", "other"]
      }
    }
  }'
Response
{
  "model": "myles-g-12b",
  "answers": {
    "route": {
      "type": "choice",
      "choice": "billing",
      "probabilities": {
        "billing": 0.93, "returns": 0.04,
        "technical": 0.01, "other": 0.02
      }
    }
  }
}

Illustrative probabilities. Several questions about one situation go in one request and are answered in parallel. The full API reference 

Three kinds of question

noul

Yes or no.

The probability that the answer is yes. Is this a scam? Is the refund within policy? Does the answer cite its source?

choice

One of several labels.

A probability for every label, up to 26. Which team? Which category? Which tool should the agent call?

score

A level on a scale.

The most likely level, a probability-weighted score and a probability for every level. How urgent? How risky?

Decide from an image

Myles-G 12B and Myles-G 31B read PNG and JPEG images in the same request as the text. Send each image once in assets, write its name where it belongs in the state or the question, and the answers come back exactly as they do for text: a calibrated probability for every option. Approve this receipt? Is it safe for the agent to tap this? Fit to ship? Which item is the target?

Request body
{
  "state": {
    "receipt": "receipt_photo",
    "note": "Customer asks for a refund"
  },
  "questions": {
    "total_matches": {
      "type": "noul",
      "instructions":
        "Does the total on receipt_photo equal 23.40?"
    }
  },
  "assets": {
    "receipt_photo": {
      "format": "jpeg",
      "data_base64": "/9j/4AAQSkZJRgABAQ..."
    }
  },
  "image_budget": 280
}
Response
{
  "model": "myles-g-12b",
  "answers": {
    "total_matches": {
      "type": "noul", "noul": 0.94
    }
  },
  "usage": {
    "input_tokens": 331, "output_tokens": 1
  }
}

Illustrative probability and token counts. Speed measured 16 Oct 2026.

Images in the docs Quick start 

Decision API

Myles-G 12B and Myles-G 31B, hosted by Launchables

£0.0015 per million input tokens, output free, excluding VAT

Get an API key

From your code

Python
import os, requests

def decide(state, questions):
    r = requests.post(
        "https://api.launchables.ai/v1/decide",
        headers={"Authorization": f"Bearer {os.environ['LAUNCHABLES_API_TOKEN']}"},
        json={"state": state, "questions": questions},
        timeout=30,
    )
    r.raise_for_status()
    return r.json()["answers"]

refund = decide(
    "Bought 12 days ago, no receipt. Policy: 30 days with proof of purchase.",
    {"ok": {"type": "noul", "instructions": "Is a refund permitted?"}},
)["ok"]["noul"]

# keep what clears your threshold, hand the rest to a person
print("approve" if refund >= 0.9 else "decline" if refund <= 0.1 else "to a person")
JavaScript
const response = await fetch('https://api.launchables.ai/v1/decide', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.LAUNCHABLES_API_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    state: { from: 'J. Smith', message: 'Is my parcel lost? It is a week late.' },
    questions: {
      priority: {
        type: 'score',
        instructions: 'How urgent is this?',
        criteria: ['Routine', 'This week', 'Today'],
      },
    },
  }),
});
const { answers } = await response.json();
console.log(answers.priority.level, answers.priority.probabilities);

Resources

Build on decisions you can trust.

Get an API key Request a self-hosted evaluation 

Meet Myles-22M.

A tiny decision model with 22.7M parameters, running in your browser. Give it a message and a question, and it returns a probability for every option in one pass. Nothing you type leaves your device.

Try an example
Ask

Myles-22M is an experimental model and can make mistakes. Please don't rely on it for anything important. Model card