Index/developers/quickstart

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.

#01

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.

Open the dashboard → API keys

#02

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, first request
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 →

#03

Search the catalog

Free-text search matches name, operator, and country. A bare number is treated as a NORAD id.

curl, search
curl -H "Authorization: Bearer ow_your_key_here" \
  "https://www.orbitalwiki.com/api/v1/search?q=starlink&limit=10"
#04

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.

curl, pagination
# 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"
#05

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.

json, response shape (truncated)
{
  "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).

#06

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.

#07

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.

#08

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.

#09

Error-code reference

StatusMeaningDetails
401UnauthorizedNo key or malformed header. Hint: send Authorization: Bearer ow_…
403ForbiddenKey revoked or account suspended.
404Not FoundObject does not exist, or no orbital elements available for this NORAD ID.
429Rate LimitedDaily or burst limit exceeded. Check X-RateLimit-Remaining and wait Retry-After seconds.
503Service UnavailableAPI 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.