Satellite Passes
Satellite Passes — keyless JSON API
Satellite Passes. Find satellite passes
We probe a documented GET and expect 2xx JSON — full uptime and health score. Open provider docs ↗
On our probe schedule. Uptime charts appear after the first check lands.
GET https://sat.terrestre.ar/openapi.json
{
"openapi": "3.0.3",
"info": {
"title": "Satellite Passes API",
"description": "Query next passes for a given satellite above you.",
"version": "0.1.0"
},
"servers": [
{
"url": "https://sat.terrestre.ar/"
},
{
"url": "http://0.0.0.0:8000/"
}
],
"paths": {
"/passes/{norad_id}": {
"get": {
"tags": [
"Satellite Passes"
],
"parameters": [
{
"name": "norad_id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 999999999
}
},
{
"name": "lat",
"in": "query",
"required": true,
"schema": {
"type": "number",
"minimum": -90,
"maximum": 90
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SatellitePass"
}
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"anyOf": [
{
"$ref": "#/components/schemas/ValidationError"
},
{
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
]
}
]
}
}
}
},
"default": {
"description": "Unexpected error"
}
}
}
}
},
"components": {
"schemas": {
"SatellitePass": {
"type": "object",
"properties": {
"rise": {
"$ref": "#/components/schemas/Event"
},
"culmination": {
"$ref": "#/components/schemas/Event"
},
"set": {
"$ref": "#/components/schemas/Event"
},
"visible": {
"type": "boolean"
}
},
"required": [
"visible"
]
},
"Event": {
"type": "object",
"title": "Event",
"required": [
"alt",
"az"
],
"properties": {
"alt": {
"type": "string",
"title": "Altitude",
"description": "Altitude above the horizon. In degrees."
},
"az": {
"type": "string",
"title": "Azimuth",
"description": "The angle between the satellite and the North. In degrees."
},
"az_octant": {
"type": "string",
"title": "Azimuth octant",
"enum": [
"N",
"NE"
]
},
"utc_datetime": {
"type": "string",
"title": "UTC date-time",
"format": "date-time"
},
"utc_timestamp": {
"type": "integer",
"title": "UTC timestamp",
"minimum": 0
},
"is_sunlit": {
"type": "boolean",
"title": "Is sunlit",
"description": "If satellite is being illuminated by the sun."
},
"visible": {
"type": "boolean",
"title": "Visible",
"description": "If the satellite will be probably visible, considering the sun is near the horizon, and the observer is at night."
}
}
},
"ValidationError": {
"type": "object",
"properties": {
"lat": {
"$ref": "#/components/schemas/FieldError"
},
"lon": {
"$ref": "#/components/schemas/FieldError"
},
"limit": {
"$ref": "#/components/schemas/FieldError"
},
"days": {
"$ref": "#/components/schemas/FieldError"
},
"visible_only": {
"$ref": "#/components/schemas/FieldError"
}
}
},
"FieldError": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}curl "https://sat.terrestre.ar/openapi.json"const res = await fetch("https://sat.terrestre.ar/openapi.json");
const data = await res.json();
console.log(data);import requests
res = requests.get("https://sat.terrestre.ar/openapi.json")
print(res.json())/openapi.jsonPROBEDSatellite Passes — keyless JSON API
/openapi.json?limit=5Paginated variant with limit parameter.
/passes/{norad_id}{Norad Id} — documented GET route.
/passes/<&Lt — documented GET route.
/passes/25544?lat=-34.9112212&Passes details by ID (example: 25544).
We probe a documented GET and expect 2xx JSON — full uptime and health score. Export includes every documented route below.
Not tracked yet. Shape-change history starts once this API joins our probe schedule.
Satellite Passes: common questions
Is Satellite Passes free to use?
Yes — Satellite Passes is a free science & space API. Free tier: Free — limits not published. Whether the free tier allows commercial use is unclear — check the provider docs.
Does Satellite Passes need an API key?
No — Satellite Passes needs no API key or signup. You can call it straight away; rate limits still apply (Unpublished).
Can I call Satellite Passes from the browser?
Yes — Satellite Passes returns CORS headers over HTTPS, so front-end code can fetch it directly with no backend proxy. Use the fetch snippet on this page, or hit "Run live" to try it now.
Is Satellite Passes up right now?
Satellite Passes is catalogued but not yet on our probe schedule, so we don't publish a live status for it. Check the provider's own status page or docs for its current state.