Last updated 2026-10-16

CCSub Changelog

User-facing changes to the CCSub website and API, newest first: newly accepted model IDs, compatibility fixes for Claude Code, Codex and other tools, tool-call fixes, web search and image generation, billing and quota rule changes, and performance work — 35 entries so far.

October 2026

  1. New

    Model ID claude-sonnet-5-5 is now accepted

    You can now set claude-sonnet-5-5 in your config (it used to return 404); the dotted form claude-sonnet-5.5 and the [1m] suffix work too. It is priced the same as claude-sonnet-5: $3 input / $15 output per million tokens.

    Related page
  2. Fixed

    Dashboard "today" stats now start at midnight Beijing time

    Today's requests and spend on the dashboard used to be counted from 8:00 Beijing time, so they did not match the monthly plan's daily quota, which resets at midnight Beijing time. Both now use the same day boundary.

  3. Improved

    Faster dashboard home and a complete 7-day usage chart

    The dashboard no longer sums your entire request history every time it opens, and the remaining stats load in parallel. The 7-day usage chart is now aggregated by hour on the server — heavy users previously saw only their latest 50 requests (often just today), and now get the full 7-day trend.

  4. Fixed

    Model name variants are now billed at the matching model's price

    Claude model names written with spaces, dots, a date suffix or a [1m] suffix (for example claude opus 4.8 or claude-haiku-4-5-20251001) are now billed at the price of the normalized model ID. GPT-family aliases sent by tools such as Codex (for example gpt-5-codex) are billed at the listed price of the model they map to. Only new requests are affected; past charges are unchanged.

    Related page
  5. New

    GPT-6 / GPT-5.6 variant names from the Codex model menu now work

    gpt-6-sol, gpt-6-luna, gpt-6.1 and gpt-6.1-sol are now in the model list, and gpt-6.1-codex (sent by Codex exec mode) is accepted. gpt-5.6-sol, gpt-5.6-luna and gpt-5.6-terra now have their own price entries. All of these model IDs are priced at $5 input / $15 output per million tokens.

    Related page
  6. Fixed

    Codex: support for the new Responses-Lite request format

    Newer Codex builds send some models a slimmer request where tool definitions live in an additional_tools item inside input and the top-level tools array is empty. Those tools used to be dropped, so Codex replied that no tools were available and could not run anything. They are now merged in correctly.

  7. Fixed

    Codex: free-form tools such as exec and apply_patch run again

    In code mode, exec and apply_patch are free-form (custom) tools that take raw text instead of JSON arguments. Their calls used to come back as regular function calls, which Codex rejected. They are now returned as custom_tool_call items.

  8. Fixed

    Codex: namespaced tool calls (MCP and others) keep their namespace

    Codex looks tools up by namespace plus name, and MCP tools live in their own namespaces. Tool calls used to come back without the namespace, so Codex could not find the tool. The namespace is now preserved.

  9. Improved

    Leaner request path and lower server overhead

    Paths such as /v1/* are no longer forwarded a second time inside the server, removing an extra internal HTTP hop and the 30-second timeout that came with it. A CPU-heavy computation that ran on every request is now cached, noticeably reducing server load.

  10. Fixed

    Concurrency slots are now released after certain errors

    Some 4xx errors, and image requests that were re-dispatched, did not give back the concurrency slot they held. After the service had been running for a long time, this could make later requests queue up or fail. Fixed.

  11. Fixed

    Automatic failover, and no more misleading “insufficient balance” errors

    When one serving path is temporarily unavailable, the request is retried on another one automatically. If it still fails you get a 503 that says it is not a problem with your balance, so it cannot be confused with your own account running out of credit.

  12. Fixed

    Long non-streaming replies are no longer cut off at around 30 seconds

    A non-streaming request only returns once the whole reply has been generated. Requests that took longer than about 30 seconds used to be dropped (clients saw “socket hang up”). The wait limit has been raised substantially, so long-context, long-output non-streaming requests now complete.

  13. New

    Model ID claude-haiku-5-5 is now accepted

    You can now set claude-haiku-5-5 in your config (it used to return 404); the dotted form claude-haiku-5.5 and the [1m] suffix work too. It is priced the same as claude-haiku-4-5: $0.8 input / $4 output per million tokens.

    Related page
  14. Fixed

    USDT top-ups on BSC, Ethereum and Polygon confirm automatically again

    On-chain confirmation for these three networks had stopped working, so payments had to be credited by hand. Automatic confirmation is back, each network now has several query nodes as backups, and lookup errors are logged instead of being treated as “no transfer received”.

  15. Fixed

    Monthly plan daily quota now resets at midnight Beijing time everywhere

    Some parts of the system used to treat a “day” as starting at 00:00 UTC (08:00 Beijing time), which did not match the documented reset at midnight UTC+8. Billing, quota display, image generation and the daily reset now all use midnight Beijing time.

    Related page
  16. Improved

    After the daily plan quota runs out, usage moves to your balance — with a clear message when both are gone

    Once today's plan quota is used up, further requests are charged to your account balance. When both the quota and the balance are exhausted, requests return 402 with a message saying today's quota is used up and resets at midnight Beijing time, plus a top-up link.

    Related page
  17. Improved

    The request that crosses zero is billed in full; the dashboard shows the amount owed

    When your balance is nearly empty, the request that crosses zero is billed for its actual usage, so the balance can go slightly negative; the difference is offset automatically on your next top-up. The dashboard shows it as an amount owed. New requests are not accepted while the balance is at or below zero.

September 2026

  1. Fixed

    Occasional 400 errors in multi-turn tool use with thinking enabled

    With thinking enabled, multi-turn conversations that used tools sometimes failed with a 400 error, especially when the client split one turn's text and tool call into two adjacent messages. The request is now completed and the adjacent messages are merged before sending.

  2. Fixed

    Web search respects max_uses and no longer claims it “can't browse”

    The web_search tool now honors the client's max_uses setting (default 5, at most 10). Once the limit is reached it answers from the results it already has instead of searching again and burning tokens. Occasional “I can't access the internet” replies in streaming mode are fixed.

  3. Improved

    English site fully translated; home and pricing content render directly

    The pricing, partner and contact pages, header, footer and model cards are now translated on the English site. Home and pricing page content is rendered on the server, so it shows up immediately instead of waiting for scripts to load.

  4. Improved

    Web search moves to a new primary search service with automatic fallback

    web_search now uses a new primary search service and falls back to a backup automatically when the primary returns nothing or is unavailable. Internal search rounds are now recorded in your usage log under the model name you requested.

  5. Fixed

    Claude Code auto mode checks no longer retry in a loop

    Claude Code's auto mode sends small check requests with a very low output limit. These sometimes came back empty, making the client retry repeatedly and slowing things down. They now return a result directly.

  6. New

    Model IDs claude-opus-5-5 and claude-fable-5-1 are now accepted

    Newer Claude Code versions send these two model IDs by default, and they used to return 404. Both work now, including the dotted forms (claude-opus-5.5, claude-fable-5.1) and the [1m] suffix. See the model list for prices.

    Related page
  7. Fixed

    Tool calls occasionally arriving as raw markup text

    In some requests, agents such as Codex received a block of markup text instead of an executable tool call, so nothing actually happened. That text is now filtered out, and when a request carries no tool definitions the model answers in plain text instead.

  8. Fixed

    cc-switch one-click import now gives Codex the /api/v1 endpoint

    Importing a key into cc-switch from the CCSub API keys page used to set Codex's endpoint to the bare domain, which then failed with 404. Codex now gets https://www.ccsub.net/api/v1; Claude Code still gets https://www.ccsub.net.

    Related page
  9. Fixed

    /responses and friends now work when base_url is just the domain

    With base_url set to the bare https://www.ccsub.net, the /responses path used by Codex and the /chat/completions path used by OpenAI SDKs were caught by the website and returned a full HTML page. These paths now go straight to the API. The recommended value is still https://www.ccsub.net/api/v1.

    Related page
  10. Improved

    Dashboard shows cache read/write tokens; billing notes corrected

    “Today's tokens” on the dashboard now uses the same totals as billing and lists input, cache read, cache write and output separately, so you can reconcile against your charges. Billing notes across the site now state the actual rule: for standard accounts, cache read and write tokens are billed at the model's input price.

    Related page
  11. Fixed

    Overloads are retried automatically and surface as a real 503

    Under overload, a response could start with HTTP 200 and then report an “overloaded” error inside the stream, which clients do not retry. Such requests are now retried on another path first; if that still fails you get a genuine 503 that clients can retry normally.

  12. Improved

    Docs now use one OpenAI-compatible base URL

    Every OpenAI-compatible base URL in the docs is now written as https://www.ccsub.net/api/v1, so different pages no longer disagree.

    Related page
  13. New

    Model ID gpt-6-astra is now accepted

    You can set gpt-6-astra as the model in Codex CLI and other tools; variants such as gpt-6 are treated as this model ID. See the model list for pricing.

    Related page
  14. Fixed

    USDT amounts are now converted from the order's RMB price

    USDT quotes for monthly plans were mistakenly based on the plan's USD quota (for example 900 USDT for a $900 quota), so paying the real price left the order stuck as underpaid. Quotes and verification now convert from the order's RMB price.

August 2026

  1. New

    Image generation accepts gpt-image-2 and gpt-image

    Using gpt-image-2 or gpt-image as the model for image generation used to be treated as a chat model and fail. These names now generate images as expected.

  2. Fixed

    Removed the misleading “net credit” card from the credit history page

    The old “net credit = top-ups − spending” card counted monthly plan purchases as balance, which made it look like money had gone missing. The page now shows your account balance, today's remaining plan quota (with reset time and expiry date) and spending over the last 30 days separately.

  3. Fixed

    Codex requests converted by cc-switch got tool calls as text

    Requests converted by cc-switch sometimes carried tool_choice without any tool definitions, and the reply contained tool calls as plain text that could not run. Such requests are now cleaned up before sending (with a further fix on September 23).

  4. Fixed

    Claude model IDs with a date suffix no longer return 404

    Claude Code often sends model IDs with a date suffix (for example claude-fable-5-20250929), which could be rejected as unknown and return 404. They are now recognized by their base model ID.

Get started with CCSub

Create an account and an API key, then grab the config for Claude Code, Codex CLI or your tool of choice from the config generator.