Skip to content

FAQ

Does the AIRelays relay use my OpenAI platform API key?

No. AIRelays uses an AIRelays-owned ChatGPT subscription login for upstream inference.

Will earlier AIRelay local state still work?

Yes. AIRelays keeps compatibility with earlier singular-path local state such as ~/.config/airelay, ~/.airelay, and older AIRelay Auth keychain entries.

Is the AIRelays project affiliated with OpenAI?

No. AIRelays is an independent third-party project. Provider and product names are used only to describe compatibility targets and upstream behavior.

What API key do I give my client?

Use the relay token generated by airelays init or airelays token rotate. That token protects AIRelays itself.

Use airelays token show if you want to display the current token without rotating it.

Many OpenAI-compatible SDKs can use the AIRelays token through their normal api_key setting when the base_url points at AIRelays.

The AIRelays token is not an OpenAI platform API key and will not work against the OpenAI platform API directly.

Can I still get JSON from the CLI?

Yes. airelays init, airelays status, airelays logout, airelays token show, and airelays token rotate accept --json.

Why did /v1/models return 401 and then 429?

/v1/* routes are protected. If the client does not send the AIRelays relay token, AIRelays returns 401. Repeating the same mistake from the same IP eventually triggers a temporary 429 block.

Is the relay token the same as the ChatGPT login?

No. They are separate.

  • ChatGPT subscription login: upstream access to chatgpt.com
  • AIRelays token: local client access to your relay

Where are files stored?

Uploaded files are stored locally under ~/.airelays/uploads/ and indexed in ~/.airelays/state.sqlite3. By default, AIRelays caps uploads at 32 MiB per file and 256 MiB total stored file bytes.

Can I disable relay auth?

Yes. The published default is to require bearer auth, but you can launch an open local relay with:

airelays init --no-auth
airelays serve --no-auth --port 8080

You can also use AIRELAYS_REQUIRE_BEARER_AUTH=false. If you disable relay auth, keep the listener on loopback unless you fully understand the exposure consequences. This disables only the AIRelays client token gate. It does not remove the need for airelays login.

Is AIRelays meant for shared or multi-user use?

No. AIRelays is designed and documented for a single user operating a local relay for personal convenience. It is not presented as a shared, pooled, multi-user, or resale service.

Does AIRelays support Anthropic or Gemini today?

No. The current verified upstream is the ChatGPT Codex subscription backend. The package and config surface were cleaned up so future provider adapters are easier to add, but they are not part of the shipped runtime yet.

Why do some OpenAI parameters disappear?

The ChatGPT subscription backend rejects some OpenAI sampling parameters. AIRelays omits the known unsupported fields and reports that explicitly in x-airelays-ignored-parameters.

Why do token-limit parameters return 422?

The verified subscription backend does not currently accept the OpenAI token-limit parameters on AIRelays' OpenAI-shaped text-generation routes. AIRelays rejects them explicitly instead of passing them through and surfacing a less clear upstream failure:

  • max_output_tokens on /v1/responses
  • max_completion_tokens on /v1/chat/completions
  • max_tokens on /v1/completions

How do file inputs work on /v1/responses?

AIRelays supports the OpenAI-style input_file shapes that were verified against the subscription backend:

  • external file_url
  • inline data URLs in file_data
  • raw Base64 file_data when filename is present so AIRelays can determine the content type
  • AIRelays local file_id values returned by POST /v1/files

When you reuse a local AIRelays file_id, AIRelays expands it into an inline file or image input before sending the request upstream.