Skip to content
InternetPressure.io
OFFLINE

Developers

Public API

The website is built on the same API. It is free and rate-limited (120 requests per minute per IP, 4 concurrent SSE connections), returns JSON with UTC ISO-8601 timestamps and plain numbers, and is served with Cache-Control: no-store except long-range history (30 s). Unknown scopes return 404 {"error":"not_found"}. Higher limits, webhooks and historical exports: contact@spboucher.ai.

Quick start
# the index right now
curl -s https://www.internetpressure.io/api/v1/pressure/global | jq '{pressure, level, delta_1h, confidence}'

# 24 h of global pressure, 1-minute step
curl -s "https://www.internetpressure.io/api/v1/pressure/history?scope_type=global&range=24h" | jq '.summary'

# a country, an ASN, a service
curl -s https://www.internetpressure.io/api/v1/pressure/country/CA | jq '.pressure'
curl -s https://www.internetpressure.io/api/v1/pressure/asn/13335 | jq '.bgp'
curl -s https://www.internetpressure.io/api/v1/service/cloudflare | jq '{observed, vendor_status, discrepancy}'

# live stream (SSE)
curl -N https://www.internetpressure.io/api/v1/live
Endpoints
27 public routes
GETReturns
/api/v1/statusInstrument health: engine, ingest, probes, BGP, stores, internal_status.
/api/v1/pressure/globalThe index: pressure, level, Δ1h/Δ24h, velocity, acceleration, volatility, confidence, coverage, components with drivers, explain rows, 1-h sparkline.
/api/v1/pressure/historyServer-side aggregated series for any scope.
/api/v1/pressure/regionsAll regions with pressure, level, Δ1h, component scores, probes, targets, coverage.
/api/v1/pressure/region/{id}Region detail: 24-h history, 7-d baseline, incidents, top ASNs/services, probes, latency matrix.
/api/v1/pressure/countriesCountries where we hold at least one probe or anchored target — nothing else is pretended.
/api/v1/pressure/country/{cc}Country detail with history, baseline, incidents, ASNs, services, probes and targets.
/api/v1/asnsAutonomous systems index.
/api/v1/pressure/asn/{asn}ASN detail: components, BGP stats and 24-h series, regions observed, targets, incidents.
/api/v1/servicesServices index with observed availability and vendor status indicator.
/api/v1/service/{slug}Observed vs vendor, discrepancy, probe × target matrix, affected regions.
/api/v1/targetsTarget registry.
/api/v1/target/{id}Target detail: latest measurement per probe, 24-h series, DNS resolvers.
/api/v1/probesProbe network: status, last seen, version, uptime, clock offset, capabilities.
/api/v1/incidentsIncident list.
/api/v1/incident/{slug}Incident detail: timeline, evidence, series with global overlay, probes, targets, BGP, annotations.
/api/v1/frontsActive Pressure Fronts (source → destination arcs).
/api/v1/bgp/statsBGP rates vs baseline, collectors, 1-h series, top origins.
/api/v1/latencyGlobal latency medians, inter-region matrix, per-probe view.
/api/v1/tickerThe live ticker counters.
/api/v1/routesRoute Explorer: baseline vs current traceroute, diff, 24-h hashes, 7-d share.
/api/v1/routes/pairsSampled (probe, target) pairs with 24-h change counts.
/api/v1/history/summaryHistory explorer summary.
/api/v1/explainDeep explainability: components → signals with current, median, MAD, robust z, samples, stress, contribution.
/api/v1/methodologyPublic copy of the scoring configuration.
/api/v1/searchSearch countries, regions, ASNs, services, targets, incidents.
/api/v1/liveServer-Sent Events: snapshot, global_pressure_update, regional_pressure_update, ticker, bgp_stats, probe_stats, incident_created/updated, service_degradation, front_update, internal_status.
Levels & status

Every level field is one of calm ≤10 · normal ≤25 · elevated ≤40 · stressed ≤55 · high ≤70 · severe ≤85 · extreme ≤100; level_label is its human label.

internal_status is ok, degraded (too few fresh probes, stale BGP or unhealthy stores — the score is frozen and stale: true) or stale (engine has not run). Clients must show a degraded state instead of interpreting a frozen number.