Proxy Account Format Converter

Processed online in your browser. Nothing is submitted to Hvoy or saved.

Supports GPT session, CPA, Sub2API, Cockpit, 9Router, Codex Auth JSON, AxonHub, and Codex Manager formats.

1. Import account JSON

Paste one or more JSON documents, JSONL, arrays, nested exports, or add multiple .json/.txt files.

Imported files0

No files added. Pasted content can be converted directly.

2. Choose target format

OpenAI/Codex accounts support all targets. Claude, Antigravity, and Gemini support CPA and sub2api.

Review and download

Sub2API format ยท Generated online with 100% privacy

0
Parsed accounts
0
Ready for target
0
Warnings
0
Skipped items
Import account JSON and parse it to see results.
Merged preview
Skipped items
Import account JSON and parse it to see results.

Proxy account format converter help

Tokens and account JSON files should be treated like passwords. Do not publish them, commit them to Git, upload them to public cloud storage, or paste them into chats. A ChatGPT Session without a refresh token must be obtained again after it expires.

Get a ChatGPT Session

  1. Sign in to your own ChatGPT account in a browser.
  2. In the same browser, open chatgpt.com/api/auth/session.
  3. Save the complete JSON shown on the page, or paste the complete response into this converter. Do not copy only one token field.

How to use it: paste the JSON into the import box, or save it as a .json or .txt file and upload it.

Expiry: Session tokens are time-limited. Sign in again and obtain a new session after the old one expires. Do not expose or share the Session Token.

CPA / CLIProxyAPI

How to obtain it: complete the provider OAuth login in CLIProxyAPI. Authentication JSON files are stored in ~/.cli-proxy-api by default; the actual location is controlled by auth-dir in its configuration.

How to use it: place a single-account CPA JSON file in CLIProxyAPI's configured authentication directory, or import it through the CLIProxyAPI management center. Use the target application's OAuth login when possible instead of manually assembling tokens.

Sub2API

How to obtain it: in the Sub2API admin console, open Account Management and choose Export Data. The exported file normally contains exported_at, proxies, and accounts.

How to use it: open Account Management โ†’ Import Data and upload the Sub2API JSON generated by this page. Back up existing accounts first, then check each account's platform, OAuth type, proxy, and priority after import.

Cockpit Tools

How to obtain it: in Cockpit Tools, add a Codex account through OAuth or local import, then choose Cockpit Tools from the account export menu. Codex can also be imported from its current local ~/.codex/auth.json.

How to use it: go to Codex Accounts โ†’ Add Account โ†’ Token / JSON and paste or select the generated JSON. Use Codex Batch Import for multiple files. Back up the current Codex login file before switching accounts.

9Router

How to obtain it: a 9Router Codex account object can come from an existing 9Router backup or be generated from another supported account format on this page.

How to use it: open Providers โ†’ Codex โ†’ Bulk Add / Bulk Import. Paste a single object, an array of account objects, or an object wrapped in { accounts: [...] }. Each account needs an access token; refresh and ID tokens should be retained when available.

Important: do not restore a full 9Router database backup just to import account JSON. Database restore can replace existing settings and connections.

Codex Auth JSON

How to obtain it: sign in through the Codex CLI or IDE with ChatGPT or an API key. Codex may cache credentials in ~/.codex/auth.json or in the operating system's credential store.

How to use it: the safest option is to let Codex manage sign-in itself. If you must migrate a file, close Codex, back up the current file, then place the valid file at ~/.codex/auth.json with access restricted to your user.

See OpenAI's Codex login caching documentation. Never commit auth.json to Git or share it.

AxonHub

How to obtain it: create or edit a Codex Channel in AxonHub and use its Official OAuth flow. An existing Codex Auth JSON can also be used as the source for conversion.

How to use it: open Channels โ†’ create or edit Codex โ†’ Auth JSON, paste the JSON generated on this page, and apply it. For Claude, use the Claude Code official OAuth flow; do not import unrelated provider JSON as a Codex Channel.

Codex Manager

How to obtain it: Codex Manager can export an account as JSON. You can also convert a Codex auth.json or a ChatGPT Session into its import format.

How to use it: open Account Management โ†’ Batch Import, then select multiple JSON files, recursively import a folder, or paste the generated content. A ChatGPT Session usually has no refresh token, so it cannot refresh after expiry; prefer credentials created by the official Codex OAuth flow for long-term use.