API quickstart
From zero to a real authenticated request in about five minutes. Each step is short and runnable. When you want to poke at endpoints without writing code first, the playground runs live requests with no account.
Prefer the reference layout? The full developer docs have the endpoint table and OpenAPI spec.
Get an API key
Create a free account and generate a key from the dashboard. Keys start with ow_ and are shown once at creation.
Make your first request
Send the key on every request as Authorization: Bearer <key> (or X-API-Key: <key>). This fetches one object by its NORAD catalog number.
curl -H "Authorization: Bearer ow_your_key_here" \ "https://www.orbitalwiki.com/api/v1/satellites/25544"
Want to try it without writing code? Run it in the playground →
Search the catalog
Free-text search matches name, operator, and country. A bare number is treated as a NORAD id.
curl -H "Authorization: Bearer ow_your_key_here" \ "https://www.orbitalwiki.com/api/v1/search?q=starlink&limit=10"
Handle pagination
List endpoints take limit (1–100, default 20) and offset (default 0). Each response also includes meta.next / meta.prev URLs - follow those instead of computing offsets yourself.
# First page (default limit is 20) curl -H "Authorization: Bearer ow_your_key_here" \ "https://www.orbitalwiki.com/api/v1/satellites?limit=20&offset=0" # Next page: bump offset by the limit, or just follow meta.next in the response curl -H "Authorization: Bearer ow_your_key_here" \ "https://www.orbitalwiki.com/api/v1/satellites?limit=20&offset=20"
Inspect the claims behind a field
Every value is backed by source claims. A single-object response includes a claims[]array: each entry is one source's assertion about one field, with its own confidence and source reference.
{
"data": {
"norad_cat_id": 25544,
"name": "ISS (ZARYA)",
"operational_status": "OPERATIONAL",
"claims": [
{
"field": "operational_status",
"value_text": "OPERATIONAL",
"confidence": "CONFIRMED",
"source_id": "…",
"source_record": "…"
}
]
}
}Try a real record: the ISS (25544).
Understand confidence levels
Each claim carries a confidence. These are the values you will see in responses:
- CONFIRMED
- Multiple independent sources agree.
- HIGH
- A single authoritative source, no conflict.
- MEDIUM
- A reasonable source, not independently corroborated.
- LOW
- Weak or derived; treat with caution.
- CONFLICTING
- Sources disagree, the response surfaces the conflict rather than hiding it.
How each level is assigned is documented in full on the methodology page.
Handle rate limits
The free tier allows 1,000 requests/day at up to 10/second. Paid tiers raise this to 50,000/day (Builder) and 250,000/day (Business).
Read these response headers
X-RateLimit-LimitYour daily quota.X-RateLimit-RemainingRequests remaining today.X-RateLimit-ResetUnix timestamp when the window resets.Retry-AfterSeconds to wait (only on 429 responses).A 429 means you are over the limit, back off until Retry-After seconds have passed.
Attribute the data
The catalog is an open database. When you publish anything built on it, you must attribute OrbitalWiki and its upstream sources. Every API response also carries X-OrbitalWiki-License and X-OrbitalWiki-Sources headers.
Read the canonical terms on the license page and see the upstream providers on sources.
Error-code reference
| Status | Meaning | Details |
|---|---|---|
401 | Unauthorized | No key or malformed header. Hint: send Authorization: Bearer ow_… |
403 | Forbidden | Key revoked or account suspended. |
404 | Not Found | Object does not exist, or no orbital elements available for this NORAD ID. |
429 | Rate Limited | Daily or burst limit exceeded. Check X-RateLimit-Remaining and wait Retry-After seconds. |
503 | Service Unavailable | API temporarily paused or auth misconfigured. |
All error bodies: { "error": "...", "hint": "..." }
That is the whole loop: key → request → search → paginate → claims → confidence → limits → attribution. Next, browse the full endpoint reference or open the OpenAPI spec.