Quickstart
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:
https://jantaris.com/v11. Create an account and a key
- Sign up and top up your balance (minimum $10, see Billing).
- Open the dashboard, go to API keys and create a key.
- 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:
export JANTARIS_API_KEY="sk-jt-..."$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.
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."}]
}'# 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)// 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.
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"}
}'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"])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
curl https://jantaris.com/v1/balance -H "Authorization: Bearer $JANTARIS_API_KEY"{ "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
| Goal | Page |
|---|---|
| Streaming and tool calls | Chat completions |
| Anthropic SDK or Claude Code | Anthropic Messages, Claude Code |
| Video and audio | Generate |
| Model ids, prices and parameters | Models |
| Handling failures | Errors |
| n8n, Make, Zapier | No-code |









