Quick start

From a key to the first request

llmka.dev is an OpenAI- and Anthropic-compatible gateway: one key and one balance for every model. Point your agent, IDE or script at the address below - no other changes needed.

Base URL (OpenAI format)
https://api.llmka.dev/v1
Origin (Anthropic format)
https://api.llmka.dev
API key
Authorization: Bearer $LLMKA_API_KEY
1. Get a key

Sign in to the dashboard and create a key on the Keys page. Top up your balance in USDT (TRC20, BEP20, TON). Minimum top-up is $5.

2. Copy the address

One base URL for everything. Tools that speak the Anthropic format (Claude Code) use the origin without /v1.

3. Send a test request

A reply with an "id" field means the key works. The model value is any id from /v1/models.

First request
12345678
curl https://api.llmka.dev/v1/chat/completions \
  -H "Authorization: Bearer $LLMKA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [{"role": "user", "content": "Hello!"}],
    "stream": false
  }'
Agents and IDEs

Copy-paste configs

The gateway is compatible with OpenAI Chat Completions and the Anthropic Messages format, including streaming and tool calling - so coding agents work as usual.

123456789101112131415
# ~/.hermes/config.yaml
custom_providers:
  - name: llmka
    base_url: https://api.llmka.dev/v1
    key_env: LLMKA_API_KEY
    models:
      claude-sonnet-5: {}
      gpt-5.6-luna: {}

model:
  default: claude-sonnet-5
  provider: custom:llmka

# ~/.hermes/.env
LLMKA_API_KEY=sk-...
Custom provider in config.yaml, key in .env - then pick the provider as custom:llmka.

All examples use the same key: the model name is the only thing that changes between tools.

SDK and platforms

Code and no-code

Python, Node.js, LangChain, CrewAI and low-code platforms connect through the same OpenAI-compatible endpoint - from a script to a visual flow.

12345678910111213
pip install openai

from openai import OpenAI

client = OpenAI(api_key="sk-...", base_url="https://api.llmka.dev/v1")

stream = client.chat.completions.create(
    model="claude-sonnet-5",
    messages=[{"role": "user", "content": "Explain SSE in two paragraphs."}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")
Any OpenAI SDK: replace api_key and base_url, keep the rest of the code.