Specs, pricing, billing — fully transparent
One API key for text, image, and video generation. Every model is verified for spec and authenticity before listing, pricing sits in the open, and billing exports line by line.
Verification dossier
On shelf- Spec check
- ✓Matches official spec
- Capability test
- ✓Passed before listing
- Pricing
- $0.75 in · $3.75 out /1M
- Cache price
- $0.075 /1M
- Data boundary
- Billing and audit metadata only
- Spec check
- ✓Matches official spec
- Capability test
- ✓Passed before listing
- Pricing
- $2.50 in · $12.50 out /1M
- Context
- Standard · 1M dual tier
- Data boundary
- Billing and audit metadata only
- Spec check
- ✓Matches official spec
- Render test
- ✓Verified on real billed tasks
- Pricing
- Per task · live estimate before submit
- Flow
- Submit → poll → download
- Data boundary
- Task params and result URL retained
Every model passes four gates
We track new models closely; every one walks the same process before listing.
Selection
Only models with reputations that survive scrutiny. New models get verified first, listed second.
Verification
Specs and capabilities are tested against the official record before listing. Bait-and-switch never makes it past this gate.
Pricing
Discounts are stated against list price; input, output, and cache are itemized. No opaque multipliers.
Records
The data boundary of billing and usage records is public; the schema snapshot lives on the transparency page.
Key to first call in three steps
This is the whole picture: get a key, configure your tool, or call the protocol directly.
Configure your tool
// ~/.claude/settings.json { "env": { "ANTHROPIC_BASE_URL": "https://iwkey.com", "ANTHROPIC_AUTH_TOKEN": "sk-your-key" } }
Restart Claude Code after saving
# ~/.codex/config.toml [model_providers.iwkey] name = "IWKey" base_url = "https://iwkey.com/v1" env_key = "IWKEY_KEY" [profiles.default] model_provider = "iwkey" model = "gpt-5.4"
Put your key in the IWKEY_KEY environment variable; fields follow the docs
# Cherry Studio Settings → Model services → Add provider Type: OpenAI-compatible API base: https://iwkey.com API key: sk-your-key Add model → enter the model ID (e.g. claude-sonnet-5)
Works for most OpenAI-compatible clients
More tools and full parameters in the docs →
Make your first call
curl https://iwkey.com/v1/messages \ -H "x-api-key: $IWKEY_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "claude-sonnet-5", "max_tokens": 1024, "messages": [{ "role": "user", "content": "..." }] }'
curl https://iwkey.com/v1/chat/completions \ -H "Authorization: Bearer $IWKEY_KEY" \ -d '{ "model": "gpt-5.4", "messages": [{ "role": "user", "content": "..." }] }'
curl https://iwkey.com/v1/images/generations \ -H "Authorization: Bearer $IWKEY_KEY" \ -d '{ "model": "gpt-image-2", "prompt": "..." }' # billed per image, Standard / Fine fidelity tiers; fidelity is fixed by the tier
curl https://iwkey.com/videos/v1/videos/generations \ -H "Authorization: Bearer $IWKEY_KEY" \ -d '{ "model": "doubao-seedance-2.0", "prompt": "..." }' # async task: submit → poll → download
The live list is the model market and GET /v1/models
26 on the shelf, every one verified
This is not a full catalog — it is a curated shortlist. Prices match the model market page.
Text chat
Pay as you go23 / 26Image generation
Per image1 / 26Video generation
Per task · async flow2 / 26Listing changelog
Open books, reconcile anytime
Public schema snapshot
The table structure behind billing and usage records is published — what we store and what we never store, at a glance.
/transparency/schema.json →Usage queryable line by line
Every call is queryable and exportable by model, key, and time — built for internal cost allocation and reconciliation.
A restrained data boundary
Only the metadata billing, routing, and audit require. Nothing extra is retained.
“For every model on the shelf, we can tell you why it is listed and whether it is worth it. Most users come by referral; when something breaks, you can always reach a human.”