guide · migration
Migrate from OpenAI to GPU Flow in 15 minutes
GPU Flow speaks the same protocol as OpenAI. If your code already uses the OpenAI SDK, migrating means changing two lines (the base URL and the API key) and picking an equivalent model from the catalogue. Nothing else changes: messages, streaming, function calling and parameters all work the same.
In return, your data is processed in Spain (never leaving the EU), you invoice in euros and you start with 5 € of free credit. This guide takes you from the first curl to production.
1. Create your account and API key
Sign up with email or Google. When you create your account you get 5 € of free credit, no card. From the dashboard you create an API key in the gpf-… format, copy it, it is shown only once.
2. Change the base URL and API key
Point the OpenAI client at api.gpuflow.ai/v1 with your new key. The rest of your code stays untouched.
# Before
client = OpenAI(api_key="sk-...")
# After
client = OpenAI(
base_url="https://api.gpuflow.ai/v1",
api_key="gpf-..."
)3. Pick the equivalent model
GPU Flow serves 8 open-source models. Swap your OpenAI model for the catalogue equivalent based on your case: fast and cheap, or maximum capability.
| If you used (OpenAI) | Use (GPU Flow) | For |
|---|---|---|
| gpt-4o-mini | qwen-3.5-9b · gemma-4-e2b | fast chat, high volume, low cost |
| gpt-4o | deepseek-v4-pro · glm-5.2-fp8 | demanding reasoning and code |
| o-series (reasoning) | deepseek-v4-pro + reasoning.effort | long chains of thought |
4. Streaming, tools and reasoning: same as before
SSE streaming (stream: true) and function calling (tools) work with the same OpenAI format. You can also control the reasoning budget with reasoning.effort ("low" | "medium" | "high" | "none").
resp = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[{"role": "user", "content": "Solve it step by step"}],
stream=True,
extra_body={"reasoning": {"effort": "high"}},
)5. Using the Anthropic SDK? That too
If your stack uses the Anthropic SDK, point baseURL at api.gpuflow.ai and use /v1/messages with the same models. No need to maintain two integrations.
What to keep in mind
You consume against your prepaid euro balance: if it runs out, the API returns 402 (top up from the dashboard). Under heavy spikes it may return 429/503 with a Retry-After header; retry with backoff. Exact model names and prices are on the pricing page and in /docs.
Try it with 5 € free
Create your account, change the base URL and run the first curl against any catalogue model. No card, with your data in Europe.
start free