Starveri S logoStarveri API docs
Billing ↗API endpoint ↗
Developer reference

Build with fast, metered model access.

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 ↗

API base URL https://api.starveri.net · HTTPS only
01 · Start here

Quickstart

Send 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
  }'
Keep keys server-side. Never expose a Starveri key in browser JavaScript, mobile binaries, public repositories, or logs.
02 · Access

Authentication

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.

03 · Catalog

Models & pricing

Prices are per 1 million tokens unless stated otherwise. Values are the current Starveri reference rates.

Short vs Long context

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.

ModelMaximum contextShort contextLong context
gpt-5.6-sol1,050,000 tokens≤315,000 input tokens · 1×>315,000 input tokens · 2×
gpt-6-astra1,050,000 tokens≤315,000 input tokens · 1×>315,000 input tokens · 2×
gpt-5.6-terra1,050,000 tokens≤315,000 input tokens · 1×>315,000 input tokens · 2×
gpt-5.6-luna1,050,000 tokens≤315,000 input tokens · 1×>315,000 input tokens · 2×
gpt-daybreak-blue1,050,000 tokens≤315,000 input tokens · 1×>315,000 input tokens · 2×
gpt-5.51,050,000 tokens≤315,000 input tokens · 1×>315,000 input tokens · 2×
gpt-5.41,050,000 tokens≤315,000 input tokens · 1×>315,000 input tokens · 2×
gpt-5.4-mini400,000 tokens≤120,000 input tokens · 1×>120,000 input tokens · 2×
gpt-5.3-codex-spark128,000 tokens≤38,400 input tokens · 1×>38,400 input tokens · 2×

Gemma 4 · Dedicated serving runtime

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.

ModelMaximum contextShort inputShort outputLong-context thresholdAutomatic moderation
gemma-4124,160515>37,248 input tokens · 2×Request and response omni moderation
gemma-4-uncensored32,0001030>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.

Standard

ModelInputCached inputCache writesOutput
gpt-5.6-sol50562.5150
gpt-6-astra12512.5156.25375
gpt-5.6-terra252.531.2575
gpt-5.6-luna10112.530
gpt-daybreak-blue15015187.5450
gpt-5.550562.5150
gpt-5.416.671.6720.8450
gpt-5.4-mini5.560.566.9516.67
gpt-5.3-codex-spark2022560

Pro

Uses a Pro model or equivalent.

ModelInputCached inputCache writesOutput
gpt-5.6-sol15015187.5450
gpt-6-astra37537.5468.751125
gpt-5.6-terra757.593.75225
gpt-5.6-luna30337.590
gpt-5.515015187.5450
gpt-5.450.015.0162.52150
gpt-5.4-mini16.681.6820.8550.01
gpt-5.3-codex-spark60675180

GPT Daybreak Blue

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.

ServiceInputCached inputCache writesOutput
Standard15015187.5450

Flex

ModelInputOutput
gpt-5.6-sol75225
gpt-5.575225

Flex · Pro reasoning

ModelInputOutput
gpt-5.6-sol225675
gpt-5.5225675

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.

  • Response times will be longer.
  • Resources may at times be unavailable.
  • Personality may be unpredictable.
  • Context is not preserved and conversations cannot be continued.
Pricing note: all listed prices are Starveri credits per 1 million tokens unless a tool price says otherwise. Flex cached input and cache-write rates are not published.
04 · Access levels

Account tiers

Credits count toward tier usage when they are directly billed to a model.

TierUnlock requirementDescription
Free0 creditsLimited free models with low rate limits.
Tier 1≥100 lifetime funded creditsUnlocks immediately after verified Stripe or Robux restocks; admin grants do not count. All models with a baseline rate limit.
Tier 2500 billable credits in the past 30 UTC daysUnlocks immediately; all models with a higher rate limit.
Tier 31000 billable credits in the past 30 UTC daysUnlocks immediately; higher rate limit and complimentary tokens.
Tier 42500 billable credits in the past 30 UTC daysUnlocks immediately; high rate limit and complimentary tokens.
Tier 55000 billable credits in the past 30 UTC daysUnlocks immediately; highest rate limit and complimentary tokens.
Funding and progression: Stripe restocks have a $1 minimum, and $1 buys 100 credits. Robux restocks grant 1 credit per Robux before the marketplace fee. Tier 1 uses lifetime funded credits from verified restocks; Tiers 2–5 use billable credits actually spent during the latest 30 UTC dates. The window advances once per UTC day, so there is no calendar-month reset or artificial decay; a day's spend leaves the total only when it falls outside the 30-day window. Unlocks are immediate. Admin grants never satisfy funded-credit or billable-spend thresholds.
05 · Guardrails

Rate limits

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.

TierRequest limitToken limitNotes
Free1/min · 10/day · 50/month1,000/min · 10,000/day · 50,000/monthOnly gpt-5.4-mini.
Tier 13/min · 150/hour · 1 concurrent10,000/min · 13,250,000/dayBaseline.
Tiers 2 & 39/min · 450/hour · 3 concurrent30,000/min · 40,000,000/dayAbout 3× baseline.
Tier 420/min · 1,000/hour · 5 concurrent50,000/min · 90,000,000/dayHigh usage.
Tier 560/min · 3,000/hour · unlimited tier-level concurrency100,000/min · 200,000,000/dayAdmin override may cap concurrency; about 2× high usage.
06 · Included usage

Complimentary tokens

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.

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.

Frontier models

100k · 200k · 400k

Tier 3 · Tier 4 · Tier 5 per day across sol, terra, 5.5, and Spark.

07 · Capabilities

Tools, flags & model behavior

Web Search

0.1 credits per call, in addition to model token pricing. It is counted every time a model searches the web.

Coding Interpreter

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.

Agent Mode

Standard only; incompatible with Pro. Removes some model configurations and enables additional customization.

{ "agent_mode": true }

Auto Routing

Standard only. When a model rate limit is reached, Starveri can attempt another model.

{ "auto_route": "gpt-5.4-mini" }

Serving availability

Standard requests use automatic serving failover when an origin is unavailable. Flex returns 503 Flex is temporarily unavailable when its service is unavailable.

Spark

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

Pro pricing uses a Pro model or equivalent on supported Standard-service models. Agent Mode is incompatible with Pro.

08 · API

Chat Completions

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
}
09 · API

Responses API

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)
10 · Images

Image Generation

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.

10 · Live output

Streaming

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.

11 · Metering

Usage & billing

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 fields

usage: {
  prompt_tokens,
  completion_tokens,
  total_tokens,
  prompt_tokens_details: { cached_tokens },
  completion_tokens_details: {
    reasoning_tokens,
    tool_tokens,
    web_search_tokens
  }
}

Starveri billing receipt

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.

12 · Production patterns

Automation & server examples

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.

13 · Failure handling

Errors

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"
  }
}
  • 401 — missing, invalid, revoked, or malformed credentials.
  • 402 — insufficient prepaid credits.
  • 403 — requested capability is disabled for the key/tier.
  • 409 — context or request conflict.
  • 413 — upload too large.
  • 429 — rate limit; honor Retry-After when present.
  • 5xx — upstream or service failure; retry only when the response is safe to replay.
14 · Inputs

Files & uploads

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.