Basic
Free
100 requests / day
Evaluation & hobby
Get startedConnectivity Reliability Score API
A 0–100 connectivity reliability score for any coordinate — mobile network quality and satellite direct-to-cell fused into one go/no-go signal, with an A–F grade, the next satellite window, an explainable factor breakdown, and an honest confidence value. Satellite passes are computed live (SGP4); mobile quality is a quarterly Ookla aggregate — and every response labels which is which.
Score + A–F grade + a plain-English recommendation that names the more reliable network and the next satellite window — a launch/hold call, not a data dump.
Reliability is the best available network; a second network only adds a bounded redundancy bonus. A strong-mobile site stays strong, and primaryNetwork tells you which to ride.
Each DTC constellation (AST SpaceMobile, Lynk) is scored on its own, plus a combined best. Passes are propagated per request from fresh CelesTrak TLEs. Set altitude for drones.
Will my link hold along this corridor, and at what altitude? Score the route before you fly.
When does mobile drop out and satellite become the only option? Plan transmit windows around it.
Which sites need a satellite fallback provisioned? Triage by score and confidence.
Reliability is the best available network plus a bounded redundancy bonus from the second — never a penalty for having one:
overall = best + (100 − best) × (second / 100) × 0.4
best = higher of the mobile / satellite subscores
second = the other subscore (0 if only one network has data)
grades: A ≥ 85 · B ≥ 70 · C ≥ 50 · D ≥ 30 · F < 30 · N/A = no dataOokla speed tiles (US/CA/EU/JP/AU/NZ), aggregated by quarter — not real-time. The factor note shows the source quarter, e.g. (2025-Q1).
Passes are propagated live (SGP4). “Availability” is geometric — the % of a 6-hour window with a satellite ≥ 10° elevation — an upper bound on DTC service, not guaranteed coverage.
A separate ledger (capped 90) of how much real data backs the number. It’s honestly ~40 today — the Ookla tiles are about a year old and there’s no crowdsourced layer yet. It tells you where data is thin.
terrain / weather / congestion are declared planned placeholders (score: null) that don’t move the v1 number. A null score with gradeN/A is a real answer (200), not an error — we never invent coverage.
GET /api/v1/reliability
Gated & metered. Subscribe on RapidAPI — it forwards your call with a server-side proxy secret our gate verifies (and adds X-RapidAPI-Key / -Host). Defaultconstellation=auto scores the DTC set and returns a per-constellation breakdown.
| Parameter | Type | Default | Description |
|---|---|---|---|
lat | number | required | Latitude (−90 to 90) |
lng | number | required | Longitude (−180 to 180) |
at | string (ISO) | now | Score at an explicit/future time (SGP4 propagation) |
altitude | number (m) | 0 | Observer altitude — improves satellite line-of-sight for drones |
constellation | string | auto | auto (DTC set) · asts · lynk · starlink · oneweb |
curl 'https://satellite-pass-predictor.p.rapidapi.com/api/v1/reliability?lat=40.7128&lng=-74.006&constellation=auto' \
-H 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
-H 'X-RapidAPI-Host: satellite-pass-predictor.p.rapidapi.com'{
"location": { "lat": 40.7128, "lng": -74.006 },
"at": "2026-06-26T07:00:00Z",
"altitudeM": 0,
"constellation": "auto",
"score": 94,
"grade": "A",
"confidence": 41,
"primaryNetwork": "mobile",
"bestSatelliteWindow": { "start": "2026-06-26T07:03Z", "maxElevationDeg": 86, "durationMin": 8 },
"satellite": {
"score": 62,
"bestConstellation": "asts",
"constellations": [
{ "id": "asts", "label": "AST SpaceMobile…", "score": 62, "passCount": 49,
"coveragePercent": 45.8, "maxElevationDeg": 86, "note": "49 pass(es)/6h, 45.8% overhead…" },
{ "id": "lynk", "label": "Lynk", "score": 33, "passCount": 2, "coveragePercent": 3.9, … },
{ "id": "starlink", "label": "Starlink", "score": null,
"note": "DTC subset not separable from the 10k+ Starlink catalog in public TLEs." }
]
},
"factors": [
{ "key": "terrestrial", "label": "Mobile (LTE/5G)", "source": "ookla", "score": 92,
"role": "primary", "note": "in-cell, ~258 Mbps down, 45 ms (2025-Q1)" },
{ "key": "satellite", "label": "Satellite DTC", "source": "sgp4", "score": 62,
"role": "backup", "note": "Best: AST SpaceMobile — 45.8% overhead, max elevation 86°" }
// + terrain / weather / congestion (planned, score: null)
],
"recommendation": "Mobile is the more reliable network here (92/100). A satellite window opens around 07:03 UTC as backup.",
"warnings": []
}| Field | Type | Description |
|---|---|---|
score | 0–100 | null | Overall reliability. null = no real signal here yet (with a 200 status). |
grade | A–F | N/A | A ≥ 85 · B ≥ 70 · C ≥ 50 · D ≥ 30 · F < 30. |
confidence | 0–100 | How much REAL data backs the score (≤ 90 for a public-data-only answer). |
primaryNetwork | mobile | satellite | null | Which network to ride; the other is the backup. |
satellite | object | Combined satellite score + a per-constellation breakdown (each DTC constellation scored on its own). |
bestSatelliteWindow | object | null | Best upcoming pass: start, maxElevationDeg, durationMin. |
factors | array | Each input: score, source (ookla/sgp4/modeled), role (primary/backup/unavailable/planned), note. |
recommendation | string | Plain-English go/no-go call. |
warnings | array | Any missing or limited input. |
Shares your GroundOrbit RapidAPI subscription with the satellite endpoints — same keys, quotas and billing, handled by RapidAPI.
Free
100 requests / day
Evaluation & hobby
Get started$29/mo
10,000 requests / mo
Indie & small apps
Get started$99/mo
100,000 requests / mo
Production
Get started$299/mo
1,000,000 requests / mo
Scale
Get startedMobile quality: Ookla Open Data (quarterly, CC BY-NC-SA). Orbital data: CelesTrak (public domain), propagated with SGP4. Scores are computed estimates and should not be the sole input for safety-critical operations.