Free tool · no login · no key

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/models

Click “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 seeWhat it meansNext step
Reachable, steady timesThe 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 slowerAttempt 1 includes the DNS lookup and TLS handshake — that's normal.Go by the p50.
Reachable, but slow or erratic every timeUsually the proxy node or your local network quality.Turn the proxy off or switch networks and compare.
Some attempts failAn 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 errorThe 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 outRequests went out but nothing came back within 10 seconds.Most likely a stuck proxy or network; compare on another network.
HTTP 5xxThe 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_PROXY is 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_PROXY that 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)

Round trip with a timing breakdown
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/models

HTTP 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.

Show this terminal's proxy variables
env | grep -i _proxy
Repeat the request without the proxy
curl --noproxy '*' -sS -o /dev/null -w "HTTP %{http_code}  total %{time_total}s\n" https://www.ccsub.net/api/v1/models
Clear proxy variables for this terminal only
unset HTTP_PROXY HTTPS_PROXY ALL_PROXY http_proxy https_proxy all_proxy

Fails 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)

Round-trip timing
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/models

Type 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.

Show proxy variables and the system proxy
Get-ChildItem Env: | Where-Object Name -match 'proxy'
netsh winhttp show proxy
Clear proxy variables for this window only
Remove-Item Env:HTTP_PROXY, Env:HTTPS_PROXY, Env:ALL_PROXY -ErrorAction SilentlyContinue

Test 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:

Anthropic Messages API
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.

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.