ForgeAPI exposes an OpenAI-compatible API. If your code already talks to OpenAI, pointing it at ForgeAPI takes one line.
Every request needs an API key. Create one free in the console โ no credit card required.
https://api.forgeapi.dev/v1
curl https://api.forgeapi.dev/v1/chat/completions \
-H "Authorization: Bearer $FORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash",
"messages": [{"role": "user", "content": "Explain APIs in one sentence."}],
"max_tokens": 64
}'
from openai import OpenAI
client = OpenAI(
api_key=os.environ["FORGE_API_KEY"],
base_url="https://api.forgeapi.dev/v1",
)
resp = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.FORGE_API_KEY,
baseURL: "https://api.forgeapi.dev/v1",
});
const resp = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(resp.choices[0].message.content);
Authenticate with a bearer token in the Authorization header. Keys are created in the console and never exposed again after creation.
Authorization: Bearer sk-forge-<your-key>
Request and response bodies follow the OpenAI chat completions schema exactly, including stream: true (SSE) support.
Use GET /v1/models for the live list. Current catalog:
| Model ID | Context | Notes |
|---|---|---|
| deepseek-v4-flash | 128K | Default recommendation for most apps |
| deepseek-v4-pro | 128K | Reasoning-heavy tasks |
| kimi-3 | 256K | Long-document understanding |
| qwen-3-235b | 256K | Top-tier open-weight general model |
| llama-3.3-70b | 128K | Solid workhorse with tool-calling |
| qwen-3-8b | 32K | Free tier, rate-limited |
Migrating from OpenAI or Anthropic is a base-URL change in most cases:
# Before (OpenAI)
client = OpenAI(api_key=OPENAI_KEY)
# โ model: gpt-4o
# After (ForgeAPI)
client = OpenAI(api_key=FORGE_API_KEY, base_url="https://api.forgeapi.dev/v1")
# โ model: deepseek-v4-flash
from anthropic import Anthropic
# Map your anthropic calls to the OpenAI-compatible endpoint:
client = OpenAI(
api_key=os.environ["FORGE_API_KEY"],
base_url="https://api.forgeapi.dev/v1",
)
# system: "You are..." โ messages: [{"role": "system", ...}]
# max_tokens: 4096 โ max_tokens: 4096 (unchanged)
ForgeAPI uses OpenAI-compatible error responses: {"error": {"type": ..., "message": ...}}
| Code | Type | Meaning |
|---|---|---|
| 400 | invalid_request_error | Malformed request or unknown parameter |
| 401 | authentication_error | Missing or invalid API key |
| 402 | insufficient_quota | Balance depleted or key spend limit reached |
| 404 | model_not_found | Model ID doesn't exist in the catalog |
| 429 | rate_limit_error | Free tier rate limit or too many requests |
| 503 | server_error | Upstream inference node unavailable โ retry with backoff |
All calls return a Retry-After header on 429, and we send a warning header when you approach a spend limit.