Quick Start
clawfeeder.ai is compatible with the OpenAI and Anthropic SDKs. Just replace base_url and api_key to access the full catalog (GPT-5.x, Claude 4.5/4.6/4.7, Gemini, Qwen3.6, DeepSeek V4, GPT Image 2, and more). Formats, parameters, and response structures are identical.
https://api.clawfeeder.ai/v1 and https://clawfeeder.ai/v1 hit the same backend. Anthropic SDK uses the bare host (https://api.clawfeeder.ai); the SDK appends /v1/messages automatically.Base URL
https://api.clawfeeder.ai/v1API Key format
cf-sk-xxxxxxxxxxxxxxGet Your API Key
Follow these steps to get your API Key — takes about 2 minutes.
- 1Register — sign up with your email address
- 2Verify phone — verify your phone number to activate
- 3Copy your API Key — go to Dashboard > API Keys to generate and copy it
Python Example
Install the openai library (pip install openai), then run the code below.
from openai import OpenAI client = OpenAI( api_key="cf-sk-your-key-here", base_url="https://api.clawfeeder.ai/v1" ) response = client.chat.completions.create( model="claude-sonnet-4-6", messages=[{"role": "user", "content": "Hello!"}] ) print(response.choices[0].message.content)
Node.js / TypeScript Example
Install the openai package (npm install openai), then use the code below.
import OpenAI from "openai"; const client = new OpenAI({ apiKey: "cf-sk-your-key-here", baseURL: "https://api.clawfeeder.ai/v1", }); const response = await client.chat.completions.create({ model: "claude-sonnet-4-6", messages: [{ role: "user", content: "Hello!" }], }); console.log(response.choices[0].message.content);
curl Example
Send requests directly with curl — no SDK required.
curl https://api.clawfeeder.ai/v1/chat/completions \ -H "Authorization: Bearer cf-sk-your-key-here" \ -H "Content-Type: application/json" \ -d '{ "model": "DeepSeek-V3.2", "messages": [{"role": "user", "content": "Hello!"}] }'
Image Generation
POST /v1/images/generations (text-to-image) and /v1/images/edits (image edit, multipart upload) are OpenAI-compatible. See the Supported Models section below for available image models and their per-call credit cost.
from openai import OpenAI import base64 client = OpenAI( base_url="https://api.clawfeeder.ai/v1", api_key="cf-sk-your-key-here", ) # Text-to-image generation resp = client.images.generate( model="gpt-image-2", prompt="A red apple on a white table, studio lighting", size="1024x1024", quality="low", # low / medium / high — affects credits n=1, ) # Save the result (clawfeeder returns base64 by default) img_bytes = base64.b64decode(resp.data[0].b64_json) with open("apple.png", "wb") as f: f.write(img_bytes)
curl https://api.clawfeeder.ai/v1/images/generations \ -H "Authorization: Bearer cf-sk-your-key-here" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-image-2", "prompt": "A red apple on a white table", "size": "1024x1024", "quality": "low", "n": 1 }'
curl https://api.clawfeeder.ai/v1/images/edits \ -H "Authorization: Bearer cf-sk-your-key-here" \ -F "model=gpt-image-2" \ -F "image=@./input.png" \ -F "prompt=Make the apple green" \ -F "size=1024x1024" \ -F "n=1"
Nano Banana (Gemini native image): Google's Gemini image models use the native /v1beta/models/{model}:generateContent endpoint. Set the resolution via generationConfig.imageConfig.imageSize (1024x1024 / 2048x2048 / 4096x4096 → 1K / 2K / 4K tier, which sets the credit cost).
# Nano Banana (Gemini native image generation) curl "https://api.clawfeeder.ai/v1beta/models/nano-banana-2:generateContent" \ -H "Authorization: Bearer cf-sk-your-key-here" \ -H "Content-Type: application/json" \ -d '{ "contents": [ { "parts": [ { "text": "A red apple on a white table, studio lighting" } ] } ], "generationConfig": { "imageConfig": { "imageSize": "2048x2048" } } }'
from google import genai from google.genai import types # Point the Gemini SDK at clawfeeder client = genai.Client( api_key="cf-sk-your-key-here", http_options=types.HttpOptions(base_url="https://api.clawfeeder.ai"), ) resp = client.models.generate_content( model="nano-banana-pro", # or nano-banana-2 contents="A red apple on a white table, studio lighting", config=types.GenerateContentConfig( image_config=types.ImageConfig(image_size="2048x2048"), # 1K / 2K / 4K → credits ), ) # Image parts are returned inline_data (base64) in resp.candidates[0].content.parts
Video Generation
Video generation is async. POST returns a task_id immediately; poll GET until SUCCEEDED or FAILED. We pre-deduct a conservative credit amount on submit; the real duration settles on poll — overcharge refunds, undercharge tops up, FAILED gets a full refund. See Supported Models below for available video models and their per-duration credit cost.
# 1) Submit text-to-video — returns a task_id immediately curl https://api.clawfeeder.ai/v1/video/generations \ -H "Authorization: Bearer cf-sk-your-key-here" \ -H "Content-Type: application/json" \ -d '{ "model": "wan2.6-t2v", "input": { "prompt": "A small white cat walking on a wooden floor" }, "parameters": { "resolution": "720P", "duration": 5 } }' # → {"output":{"task_id":"<id>","task_status":"PENDING"}} # wan2.6 image-to-video: same endpoint, model=wan2.6-i2v, add input.img_url curl https://api.clawfeeder.ai/v1/video/generations \ -H "Authorization: Bearer cf-sk-your-key-here" \ -H "Content-Type: application/json" \ -d '{ "model": "wan2.6-i2v", "input": { "prompt": "the cat begins to run", "img_url": "https://example.com/cat.png" }, "parameters": {"resolution": "720P", "duration": 5} }' # HappyHorse 1.0 i2v / r2v: use input.media: [{"url": "..."}] (array form) curl https://api.clawfeeder.ai/v1/video/generations \ -H "Authorization: Bearer cf-sk-your-key-here" \ -H "Content-Type: application/json" \ -d '{ "model": "happyhorse-1.0-i2v", "input": { "prompt": "camera slowly zooms in", "media": [{"url": "https://example.com/photo.jpg"}] }, "parameters": {"resolution": "720P", "duration": 5} }' # HappyHorse 1.0 r2v (reference-to-video, subject/style transfer) curl https://api.clawfeeder.ai/v1/video/generations \ -H "Authorization: Bearer cf-sk-your-key-here" \ -H "Content-Type: application/json" \ -d '{ "model": "happyhorse-1.0-r2v", "input": { "prompt": "the subject dances gracefully", "media": [{"url": "https://example.com/reference.jpg"}] }, "parameters": {"resolution": "720P", "duration": 5} }'
# 2) Poll status — returns SUCCEEDED (with video URL) or FAILED curl https://api.clawfeeder.ai/v1/video/generations/<task_id> \ -H "Authorization: Bearer cf-sk-your-key-here" # PENDING / RUNNING → keep polling every ~15s # SUCCEEDED → output.video_url / output.video_duration # FAILED → output.message + full refund (you are NOT charged)
import time, requests BASE = "https://api.clawfeeder.ai" KEY = "cf-sk-your-key-here" # Submit (Aliyun-style nested body — input/parameters) r = requests.post( f"{BASE}/v1/video/generations", headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}, json={ "model": "wan2.6-t2v", "input": {"prompt": "A small white cat walking on a wooden floor"}, "parameters": {"resolution": "720P", "duration": 5}, }, ) task_id = r.json()["output"]["task_id"] print("task:", task_id) # Poll until terminal — generation takes ~1-3 min for 5s clips while True: q = requests.get( f"{BASE}/v1/video/generations/{task_id}", headers={"Authorization": f"Bearer {KEY}"}, ).json() status = q["output"]["task_status"] print("status:", status) if status in ("SUCCEEDED", "FAILED"): print(q) break time.sleep(15)
Poll every ~15s after submit; typical generation takes 1-3 minutes.
Supported Models
All enabled models, grouped by family. Put the model name in the request body's model field — no other config. Credits column shows the lowest-tier per-call cost; longer contexts / higher resolutions / longer videos escalate to higher tiers (see notes below the table).
Full per-tier pricing in Pricing → Model table; how every charge is computed in Billing & audit.
| Model | Provider | Credits | Highlights |
|---|---|---|---|
See the pricing page for the full model list and credit costs.
Auto Routing
Set model to "auto" and clawfeeder picks the right model from your prompt. Code goes to Opus, translation/chit-chat to Haiku/Flash, general questions to the balanced tier. Response headers echo the actual model ID for billing and debugging.
curl https://api.clawfeeder.ai/v1/chat/completions \ -H "Authorization: Bearer cf-sk-..." \ -H "Content-Type: application/json" \ -d '{ "model": "auto", "messages": [ {"role": "user", "content": "Write a Python fibonacci function"} ] }' # Response headers expose the routing decision: # X-Clawfeeder-Auto-Category: code # X-Clawfeeder-Auto-Quality: best # X-Clawfeeder-Model: claude-opus-4-7
Classification rules
| Category | Triggers | Quality | Typical model |
|---|---|---|---|
| code | code/error/api, function, class, ``` blocks… | best | claude-opus-4-7 / gpt-5.3-codex |
| math | solve / equation / matrix / ∑ ∫ √ π symbols | best | claude-opus-4-7 |
| reason | why / reasoning / analyze / tradeoff | best | claude-opus-4-7 |
| long | input > 4000 chars | best | gemini-3.1-pro-preview |
| vision | message includes image_url / image part | best | claude-opus-4-7 / gpt-5.4 |
| creative | write a poem / copy / brainstorm / tagline | balanced | gpt-5.2 / claude-sonnet-4-6 |
| translate | translate / 翻译 / to Chinese | fast | gemini-3.1-flash-lite |
| summarize | summarize / tl;dr / key points / outline | fast | claude-haiku-4-5 |
| chat | hi / hello / thanks / 你好 | fast | gemini-3.1-flash-lite |
| general | anything else | balanced | claude-haiku-4-5 / gpt-5.2 |
Override quality manually
Pass an optional quality: "fast" | "balanced" | "best" to bypass keyword analysis. Trial users get capped to their tier, and low balances auto-downgrade to a cheaper candidate.
{ "model": "auto", "quality": "fast", "messages": [{"role": "user", "content": "..."}] }
Integrations
Use the tools you already know — clawfeeder backs them all. Claude Code, Cursor, Cline, Aider, plus OpenAI / Anthropic / LangChain SDKs are all verified. Click any card for full setup steps.
Claude Code
Anthropic's official CLI, pointed at clawfeeder.ai
Cursor
AI-first IDE pointed at clawfeeder via OpenAI-compatible endpoint
Cline
VS Code coding agent (formerly Claude Dev) wired to clawfeeder
OpenCode
Open-source terminal coding agent — provider-agnostic, point it anywhere
Aider
Pair-programmer CLI with git-aware edits, configured for clawfeeder
OpenAI SDK
Official OpenAI Python / TypeScript SDK pointed at clawfeeder
Anthropic SDK
Official Anthropic Python / TypeScript SDK pointed at clawfeeder
LangChain
ChatOpenAI / ChatAnthropic with base URL pointed at clawfeeder
Error Handling
clawfeeder.ai returns standard HTTP status codes, consistent with the OpenAI API.
| Status | Meaning |
|---|---|
| 401 | Invalid or expired API Key |
| 429 | Too many requests — reduce frequency |
| 402 | Insufficient credits — top up your account |
| 500 | Upstream model error — please retry |
Try clawfeeder.ai for free
7-day free trial · 300 credits · No card required