An OpenAI-compatible API in front of ChatGPT
MSEMAX speaks the OpenAI Chat Completions protocol, so any tool that talks to OpenAI can point at it unchanged. Behind the scenes it forwards each request to a pool of real ChatGPT sessions, rotating accounts, failing over when one breaks, and streaming the reply back token by token.
Your base URL is __BASE__/v1 — every example on these pages is filled in with this gateway's real address, ready to copy.
Where to go next
Quick start
From zero to your first streamed reply in three steps.
Chat completions
The one endpoint you call: request shape, streaming, errors.
Vision
Send images alongside text and have the model read them.
Models & keys
Pin a model to an API key, and why a model may misname itself.
Capturing sessions
Feed the pool with accounts, and how failover keeps it alive.
Client setup
Kilo Code, the OpenAI SDKs, n8n and anything else.
How a request flows
- A client sends an OpenAI-format request to
__BASE__/v1/chat/completionswith an API key. - The gateway checks the key. A client key may chat and nothing else; the master key also manages sessions and keys.
- It picks a healthy session from the pool — the same conversation sticks to the same account, and a dead account is skipped automatically.
- The prompt is forwarded to ChatGPT's backend (solving its proof-of-work challenge on the way).
- The reply streams back re-encoded as OpenAI Server-Sent Events, so your client sees a normal
chat.completion.chunkstream.
Keep the master key private — it can read, write and delete every pooled account. Hand out generated client keys instead, and revoke them individually from the dashboard.