ChatGPT Session Converter
Paste a ChatGPT session JSON and convert it to sub2api, CPA, Cockpit, 9router, AxonHub or Codex-Manager format. Supports JWT parsing, synthetic id_token generation, batch file upload and ZIP download. Everything runs in your browser — nothing is uploaded.
批处理工作台
粘贴数组或上传多个 JSON/TXT 文件,批量整理账号并导出。
所有处理均在浏览器本地完成
导入 Session
支持单个对象、数组或多文件
输出结果 · sub2api
0
成功
0
跳过
sub2api
格式
About this converter
How the session converter works
Paste a ChatGPT session JSON object — typically containing an accessToken, refreshToken, idToken and a user object — and the converter extracts credentials by decoding the JWT, normalizing fields from many naming conventions, and mapping them into the exact structure your target platform expects.
The tool detects whether a session came from a ChatGPT web login or a Codex OAuth flow, infers the account ID, plan type and expiry from the access token payload, and generates a synthetic id_token when one is missing so downstream consumers keep working.
Supported output formats
sub2api produces an accounts document with platform metadata and nested credentials. CPA emits a flat, per-account codex token record. Cockpit outputs account_id-keyed credentials with last_refresh tracking.
9router maps to a codex provider record with providerSpecificData. AxonHub generates auth_mode chatgpt token bundles, inserting a placeholder refresh_token when one is absent. Codex-Manager outputs sort, priority and meta blocks with token hints.
Batch conversion and ZIP download
When you paste an array of sessions or upload multiple JSON files, the converter collects every session-like object it finds and converts them all at once. For CPA output with more than one account, the Download button produces a ZIP archive with one JSON file per account.
This makes bulk provisioning and migration straightforward — export your accounts, convert, and drop the result straight into your target tool.
Privacy and security
Everything runs in your browser memory. Session JSON, access tokens and refresh tokens never leave your device — there is no server-side processing, no logging, and no persistence. Close the tab and the data is gone.
Because the tool only reads what you paste, it is safe to use with real credentials. Still, treat access tokens as secrets: do not share converted output publicly, and rotate any token you suspect was exposed.
Frequently asked questions
Is my session data uploaded anywhere?
No. All parsing and conversion happens entirely in your browser. Nothing is sent to a server, stored, or logged.
What input does it accept?
A JSON object or array containing a ChatGPT session. The converter looks for accessToken under many common keys (accessToken, access_token, tokens.accessToken, credentials.access_token) and accepts camelCase or snake_case fields.
What if my session has no idToken?
The converter generates a synthetic id_token from the account ID, plan type and expiry found in the access token JWT, so downstream tools that expect an id_token keep working.
Can I convert multiple sessions at once?
Yes. Paste an array or upload several files. Every session-like object is collected and converted, and CPA output with multiple accounts can be downloaded as a ZIP archive.
What is CPA expired +24h?
It forces the expired field to now plus 24 hours, which is useful when the target system rejects already-expired tokens during import.
What does "remove id_token" do?
It strips id_token, idToken and id_token_synthetic fields from the entire output document, for tools that do not need or should not receive an id_token.
How are priorities calculated?
Each account gets a priority based on the current date relative to a fixed epoch, so newer imports sort predictably without manual tuning.