What it is
The demo is a free product, otium-demo. Name it as the model in a batch and the
batch runs on a GPU that is always on, so it starts straight away instead of waiting for a
cheaper machine. Your real work waits for the cheapest acceptable GPU; the demo trades that
saving for speed, which is why it is small and capped.
It answers with Gemma 4 12B, Google’s quantization-aware 4-bit build of the model family behind Small. Expect answers close to Small’s, not identical: it is a different file format on a different runtime. Use it to test your integration, not to judge quality at scale.
| The demo | |
|---|---|
| Price | Free, from your first sign-in. No top-up needed. |
| Size | Up to 100 lines a batch, or 100 items in a workflow run. |
| How often | 10 submissions per account in any 24 hours, batches and workflow runs together. |
| Deadline | One hour: completion_window "1h". |
Run it
You need an account and an API key, nothing else. Write a JSONL file with up to 100 lines,
each naming otium-demo:
{"custom_id": "item-1", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "otium-demo", "messages": [{"role": "user", "content": "Describe a 32 oz insulated steel water bottle in two sentences."}], "max_tokens": 200}}Then upload it and create the batch with a one-hour window:
from openai import OpenAI
client = OpenAI(
base_url="https://api.getotium.ai/v1",
api_key=OTIUM_API_KEY,
)
# Every line of the file names "otium-demo" as its model.
f = client.files.create(file=open("demo.jsonl", "rb"), purpose="batch")
batch = client.batches.create(
input_file_id=f.id,
endpoint="/v1/chat/completions",
completion_window="1h",
)
# Poll until it reports completed, then download the output file.
batch = client.batches.retrieve(batch.id)
print(batch.status)A workflow works the same way: when every model step names otium-demo, a run of
up to 100 items is free, tool steps included. A workflow that mixes in a paid size follows the
normal rules and needs funds.
What to expect
In our measurement, 100 short answers (about 200 tokens each) took around four minutes. One
GPU serves every demo, so at a busy moment yours may queue behind others’. If it cannot finish
within the hour, it expires and costs nothing. When the queue is full, a new demo batch is
turned away with HTTP 429 and the code product_busy: try again in a few minutes.
A busy refusal does not count against your 10.
The GPU is one we own and run, not spare cloud capacity. Your data gets the same protections as all your work: encrypted with your account’s own key, never used for training, and deleted 30 days after the batch finishes. See privacy.
An eleventh submission inside 24 hours is refused when you create the batch, with the time the next one frees:
HTTP/1.1 429 Too Many Requests
{
"error": {
"message": "otium-demo takes at most 10 submissions a day per account, and this account has made 10 in the last 24 hours. The next one frees at 2026-10-28 14:00 UTC.",
"type": "invalid_request_error",
"param": null,
"code": null
}
}A batch over 100 lines is accepted and then fails validation, with the reason in its error
file (too_many_requests). It still counts as one of the 10, since it was
submitted.
After the demo
Your real work runs on the sizes, Small to Large, with a deadline from an hour to a week; the wider the deadline, the cheaper it runs. Add funds in the portal, change the model and the completion window, and send the same file. The quickstart covers the rest, and usage limits what an account can spend.