meraGPT
ModelsPlaygroundDocsPricingBlogSign inTry it free

docs

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

links

  • Playground
  • Your API keys
  • Email support

overview

meraGPT API

meraGPT serves small models trained for a single job each, over one HTTP API. Usage is metered per token against prepaid USD credit. There is no subscription and no seat count.

The base URL is https://meragpt.com/v1. Three models are available today, each with its own endpoint:

  • Decider 1 (state-decider-1, alias sd-1) answers typed questions over a state, each as a calibrated distribution, at /v1/systemone. It speaks the System One schema, so the typesafe-sdk works against it unchanged.
  • Restyler 1 (text-restyler-1) rewrites machine-written prose so it reads as if a person wrote it, at /v1/restyle.
  • Query Fanout 1 (query-fanout-1) returns the web searches an AI assistant would run before answering a question, at /v1/fanout.

Quickstart

Three steps, about two minutes. You can skip straight to step three in the playground, which needs no account: the playground.

1. Sign in

Sign in with Google and $1 of credit lands in your balance, no card, which is tens of thousands of calls at these rates. When you need more, add credit from the dashboard; the minimum purchase is $10. It is a USD balance, not a token bundle: what you see is what is left.

2. Create a key

On the keys page, name a key and optionally restrict which models it may call and cap what it may spend. The secret is shown once, at creation. We store only a SHA-256 hash, so it cannot be shown again by us or by anyone who reaches our database.

3. Make a request

Decider 1 takes a state and your questions, and answers all of them in one call:

curl https://meragpt.com/v1/systemone \
  -H "Authorization: Bearer $MERAGPT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sd-1",
    "state": { "ticket": "I was charged twice for September. Refund it, please." },
    "questions": {
      "refund_requested": { "type": "noul", "instructions": "Is the customer asking for money back?" },
      "urgency": { "type": "score", "instructions": "How urgent is this?",
                   "criteria": ["Can wait a week", "Within days", "Today", "Immediately"] }
    }
  }'

The Restyler’s task-native endpoint takes a whole document and handles splitting it into the paragraph-sized units the model works on:

curl https://meragpt.com/v1/restyle \
  -H "Authorization: Bearer $MERAGPT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-restyler-1",
    "text": "The utilization of our platform facilitates the optimization of workflow efficiency across organizational boundaries."
  }'

The fan-out takes a question and returns a list of searches:

curl https://meragpt.com/v1/fanout \
  -H "Authorization: Bearer $MERAGPT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "query-fanout-1",
    "question": "What are the best project management tools available right now?"
  }'

Or point an existing OpenAI client at the same base URL and change the model name:

from openai import OpenAI

client = OpenAI(
    api_key=os.environ["MERAGPT_API_KEY"],
    base_url="https://meragpt.com/v1",
)

resp = client.chat.completions.create(
    model="text-restyler-1",
    messages=[{"role": "user", "content": draft}],
)
print(resp.choices[0].message.content)

Which endpoint to use

Prefer the task-native endpoint for the model you are calling. /v1/systemone is the only way to call Decider 1, which generates no text and so has no chat form. /v1/restyle splits your document, skips what should not be rewritten, reassembles the result with your formatting intact, and tells you per block what it did. /v1/fanout returns the searches as a real array and takes the optional brand hint.

/v1/chat/completions exists so existing OpenAI code works unchanged for Restyler and Query Fanout. The model you name selects which of the two behaviours runs. It does the same work internally, but the chat envelope cannot express the per-block detail or the query list without an extension, and sampling parameters are accepted and ignored because decoding is fixed per model.

Where to go next

  • Authentication, keys, model restrictions and per-key spend caps.
  • System One, Decider 1’s endpoint and the typesafe-sdk drop-in, in full.
  • Restyle, the Restyler’s endpoint, in full.
  • Fanout, the query fan-out endpoint, in full.
  • Chat completions, the compatibility layer and exactly where it differs.
  • Models, the catalogue, pricing and limits.
  • Errors and limits, status codes, rate limits and what to retry.
meraGPTModelsPlaygroundDocsPricingFAQTermsPrivacyhello@meragpt.com© 2026