Overwing

Guardrails for LLM output, as an API call.

Send any model output and a rule set. Get a typed pass / fail / review verdict per rule and in aggregate, with calibrated confidence, in under 500 ms. Built for people and for the agents they run.

How it works

1. Pick or write a rule set

Start with the prebuilt content-safety set: toxicity, PII, self-harm, sexual content, severity. Or define your own rules as yes/no questions, classifications, or scored scales.

2. POST the text

One request per output. Every rule is judged in parallel by TypeSafe's Jev System One model, which returns typed answers and probabilities, not prose.

3. Act on the verdict

fail means block or redact. review means a rule was unsure; route it to a human or a slower model. Every evaluation is stored and queryable, and a signed webhook fires on anything that is not a clean pass.

# 1. one call to sign up (returns an API key)
curl -X POST https://overwing.ai/api/v1/signup \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com","password":"at-least-12-chars"}'

# 2. one call to evaluate
curl -X POST https://overwing.ai/api/v1/evaluate \
  -H "Authorization: Bearer ow_live_..." \
  -H "Content-Type: application/json" \
  -d '{"input":"<llm output>","rule_set":"content-safety"}'
{
  "id": "eval_aBcDeFgHiJkLmNoP",
  "verdict": "fail",
  "aggregate_score": 0.8636,
  "confidence": 0.80,
  "latency_ms": 264,
  "results": [
    { "rule": "toxicity", "type": "choice", "answer": "toxic",
      "probability": 1.0, "confidence": 1.0, "verdict": "fail" },
    { "rule": "pii_detected", "type": "noul", "answer": false,
      "probability": 0.99, "confidence": 0.98, "verdict": "pass" }
  ]
}

Pricing

Per organization, billed monthly, cancel any time. Limits are evaluations per UTC day and are shared by all of an org's keys.

Free
$0/mo
250 evaluations / day

Try every endpoint. Enough to wire up a prototype or run an agent's smoke tests.

Start free
Starter
$29/mo
5,000 evaluations / day

For a single product or agent in production.

Choose Starter
Growth
$99/mo
25,000 evaluations / day

For teams and fleets of agents with steady traffic.

Choose Growth
Scale
$299/mo
100,000 evaluations / day

High-volume pipelines. Talk to us above this.

Choose Scale

Machine-readable: GET /api/v1/plans. Every plan includes all endpoints, custom rule sets, webhooks, and the dashboard.

Built for agents too

If you are an AI agent, or you run them, everything here works without a browser and without a human in the loop. We want your traffic; the only thing we ask is that you pay for what you use.

  • POST /api/v1/signup creates an account and returns a key in one call. No email link, no CAPTCHA.
  • GET /api/v1/plans lists prices. POST /api/v1/billing/subscribe upgrades with a Stripe payment method id, no checkout page.
  • Keys, rule sets, webhooks and cancellation are all plain JSON endpoints. Nothing is dashboard-only.
  • Every response is structured. Errors are {"error": "..."} and name the field. Rate limits come back as headers with a reset time.
  • /llms.txt is the whole guide in plain text. /api/v1/openapi.json is the full schema.
  • Using MCP? overwing-mcp exposes everything as tools: npx -y overwing-mcp with your key in OVERWING_API_KEY.
# upgrade without a browser
curl -X POST https://overwing.ai/api/v1/billing/subscribe \
  -H "Authorization: Bearer ow_live_..." \
  -H "Content-Type: application/json" \
  -d '{"plan":"growth","payment_method":"pm_..."}'

# -> {"plan":"growth","daily_limit":25000,
#     "subscription_status":"active", ...}

# or get a checkout URL to hand to a person
curl -X POST https://overwing.ai/api/v1/billing/checkout \
  -H "Authorization: Bearer ow_live_..." \
  -H "Content-Type: application/json" \
  -d '{"plan":"growth"}'