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

cookbook · Decider 1 · Structured extraction

Ask many questions in one call

When you need multiple answers about the same input, making separate requests means separate latency and separate billing for each one. This recipe asks up to 64 questions about a single input in one request, so you get one call, one latency hit, and one bill. For example, a product review stating the battery lasts two days, the screen scratches easily, and support never answered can be interrogated with five questions in one call: mentions battery 0.93, complains about support 0.89, positive overall 0.41, stars most likely 3 (0.48) then 2 (0.32), main complaint support 0.46 versus screen 0.38.

Request

POST /v1/systemone, documented in the Decider 1 reference.

curl https://meragpt.com/v1/systemone \
  -H "Authorization: Bearer $MERAGPT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "sd-1",
  "state": {
    "review": "Battery life is great, easily two days. The screen scratches too easily though, and support never answered my email about it."
  },
  "questions": {
    "positive_overall": {
      "type": "noul",
      "instructions": "Is the review positive overall?"
    },
    "mentions_battery": {
      "type": "noul",
      "instructions": "Does the review mention battery life?"
    },
    "complains_support": {
      "type": "noul",
      "instructions": "Does the review complain about customer support?"
    },
    "stars": {
      "type": "score",
      "instructions": "How many stars would this reviewer likely give?",
      "criteria": [
        "1",
        "2",
        "3",
        "4",
        "5"
      ]
    },
    "topic": {
      "type": "choice",
      "instructions": "What is the main complaint about?",
      "criteria": {
        "battery": "Battery life.",
        "screen": "Screen or display.",
        "support": "Customer support.",
        "price": "Price."
      }
    }
  }
}'

What came back

The real output from running this recipe, unedited.

{
  "answers": {
    "positive_overall": {
      "type": "noul",
      "noul": 0.4073
    },
    "mentions_battery": {
      "type": "noul",
      "noul": 0.9273
    },
    "complains_support": {
      "type": "noul",
      "noul": 0.8851
    },
    "stars": {
      "type": "score",
      "score": 1.8242,
      "confidence": 0.4759,
      "legend": {
        "0": "1",
        "1": "2",
        "2": "3",
        "3": "4",
        "4": "5"
      },
      "probabilities": {
        "0": 0.032,
        "1": 0.318,
        "2": 0.4759,
        "3": 0.1422,
        "4": 0.032
      }
    },
    "topic": {
      "type": "choice",
      "choice": "support",
      "confidence": 0.4564,
      "probabilities": {
        "battery": 0.1512,
        "screen": 0.3793,
        "support": 0.4564,
        "price": 0.0131
      }
    }
  }
}

Python

import os, requests

API = "https://meragpt.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['MERAGPT_API_KEY']}"}

r = requests.post(f"{API}/systemone", headers=HEADERS, json={
    "model": "sd-1",
    "state": {
        "review": "Battery life is great, easily two days. The screen scratches too easily though, and support never answered my email about it."
    },
    "questions": {
        "positive_overall": {
            "type": "noul",
            "instructions": "Is the review positive overall?"
        },
        "mentions_battery": {
            "type": "noul",
            "instructions": "Does the review mention battery life?"
        },
        "complains_support": {
            "type": "noul",
            "instructions": "Does the review complain about customer support?"
        },
        "stars": {
            "type": "score",
            "instructions": "How many stars would this reviewer likely give?",
            "criteria": [
                "1",
                "2",
                "3",
                "4",
                "5"
            ]
        },
        "topic": {
            "type": "choice",
            "instructions": "What is the main complaint about?",
            "criteria": {
                "battery": "Battery life.",
                "screen": "Screen or display.",
                "support": "Customer support.",
                "price": "Price."
            }
        }
    }
}).json()

for name, answer in r["answers"].items():
    print(name, answer)

TypeScript

const API = "https://meragpt.com/v1";
const headers = {
  Authorization: `Bearer ${process.env.MERAGPT_API_KEY}`,
  "Content-Type": "application/json",
};

const r = await fetch(`${API}/systemone`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    "model": "sd-1",
    "state": {
      "review": "Battery life is great, easily two days. The screen scratches too easily though, and support never answered my email about it."
    },
    "questions": {
      "positive_overall": {
        "type": "noul",
        "instructions": "Is the review positive overall?"
      },
      "mentions_battery": {
        "type": "noul",
        "instructions": "Does the review mention battery life?"
      },
      "complains_support": {
        "type": "noul",
        "instructions": "Does the review complain about customer support?"
      },
      "stars": {
        "type": "score",
        "instructions": "How many stars would this reviewer likely give?",
        "criteria": [
          "1",
          "2",
          "3",
          "4",
          "5"
        ]
      },
      "topic": {
        "type": "choice",
        "instructions": "What is the main complaint about?",
        "criteria": {
          "battery": "Battery life.",
          "screen": "Screen or display.",
          "support": "Customer support.",
          "price": "Price."
        }
      }
    }
  }),
}).then((res) => res.json());

for (const [name, answer] of Object.entries(r.answers)) console.log(name, answer);

When to trust it

A near split like support at 0.46 versus screen at 0.38 is the model telling you the review contains two complaints, not that one is clearly dominant. Read the probabilities rather than just the top label when the numbers are close.

Try it without code in the playground, or see more Decider 1 recipes: route a support email in one call, act only when the model is sure, flag a phishing email, drop retrieved passages that do not help, hold a reply that promises money, pick an agent's first tool.

meraGPTModelsPlaygroundDocsPricingFAQTermsPrivacyhello@meragpt.com© 2026