Sign in to use the console
Sign in with Google to create API keys, buy credits and see your usage.
Dashboard
Call Velox III and Lucia III from your own code. The API follows the OpenAI chat completions format.
Last 30 days
Models and prices
Playground
Chat with a model from your browser, then take the same request into your code.
The playground runs on your signed-in account, like the chat, so your plan's daily allowance applies. Calls with an API key bill your credits.
Send a message to start. Nothing here is saved.
API keys
A key calls the API as your account. Calls made with a key are billed to your credits at the published per-token prices.
Your new key
Copy it now. You will not see this key again. Keep it secret, like a password.
Loading your keys…
No keys yet. Name one above and create it.
Revoked keys
New to the API? The quick start has a working request in curl, Python and JavaScript.
Usage
Tokens, requests and cost per day and model. Days are UTC.
By day
By model
| Model | Input tokens | Output tokens | Requests | Cost |
|---|
No usage in this range.
By key
| Key | Input tokens | Output tokens | Total | Requests |
|---|
Input tokens of calls made with a key leave out the Praex system prompt, the same number each reply's usage showed.
Billing
Credits pay for calls made with your API keys, at the published per-token prices.
Buy credits
Payment goes through Stripe. Credits are added once Stripe confirms the payment.
Transactions
| Description | Date | Amount |
|---|
No transactions yet.
Google accounts get a $1 starting credit, once per account. Your plan (Free, Pro) covers the chat, the CLI and the apps; credits cover API keys.
Limits
What one key may do at a time, and how much your keys may spend in a month.
Per key
| Requests per minute | … |
|---|---|
| Requests at the same time | … |
Past these, a call gets 429 with key_rate_limited or key_concurrency and a retry-after header.
Monthly spend cap
…
Leave it empty for no cap. Once key calls this month reach the cap, they stop with 402 spend_cap_reached until the month ends or you raise it.
Logs
Your most recent requests. Message content is never shown here.
Loading requests…
| Time | Model | Source | Tokens in / out | Cost | Status | Latency |
|---|
No requests yet.
API reference
Everything an OpenAI-compatible client needs to call Praex models.
Quick start
Create a key in API keys, put it in your environment, and send a request.
export PRAEX_API_KEY="praex-sk-..."
The Python and JavaScript examples use the official OpenAI SDK (pip install openai, npm install openai).
Authentication
Send your key as a bearer token on every request: Authorization: Bearer praex-sk-.... Keys work on POST /v1/chat/completions and GET /v1/models; other routes answer 403 api_key_not_allowed.
Base URL: . A key acts as your account: its calls are billed to your credits and count in your usage, logs and spend cap. Revoke a key in API keys and it stops working within a minute.
Models
POST /v1/chat/completions
Creates a reply to a conversation, in the OpenAI chat completions format. Parameters:
| Field | Type | What it does |
|---|---|---|
model | string, required | velox-iii or lucia-iii. |
messages | array, required | The conversation: system, user, assistant and tool messages. Velox III also reads images sent as image_url content parts. |
stream | boolean | Send the reply as server-sent events. See Streaming. |
max_tokens | integer | The most tokens to generate, up to 8,192. |
temperature, top_p, top_k, min_p | number | Sampling. |
presence_penalty, frequency_penalty, repetition_penalty | number | Repetition control. |
stop, seed | string or array, integer | Stop sequences and a sampling seed. |
tools, tool_choice, parallel_tool_calls | array, string or object, boolean | Function calling. See Tools. |
reasoning_effort | string | Turns thinking on or off. See Thinking. |
Other fields (response_format, logprobs, logit_bias, n) are ignored. The reply is a standard chat.completion object with choices and usage.
Streaming
With "stream": true the reply arrives as data: lines of chat.completion.chunk objects. The last chunk carries usage and the stream ends with data: [DONE].
If the reply stops partway, the stream sends a chunk with an error object instead of choices; treat the reply as cut off.
Thinking
Lucia III thinks before it answers by default. Send "reasoning_effort": "none" to turn thinking off. Velox III answers directly unless you send "reasoning_effort": "high".
Thinking arrives in reasoning_content on the message (or on each streamed delta), apart from the answer in content. Thinking tokens are output tokens.
Tools
Pass OpenAI-style function tools in tools. When the model calls one, the reply has tool_calls and finish_reason "tool_calls"; run the function and send the result back as a tool message with the matching tool_call_id.
Usage and billing
Every reply carries usage with prompt_tokens, completion_tokens and total_tokens. For key calls, prompt tokens leave out the Praex system prompt. Key calls are billed to your credits at the prices below: input tokens at the input price, output tokens (thinking included) at the output price.
GET /v1/models
With a key, lists the models the key can call, each with id, name, context_length, quantization and pricing.
GET /v1/pricing
Public, no key needed. Lists each model with pricing.prompt and pricing.completion in US dollars per token (as strings), context_length, max_output_length, supported parameters and is_ready, which is false while a model is not serving.
Errors
Errors are JSON: {"error": {"message", "type", "code"}}. Show the message; branch on the status and code.
| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_request | The body is not valid JSON or a field is wrong. |
| 400 | context_length_exceeded | The conversation is longer than the model's context. Trim it and retry. |
| 401 | invalid_api_key | The key is missing, malformed, unknown or revoked. |
| 402 | insufficient_credits | Your credit balance is used up. Buy credits in Billing. |
| 402 | spend_cap_reached | Key calls this month reached your cap. Raise it in Limits. |
| 403 | api_key_not_allowed | Keys do not work on this route. |
| 404 | model_not_found | The model id is not one a key can call. |
| 429 | key_rate_limited, key_concurrency | Too many requests per minute, or too many at once, for this key. Wait for retry-after seconds. |
| 503 | model_unavailable | The model is not serving right now. Retry later or use another model. |
| 503 | auth_unavailable | Keys could not be checked for a moment. Retry. |
Settings
Your Praex account.
Profile
| Name | |
|---|---|
| Plan | … |
Your plan covers the chat, the CLI and the apps; API keys use credits. Change your plan in the chat's Settings.