CCSub API Connectivity Check: Is the Endpoint Reachable From Your Network?
Click “Run check” and your browser sends 5 requests in a row to https://www.ccsub.net/api/v1/models (no key needed, nothing billed), then shows whether it is reachable plus the median (p50) and fastest round-trip time. If the browser gets through but your terminal reports “Connection error”, the terminal's proxy settings are almost certainly the cause — the commands below help you confirm it.
Endpoint
GET https://www.ccsub.net/api/v1/modelsClick “Run check” and your browser will send 5 requests in a row to the endpoint above. No login or API key is needed and nothing is billed.
How to read this
- The numbers depend on your local network and any proxy software — switching a proxy on or off or changing Wi-Fi will change them. They describe the path from you to the API, not how long a model takes to generate a reply.
- If the browser can reach the API but Claude Code or Codex in your terminal reports “Connection error”, ECONNREFUSED or ETIMEDOUT, the cause is almost always the terminal's proxy settings: the browser follows the system proxy while the terminal uses HTTP_PROXY / HTTPS_PROXY, and the two often disagree. Terminal test commands are below.
- If the browser can't reach it either, turn off your proxy software or try another network, then test again.
How to read the result
There is no universal “good” latency number; the check is most useful for comparison. Run it before and after toggling your proxy, switching networks or trying another device and the difference is obvious. Here is what the common outcomes mean.
| What you see | What it means | Next step |
|---|---|---|
| Reachable, steady times | The path from your network to the API works. | If the terminal still fails, inspect its proxy variables with the commands below. |
| Reachable, attempt 1 much slower | Attempt 1 includes the DNS lookup and TLS handshake — that's normal. | Go by the p50. |
| Reachable, but slow or erratic every time | Usually the proxy node or your local network quality. | Turn the proxy off or switch networks and compare. |
| Some attempts fail | An unstable network: packet loss or connections being reset. | Retest in a few minutes; if it persists, compare on another network. |
| Every attempt is a network error | The browser can't connect: proxy interference, DNS trouble or a corporate firewall. | Fully quit your proxy app, retest, then try a phone hotspot. |
| Every attempt times out | Requests went out but nothing came back within 10 seconds. | Most likely a stuck proxy or network; compare on another network. |
| HTTP 5xx | The network is fine; the server had a temporary error. | Retry later; if it keeps happening, email support@ccsub.net. |
Browser works, terminal doesn't: check proxy variables first
Browsers usually follow the system proxy (or your proxy app's “system proxy” switch), while Claude Code, Codex and npm in a terminal only read environment variables. The usual suspects:
- The proxy app has quit but
HTTPS_PROXYis still set in your terminal, pointing at a port nobody listens on — you get ECONNREFUSED. - The proxy variable holds a
socks5://URL. Claude Code's network configuration docs state it does not support SOCKS proxies; it needs an HTTP(S) proxy. - Both lowercase and uppercase variables are set with different values. Claude Code uses the first of
https_proxy,HTTPS_PROXY,http_proxy,HTTP_PROXYthat is set — maybe not the one you expect. - To reach CCSub directly while keeping the proxy for other sites, set
NO_PROXY=www.ccsub.net.
Test from the terminal (macOS / Linux)
curl -sS -o /dev/null -w "HTTP %{http_code} DNS %{time_namelookup}s TCP %{time_connect}s TLS %{time_appconnect}s TTFB %{time_starttransfer}s total %{time_total}s\n" https://www.ccsub.net/api/v1/modelsHTTP 200 means the API answered normally. DNS, TCP and TLS are cumulative timestamps: a slow DNS value points at name resolution, a big gap between TCP and TLS means a slow handshake, and total is the full round trip.
env | grep -i _proxycurl --noproxy '*' -sS -o /dev/null -w "HTTP %{http_code} total %{time_total}s\n" https://www.ccsub.net/api/v1/modelsunset HTTP_PROXY HTTPS_PROXY ALL_PROXY http_proxy https_proxy all_proxyFails through the proxy but works without it? The proxy is the problem. Fails both ways? It's the network. Clearing variables only affects the current window, so also check ~/.zshrc or ~/.bashrc for permanent settings.
Test from the terminal (Windows PowerShell)
curl.exe -sS -o NUL -w "HTTP %{http_code} DNS %{time_namelookup}s TLS %{time_appconnect}s total %{time_total}s\n" https://www.ccsub.net/api/v1/modelsType curl.exe, not curl: in Windows PowerShell 5.1, plain curl is an alias for Invoke-WebRequest and doesn't understand options like -w. curl.exe ships with Windows 10 and 11.
Get-ChildItem Env: | Where-Object Name -match 'proxy'
netsh winhttp show proxyRemove-Item Env:HTTP_PROXY, Env:HTTPS_PROXY, Env:ALL_PROXY -ErrorAction SilentlyContinueTest the real API with your key
The check above needs no key and only tells you whether the network path works. To confirm your key and the chat API as well, send a minimal request from a macOS / Linux terminal. It really calls a model, so it costs a few tokens:
curl https://www.ccsub.net/v1/messages \
-H "x-api-key: sk-your-key" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-haiku-4-5","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'A JSON reply containing content means the key and API both work; 401 means the key is wrong, and 402 means you are out of balance (with a monthly plan: both today's quota and your balance are used up).
FAQ
My browser can open CCSub, so why does Claude Code say “Connection error”?
The browser and the terminal use different network settings. Browsers usually follow the system proxy, while terminal programs only look at environment variables such as HTTPS_PROXY and HTTP_PROXY. A variable left over after you quit the proxy app, one pointing at a closed port, or one set to a socks5 address will all break the terminal. Use the commands on this page to inspect your terminal's proxy variables.
Can Claude Code use a SOCKS proxy?
According to Claude Code's network configuration docs, it does not support SOCKS proxies. It reads HTTP(S) proxy URLs from https_proxy, HTTPS_PROXY, http_proxy and HTTP_PROXY, using the first one that is set. If your variable says socks5://…, switch it to the HTTP port your proxy app provides, or unset the variables and connect directly.
Why is the first request so much slower than the rest?
The first request has to resolve DNS, open a TCP connection and complete the TLS handshake; the following requests reuse that connection and are usually much faster. The p50 (median) is a better number to look at than the first attempt.
Do I need an API key? Will this cost anything?
No. The check calls the public model-list endpoint /api/v1/models, which needs no login or key, runs no model and costs nothing.
Is this the same as how fast the model responds?
No. It measures one network round trip from you to the API. How long a model takes to answer also depends on the model ID, context size and output length — a long reply can take tens of seconds, which has nothing to do with network latency.
All 5 attempts failed. What now?
Fully quit your proxy app (use Quit from its menu, not just minimize) and test again; if it still fails, try another network such as a phone hotspot. Corporate networks sometimes block unfamiliar domains, so check with your network admin. If another network works, the problem is in the original network environment.
Related pages
Network looks good? Create a key and connect
Sign up for CCSub, create a key on the API Keys page, then grab your tool's config from the config generator.