Open-model inference on dedicated hardware in the European Economic Area. The API is OpenAI-compatible: point any OpenAI SDK at our base URL and it works.
Base URL
https://api.heabsy.com/v1
Authentication
Every request carries your API key in the Authorization
header. Keys are issued and managed in the
Heabsy Platform console.
Authorization: Bearer sk-your-key
Quick start
curl https://api.heabsy.com/v1/chat/completions \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-coder",
"messages": [{"role": "user", "content": "Hello!"}]
}'
With the official OpenAI SDK — only the base URL changes:
# Python
from openai import OpenAI
client = OpenAI(
base_url="https://api.heabsy.com/v1",
api_key="sk-your-key",
)
reply = client.chat.completions.create(
model="qwen3-coder",
messages=[{"role": "user", "content": "Hello!"}],
)
// JavaScript / TypeScript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.heabsy.com/v1",
apiKey: "sk-your-key",
});
const reply = await client.chat.completions.create({
model: "qwen3-coder",
messages: [{ role: "user", content: "Hello!" }],
});
Endpoints
Lists the models currently available to your key. Model names here are
the values accepted by the model field.
Chat completion, request and response bodies follow the OpenAI schema — including tool calls and JSON mode where the underlying model supports them.
Streaming
Set "stream": true to receive server-sent events, token by
token, in the OpenAI streaming format. All SDK streaming helpers work
unchanged.
Errors
Errors use the OpenAI error format: an error object with
message, type and code.
| Status | Meaning |
|---|---|
| 401 | Missing or invalid API key. |
| 404 | Unknown model name — check GET /v1/models. |
| 429 | Budget or rate limit of the key exceeded. |
| 500 / 503 | Temporary upstream failure — safe to retry with backoff. |