docs · quickstart
Quickstart
Maksa speaks the OpenAI Files and Batches APIs. Keep your client, change the base URL, add a deadline.
Three commands#
shell
pip install openai
export OPENAI_BASE_URL="https://api.maksa.com/v1" OPENAI_API_KEY="mk_live_…"
python submit.pysubmit.py
from openai import OpenAI
client = OpenAI() # reads OPENAI_BASE_URL and OPENAI_API_KEY
f = client.files.create(file=open("requests.jsonl", "rb"), purpose="batch")
batch = client.batches.create(
input_file_id=f.id,
endpoint="/v1/chat/completions",
completion_window="24h",
extra_body={"deadline": "24h"}, # 1h, 6h, 24h or 72h
)
print(batch.id, batch.status)deadline is the only new field. We pick the cheapest unsold GPUs that still finish before it, run there, and write the outputs and a receipt to your bucket. If the deadline can't be met at any price, the batch is rejected at submit time with a counter-offer, never accepted and missed.
Your first 50,000,000 tokens are free. Keys come from the pilot; the dashboard opens to pilot customers first.
Input format#
One request per line, exactly as OpenAI batch files:
requests.jsonl
{"custom_id": "doc-0001", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "llama-3.3-70b", "messages": [{"role": "user", "content": "Summarise: …"}], "max_tokens": 400}}
{"custom_id": "doc-0002", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "llama-3.3-70b", "messages": [{"role": "user", "content": "Summarise: …"}], "max_tokens": 400}}Check status#
python
b = client.batches.retrieve(batch.id)
print(b.status) # queued → in_progress → delivering → completed
print(b.model_extra["placement"]) # [{"region_id": "is-cap-kef", "gpu": "B200", "gpus": 12}]
print(b.model_extra["receipt_id"]) # mk-… once completedModels#
| model id | name | size |
|---|---|---|
| llama-3.3-70b | Llama 3.3 70B | 70B dense |
| llama-4-maverick | Llama 4 Maverick | 400B MoE · 17B active |
| qwen3-235b | Qwen3 235B-A22B | 235B MoE · 22B active |
| qwen3-32b | Qwen3 32B | 32B dense |
| deepseek-v3.1 | DeepSeek V3.1 | 671B MoE · 37B active |
| gpt-oss-120b | gpt-oss-120b | 117B MoE · 5B active |
| gemma-3-27b | Gemma 3 27B | 27B dense |
| mistral-small-3.2 | Mistral Small 3.2 | 24B dense |
| own-weights | Your own weights | sized as 70B dense |
Bring your own weights by uploading a Safetensors checkpoint to your bucket and passing model="s3://…". We size and price it as the nearest architecture.
Deadlines#
| deadline | what we do | typical price vs on-demand |
|---|---|---|
| 1h | Runs now on a pre-warmed pool of 256 GPUs in the cheapest region with capacity. | −30% |
| 6h | Waits up to a few hours for a cheaper window; splits across up to three regions. | −40% |
| 24h | Runs in the cheapest night on earth in the next day. | −42% |
| 72h | Fills gaps between other jobs. Lowest price we offer. | −47% |
Live prices for each deadline are on /prices; price a specific job with POST /quotes.