OpenAI-compatible. Point any OpenAI SDK at this base URL and it works. Every request is billed from your point balance at the same rates as the app — no separate pricing, no per-seat fee.
Send your key as a bearer token. Keys look like apx_… and are shown once.
Authorization: Bearer apx_YOUR_KEY
Or pass api_key in the JSON body for tools that cannot set headers.
curl https://www.askproxygpt.com/v1/chat/completions \
-H "Authorization: Bearer apx_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "auto",
"messages": [{"role": "user", "content": "Explain Nigeria power sector in 3 bullets"}]
}'
Chat completion. Supports stream: true (SSE), temperature, top_p,
max_tokens, tools, response_format and stop.
Send an OpenAI-style content array with image_url parts for vision.
Model: use "auto" to let AskProxy route to the best model for the message — cheapest for a
quick question, strongest for hard reasoning, vision-capable when you send an image. Or pin any id from
GET /v1/models.
Response headers on every call: X-AskProxy-Model, X-AskProxy-Points,
X-AskProxy-Balance.
OpenAI-shaped model list. Add ?all=1 to include image, video and voice models.
curl https://www.askproxygpt.com/v1/models -H "Authorization: Bearer apx_YOUR_KEY"
Set "stream": true. The final chunk carries usage and an x_askproxy
block with the model used, points charged and remaining balance.
data: {"choices":[{"delta":{"content":"Hel"}}]}
data: {"choices":[{"delta":{"content":"lo"}}]}
data: {"choices":[{"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":9,"completion_tokens":2},"x_askproxy":{"model":"...","points":2,"balance":4812}}
data: [DONE]
{"error": {"message": "Invalid API key.", "type": "authentication_error", "param": null, "code": "authentication_error"}}
401 authentication_error — missing or bad key402 insufficient_quota — top up your points404 invalid_request_error — unknown model or endpoint413 invalid_request_error — input too long429 rate_limit_error — slow down502 upstream_error — the model provider failed; not charged120 requests per minute per key by default.
All /v1/* routes send permissive CORS headers, so you can call them straight from a browser.
OPTIONS preflight is handled.