An inference API for authorized security workflows

RedRouter serves explicit open-weight models through documented OpenAI- and Anthropic-compatible interfaces for work you are authorized to perform. This page covers the standard API. RedRouter also offers Confidential Inference with hardware-isolated, attested execution and encryption to the verified runtime.

Which endpoint does my client speak?

Your clientRouteSDK base URL
OpenAI message listsPOST /v1/chat/completionshttps://redrouter.org/v1
OpenAI ResponsesPOST /v1/responseshttps://redrouter.org/v1
Anthropic MessagesPOST /v1/messageshttps://redrouter.org
Messages input estimationPOST /v1/messages/count_tokenshttps://redrouter.org

Start with your client's request format: message lists → Chat Completions; Responses input items → Responses; Messages content blocks → Messages. Token counting estimates input; it does not generate output. All generation routes are stateless: send the relevant history each turn. Check the compatibility contract before forwarding another service's request object.

Make a minimal Python or curl request

Create a key in guided setup, save it when displayed once, and set REDROUTER_API_KEY in your environment. Never put the secret in source code or an AI prompt. The GLM example below requires funded credit; trial eligibility and its separate model limits are described in the quickstart.

With the OpenAI Python SDK installed:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["REDROUTER_API_KEY"],
    base_url="https://redrouter.org/v1",
)
response = client.chat.completions.create(
    model="glm-5.3-flash-rr",
    max_tokens=256,
    messages=[{"role": "user", "content": "List three checks for an authorized code review."}],
)
print(response.choices[0].message.content)
curl --fail-with-body https://redrouter.org/v1/chat/completions \
  -H "Authorization: Bearer $REDROUTER_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"model":"glm-5.3-flash-rr","max_tokens":256,"messages":[{"role":"user","content":"List three checks for an authorized code review."}]}'

These are setup examples, not a live supplier compatibility test. Pin a working SDK version in your application. For an existing integration, follow migration.

Messages and Claude Code

Messages clients use the origin as their base URL and append /v1/messages. Follow the Messages guide and security-agent setup. The Claude Code recipe is configuration guidance, not a promise that every client release works. Set explicit client permissions and inspect unsupported fields with nonsensitive inputs.

Capabilities and known limits

Streaming, tool choice, structured output and image input depend on the selected model and endpoint. Tools are executed by your client; format compatibility does not supply hosted search, a browser, shell or code execution. There are no embeddings, audio, image-generation, fine-tuning, file-upload or managed-agent APIs in the documented compatibility contract.

Illustrative limitation: sending previous_response_id, even as null, to /v1/responses returns HTTP 400. There is no retrievable response resource; send history in the request instead. This documented example has not been exercised against a live supplier here. Unknown request parameters also return 400. See supported and rejected fields.

Explicit model catalog

Choose the model ID yourself. RedRouter does not silently substitute another model. The catalog records capabilities, limits and reported checkpoint facts; unknown exact weight revisions remain unknown. Start with the GLM 5.3 Flash RR details for an agent-oriented option, then evaluate it on your authorized workload. Reduced refusals do not guarantee correct or safe output.

Pricing, cache and context

Read current GLM 5.3 Flash RR prices and limits rather than assuming one context or output bound for every model. Reported cache reads receive the listed cache rate; unreported reads use the input rate, and cache hints do not guarantee hits. Pricing explains prepaid top-ups and monthly plans. A request reserves credit before dispatch and settles against reported usage under the documented billing rules.

Choose data controls before dispatch

New keys start with store_content: false, with no surcharge; older keys retain storage on. Inspect your key with GET /v1/key. Account Zero Data Retention is separate, off by default, and opt-in in Settings. It applies prospectively across all keys and Chat, disables Save chat, is included during paid monthly plan periods, and adds 20% to pay-as-you-go token rates. Saved chats have a separate lifecycle; changing a retention setting does not delete prior content. Responses store: false is not the request-log switch.

With Zero Data Retention enabled, RedRouter stores no prompts or completions. Review data handling, what RedRouter keeps and the privacy policy, including your own client logs.

Use Confidential Inference for protected execution

RedRouter Confidential Inference protects content during model execution with hardware isolation, remote attestation and encryption to the verified runtime. Contact support@redrouter.org for supported models, client integration and pricing. Use the confidential integration when your workload requires this execution boundary; the standard API examples above describe standard inference.

For standard inference, choose a model and make your first nonsensitive API request. Read the authorized security workflow guidance before connecting an analysis worker.