APISpotlight
中文

🧪 Testing methodology

Every number on this site is reproducible: the method is documented here and the scripts are open source (scripts/*.py), so the data shown is the data stored. The definitions below map one-to-one onto what the pages display.

🧪 Test nodes (an honest statement of the single-node limitation)

  • ·🇨🇳 A local machine in mainland China: the data source for the "reachable in China" column (the network where the development machine sits, not a dedicated line);
  • ·🌍 GitHub Actions runner (overseas, location scheduled by GitHub): the data source for latency / success_rate, running automatically every 6 hours;
  • ·Both viewpoints are observations: cross-border networks vary by time and route (visibility, routing and rate limiting can all change), so neither is an official guarantee.

📏 Sampling and decision rules

  • ·Each site receives a GET request to its {api_base}/models endpoint, and the median of 3 samples is reported as latency;
  • ·Success rate = share of requests with a status code below 500 and not 404;
  • ·401/403 = the service is reachable but no test key is configured (counted as success); 404 = the endpoint is misconfigured (counted as failure);
  • ·A single request times out after 10s with a concurrency cap of 8; one site timing out does not affect the others.

⏰ Update frequency

  • ·GitHub Actions cron: probes run automatically every 6 hours (UTC 02:00 / 08:00 / 14:00 / 20:00, i.e. +8 for Beijing time);
  • ·Metric changes are written back to the repository automatically and trigger a deployment;
  • ·Data files are replaced atomically (temp file + os.replace) with a .bak backup kept, so what the frontend shows is what is stored.

🔐 Authenticity probe (Phase 3) decision rules

  • ·Temperature sampling (default 0.3 / 0.7 / 1.3) plus fingerprint comparison of self-reported ID / token length / drift / repeat ratio;
  • ·When the fingerprint baseline is not calibrated (calibrated=false) the result is always reported as "⏳ Not calibrated" — never guessed;
  • ·The calibration baseline must come from an official direct channel (scripts/authenticity_test.py --calibrate);
  • ·Any challenge or appeal can be raised as a GitHub issue (include a timestamp and we can reproduce the original samples).

💻 Using the data directly

  • ·Public JSON API (snapshotted at build time): curl https://www.apiops.cloud/data/platforms.json
  • ·Source repository (MIT License): https://github.com/klf8277/api-spotlight
← Back to home