Developer console
Build on Arvethon
Generate a key, call the same models the chat app uses, from your own code.
API keys
No keys yet — generate one to get started.
Sandbox
10 requests/minTest a prompt here without writing code — this runs under your login, not your API key, and nothing here is saved to your chat history or counted against your key's rate limit.
Available models
Use the key value as the model field below.
Quick start
curl -X POST https://arvethon.pages.dev/api/v1/chat \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "aurora",
"message": "How many r'"'"'s are in strawberry?"
}'
const res = await fetch("https://arvethon.pages.dev/api/v1/chat", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "aurora",
message: "How many r's are in strawberry?"
})
});
const data = await res.json();
console.log(data.reply);
import requests
res = requests.post(
"https://arvethon.pages.dev/api/v1/chat",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"model": "aurora", "message": "How many r's are in strawberry?"},
)
print(res.json()["reply"])
Reference
Authenticate with Authorization: Bearer <key>. Body: model (a key from the table above, optional — defaults to the free model) and message (string, required).
Response: { "model": string, "reply": string, "usage": { "tokens": number|null }, "creditsJustExhausted": boolean }
The reply text is Markdown-formatted — render it with a Markdown library on your end for bold/italic/headings/code blocks to display properly; we send it as plain text over the wire.
Each request is a single turn — no conversation history is kept for API calls, unlike the chat app.
Rate limit: 20 requests/minute per API key. Exceeding it returns HTTP 429.
Paid models charge your account's credit balance per request, same pricing as the chat app. A 402 response with {"creditsExhausted": true} means you're out — buy more credits or switch to a free model.
Rules & security
CORS: /api/v1/chat accepts requests from any origin when authenticated with a valid API key — call it directly from browser-side JS or from a server, either works.
Do: keep your key server-side when possible; rotate it if you suspect it leaked (revoke, then generate a new one); handle 429/402 responses gracefully in your app.
Don't: hardcode your key in public client-side code you don't control (anyone can read it and spend your credits); don't retry aggressively on 429 — back off and wait.
Every request passes through the same firewall and safety checks as the chat app — attempts to extract the system prompt, generate malicious code, or bypass safety rules are declined automatically, same as in-app.