# 2s.io Space Satellite Catalog Search

> 2s.io Space Satellite Catalog Search is a paid API for AI agents from 2s.io, paid per call via x402, $0.0012/call, status unknown (last checked 2026-09-14).

Search and filter the US Space Force SATCAT catalog of ~69,000 Earth-orbiting objects (satellites, rocket bodies, debris) with orbital parameters

## Facts

- Endpoint: GET https://2s.io/api/space/satellites
- Price: $0.0012/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-io-space-satellite-catalog-search-ba3bf968
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_MxmBD2_UrkDDOMtouBVl5

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability 2s-io-space-satellite-catalog-search-ba3bf968
```

Example prompt: Search the satellite catalog for all active Starlink payloads currently on orbit — show me up to 50 results with their NORAD IDs, launch dates, and orbital parameters like inclination and apogee.

## When to prefer this

Use this endpoint when you need to query, count, or filter the comprehensive SATCAT catalog of all tracked Earth-orbiting objects by name, owner, type, launch year, or on-orbit status. Prefer over general space APIs when you need NORAD-authoritative data with orbital parameters and the full ~69,000-object scope including debris and rocket bodies, not just active satellites.

## Known failure modes

- Invalid 'type' enum value returns 400 bad request
- No results matching filters returns empty array with total=0
- Numeric noradId not found returns empty result set
- Invalid owner code may return no results rather than an error
- Pagination offset beyond total count returns empty results array
- launchYearFrom > launchYearTo may return empty or error
- Limit exceeding 100 returns 400 bad request

## How this service works

Search the catalog of every cataloged Earth-orbiting object — ~69,000 satellites, rocket bodies, and debris tracked by US Space Force / 18 SDS (via CelesTrak SATCAT). Filter by name (q, e.g. "starlink"), owner/launching country (owner — code like US/PRC/CIS or a name like "china"), object type (type = payload | rocket body | debris | unknown), launch-year range (launchYearFrom/launchYearTo), international/COSPAR designator prefix (intlDesignator, e.g. "2024-"), on-orbit vs decayed (onOrbit), or exact NORAD number (noradId). Each result carries the NORAD id, name, international designator, object type, owner + resolved country, launch date + site, decay date (null = still in orbit), and orbital parameters (period, inclination, apogee, perigee). The envelope total is the full count matching your filter — so onOrbit=true&type=payload answers "how many active satellites are up there", and owner=PRC tells you who launched them. For a satellite's live sub-point position, pass its noradId to /api/space/satellite.

## Output

A JSON envelope with a 'total' count matching the filter and an array of catalog objects, each containing NORAD ID, name, international/COSPAR designator, object type (payload/rocket body/debris/unknown), owner and resolved country name, launch date and site, decay date (null if still in orbit), and orbital parameters including period, inclination, apogee, and perigee.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "q": "starlink",
   "type": "payload",
   "limit": 25,
   "onOrbit": "true"
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "queryParams"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "properties": {
      "q": {
       "type": "string",
       "description": "Name substring match (e.g. \"starlink\", \"iss\")."
      },
      "type": {
       "type": "string",
       "description": "Object type: payload | rocket body | debris | unknown."
      },
      "limit": {
       "type": "integer",
       "maximum": 100,
       "minimum": 1,
       "description": "Max rows (default 25)."
      },
      "owner": {
       "type": "string",
       "description": "Owner/launching country — SATCAT code (US, PRC, CIS, ESA…) or a name (\"china\")."
      },
      "offset": {
       "type": "integer",
       "minimum": 0,
       "description": "Pagination offset."
      },
      "noradId": {
       "type": "integer",
       "description": "Exact NORAD catalog number."
      },
      "onOrbit": {
       "enum": [
        "true",
        "false"
       ],
       "type": "string",
       "description": "true = still in orbit; false = decayed/reentered."
      },
      "launchYearTo": {
       "type": "integer",
       "description": "Latest launch year (inclusive)."
      },
      "intlDesignator": {
       "type": "string",
       "description": "International/COSPAR designator prefix (e.g. \"2024-\")."
      },
      "launchYearFrom": {
       "type": "integer",
       "description": "Earliest launch year (inclusive)."
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-io-space-satellite-catalog-search-ba3bf968/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
