back

developers

Build on GPUFlow.

An API compatible with your SDK, a CLI for all three services and an MCP server so your agents use it on their own. Start in seconds; the full reference is below.

Quickstart

From signup to first token, without rewriting your code.

  1. 01

    Get your API key

    Create your account and get €5 of credit. The key arrives by email.

  2. 02

    Point your SDK

    Change the base URL to https://api.gpuflow.ai/v1 and paste your key. The rest of your code stays the same.

  3. 03

    First curl

    Call any of the 16 catalogue models with the OpenAI or Anthropic SDK.

curl https://api.gpuflow.ai/v1/chat/completions \
  -H "Authorization: Bearer $GPUFLOW_API_KEY" \
  -d '{ "model": "deepseek-v4-flash",
        "messages": [{ "role": "user", "content": "Hola" }] }'

GPUFlow's API from your terminal

A single tool for your inference. The models and chat commands already work against the API; account management, sandboxes and GPU are coming to the same CLI.

install
$ npm i -g @gpuflow/cli

# set your API key

$ gpuflow config set api-key gpf-...

# list the model catalogue (live)

$ gpuflow models

# chat with a model (streaming)

$ gpuflow chat "Explícame RDMA en una frase"

Infrastructure for agents

GPUFlow is agent-native: your agents use it over MCP, via their SDK, or from a Sandbox with the agent already installed.

MCP server

Connect GPUFlow to Claude, Cursor or your agent: list models and chat with them as MCP tools. More tools coming.

npx @gpuflow/mcp

Agent templates

Sandboxes boot with Claude Code, OpenCode, OpenClaw or Hermes already installed and wired to the API over the internal network.

Works with your SDK

Any agent using the OpenAI or Anthropic SDK works by pointing at GPUFlow, no translation layer.

API reference

Base URL

https://api.gpuflow.ai

Authentication

Include your API key in the Authorization header as a Bearer token. Create and manage keys from your dashboard.

Authorization: Bearer gpf-...

Endpoints

POST /v1/chat/completions

Main endpoint compatible with the OpenAI SDK. Supports streaming, function calling and all catalogue models.

POST /v1/messages

Endpoint compatible with the Anthropic SDK. Same functionality, Anthropic message format.

GET /v1/models

Lists available models with pricing and capabilities.

Streaming and reasoning

Streaming (SSE)

Add "stream": true and you get the response over Server-Sent Events, token by token. We inject keep-alives so long connections aren't dropped by intermediate proxies.

Configurable reasoning

Catalogue models reason. Control the thinking budget with reasoning.effort ("low", "medium", "high", or "none" to disable) or reasoning.max_tokens. Works from both the OpenAI and Anthropic SDKs (thinking.budget_tokens), we translate it to the engine for you.

{ "model": "deepseek-v4-pro",
  "messages": [{ "role": "user", "content": "Resuélvelo paso a paso" }],
  "stream": true,
  "reasoning": { "effort": "high" } }

Function calling

All 10 models support tool calling with the standard OpenAI format. Pass your tools array and the model decides when to call them; you run the function and return the result.

{ "model": "qwen-3.8-27b",
  "messages": [{ "role": "user", "content": "¿Qué tiempo hace en Madrid?" }],
  "tools": [{
    "type": "function",
    "function": {
      "name": "get_weather",
      "parameters": {
        "type": "object",
        "properties": { "city": { "type": "string" } }
      }
    }
  }] }

Python (OpenAI SDK)

from openai import OpenAI

client = OpenAI(
    base_url="https://api.gpuflow.ai/v1",
    api_key="gpf-..."
)

response = client.chat.completions.create(
    model="qwen-3.5-9b",
    messages=[{"role": "user", "content": "Hello!"}],
    max_tokens=10000
)

print(response.choices[0].message.content)

Node.js (Anthropic SDK)

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://api.gpuflow.ai",
  apiKey: "gpf-..."
});

const msg = await client.messages.create({
  model: "qwen-3.5-9b",
  max_tokens: 10000,
  messages: [{ role: "user", content: "Hello!" }]
});

console.log(msg.content[0].text);

curl

curl https://api.gpuflow.ai/v1/chat/completions \
  -H "Authorization: Bearer gpf-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen-3.5-9b",
    "messages": [{"role": "user", "content": "Hello!"}],
    "max_tokens": 10000
  }'

Model catalogue

All models run on our infrastructure in Spain. Prices per million tokens.

modelinput EUR/Moutput EUR/Mcapabilities
deepseek-v4-profeatured0.802.60Chat, Coding, Reasoning, Tools
glm-5.2-nvfp4featured1.003.00Chat, Coding, Reasoning, Tools, Long context
deepseek-v4-flash0.140.28Chat, Reasoning, Tools
qwen-3.8-27b0.100.30Reasoning, json_mode
qwen-3-14b0.201.00Chat, Reasoning, Tools
qwen-3.5-9b0.100.15Chat, Reasoning, Tools
gemma-4-26b-a4b0.120.30Reasoning, Tools
nemotron-nano-12b-v2-vl0.060.24image-text-to-text, OCR
qwen3-vl-32b-ocr0.100.35image-text-to-text, OCR
nemotron-3.5-lightning-30b-a3b0.120.30Reasoning, Tools

Error codes

401Invalid or missing API key
402Insufficient balance, top up from your dashboard
403You do not have permission to use this model
404Model not found
429Rate limit exceeded, wait and retry (Retry-After header)
503Model temporarily overloaded, retry with backoff (Retry-After header)