POST /v1/messages
Authentication
Send Authorization: Bearer $REDROUTER_API_KEY or x-api-key: $REDROUTER_API_KEY.
Request body
application/json · required
{
"$ref": "#/components/schemas/MessagesRequest"
}
Request examples
curl -X POST 'https://redrouter.org/v1/messages' \
-H "Authorization: Bearer $REDROUTER_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"max_tokens": 512,
"messages": [
{
"content": "Hello",
"role": "user"
}
],
"model": "glm-5.3-flash-rr"
}'
import os, json
from urllib.request import Request, urlopen
body = json.loads(r'''{
"max_tokens": 512,
"messages": [
{
"content": "Hello",
"role": "user"
}
],
"model": "glm-5.3-flash-rr"
}''')
request = Request(
"https://redrouter.org/v1/messages",
method="POST",
data=json.dumps(body).encode(),
headers={
"Authorization": "Bearer " + os.environ["REDROUTER_API_KEY"],
"Content-Type": "application/json",
},
)
with urlopen(request) as response:
print(json.load(response))
const key = process.env.REDROUTER_API_KEY;
const response = await fetch("https://redrouter.org/v1/messages", {
method: "POST",
headers: {
Authorization: `Bearer ${key}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"max_tokens": 512,
"messages": [
{
"content": "Hello",
"role": "user"
}
],
"model": "glm-5.3-flash-rr"
}),
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
Responses
200 · Completed response or event stream
application/json
{
"$ref": "#/components/schemas/MessageResponse"
}
text/event-stream
{
"description": "Named events: ping, message_start, content_block_start, content_block_delta, content_block_stop, message_delta, message_stop. Failures emit error. Read through message_stop.",
"type": "string"
}
Event data schema:
{
"$ref": "#/components/schemas/MessagesEvent"
}
400 · Invalid request
application/json
{
"$ref": "#/components/schemas/MessagesError"
}
401 · Invalid key
application/json
{
"$ref": "#/components/schemas/MessagesError"
}
403 · Permissions, spend limit or insufficient credit
application/json
{
"$ref": "#/components/schemas/MessagesError"
}
404 · Unknown model
application/json
{
"$ref": "#/components/schemas/MessagesError"
}
413 · Request too large
application/json
{
"$ref": "#/components/schemas/MessagesError"
}
429 · Rate, concurrency or daily spend limit
application/json
{
"$ref": "#/components/schemas/MessagesError"
}
500 · Internal error
application/json
{
"$ref": "#/components/schemas/MessagesError"
}
502 · Model response failed
application/json
{
"$ref": "#/components/schemas/MessagesError"
}
503 · Model unavailable
application/json
{
"$ref": "#/components/schemas/MessagesError"
}