Open models, hosted in Belgium, behind an OpenAI-compatible API
Chat, embeddings, rerank and speech-to-text with open-weights models on dedicated hardware in Belgium. Point your OpenAI SDK at a new base URL, keep your code, and pay per model from prepaid credit.
Models you can inspect, in a jurisdiction you know
-
Open-weights models only
Every model is published with open weights under Apache-2.0 or MIT. You can read the licence, and run the same model yourself if you ever want to.
-
EU-native, EU-sovereign
The models run on dedicated hardware in Belgium, operated by a Belgian/EU provider. Your requests are handled in Belgium.
-
OpenAI-compatible
Change the base URL and the key, keep your SDK. Works with the OpenAI libraries and the tools built on them.
-
We don't store your prompts
Faastic does not store your prompts or the answers. We keep usage metadata only: the time, the model and the token counts.
-
Keys with limits
Give each key a list of models it may use, a rate limit and a monthly spending cap.
-
Usage you can follow
The dashboard shows usage and cost per key and per model.
Pay per model, per 1M tokens
Live from our price list. Text models are priced per 1M tokens for input and output, speech-to-text per minute of audio.
Chat and reasoning
| Model | Context | Licence | Input / 1M | Cached input / 1M | Output / 1M |
|---|---|---|---|---|---|
DeepSeek V4.1 Flash deepseek-v4.1-flash | 1M | MIT | €0.1521 | €0.1521 | €0.611 |
Gemma 4 12B gemma-4-12b | 128K | Apache-2.0 | €0.078 | €0.078 | €0.2236 |
Gemma 4 31B gemma-4-31b | 256K | Apache-2.0 | €0.143 | €0.143 | €0.4069 |
GLM 5.3 Flash glm-5.3-flash | 1M | MIT | €0.1521 | €0.1521 | €0.5096 |
Mistral Small 4 119B mistral-small-4-119b | 256K | Apache-2.0 | €0.1521 | €0.1521 | €0.611 |
NuExtract 3 nuextract-3 | 32K | Apache-2.0 | €0.195 | €0.195 | €0.52 |
PaddleOCR-VL 1.6 paddleocr-vl-1.6 | 16K | Apache-2.0 | €0.4069 | €0.4069 | €1.6289 |
Qwen 3.8 27B qwen3.8-27b | 256K | Apache-2.0 | €0.3159 | €0.3159 | €2.5961 |
Qwen3Guard 4B qwen3guard-gen-4b | 16K | Apache-2.0 | €0.1833 | €0.1833 | €0.1833 |
Embeddings and rerank
| Model | Context | Licence | Per 1M tokens |
|---|---|---|---|
BGE-M3 bge-m3 | 8K | MIT | €0.0104 |
Qwen3 Embedding 8B qwen3-embedding-8b | 8K | Apache-2.0 | €0.0104 |
Qwen3 Reranker 8B qwen3-reranker-8b | 8K | Apache-2.0 | €0.2041 |
Speech-to-text
| Model | Licence | Per minute |
|---|---|---|
Qwen3 ASR 1.7B qwen3-asr-1.7b | Apache-2.0 | €0.0005 |
Whisper Large v3 whisper-large-v3 | Apache-2.0 | €0.0019 |
Whisper Large v3 Turbo whisper-large-v3-turbo | MIT | €0.0007 |
All prices excl. 21% VAT. Prepaid credit, no subscription. The model list can change; the API's /v1/models always has the current one.
Cached input = prompt tokens served from the prompt cache (for example a repeated system prompt). Where no lower cached price is listed, they are billed at the input price.
Change the base URL, keep your code
Create a key in your dashboard, add credit, and send the request you already send today to a different base URL.
- Base URL
https://ai.faastic.com/v1- Endpoints
-
/chat/completions/embeddings/rerank/audio/transcriptions/models
import os
from openai import OpenAI
client = OpenAI(
base_url="https://ai.faastic.com/v1",
api_key=os.environ["FAASTIC_AI_KEY"],
)
reply = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Hello!"}],
)
print(reply.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://ai.faastic.com/v1",
apiKey: process.env.FAASTIC_AI_KEY,
});
const reply = await client.chat.completions.create({
model: "deepseek-v4.1-flash",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(reply.choices[0].message.content);curl https://ai.faastic.com/v1/chat/completions \
-H "Authorization: Bearer $FAASTIC_AI_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek-v4.1-flash","messages":[{"role":"user","content":"Hello!"}]}' Reads your key from FAASTIC_AI_KEY (create one in your dashboard). Streaming, embeddings, rerank and transcription use the same key and base URL.
How billing works
Pay as you go from prepaid credit. No subscription, no minimum per month.
- 01
Add credit
Top up your credit in the dashboard. Turn on automatic top-up with a saved card and it is refilled before it runs out.
- 02
Use any model
Each request is charged at that model's price per 1M tokens, or per minute for audio. Prices are excl. VAT.
- 03
Set the limits
Cap what each key may spend in a month, which models it may call and how fast. Follow the costs per key and model.
When your credit runs out
- Requests are refused with HTTP 402 (insufficient_credit) until you top up.
- Your keys and settings stay as they are, and requests work again within seconds of a top-up.
- Optional automatic top-up with a saved card refills your credit before it runs out.
- We email you when your credit runs low, and when it is used up.
What we keep
- Usage metadata per request: the time, the model and the token counts.
- Not your prompts, and not the answers.
The rest of your stack
- Live Cloud servers KVM servers with IPv4, an IPv6 /64, firewalls and backups.
- Live Load balancers Managed HAProxy with health checks and free TLS certificates.
- Live Private networks Your servers, load balancer and database on a network of their own.
- Live Managed databases PostgreSQL, MySQL or Valkey on its own VM, closed by default.
- Temporarily unavailable Object storage S3-compatible buckets, a key per app, storage that grows.
Frequently asked questions
Is the Faastic AI API compatible with OpenAI?
Yes. Set the base URL of the OpenAI SDK to the Faastic gateway and use a Faastic key. Chat completions (with streaming), embeddings, rerank and audio transcription work the way your code expects.
Which models can I use?
Open-weights models only, under Apache-2.0 or MIT, for example Gemma 4, Mistral Small 4, Qwen 3.8, DeepSeek V4, GLM 5.3 Flash, Qwen3 Embedding, BGE-M3, Qwen3 Reranker and Whisper Large v3. The live list is on this page and at /v1/models.
Where do the models run?
On dedicated hardware in Belgium, operated by a Belgian/EU provider. Your requests are handled in Belgium.
Do you store my prompts or the answers?
No. Faastic keeps usage metadata only: the time of the request, the model and the token counts. That is what your bill and your usage dashboard are built from.
How am I billed?
From prepaid credit. You top up in the dashboard (or let auto top-up do it), and each request is charged at the model's price per 1M tokens, or per minute for audio. There is no subscription. Prices are excl. VAT.
Can I limit what a key can do?
Yes. Each key has its own list of allowed models, a rate limit and a monthly spending cap. Usage and cost are shown per key and per model.
What happens when my credit runs out?
Requests are refused with HTTP 402 (insufficient_credit) until you top up. Your keys and settings stay as they are, and requests work again within seconds of a top-up. Turn on automatic top-up with a saved card to refill before it runs out. We email you when your credit runs low and when it is used up.
Start with a key and some credit
Create a key in the dashboard, add credit and send your first request. It's the same dashboard as your servers and domains.