I · Watchdog
The model behind the name is the model you asked for
Our system detects model substitution by providers. An affordable gateway only makes sense when you get the model you asked for. Watchdog checks exactly that.
Scheduled checks
Channels are checked regularly and responses are compared against the expected answer.
Channel disabling
If a response does not match the expected model, the channel is taken offline.
Test history
Every channel check and its result is visible in the Watchdog panel.
II · One platform. More choice.
Find AI for your task
GPT
From everyday questions to complex coding tasks.
Claude
Work with text, documents and thoughtful responses.
Gemini
Analyze information and work with large contexts.
Grok
Another perspective on your questions and ideas.
III · Pricing
More possibilities. Lower costs.
Compare rates and calculate your budget. Our prices and provider reference prices appear side by side for every model.
| Model | Input / 1M | Output / 1M | Savings |
|---|---|---|---|
| deepseek-v4.1-flash-1017 | $0.0003 | $0.0009 | — |
| gemini-3.8-flash | $0.08 | $0.35 | −95 % |
| gemini-3.7-flash | $0.08 | $0.35 | −95 % |
| gpt-5.4 | $0.08 | $0.35 | −98 % |
| claude-haiku-4-5-20251001 | $0.08 | $0.35 | −98 % |
| gpt-5.4-mini | $0.08 | $0.35 | −92 % |
| gpt-5.6-luna | $0.08 | $0.35 | −69 % |
| grok-4.70 | $0.08 | $0.35 | −89 % |
IV · For developers
Familiar SDK. New possibilities.
Set the PositionAPI URL and your key in the OpenAI SDK. Switch models with one parameter; the rest of your code stays the same.
- 1
Create a key
Console → API keys. Quota, models and expiration.
sk-••• - 2
Replace base_url
In any OpenAI-compatible client.
https://positionapi.top/v1 - 3
Send a request
Streaming and tool calls work as usual.
POST /v1/chat/completions - Open the guide
import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://positionapi.top/v1", apiKey: process.env.API_KEY,}); const res = await client.chat.completions.create({ model: "claude-sonnet-5", messages: [{ role: "user", content: "Hello!" }],});Connection example · insert your API key
V · Features
Everything for your next project
One format for all
GPT, Claude, Gemini, Grok and open-source models through /v1/chat/completions. Keep your existing SDK.
Token billing
Each request is logged with input, output, cache, cost and latency. No hidden multipliers.
Flexible keys
Dollar quotas, IP allowlists, model restrictions and expiration dates for each key.
Unbuffered streaming
SSE is forwarded as received. Usage is calculated from provider data, down to the last token.
Keep costs under control
View request history, token usage and costs for each model in your dashboard.
Account protection
Audit logs, session lists and device revocation.
How does PositionAPI differ from direct provider access?
One key and base URL for all models, a unified OpenAI-compatible format, shared balance and statistics. Prices are below official rates; see savings for each model in the catalog.
How do I get started in 2 minutes?
Sign in with the login and password from your order, create a key in API Keys, and enter your service base_url and key in any OpenAI-compatible client: SDK, Cursor, Claude Code or ChatBox.
How is request cost calculated?
Cost = (prompt_tokens × input price + completion_tokens × output price + cached_tokens × cache price) / 1,000,000 × group multiplier. Per-request models charge a fixed amount. Every request appears in the usage log with full details.
What happens when my balance reaches zero?
Requests are rejected with status 402 and a clear message. Top up with an activation code in Wallet. Set your warning threshold in Profile.
Can I restrict a key?
Yes: set a dollar quota, allowed models, IP allowlist, expiration and group for each key.
Access models through PositionAPI
Use the key or account from your FunPay order to access the console and documentation.
All support is provided exclusively in your FunPay order chat.