Efficient models
250k · 500k · 1m
Tier 3 · Tier 4 · Tier 5 per day across gpt-5.6-luna, gpt-5.4, and gpt-5.4-mini.
OpenAI-compatible Chat Completions and Responses endpoints backed by Starveri’s model catalog, a useful free tier, prepaid credits, and transparent per-token pricing.
Open the Starveri billing dashboard ↗
https://api.starveri.net · HTTPS onlySend a standard OpenAI-style request with a Starveri API key. The API accepts Bearer authentication and returns OpenAI-compatible JSON or SSE.
curl https://api.starveri.net/v1/chat/completions \\
-H "Authorization: Bearer $STARVERI_API_KEY" \\
-H "Content-Type: application/json" \\
-d '{
"model": "gpt-5.6-luna",
"messages": [{"role": "user", "content": "Hello from Starveri"}],
"max_completion_tokens": 512
}'
from openai import OpenAI
client = OpenAI(
api_key="$STARVERI_API_KEY",
base_url="https://api.starveri.net/v1",
)
result = client.chat.completions.create(
model="gpt-5.6-luna",
messages=[{"role": "user", "content": "Hello from Starveri"}],
max_completion_tokens=512,
)
print(result.choices[0].message.content)
const response = await fetch("https://api.starveri.net/v1/chat/completions", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.STARVERI_API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "gpt-5.6-luna",
messages: [{ role: "user", content: "Hello from Starveri" }],
max_completion_tokens: 512
})
});
const result = await response.json();
Authenticate every request with an API key in the HTTP Authorization header.
Authorization: Bearer ocgptapi_…
Keys and billing are managed at api.starveri.net ↗. Use HTTPS and rotate a key immediately if it is exposed.
Prices are per 1 million tokens unless stated otherwise. Values are the current Starveri reference rates.
For Standard requests, context pricing is selected from input-token usage. Long context doubles the selected Standard or Pro model-token price. Separately priced tools are unchanged. Flex does not use this context-pricing field.
| Model | Maximum context | Short context | Long context |
|---|---|---|---|
| gpt-5.6-sol | 1,050,000 tokens | ≤315,000 input tokens · 1× | >315,000 input tokens · 2× |
| gpt-6-astra | 1,050,000 tokens | ≤315,000 input tokens · 1× | >315,000 input tokens · 2× |
| gpt-5.6-terra | 1,050,000 tokens | ≤315,000 input tokens · 1× | >315,000 input tokens · 2× |
| gpt-5.6-luna | 1,050,000 tokens | ≤315,000 input tokens · 1× | >315,000 input tokens · 2× |
| gpt-daybreak-blue | 1,050,000 tokens | ≤315,000 input tokens · 1× | >315,000 input tokens · 2× |
| gpt-5.5 | 1,050,000 tokens | ≤315,000 input tokens · 1× | >315,000 input tokens · 2× |
| gpt-5.4 | 1,050,000 tokens | ≤315,000 input tokens · 1× | >315,000 input tokens · 2× |
| gpt-5.4-mini | 400,000 tokens | ≤120,000 input tokens · 1× | >120,000 input tokens · 2× |
| gpt-5.3-codex-spark | 128,000 tokens | ≤38,400 input tokens · 1× | >38,400 input tokens · 2× |
Gemma inference uses a dedicated serving runtime and Standard pricing. There is no Flex or Pro inference for either Gemma model. During capacity pressure, requests may wait in arrival order; if the serving runtime is unavailable, the API returns HTTP 503 instead of substituting another model.
| Model | Maximum context | Short input | Short output | Long-context threshold | Automatic moderation |
|---|---|---|---|---|---|
| gemma-4 | 124,160 | 5 | 15 | >37,248 input tokens · 2× | Request and response omni moderation |
| gemma-4-uncensored | 32,000 | 10 | 30 | >9,600 input tokens · 2× | None automatic |
Gemma models do not offer input-token caching, cache writes, or cached-input discounts. Both models expose a binary thinking control ("on" or "off", default "on"): they expose no reasoning modes and do not accept or send reasoning fields; the Playground presents the thinking toggle instead. The uncensored variant skips automatic omni and specialized policy moderation, but authentication, billing, account restrictions, rate limits, concurrency limits, and logging still apply.
| Model | Input | Cached input | Cache writes | Output |
|---|---|---|---|---|
| gpt-5.6-sol | 50 | 5 | 62.5 | 150 |
| gpt-6-astra | 125 | 12.5 | 156.25 | 375 |
| gpt-5.6-terra | 25 | 2.5 | 31.25 | 75 |
| gpt-5.6-luna | 10 | 1 | 12.5 | 30 |
| gpt-daybreak-blue | 150 | 15 | 187.5 | 450 |
| gpt-5.5 | 50 | 5 | 62.5 | 150 |
| gpt-5.4 | 16.67 | 1.67 | 20.84 | 50 |
| gpt-5.4-mini | 5.56 | 0.56 | 6.95 | 16.67 |
| gpt-5.3-codex-spark | 20 | 2 | 25 | 60 |
Uses a Pro model or equivalent.
| Model | Input | Cached input | Cache writes | Output |
|---|---|---|---|---|
| gpt-5.6-sol | 150 | 15 | 187.5 | 450 |
| gpt-6-astra | 375 | 37.5 | 468.75 | 1125 |
| gpt-5.6-terra | 75 | 7.5 | 93.75 | 225 |
| gpt-5.6-luna | 30 | 3 | 37.5 | 90 |
| gpt-5.5 | 150 | 15 | 187.5 | 450 |
| gpt-5.4 | 50.01 | 5.01 | 62.52 | 150 |
| gpt-5.4-mini | 16.68 | 1.68 | 20.85 | 50.01 |
| gpt-5.3-codex-spark | 60 | 6 | 75 | 180 |
gpt-daybreak-blue is available through Standard service and is priced at 3× GPT-5.6 Sol Standard usage. It is disabled for every account by default; request enablement by emailing support@starveri.net. The same Standard long-context pricing rule shown above applies. Additional safety review and availability controls may apply.
| Service | Input | Cached input | Cache writes | Output |
|---|---|---|---|---|
| Standard | 150 | 15 | 187.5 | 450 |
| Model | Input | Output |
|---|---|---|
| gpt-5.6-sol | 75 | 225 |
| gpt-5.5 | 75 | 225 |
| Model | Input | Output |
|---|---|---|
| gpt-5.6-sol | 225 | 675 |
| gpt-5.5 | 225 | 675 |
Pro is a Flex reasoning effort, not Pro mode. Use "reasoning": { "effort": "pro" }. Flex rejects pro: true, agent_mode: true, Code Interpreter flags, and Code Interpreter tool declarations. Web Search is always enabled for Flex, even when web_search: false is supplied.
Only GPT-5.6 Sol and GPT-5.5 are available on Flex and Pro Flex. Flex reasoning efforts are Medium, High, Xhigh, and Pro for GPT-5.6 Sol; GPT-5.5 additionally supports None.
Credits count toward tier usage when they are directly billed to a model.
| Tier | Unlock requirement | Description |
|---|---|---|
| Free | 0 credits | Limited free models with low rate limits. |
| Tier 1 | ≥100 lifetime funded credits | Unlocks immediately after verified Stripe or Robux restocks; admin grants do not count. All models with a baseline rate limit. |
| Tier 2 | 500 billable credits in the past 30 UTC days | Unlocks immediately; all models with a higher rate limit. |
| Tier 3 | 1000 billable credits in the past 30 UTC days | Unlocks immediately; higher rate limit and complimentary tokens. |
| Tier 4 | 2500 billable credits in the past 30 UTC days | Unlocks immediately; high rate limit and complimentary tokens. |
| Tier 5 | 5000 billable credits in the past 30 UTC days | Unlocks immediately; highest rate limit and complimentary tokens. |
Limits are account-wide across all API keys owned by the account. They reset at midnight UTC. Admin controls may override a tier limit, including capping Tier 5 concurrency.
| Tier | Request limit | Token limit | Notes |
|---|---|---|---|
| Free | 1/min · 10/day · 50/month | 1,000/min · 10,000/day · 50,000/month | Only gpt-5.4-mini. |
| Tier 1 | 3/min · 150/hour · 1 concurrent | 10,000/min · 13,250,000/day | Baseline. |
| Tiers 2 & 3 | 9/min · 450/hour · 3 concurrent | 30,000/min · 40,000,000/day | About 3× baseline. |
| Tier 4 | 20/min · 1,000/hour · 5 concurrent | 50,000/min · 90,000,000/day | High usage. |
| Tier 5 | 60/min · 3,000/hour · unlimited tier-level concurrency | 100,000/min · 200,000,000/day | Admin override may cap concurrency; about 2× high usage. |
Complimentary tokens do not stack. Daily pools reset at midnight UTC. If a request would take you over the daily allowance, the entire request is billed.
250k · 500k · 1m
Tier 3 · Tier 4 · Tier 5 per day across gpt-5.6-luna, gpt-5.4, and gpt-5.4-mini.
100k · 200k · 400k
Tier 3 · Tier 4 · Tier 5 per day across sol, terra, 5.5, and Spark.
0.1 credits per call, in addition to model token pricing. It is counted every time a model searches the web.
Standard only. Sandboxes can run commands and file actions. Price: 0.5 credits per GB RAM-minute plus 0.5 credits per GB disk-minute. Minimum 1 GB RAM + 5 GB disk.
Standard only; incompatible with Pro. Removes some model configurations and enables additional customization.
{ "agent_mode": true }Standard only. When a model rate limit is reached, Starveri can attempt another model.
{ "auto_route": "gpt-5.4-mini" }Standard requests use automatic serving failover when an origin is unavailable. Flex returns 503 Flex is temporarily unavailable when its service is unavailable.
Text-only and near-instant (around 650 tokens/sec). Images route to gpt-5.4-mini for a text description before being returned to Spark.
Pro pricing uses a Pro model or equivalent on supported Standard-service models. Agent Mode is incompatible with Pro.
OpenAI-compatible endpoint:
POST https://api.starveri.net/v1/chat/completions
Required fields are model and messages. Use max_completion_tokens; the API also accepts the compatible max_output_tokens/max_tokens aliases where supported.
The API reads every supplied message in order. System and developer messages are merged into the request instructions. User, assistant, and tool messages are converted into one ordered transcript labeled User:, Assistant:, and Tool:. The server does not automatically retrieve an earlier Chat Completions request, so clients continue a conversation by sending the desired prior messages again on every request.
{
"model": "gpt-5.6-terra",
"messages": [
{"role": "system", "content": "You are concise."},
{"role": "user", "content": "Summarize this."}
],
"max_completion_tokens": 1024,
"stream": false,
"agent_mode": false,
"pro": false,
"web_search": false,
"code_interpreter": false
}
Use the OpenAI Responses shape at:
POST https://api.starveri.net/v1/responses
{
"model": "gpt-5.6-luna",
"input": "Explain the result in three bullets.",
"max_output_tokens": 512,
"stream": true
}
Responses requests use the compatible Chat Completions executor and return a typed Responses object or semantic SSE events. The supported core includes text, image/file input parts, function calls, function-call outputs, reasoning configuration, tools, and max_output_tokens.
Set store: true on a non-streaming Response to persist its completed object. Retrieve it with GET /v1/responses/{response_id} or delete it with DELETE /v1/responses/{response_id}; stored responses are isolated by account.
Current compatibility boundary: use stateless request history for multi-turn tool loops. previous_response_id, conversation, background, and stored streaming responses return a typed unsupported_parameter error until the persistent stream lifecycle is available.
from openai import OpenAI
client = OpenAI(
api_key=os.environ["STARVERI_API_KEY"],
base_url="https://api.starveri.net/v1",
)
response = client.responses.create(
model="gpt-5.6-luna",
input="Explain the result in three bullets.",
max_output_tokens=512,
)
print(response.output_text)
Use the OpenAI-compatible image endpoint for moderated image generation:
POST https://api.starveri.net/v1/images/generations
{
"model": "image-gen",
"prompt": "A quiet mountain lake at sunrise",
"n": 2,
"referenced_image_ids": ["file_..."]
}
Images use the GPT-5.6 Luna backend. Current verified support is limited to model, a text prompt, n from 1 through 10, and protected reference image file IDs. Billing is 0.5 credits per successful output image plus prompt and reference image inputs billed at GPT-5.6 Luna input pricing; input cost varies with the request, so the total is not fixed. Output is moderated and validated before it is released; a response can include per-image errors alongside successful results.
Upload references with POST /v1/files and pass the returned protected file IDs. Size, transparent-background, and style-transfer controls are not currently supported and should not be sent.
Set stream: true to receive Server-Sent Events. Chat Completions streams end with data: [DONE]; Responses streams end with a typed response.completed, response.incomplete, or error event. A client disconnect cancels upstream work and Starveri reconciles metered usage.
curl https://api.starveri.net/v1/chat/completions \\
-H "Authorization: Bearer $STARVERI_API_KEY" \\
-H "Content-Type: application/json" \\
-d '{"model":"gpt-5.6-luna","messages":[{"role":"user","content":"Stream this."}],"stream":true}'
When output is capped, the final choice uses finish_reason: "length" and Responses includes incomplete details for max_output_tokens.
Starveri reserves a maximum-output credit hold before work starts, then reconciles to actual model/tool usage. Unused reserved credits are released. Interruptions are billed only for usage already observed; an interruption before metered usage releases the hold. Account-wide limits apply across every key owned by the account, while admin overrides can raise or cap those limits.
usage: {
prompt_tokens,
completion_tokens,
total_tokens,
prompt_tokens_details: { cached_tokens },
completion_tokens_details: {
reasoning_tokens,
tool_tokens,
web_search_tokens
}
}
starveri_billing: {
exact: true,
settled: true,
currency: "CREDITS",
billed_credit_nanos,
billed_credits,
balance_credit_nanos,
pricing_profile,
breakdown
}
Tool charges are added to token charges. Web Search is per call; Coding Interpreter is based on RAM and disk minutes. Billing activity may include an interrupted 499 record with the observed usage.
Keep automation on a trusted server. Store STARVERI_API_KEY in the runtime secret manager and call the API over HTTPS. Use a bounded output limit, retries with backoff for transient failures, and an idempotency key in your own job record.
// Node.js scheduled job
const result = await fetch("https://api.starveri.net/v1/chat/completions", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.STARVERI_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
model: "gpt-5.6-luna",
messages: [{ role: "user", content: "Generate the daily report." }],
max_completion_tokens: 800
})
});
if (!result.ok) throw new Error(`Starveri failed: ${result.status}`);
For long-running streams, propagate cancellation from the client/job controller and persist the response x-request-id with your own job state. Every execution response includes x-request-id and a Server-Timing: starveri;dur=… edge-processing measurement; rate-limit responses retain Retry-After when applicable.
Errors use an OpenAI-compatible envelope. Handle the HTTP status and inspect the stable fields before retrying.
{
"error": {
"message": "Human-readable explanation",
"type": "invalid_request_error",
"param": "max_completion_tokens",
"code": "invalid_value"
}
}
Retry-After when present.File endpoints are OpenAI-compatible and require a key with upload capability. Validate ownership before attaching a file to a request. Never log raw file contents or data URLs.
POST https://api.starveri.net/v1/files
Content-Type: multipart/form-data
Authorization: Bearer $STARVERI_API_KEY
Image-capable models can receive images. Spark is text-only and uses the documented gpt-5.4-mini transcription path. Image generation references use protected file IDs; upload size and purpose-specific limits are enforced by the API, so check the response error object for the exact rejection.