REST API + SSE Streaming

One multi-model AI API with a consensus answer

One API call asks up to four top models (GPT, Claude, Gemini, and Grok) the same question. You get a synthesized consensus answer plus an agreement analysis: a 0-100 score, what the models agree on, and where they split.

Free account: 3 free calls, no card. Then pay as you go from $5 of credit, no subscription, across all 20 models.

GPTClaudeGeminiGrok

One call, start to finish

Your app

POST /api/query

Synero API

Fans out in parallel

GPTClaudeGeminiGrok

Each answers on its own

Combined answer

Plus agreement score

Quick Start

Quickstart: your first multi-model call

curl -X POST https://synero.ai/api/query \
  -H "Authorization: Bearer sk_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "What are the trade-offs between microservices and monoliths?",
    "context": [{"name": "architecture.md", "content": "# Our System\n..."}],
    "format": "json"
  }'

This request uses format: "json" and returns advisors, synthesis, and consensus (score, agreements, splits). Omit it and the response streams as server-sent events: each model's tokens arrive in real time, followed by the synthesis and the consensus event. A JSON run still going after about 60 seconds answers 200 and sends newlines until the object, so prefer the stream for deep or web_search runs.

Features

Everything you need to integrate

A single endpoint that queries multiple AI models, synthesizes their responses, scores their agreement, and streams everything to your application.

4 Models, 1 Call

GPT, Claude, Gemini, and Grok queried in parallel, each answering independently so a disagreement is a real one.

Real-time SSE Streaming

Watch each model respond token by token in parallel, then the synthesis and agreement analysis arrive.

Consensus Answer and Agreement Score

A synthesizer reads every response and writes one answer. A separate analysis returns a 0-100 agreement score, the points all models share, and exactly where they split, with each model's stance.

Pick Your Models

Choose which model fills each of the four advisor slots and the synthesizer. The four named personas (Architect, Philosopher, Explorer, Maverick) are an API option.

Conversation Threads

Build multi-turn conversations with thread IDs and history context for follow-up questions.

Simple Auth & Limits

Bearer token authentication. 60 requests/min per key. Manage keys from your dashboard.

What the API returns, in the app

GPTClaudeGeminiGrok
Try it free

Models

20 models from 4 providers

Mix and match any model for any advisor slot. Use the defaults or build your own custom council. Also available through the MCP server.

OpenAI

  • gpt-6.1-sol
  • gpt-6-luna
  • gpt-6-astra
  • gpt-5.6-sol
  • gpt-5.6-terra
  • gpt-5.6-luna

Anthropic

  • claude-opus-5-5
  • claude-sonnet-5-5
  • claude-fable-5-1
  • claude-opus-5
  • claude-sonnet-5
  • claude-haiku-5-5

Google

  • gemini-3.8-flash
  • gemini-3.5-flash
  • gemini-3.5-flash-lite
  • gemini-3.1-pro-preview

xAI

  • grok-4.7
  • grok-4.6
  • grok-4.5
  • grok-4.3

Reference

SSE event types

The response stream emits these event types. Each event includes a JSON data payload.

  • council-meta

    tier, advisorModels, synthesizerModel, preset?, webSearch?

    First event: the models running this question and the resolved preset or tier

  • advisor

    id, token, status

    Incremental token from an advisor

  • advisor-complete

    id, modelId, inputTokens, outputTokens, latencyMs

    Advisor finished responding

  • advisor-error

    id, error

    Advisor failed or returned no text (provider error, refusal, or empty answer); the others continue

  • synthesis-start

    (none)

    The synthesizer is starting; only sent when synthesis runs

  • synthesis

    token, status

    Incremental token from the synthesizer

  • synthesis-complete

    inputTokens, outputTokens, skipped?, reason?, error?

    Synthesis finished. skipped means it never ran; error means it failed or produced no text, so discard any synthesis tokens received (the query still completes)

  • consensus

    score, unanimous, contested, dissenter, takeaway

    Where the advisors agree and split, with a 0-100 agreement score. Usually arrives during the synthesis but may arrive after complete, so read until the stream closes. Also sent when synthesis is skipped (2+ answers).

  • complete

    queryId

    The answer is done. A late consensus event may still follow, so read until the stream closes

  • error

    message

    Fatal error, such as every advisor failing. Advisor tokens already used are still billed

Error codes

Every error is JSON: { error, code, doc_url }. Branch on code; the message may change.

  • 400invalid_json

    The request body is not valid JSON

  • 400missing_prompt

    No prompt was sent

  • 400prompt_too_long

    The prompt is over 10,000 characters

  • 400invalid_context

    A context item is malformed or over the size limits

  • 400invalid_config

    config or web_search has a wrong type or an unknown tier or model

  • 400invalid_models

    models or preset names an unknown model, or two from one provider

  • 400invalid_synthesis_instructions

    synthesisInstructions is not a string or is over 10,000 characters

  • 400unknown_template

    No template has that slug

  • 400invalid_thread

    thread_id or parent_query_id is not a string

  • 400invalid_parent_query_id

    parent_query_id is not a UUID

  • 400invalid_thread_id

    thread_id is not a UUID

  • 400name_too_long

    The API key name is too long

  • 400key_limit_reached

    Too many active API keys; revoke one first

  • 401invalid_api_key

    The API key is wrong or revoked

  • 401auth_required

    Send a Bearer API key or sign in

  • 401unauthorized

    Key management needs a signed-in session

  • 402trial_exhausted

    The 3 free questions are used; add credit or subscribe

  • 402subscription_inactive

    The subscription lapsed and no credit is left

  • 402no_credits

    No credit left; add credit from $5

  • 404parent_not_found

    parent_query_id is not one of your saved queries

  • 404key_not_found

    No API key of yours has that id

  • 429rate_limit_exceeded

    Over 60 requests a minute on this key; wait for Retry-After

  • 429runs_in_progress

    Questions already running reserved the rest of your balance; no Retry-After, retry when they finish or add credit

  • 500internal_error

    Something failed on our side; retry

  • 502all_advisors_failed

    Every model failed; failedAdvisors says why

  • 503billing_unavailable

    Billing could not be checked; retry shortly

  • 503trial_unavailable

    The free trial could not be checked; retry shortly

Get an API key and ask four models at once

Free to try: 3 free calls, no card. Then pay as you go: $5 of credit, no subscription, billed by tokens used. See pricing.