# 2s.io Asteroid & Comet Sky Position Observer

> 2s.io Asteroid & Comet Sky Position Observer is a paid API for AI agents from 2s.io, paid per call via x402, $0.00288/call, status unknown (last checked 2026-09-15).

Compute the current or future sky position, brightness, and visibility of any asteroid or comet from a given observer location and time

## Facts

- Endpoint: GET https://2s.io/api/space/observe
- Price: $0.00288/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-io-asteroid-comet-sky-position-observer-52d0d894
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_mc0ri_ZGb8A5w-YYpv3Hq

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-asteroid-comet-sky-position-observer-52d0d894
```

Example prompt: Where is asteroid 433 Eros in the sky right now, and can I see it tonight from my backyard at latitude 40.7, longitude -74.0? Also tell me when the best viewing window is in the next 24 hours.

## When to prefer this

Use this endpoint when you need to know the real-time or future sky position and observability of a specific asteroid or comet. It is purpose-built for small solar-system bodies (asteroids, comets, NEOs, PHAs) with observer-specific alt/az and visibility windows — not for planets, stars, or deep-sky objects. Prefer this over general planetarium APIs when you need JPL-validated orbital accuracy to <0.1 arcminute, apparent magnitude from the IAU H-G model, and 24-hour viewing window optimization for astrophotography planning.

## Known failure modes

- Unrecognized or misspelled body designation — returns error with no orbital data
- Body designation is valid but no JPL elements available — returns not-found error
- Invalid lat/lon range (lat outside ±90, lon outside ±180) — returns validation error
- Invalid ISO datetime format for 'at' parameter — returns parse error
- Body exists but is below detection threshold or has no magnitude data — magnitude may be absent

## How this service works

Compute where any asteroid or comet is in the sky and whether you can see it. Give a body (designation/number/name, e.g. "433 Eros", "Ceres", "2024 YR4") and optionally your lat/lon and a time (ISO, default now). Returns the body's identity (NEO/PHA flags, orbit class, absolute magnitude H), its geocentric right ascension + declination, the constellation it's in, geocentric + heliocentric distance (AU), solar phase angle, and its apparent visual magnitude (IAU H-G model — how bright it appears now). With lat/lon it adds altitude/azimuth, whether it's above your horizon, a visible-now flag (up AND sky dark), and the best viewing window in the next 24 hours (when it's highest during darkness). Orbital position is computed locally from JPL elements — VALIDATED against JPL Horizons to <0.1 arcminute. Stargazing, astrophotography planning, occultation/observation prep. For the body's static physical + orbital params see /api/space/body.

## Output

Returns the asteroid/comet's identity (NEO/PHA flags, orbit class, absolute magnitude H), geocentric right ascension and declination, constellation, geocentric and heliocentric distances in AU, solar phase angle, apparent visual magnitude computed via the IAU H-G model. With lat/lon also returns altitude, azimuth, whether it is currently above the horizon, a visible-now flag (above horizon AND sky dark), and the optimal 24-hour viewing window (highest elevation during darkness).

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "at": "2024-01-15T20:00:00Z",
   "lat": 40.7,
   "lon": -74,
   "body": "433 Eros",
   "altKm": 0
  }
 }
}
```

## 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": {
     "required": [
      "body"
     ],
     "properties": {
      "at": {
       "type": "string",
       "description": "Instant (ISO). Default: now."
      },
      "lat": {
       "type": "number",
       "maximum": 90,
       "minimum": -90,
       "description": "Observer latitude (for alt/az + visibility)."
      },
      "lon": {
       "type": "number",
       "maximum": 180,
       "minimum": -180,
       "description": "Observer longitude."
      },
      "body": {
       "type": "string",
       "description": "Asteroid/comet designation, number, or name."
      },
      "altKm": {
       "type": "number",
       "description": "Observer altitude in km (default 0)."
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-io-asteroid-comet-sky-position-observer-52d0d894/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)
