affordableai.eu

Docs

Point any OpenAI-compatible tool at https://api.affordableai.eu/v1. One URL change. Everything else stays the same.

Base URL: https://api.affordableai.eu/v1 · Model: deepseek-ai/DeepSeek-V4-Flash · Auth: Bearer YOUR_API_KEY

OpenAI SDK

# Install
pip install openai

# Use
from openai import OpenAI
client = OpenAI(
    base_url="https://api.affordableai.eu/v1",
    api_key="YOUR_API_KEY",
)
response = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-V4-Flash",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)

Claude Code

# Set environment variables
export ANTHROPIC_BASE_URL="https://api.affordableai.eu"
export ANTHROPIC_AUTH_TOKEN="YOUR_API_KEY"
export ANTHROPIC_MODEL="deepseek-ai/DeepSeek-V4-Flash"

# Reasoning defaults to inline. Opt into separate thinking:
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-ai/DeepSeek-V4-Flash"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-ai/DeepSeek-V4-Flash"

# Use Claude Code normally
claude

Cursor

1. Open Cursor Settings → Models
2. Add model: deepseek-ai/DeepSeek-V4-Flash
3. Base URL: https://api.affordableai.eu/v1
4. API Key: YOUR_API_KEY
5. Select as default

Continue (VS Code / JetBrains)

{
  "models": [{
    "title": "DeepSeek V4 Flash",
    "provider": "openai",
    "model": "deepseek-ai/DeepSeek-V4-Flash",
    "apiBase": "https://api.affordableai.eu/v1",
    "apiKey": "YOUR_API_KEY"
  }]
}

aider

# .aider.conf.yml or command line
aider --model openai/deepseek-ai/DeepSeek-V4-Flash \
      --openai-api-base https://api.affordableai.eu/v1 \
      --openai-api-key YOUR_API_KEY

curl

curl -X POST https://api.affordableai.eu/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"deepseek-ai/DeepSeek-V4-Flash","messages":[{"role":"user","content":"Hello!"}]}'

Open WebUI

1. Admin Panel → Settings → Connections
2. OpenAI API URL: https://api.affordableai.eu/v1
3. API Key: YOUR_API_KEY
4. Add model: deepseek-ai/DeepSeek-V4-Flash

Reasoning / Thinking

Reasoning is inline by default — the model thinks through problems in the response text. This is fast and works with all tools.

For Claude Code and tools that expect separate reasoning with reasoning_content, add "reasoning_effort": "low" to your request:

curl -X POST https://api.affordableai.eu/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model":"deepseek-ai/DeepSeek-V4-Flash",
  "messages":[{"role":"user","content":"What is 17 * 24?"}],
  "reasoning_effort":"low"
}'

Tool Calling / Function Calling

Standard OpenAI function calling works. The model emits tool calls and our gateway preserves them across multi-turn conversations so your agent sessions stay fast.

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "parameters": {"city": {"type": "string"}}
    }
}]
response = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-V4-Flash",
    messages=[{"role": "user", "content": "Weather in Berlin?"}],
    tools=tools,
)

Limits: trial users get 100 requests/day, 2 concurrent, 32K context. Paid users (€20/month) get full capacity. All data stays in the EU. Nothing is stored.