For AI agents
The whole API, on one page, in Markdown.
Coding agents work best from one dense, current page instead of a site they have to crawl. This is that page: the base URL, the key, every model id with its price, every endpoint with its request shape, the limits and the errors. It is generated from the same live sources the console reads, so it is never a stale copy.
AxForge — the API, in full
AxForge is European AI infrastructure: an OpenAI-compatible inference API and whole GPUs by the hour, run in the EU. This page is generated from the live catalogue, price sheet and fleet — it is current, not a snapshot.
The basics
| Base URL | https://api.axforge.ai/v1 |
| Auth | Authorization: Bearer $AXFORGE_API_KEY |
| Compatibility | OpenAI API shape — the official SDKs work unchanged, only base_url, key and model id differ |
| Region | eu-se-1 Stockholm (serverless), eu-es-1 Málaga (dedicated GPUs) |
| Retention | Prompts and completions are processed in memory and never stored. Only counts, timestamps and status are kept, for billing |
| Keys | Created in the console: https://console.axforge.ai/keys |
curl -sS https://api.axforge.ai/v1/chat/completions \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gemma-4-26b-a4b-nvfp4","messages":[{"role":"user","content":"Hello"}]}'Models
Use the id in the model field. Available is hot now; On request boots on demand and the first call waits.
| Model | id | Type | Size · context | Price | Status |
|---|---|---|---|---|---|
| Gemma-4 26B | gemma-4-26b-a4b-nvfp4 | Chat · text | 262k ctx | see /docs/models/ | On request |
| Mistral Small 3.2 | mistral-small-3.2-24b-nvfp4 | Chat · text | 32k ctx | see /docs/models/ | On request |
| Qwen3 30B A3B | qwen3-30b-a3b-nvfp4 | Chat · text | 65k ctx | see /docs/models/ | On request |
| Qwen3.6 35B A3B | qwen3.6-35b-a3b-nvfp4 | Chat · text | 65k ctx | see /docs/models/ | On request |
| Qwen3.8 27B | qwen3.8-27b-nvfp4 | Chat · text | — | €0.29 in · €1.77 out / 1M | Available |
| Qwen3 Embedding | qwen3-embed | Embeddings | 32k ctx | €0.02 in · €0.00 out / 1M | Available |
| ERNIE Image Turbo | ernie-image-turbo | Image generation | — | see /docs/models/ | Available |
| FLUX.2 Klein 4B | qwen-image-edit | Image generation | — | see /docs/models/ | Available |
| Qwen-Image | qwen-image-dedicated | Image generation | — | see /docs/models/ | On request |
| SDXL | sdxl | Image generation | — | see /docs/models/ | On request |
| MiniMax Music 3 | planned-music-tbd | Music | — | see /docs/models/ | Available |
| Piper (Text-to-Speech) | piper-lessac | Speech | — | see /docs/models/ | Available |
| Whisper (Speech-to-Text) | whisper-base | Speech | — | see /docs/models/ | Available |
| LTX-Video | ltx-video | Video generation | — | see /docs/models/ | Coming |
| MiniMax H3 | minimax-h3 | Video generation | — | see /docs/models/ | Coming |
| Wan 2.2 5B | wan2.2-ti2v-5b | Video generation | — | see /docs/models/ | Coming |
Endpoints
/v1/chat/completions
Chat and tool use. stream: true gives server-sent events.
{"model":"<id>","messages":[{"role":"user","content":"…"}],"stream":false}/v1/embeddings
Vectors for search and RAG.
{"model":"qwen3-embed","input":"text to embed"}/v1/images/generations
Image generation.
{"model":"<id>","prompt":"a red bicycle","size":"1024x1024"}/v1/images/edits
Image editing from an input image.
multipart: model, image, prompt/v1/audio/transcriptions
Speech to text.
multipart: model, file/v1/audio/speech
Text to speech.
{"model":"piper-lessac","input":"hello"}/v1/audio/music
Music generation.
{"model":"minimax-music3","prompt":"a calm piano piece"}/v1/models
What is served right now.
GETErrors
Every error is JSON: {"error":{"message":…,"type":…,"code":…}}.
| Status | Means | Do |
|---|---|---|
| 400 | The request body is wrong | Read error.message — it names the field |
| 401 | No key, or a key that is gone | Check the Authorization header |
| 402 | Out of allowance or credit | Top up in the console; the message says which |
| 403 | The key may not use that model or endpoint | Check the key's scope in the console |
| 404 | Unknown model id or path | Call /v1/models for the live list |
| 413 | The body is too large | Split the input; embeddings take batches |
| 429 | Rate limited | Back off and retry with jitter; the headers say when |
| 502 | The model could not be reached | Retry once; if it persists the status page and the forum will say |
| 504 | The model took too long | Raise your client timeout for image and video models — minutes, not seconds |
Dedicated GPUs
Whole machines by the hour with SSH, one tenant each. Prices no VAT configured.
| GPU | Memory | Status | Free now | From |
|---|---|---|---|---|
| NVIDIA DGX Spark (GB10) | 128 GB unified memory | Available | 0/1 | from €0.55/h |
| NVIDIA RTX 6000 Pro | 96 GB GDDR7 | Request capacity | — | from €1.06/h |
| NVIDIA RTX 5090 | 32 GB GDDR7 each | Request capacity | — | from €0.59/h |
| NVIDIA RTX 3090 | 24 GB GDDR6X | Request capacity | — | from €0.42/h |
| NVIDIA RTX 3060 | 12 GB each · 24 GB the pair | Available | 2/1 | from €0.16/h |
| NVIDIA H100 | 80 GB HBM3 | Request capacity | — | quoted |
| NVIDIA H200 | 141 GB HBM3e | Request capacity | — | quoted |
| NVIDIA B200 | 192 GB HBM3e | Request capacity | — | quoted |
Rent one: https://console.axforge.ai/gpus
Where to read more
-
Overview — What the platform is, and the shape of the API.
-
Quickstart — Key, first call, the real response — in one page.
-
Glossary — The words we use, defined once.
-
Chatbox starter — A streaming chatbox in plain JavaScript — paste your key and it runs.
-
Test a call — Run a real call and see how it lands, and why if it does not.
-
Models & pricing — Every served model, its id and what it costs.
-
Chat completions — /v1/chat/completions — streaming, tools, JSON mode.
-
Embeddings — /v1/embeddings — 1024-dim vectors, batching, limits.
-
Images — /v1/images — generate and edit; sizes and formats.
-
Speech & music — Transcription, text-to-speech and music.
-
Errors & limits — Every status code, what causes it, what to do.
-
Use it from your stack — The SDKs, the editors and the CLIs, each with its real config.
-
OpenAI SDK — The official SDK, base URL changed.
-
Vercel AI SDK — Edge and node, streaming.
-
aider — Pair programming in the terminal.
-
Continue — The VS Code and JetBrains extension.
-
Cline — The autonomous coding extension.
-
Codex CLI & Claude Code — Both agents against our endpoint.
-
Kimi Code CLI — The CLI, pointed here.
-
LiteLLM — A proxy in front of many providers.
-
Open WebUI — A chat UI you host yourself.
-
LibreChat — The multi-model chat front end.
-
llm (Datasette CLI) — Simon Willison's llm, configured.
-
How GPU rentals work — On-demand and scheduled machines, SSH, the clock.
-
Regions & data handling — eu-se-1, eu-es-1, zero retention, what is logged.
-
Rules & responsibilities — What you may run, and what we do.
-
The forum — questions and answers, one thread per model, GPU and docs page
-
The catalogue — every open model we track, with the ones we run marked
-
axforge.ai — the product pages
If you are an agent acting for someone
Use their own key, never a shared one. Prefer a hot model for interactive work. Image, video and music calls can take minutes — set the client timeout accordingly rather than retrying, which doubles the work. If something is wrong here, the page it belongs to has a thread and a human reads it.
# AxForge — the API, in full
AxForge is European AI infrastructure: an OpenAI-compatible inference API and whole GPUs by the hour, run in the EU. This page is generated from the live catalogue, price sheet and fleet — it is current, not a snapshot.
## The basics
| | |
|---|---|
| Base URL | `https://api.axforge.ai/v1` |
| Auth | `Authorization: Bearer $AXFORGE_API_KEY` |
| Compatibility | OpenAI API shape — the official SDKs work unchanged, only `base_url`, key and model id differ |
| Region | `eu-se-1` Stockholm (serverless), `eu-es-1` Málaga (dedicated GPUs) |
| Retention | Prompts and completions are processed in memory and never stored. Only counts, timestamps and status are kept, for billing |
| Keys | Created in the console: https://console.axforge.ai/keys |
```bash
curl -sS https://api.axforge.ai/v1/chat/completions \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gemma-4-26b-a4b-nvfp4","messages":[{"role":"user","content":"Hello"}]}'
```
## Models
Use the id in the `model` field. `Available` is hot now; `On request` boots on demand and the first call waits.
| Model | id | Type | Size · context | Price | Status |
|---|---|---|---|---|---|
| Gemma-4 26B | `gemma-4-26b-a4b-nvfp4` | Chat · text | 262k ctx | see /docs/models/ | On request |
| Mistral Small 3.2 | `mistral-small-3.2-24b-nvfp4` | Chat · text | 32k ctx | see /docs/models/ | On request |
| Qwen3 30B A3B | `qwen3-30b-a3b-nvfp4` | Chat · text | 65k ctx | see /docs/models/ | On request |
| Qwen3.6 35B A3B | `qwen3.6-35b-a3b-nvfp4` | Chat · text | 65k ctx | see /docs/models/ | On request |
| Qwen3.8 27B | `qwen3.8-27b-nvfp4` | Chat · text | — | €0.29 in · €1.77 out / 1M | Available |
| Qwen3 Embedding | `qwen3-embed` | Embeddings | 32k ctx | €0.02 in · €0.00 out / 1M | Available |
| ERNIE Image Turbo | `ernie-image-turbo` | Image generation | — | see /docs/models/ | Available |
| FLUX.2 Klein 4B | `qwen-image-edit` | Image generation | — | see /docs/models/ | Available |
| Qwen-Image | `qwen-image-dedicated` | Image generation | — | see /docs/models/ | On request |
| SDXL | `sdxl` | Image generation | — | see /docs/models/ | On request |
| MiniMax Music 3 | `planned-music-tbd` | Music | — | see /docs/models/ | Available |
| Piper (Text-to-Speech) | `piper-lessac` | Speech | — | see /docs/models/ | Available |
| Whisper (Speech-to-Text) | `whisper-base` | Speech | — | see /docs/models/ | Available |
| LTX-Video | `ltx-video` | Video generation | — | see /docs/models/ | Coming |
| MiniMax H3 | `minimax-h3` | Video generation | — | see /docs/models/ | Coming |
| Wan 2.2 5B | `wan2.2-ti2v-5b` | Video generation | — | see /docs/models/ | Coming |
## Endpoints
### `/v1/chat/completions`
Chat and tool use. `stream: true` gives server-sent events.
```json
{"model":"<id>","messages":[{"role":"user","content":"…"}],"stream":false}
```
### `/v1/embeddings`
Vectors for search and RAG.
```json
{"model":"qwen3-embed","input":"text to embed"}
```
### `/v1/images/generations`
Image generation.
```json
{"model":"<id>","prompt":"a red bicycle","size":"1024x1024"}
```
### `/v1/images/edits`
Image editing from an input image.
```json
multipart: model, image, prompt
```
### `/v1/audio/transcriptions`
Speech to text.
```json
multipart: model, file
```
### `/v1/audio/speech`
Text to speech.
```json
{"model":"piper-lessac","input":"hello"}
```
### `/v1/audio/music`
Music generation.
```json
{"model":"minimax-music3","prompt":"a calm piano piece"}
```
### `/v1/models`
What is served right now.
```json
GET
```
## Errors
Every error is JSON: `{"error":{"message":…,"type":…,"code":…}}`.
| Status | Means | Do |
|---|---|---|
| 400 | The request body is wrong | Read `error.message` — it names the field |
| 401 | No key, or a key that is gone | Check the Authorization header |
| 402 | Out of allowance or credit | Top up in the console; the message says which |
| 403 | The key may not use that model or endpoint | Check the key's scope in the console |
| 404 | Unknown model id or path | Call `/v1/models` for the live list |
| 413 | The body is too large | Split the input; embeddings take batches |
| 429 | Rate limited | Back off and retry with jitter; the headers say when |
| 502 | The model could not be reached | Retry once; if it persists the status page and the forum will say |
| 504 | The model took too long | Raise your client timeout for image and video models — minutes, not seconds |
## Dedicated GPUs
Whole machines by the hour with SSH, one tenant each. Prices no VAT configured.
| GPU | Memory | Status | Free now | From |
|---|---|---|---|---|
| NVIDIA DGX Spark (GB10) | 128 GB unified memory | Available | 0/1 | from €0.55/h |
| NVIDIA RTX 6000 Pro | 96 GB GDDR7 | Request capacity | — | from €1.06/h |
| NVIDIA RTX 5090 | 32 GB GDDR7 each | Request capacity | — | from €0.59/h |
| NVIDIA RTX 3090 | 24 GB GDDR6X | Request capacity | — | from €0.42/h |
| NVIDIA RTX 3060 | 12 GB each · 24 GB the pair | Available | 2/1 | from €0.16/h |
| NVIDIA H100 | 80 GB HBM3 | Request capacity | — | quoted |
| NVIDIA H200 | 141 GB HBM3e | Request capacity | — | quoted |
| NVIDIA B200 | 192 GB HBM3e | Request capacity | — | quoted |
Rent one: https://console.axforge.ai/gpus
## Where to read more
- [Overview](https://dev.axforge.ai/docs/) — What the platform is, and the shape of the API.
- [Quickstart](https://dev.axforge.ai/docs/quickstart/) — Key, first call, the real response — in one page.
- [Glossary](https://dev.axforge.ai/docs/glossary/) — The words we use, defined once.
- [Chatbox starter](https://dev.axforge.ai/docs/starters/) — A streaming chatbox in plain JavaScript — paste your key and it runs.
- [Test a call](https://dev.axforge.ai/docs/test-a-call/) — Run a real call and see how it lands, and why if it does not.
- [Models & pricing](https://dev.axforge.ai/docs/models/) — Every served model, its id and what it costs.
- [Chat completions](https://dev.axforge.ai/docs/chat/) — /v1/chat/completions — streaming, tools, JSON mode.
- [Embeddings](https://dev.axforge.ai/docs/embeddings/) — /v1/embeddings — 1024-dim vectors, batching, limits.
- [Images](https://dev.axforge.ai/docs/images/) — /v1/images — generate and edit; sizes and formats.
- [Speech & music](https://dev.axforge.ai/docs/audio/) — Transcription, text-to-speech and music.
- [Errors & limits](https://dev.axforge.ai/docs/errors-limits/) — Every status code, what causes it, what to do.
- [Use it from your stack](https://dev.axforge.ai/docs/connect/) — The SDKs, the editors and the CLIs, each with its real config.
- [OpenAI SDK](https://dev.axforge.ai/docs/connect/openai-sdk/) — The official SDK, base URL changed.
- [Vercel AI SDK](https://dev.axforge.ai/docs/connect/vercel-ai-sdk/) — Edge and node, streaming.
- [aider](https://dev.axforge.ai/docs/connect/aider/) — Pair programming in the terminal.
- [Continue](https://dev.axforge.ai/docs/connect/continue/) — The VS Code and JetBrains extension.
- [Cline](https://dev.axforge.ai/docs/connect/cline/) — The autonomous coding extension.
- [Codex CLI & Claude Code](https://dev.axforge.ai/docs/connect/codex-claude-code/) — Both agents against our endpoint.
- [Kimi Code CLI](https://dev.axforge.ai/docs/connect/kimi/) — The CLI, pointed here.
- [LiteLLM](https://dev.axforge.ai/docs/connect/litellm/) — A proxy in front of many providers.
- [Open WebUI](https://dev.axforge.ai/docs/connect/open-webui/) — A chat UI you host yourself.
- [LibreChat](https://dev.axforge.ai/docs/connect/librechat/) — The multi-model chat front end.
- [llm (Datasette CLI)](https://dev.axforge.ai/docs/connect/llm/) — Simon Willison's llm, configured.
- [How GPU rentals work](https://dev.axforge.ai/docs/gpu-rentals/) — On-demand and scheduled machines, SSH, the clock.
- [Regions & data handling](https://dev.axforge.ai/docs/regions-data/) — eu-se-1, eu-es-1, zero retention, what is logged.
- [Rules & responsibilities](https://dev.axforge.ai/docs/responsibilities/) — What you may run, and what we do.
- [The forum](https://dev.axforge.ai/) — questions and answers, one thread per model, GPU and docs page
- [The catalogue](https://axforge.ai/models/) — every open model we track, with the ones we run marked
- [axforge.ai](https://axforge.ai/) — the product pages
## If you are an agent acting for someone
Use their own key, never a shared one. Prefer a hot model for interactive work. Image, video and music calls can take minutes — set the client timeout accordingly rather than retrying, which doubles the work. If something is wrong here, the page it belongs to has a thread and a human reads it.