Ads for Credits
Models Setup Docs Chat Console Sign in

API reference

An OpenAI-compatible endpoint. Point your existing client at this base URL, use your key, and everything else stays the same.

Quick start

Sign in, get your key from the console, then send a request. Nothing to install, no card.

First request
Loading

Your key lives only in this browser. Clear site data and it is gone for good, along with the balance on it.

Authentication

Send the key as a bearer token on every request. Same header your current client already sends.

Loading

Your credits live on your account, so a lost key is recoverable — sign in again and the console issues a new one. Still, treat the key itself as a secret: do not commit it, do not share it. A key seen in use from several places at once gets disabled.

Chat completions

The one endpoint that does the work. Request and response bodies follow the OpenAI shape.

Loading

Request body

FIELD WHAT IT DOES
modelRequired. One of the models listed below.
messagesRequired. The usual array of role and content objects.
streamOptional. Set true to receive the answer as it is written.
max_tokensLoading
temperatureOptional. Passed through to the model untouched.

Response

Loading

The number under usage is what gets deducted from your balance. Not an estimate: it is the count the model itself reported.

Streaming

Set stream to true and you get server-sent events, same format as the OpenAI API. Every official client handles this out of the box.

Loading

Billing works the same way on a stream: the final chunk carries the usage count and that is what gets deducted.

Models

These are the models you can call right now. The cost column is measured, not promised: it is roughly what one short reply consumed in testing.

MODEL ROUGH COST PER REPLY
Loading

To list them from code, call the models endpoint with your key:

Loading

Credits and limits

Credits are counted in tokens. Every account starts with a free daily allowance, and watching an ad tops it up.

LIMIT VALUE
Loading

Check your balance any time from the console, or from code:

Loading

Errors

Every failure comes back as JSON with a stable code field. Match on the code, not on the message text, which is written for humans and may change.

Loading
CODE WHAT IT MEANS
bad_key401. The key is wrong, or that account no longer exists.
not_enough_credit402. Balance too low for this request. The body tells you the balance and what the request needs.
model_not_allowed400. That model is not on the list. The body carries the allowed names.
ip_limit429. Too many accounts opened from this network today.
daily_ad_limit429. You have watched the maximum number of ads for today.
too_fast429. Too many requests from this key. The body carries retryAfter in seconds; the Retry-After header carries the same value.
site_busy429. The whole service has reached its upstream quota for now. Retry after the number of seconds in retryAfter.
upstream_failed502. The model provider did not answer. Nothing is deducted when this happens.
upstream_unconfigured503. The service is not wired to a provider right now.

FAQ

Can I use this in production?

No. This is a free beta with no uptime promise. Use it to try things, prototype, or run something that can fail without consequences.

What happens if I lose the key?

Nothing is lost. Sign in again and the console issues a new key on the same account, with the same balance. Revoke the old key from the console if you think someone else has it.

Can I open several accounts?

A few, from one network, per day. Past that the request is refused. Scripting around it is what gets the whole service shut down, so it is enforced.

Do you keep my prompts?

No. Requests are forwarded to the model provider and their reply comes straight back to you. Only the token count is recorded, because that is what gets deducted. The provider has its own retention policy.

Why is my answer empty?

Loading

Credits are non-transferable · shared keys get banned Privacy Terms