maksa

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.py
submit.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 completed

Models#

model idnamesize
llama-3.3-70bLlama 3.3 70B70B dense
llama-4-maverickLlama 4 Maverick400B MoE · 17B active
qwen3-235bQwen3 235B-A22B235B MoE · 22B active
qwen3-32bQwen3 32B32B dense
deepseek-v3.1DeepSeek V3.1671B MoE · 37B active
gpt-oss-120bgpt-oss-120b117B MoE · 5B active
gemma-3-27bGemma 3 27B27B dense
mistral-small-3.2Mistral Small 3.224B dense
own-weightsYour own weightssized 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#

deadlinewhat we dotypical price vs on-demand
1hRuns now on a pre-warmed pool of 256 GPUs in the cheapest region with capacity.−30%
6hWaits up to a few hours for a cheaper window; splits across up to three regions.−40%
24hRuns in the cheapest night on earth in the next day.−42%
72hFills gaps between other jobs. Lowest price we offer.−47%

Live prices for each deadline are on /prices; price a specific job with POST /quotes.