meraGPT
ModelsPlaygroundDocsPricingBlogSign inTry it free

docs

  • Overview
  • Authentication
  • System One (Decider)
  • Restyle
  • Fanout
  • Chat completions
  • Models
  • Errors and limits

links

  • Playground
  • Your API keys
  • Email support

endpoint

POST /v1/systemone

Send one state and any number of typed questions about it. Decider 1 answers all of them in a single call, and every answer is a probability distribution rather than a bare label, so your code decides how sure it needs to be before acting.

Nothing is generated: each answer is read from the model’s scores for the options you offered, so it can only ever be one of them, and output is never billed. Input costs $0.03 / 1M tokens.

Request

curl https://meragpt.com/v1/systemone \
  -H "Authorization: Bearer $MERAGPT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sd-1",
    "state": {
      "channel": "email",
      "messages": [
        { "from": "customer", "text": "I was charged twice for September. Refund the duplicate, today please." }
      ]
    },
    "questions": {
      "refund_requested": {
        "type": "noul",
        "instructions": "Is the customer asking for money back?"
      },
      "team": {
        "type": "choice",
        "instructions": "Which team should handle this?",
        "criteria": {
          "billing": "Charges, invoices, payments and refunds.",
          "technical": "The product is not working as expected.",
          "account": "Login, plan changes and access."
        }
      },
      "urgency": {
        "type": "score",
        "instructions": "How urgent is this?",
        "criteria": ["Can wait a week", "Within a few days", "Today", "Immediately"]
      }
    }
  }'
fieldtypenotes
modelstringsd-1 or state-decider-1. Optional: omitted, or the typesafe-sdk’s default model name, means Decider 1.
stateany JSONRequired. What the questions are about: a conversation, an alert, an invoice, an agent trace.
questionsobjectRequired. A name for each question, mapped to the question. Up to 64 per request.

Question types

typecriteriaanswer
noulOptional: {"true": "...", "false": "..."} describing each side.The probability of yes.
choiceRequired: each label mapped to a description. 2 to 10 labels.A probability per label, the most likely label, and its probability.
scoreRequired: the levels as an ordered list, lowest first. 2 to 10 levels.A probability per level, the expected level, and the top level’s probability.

Every question needs instructions: the question itself, in plain words. Write labels and levels the way you would explain them to a new colleague; the descriptions are part of what the model reads.

Response

{
  "id": "req_4f1c9a0b2e7d6c5a3b8e9f01",
  "object": "systemone",
  "model": "state-decider-1",
  "answers": {
    "refund_requested": { "type": "noul", "noul": 0.9034 },
    "team": {
      "type": "choice",
      "choice": "billing",
      "confidence": 0.9657,
      "probabilities": { "billing": 0.9657, "technical": 0.007, "account": 0.0273 }
    },
    "urgency": {
      "type": "score",
      "score": 2.0973,
      "confidence": 0.3847,
      "legend": { "0": "Can wait a week", "1": "Within a few days", "2": "Today", "3": "Immediately" },
      "probabilities": { "0": 0.018, "1": 0.2513, "2": 0.3459, "3": 0.3847 }
    }
  },
  "usage": { "input_tokens": 295, "output_tokens": 0, "cost_usd": "$0.0000089" },
  "balance_usd": "$9.99"
}

A noul answer is the bare probability of yes, with no separate confidence. A score’s legend and probabilities are keyed by level index. The score is the expected level; the distribution tells you when that average hides a genuine split, as it does above between “today” and “immediately”.

Using the typesafe-sdk

The endpoint speaks the System One schema, so the typesafe-sdk works against it without code changes. Point it here and give it your meraGPT key:

export TYPESAFE_BASE_URL=https://meragpt.com
export TYPESAFE_API_KEY=$MERAGPT_API_KEY

Requests the SDK sends with its default model name are answered by Decider 1. To be explicit, pass model="sd-1". Two differences from other System One providers to check before you switch: a request, state and questions together, can hold up to 4,096 tokens, and a choice offers at most 10 labels. For a larger label set, split it into groups with a “none of these” label and ask in two steps.

Speed

One call answers every question over the state together, so twenty questions cost little more than one. A request larger than the context returns 400 input_too_long, never a retryable error. When we are out of capacity for a moment you get 429 with a Retry-After header, which the typesafe-sdk honours on its own; see errors.

What it is not for

  • Open-ended answers. It picks between the options you give it and cannot write anything else.
  • Facts it would need to look up. It decides from the state you send and knows nothing beyond it.
  • Questions with more than ten options. Split a large label set into groups with a "none of these" option.

Limitations

  • The reference answers on this benchmark come from an ensemble of teacher models, so a score here measures agreement with that ensemble, not ground truth.
  • Every number comes from a single evaluation run.
  • Text state only — no images, audio or video — and at most ten options per choice question.

Benchmarks and the full comparison are on the model page.

meraGPTModelsPlaygroundDocsPricingFAQTermsPrivacyhello@meragpt.com© 2026