Документация› API и интеграции› Карта качества сети: публичный API

Карта качества сети: публичный API

Публичные эндпоинты агрегированной статистики по регионам России. Авторизация не требуется. Данные отображаются в интерактивном разделе /network-quality/.

Карта качества сети OpenSpeedTest

GET https://openspeedtest.ru/api/v1/network-quality
GET https://openspeedtest.ru/api/v1/network-quality/geometry

GET /api/v1/network-quality

Агрегированные метрики (скорость, пинг, джиттер, скоринг, ТОП провайдеров) по каждому региону карты. Окно данных фиксировано — 365 дней.

Параметры

ПараметрОбязательныйОписание
networkнетmobile (по умолчанию) или home
Параметр количества дней не поддерживается — окно всегда составляет 365 дней.

Пример

bashcurl "https://openspeedtest.ru/api/v1/network-quality?network=mobile"

Ответ (200)

json{
  "success": true,
  "network": "mobile",
  "days": 365,
  "cache_ttl": 86400,
  "cache_created_at": 1770000000,
  "cache_expires_at": 1770086400,
  "min_samples": 20,
  "geometry_regions": 89,
  "regions_with_data": 74,
  "eligible_regions": 60,
  "total_samples": 150000,
  "score_config": {
    "download_cap": 100.0,
    "upload_cap": 30.0,
    "ping_good": 50.0,
    "ping_bad": 180.0,
    "jitter_good": 15.0,
    "jitter_bad": 70.0
  },
  "items": [
    {
      "region_id": "moscow",
      "region": "Москва",
      "region_full": "Москва",
      "samples": 45210,
      "avg_download": 88.4,
      "avg_upload": 41.2,
      "avg_ping": 12.3,
      "avg_jitter": 3.1,
      "eligible": true,
      "score": 87.6,
      "providers": [
        {
          "provider_id": 42,
          "provider_name": "ООО Ростелеком",
          "rating_out_of_100": 81.2,
          "measurements": 12000,
          "link": "/provider/42/"
        }
      ]
    }
  ]
}
  • score — оценка региона (0–100); null, если замеров меньше min_samples (eligible=false).
  • providers — ТОП провайдеров региона.
  • Регионы без замеров тоже присутствуют (samples=0, score=null, providers=[]).

Кеширование

Ответ кешируется на сутки. Заголовки:

  • X-OpenSpeedTest-Cache: HIT | MISS-BUILT-DAILY
  • X-OpenSpeedTest-Cache-TTL: 86400
  • X-OpenSpeedTest-Cache-Expires: <unix>

При MISS первый запрос может выполняться дольше (пересчёт).

Ошибки

КодУсловиеТело
404Раздел карты временно отключён{"success":false,"error":"Not found"}
500Внутренняя ошибка{"success":false,"error":"Internal server error"}

GET /api/v1/network-quality/geometry

Отдаёт векторную геометрию карты в формате TopoJSON.

  • Параметров нет, авторизация не требуется.
  • Ответ (200) — объект {"type":"Topology","objects":{...},...}.
  • Кеширование: Cache-Control: public, max-age=86400, stale-while-revalidate=604800.
bashcurl "https://openspeedtest.ru/api/v1/network-quality/geometry" -o regions.topojson

Ошибки: 503 {"success":false,"error":"Map geometry is not installed"} — файл геометрии не установлен; {"success":false,"error":"Installed map geometry is invalid"} — файл повреждён или неполон.

Техническая деталь

Мобильные и домашние сети формируются одним пакетом и делят общий суточный кеш. Регионы сопоставляются с замерами по нормализованному названию; замеры, которые не удалось отнести к региону, учитываются в счётчике unmapped_samples. Порог min_samples задаётся настройками сервиса (по умолчанию 20). Для мобильных сетей применяется логарифмическая кривая оценки пропускной способности, для домашних — линейная.