Creekside Request a key

API reference

Current as of 2026-09-26

One OpenAI-compatible endpoint. Point an existing client at the base URL, send your key, and everything your SDK already does works: chat, completions, streaming, tool calling, structured output and usage accounting.

Base URL and authentication

https://api.creeksidecompute.ai/v1
Authorization: Bearer YOUR_KEY

Keys are issued by email ([email protected]) and billed monthly. One key per project. A key carries a rate limit (600 requests per minute by default; more on request) and a retention setting (off by default).

Endpoints

MethodPathWhat it does
GET/v1/modelsThe catalogue: model ids with prices, context length and the fields marketplaces read.
POST/v1/chat/completionsChat, streaming or not. Tool calling and response_format JSON schema supported.
POST/v1/completionsPlain completions, streaming or not.
POST/v1/billing{"requestIds": [...]} answers the cost of each request in nano-dollars, for marketplaces that reconcile.

Models

Model idContextMax outputInputOutputCached input
qwen/qwen3.8-27b131,07265,536$0.15 / M$1.80 / M$0.035 / M

Prices are per million tokens on the default, zero-retention tier. The retained tier is 25% lower; see the privacy policy for what it means. GET /v1/models is authoritative.

A request

curl https://api.creeksidecompute.ai/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen/qwen3.8-27b",
    "messages": [{"role": "user", "content": "Explain prefix caching in two sentences."}],
    "max_tokens": 256,
    "stream": true,
    "stream_options": {"include_usage": true}
  }'

Streaming uses server-sent events. With stream_options.include_usage the final chunk carries usage, including prompt_tokens_details.cached_tokens: the part of your prompt that was already in our cache and is billed at the cached price. Reuse a long system prompt or the earlier turns of a conversation and that number climbs.

Sampling and features

temperature, top_p, top_k, min_p, presence_penalty, frequency_penalty, repetition_penalty, stop, seed, logprobs and n behave as in the OpenAI API. Tool calling uses tools and tool_choice; structured output uses response_format with json_schema. Reasoning can be steered with chat_template_kwargs: {"enable_thinking": false} to skip the model's thinking phase.

Headers

HeaderDirectionEffect
x-creekside-retentionrequestnone on any request means it is never stored, whatever the key's tier. store opts a single request in under a zero-retention key. The header always wins.
Idempotency-KeyrequestRetry a dropped request with the same key within ten minutes and you get the same answer, not a second bill. A replay carries x-idempotent-replayed: true.
x-request-idbothSend one and we adopt it; otherwise we generate one. It is on every response and every support conversation starts with it.
Retry-AfterresponseOn 429 and 503: seconds to wait before retrying.

Limits

600 requests per minute per key by default. Prompts up to 131,072 tokens; outputs up to 65,536. Under load we answer early with a 429 and Retry-After rather than queueing you into a slow response, so retry with backoff; a request is never silently dropped. First-token time is what we optimise: on a 4K-token prompt expect about half a second from the United States.

Errors

Errors are OpenAI-shaped: {"error": {"message", "type": "gateway_error", "code"}}.

StatusCodeMeaning
401missing_api_key, invalid_api_keyNo bearer header, or a key we do not know.
400invalid_json, missing_modelThe body did not parse, or has no model.
400context_too_longThe prompt exceeds the model's window.
404model_not_foundNo such model id; check /v1/models.
409idempotency_in_progressA request with the same Idempotency-Key is still running.
429rate_limited, capacityOver your key's rate, or every worker busy after a short wait. Honour Retry-After.
503no_capacityNo healthy worker for the model right now.
502upstream_unavailableEvery attempt failed before the first byte. Safe to retry.

Data

By default nothing you send or receive is written to disk. Every request leaves an accounting record (ids, timestamps, token counts, cost) and no content. The privacy policy has the whole of it; the content policy says what the API may be used for.

Clients

The home page has copy-paste setup for the OpenAI SDKs, Codex CLI, OpenCode, Cline, Kilo Code, Continue, Hermes Agent, OpenClaw and Claude Code. Anything that takes an OpenAI-compatible base URL works.