PL Log inCreate account
Launching in October 2026. Accounts, model catalog, calculator and docs are live. Studio is available in preview; generation is awaiting activation.

Quickstart

All documentation pages

Jantaris gives you one API key and one prepaid balance for chat, image, video and audio models. This page takes you from zero to your first chat reply and your first generated image.

Base URL for every request:

text
https://jantaris.com/v1

1. Create an account and a key

  1. Sign up and top up your balance (minimum $10, see Billing).
  2. Open the dashboard, go to API keys and create a key.
  3. Copy the key right away. It looks like sk-jt- followed by 32 characters and is shown only once.

Store it in an environment variable so it never ends up in your code:

bash
export JANTARIS_API_KEY="sk-jt-..."
powershell
$env:JANTARIS_API_KEY = "sk-jt-..."

More on keys, headers and spend limits: Authentication.

2. Send a chat request

/v1/chat/completions speaks the OpenAI format, so the official OpenAI SDKs work after changing the base URL.

bash
curl https://jantaris.com/v1/chat/completions \
  -H "Authorization: Bearer $JANTARIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [{"role": "user", "content": "Write a haiku about kaleidoscopes."}]
  }'
python
# pip install openai
import os
from openai import OpenAI

client = OpenAI(base_url="https://jantaris.com/v1", api_key=os.environ["JANTARIS_API_KEY"])

resp = client.chat.completions.create(
    model="claude-sonnet-5",
    messages=[{"role": "user", "content": "Write a haiku about kaleidoscopes."}],
)
print(resp.choices[0].message.content)
print(resp.usage)
javascript
// npm install openai
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://jantaris.com/v1",
  apiKey: process.env.JANTARIS_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "claude-sonnet-5",
  messages: [{ role: "user", content: "Write a haiku about kaleidoscopes." }],
});
console.log(resp.choices[0].message.content);

Switch models by changing only model, for example gpt-6-sol, gemini-3.8-flash or deepseek-v4.1-flash. Full reference: Chat completions.

3. Generate an image

Media models (image, video, audio) run as tasks through POST /v1/generate. For images, add ?wait=60 and the server holds the connection until the result is ready.

bash
curl "https://jantaris.com/v1/generate?wait=60" \
  -H "Authorization: Bearer $JANTARIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.5",
    "input": {"prompt": "A glass kaleidoscope on a wooden desk, morning light", "aspect_ratio": "1024x1024"}
  }'
python
import os, requests

r = requests.post(
    "https://jantaris.com/v1/generate",
    params={"wait": 60},
    headers={"Authorization": f"Bearer {os.environ['JANTARIS_API_KEY']}"},
    json={
        "model": "gpt-image-2.5",
        "input": {"prompt": "A glass kaleidoscope on a wooden desk, morning light", "aspect_ratio": "1024x1024"},
    },
    timeout=130,
)
task = r.json()
print(r.status_code, task["status"])
if task["status"] == "succeeded":
    print(task["output"][0]["url"], task["cost"])
javascript
const r = await fetch("https://jantaris.com/v1/generate?wait=60", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.JANTARIS_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "gpt-image-2.5",
    input: { prompt: "A glass kaleidoscope on a wooden desk, morning light", aspect_ratio: "1024x1024" },
  }),
});
const task = await r.json();
console.log(r.status, task.status, task.output?.[0]?.url);

If the task finished within 60 seconds you get 200 with status: "succeeded" and an output array. If not, you get 202 with the current state and you continue with polling or a webhook. Output URLs are temporary, so download the files you want to keep.

Current price of this model: $0.0432 per image. A failed generation costs nothing.

4. Check your balance

bash
curl https://jantaris.com/v1/balance -H "Authorization: Bearer $JANTARIS_API_KEY"
json
{ "balance": "12.40", "available": "11.63", "currency": "USD", "low_balance": false }

available is your balance minus funds held for tasks that are still running.

Next steps

GoalPage
Streaming and tool callsChat completions
Anthropic SDK or Claude CodeAnthropic Messages, Claude Code
Video and audioGenerate
Model ids, prices and parametersModels
Handling failuresErrors
n8n, Make, ZapierNo-code