---
type: "firecrawl-provider"
description: "NASA/JPL Solar System Dynamics and CNEOS data from the keyless ssd-api.jpl.nasa.gov API: asteroid and comet close approaches to Earth and other bodies, the Sentry impact-risk list and per-object impact details (Palermo and Torino scales, impact dates and probabilities), small-body lookup with orbit, physical parameters and discovery, filtered small-body lists from the SBDB query API, and fireball (bolide) events with location and energy."
use_when: "NASA/JPL Solar System Dynamics and CNEOS data from the keyless ssd-api.jpl.nasa.gov API: asteroid and comet close approaches to Earth and other bodies, the Sentry impact-risk list and per-object impact details (Palermo and Torino scales, impact dates and probabilities), small-body lookup with orbit, physical parameters and discovery, filtered small-body lists from the SBDB query API, and fireball (bolide) events with location and energy."
categories: "Public records"
capabilities: 6
credits_per_call: 5
---
# JPL Small-Body and CNEOS Data on Firecrawl Alexandria

NASA/JPL Solar System Dynamics and CNEOS data from the keyless ssd-api.jpl.nasa.gov API: asteroid and comet close approaches to Earth and other bodies, the Sentry impact-risk list and per-object impact details (Palermo and Torino scales, impact dates and probabilities), small-body lookup with orbit, physical parameters and discovery, filtered small-body lists from the SBDB query API, and fireball (bolide) events with location and energy.

- Categories: Public records
- Category index: [Public records category](https://alexandria.firecrawl.dev/agents/categories/public-records)
- Provider key: `ssd-api-jpl-nasa-gov`
- Access: Firecrawl credits
- Cost: 5 credits per call

## More

- [Human guide](https://www.firecrawl.dev/app/alexandria/ssd-api-jpl-nasa-gov)
- [OpenAPI spec](https://alexandria.firecrawl.dev/agents/providers/ssd-api-jpl-nasa-gov/openapi.json)

## Capabilities

- [Close approaches](https://alexandria.firecrawl.dev/agents/providers/ssd-api-jpl-nasa-gov/small-bodies/close_approaches): Asteroid and comet close approaches from JPL's CNEOS close-approach data (cad.api): by date window (default now to 60 days ahead), maximum distance in au or lunar distances (default 0.05 au, 0.2 au for one object), body (Earth by default, Moon, planets or all), one object's designation, PHA-only and H range. Each approach: designation and full name, time (TDB), distance in au, LD and km with 3-sigma bounds, relative and infinity velocity, H, known diameter and an SBDB link. One API request per call.
- [Fireballs](https://alexandria.firecrawl.dev/agents/providers/ssd-api-jpl-nasa-gov/small-bodies/fireballs): Fireball (bolide) events reported by US Government sensors from JPL CNEOS (fireball.api), newest first by default: peak-brightness time, latitude and longitude, altitude, entry velocity, total radiated energy and estimated impact energy in kilotons, optionally entry velocity components. Filter by date range, minimum impact or radiated energy, and require a location or altitude; sort by date, energy, impact energy, velocity or altitude. One API request per call.
- [Impact risk list](https://alexandria.firecrawl.dev/agents/providers/ssd-api-jpl-nasa-gov/small-bodies/impact_risk_list): Objects on JPL's Sentry impact-risk list (sentry.api summary table): each with cumulative impact probability, cumulative and maximum Palermo scale, maximum Torino scale, number of potential impacts and their year range, estimated diameter, H, entry velocity and last observation date. Filter by minimum Palermo scale, minimum impact probability, maximum H and recent observation; sorted by Palermo scale (default), probability, diameter, first year or last observation. One API request per call.
- [Impact risk object](https://alexandria.firecrawl.dev/agents/providers/ssd-api-jpl-nasa-gov/small-bodies/impact_risk_object): One object's Sentry impact assessment (sentry.api object table): status listed or removed (with the removal time, such as Apophis removed 2021-02-21), the probability-weighted summary (cumulative probability, Palermo and Torino scales, impact energy in Mt, diameter, mass, velocities, observation arc and computation time), and its potential impacts (date, probability, Palermo, Torino, energy) ordered by probability. One API request per call.
- [Small body](https://alexandria.firecrawl.dev/agents/providers/ssd-api-jpl-nasa-gov/small-bodies/small_body): One asteroid or comet from JPL's Small-Body Database (sbdb.api) by name, designation or SPK-ID: identity (designation, SPK-ID, full name, kind, NEO and PHA flags, orbit class, alternate designations), the current orbit (epoch, elements e, a, q, i, node, peri, M, tp, period, n, Q with 1-sigma uncertainties, Earth and Jupiter MOID, Tisserand parameter, condition code, data arc, observations), physical parameters (H, G, diameter, albedo, rotation period, spectral type, density ... with references) and discovery circumstances with the IAU citation. A name matching several objects fails with the candidates to choose from. One API request per call.
- [Small body query](https://alexandria.firecrawl.dev/agents/providers/ssd-api-jpl-nasa-gov/small-bodies/small_body_query): Lists of asteroids and comets matching constraints from JPL's SBDB query API (sbdb_query.api): kind, NEO/PHA group, numbered status, orbit classes, has satellites, excluding comet fragments, and field constraints written field|OP|value (EQ, NE, LT, GT, LE, GE, RG range, RE regex, DF defined, ND undefined), such as diameter|GT|100 or H|RG|15|18, combined with AND (or OR). Choose output fields by SBDB name (default spkid, full_name, pdes, name, kind, class, neo, pha, H, diameter, e, a, q, i, moid), sort by up to three fields, page with continuation. One API request per call.

## 1. Choose this provider when

NASA/JPL Solar System Dynamics and CNEOS data from the keyless ssd-api.jpl.nasa.gov API: asteroid and comet close approaches to Earth and other bodies, the Sentry impact-risk list and per-object impact details (Palermo and Torino scales, impact dates and probabilities), small-body lookup with orbit, physical parameters and discovery, filtered small-body lists from the SBDB query API, and fireball (bolide) events with location and energy.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "ssd-api-jpl-nasa-gov",
  "capability": "small-bodies/close_approaches",
  "options": {
    "date_max": "2029-12-31",
    "date_min": "2029-01-01",
    "designation": "99942"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `body` (string): Body approached (default earth). Example: `earth`
- `continuation` (string): Cursor from a previous call's continuation. Example: `<continuation>`
- `date_max` (string): Latest approach: YYYY-MM-DD, YYYY-MM-DDThh:mm:ss, now, or +D for D days ahead (default +60; 2200-01-01 with a designation). Example: `<date_max>`
- `date_min` (string): Earliest approach: YYYY-MM-DD, YYYY-MM-DDThh:mm:ss or now (default now; 1900-01-01 with a designation). Example: `<date_min>`
- `designation` (string): One object's designation or number, such as 99942, 2024 YR4 or 141P. Example: `<designation>`
- `h_max` (number): Only objects with H at most this (larger objects; H 22 is roughly 140 m). Example: `10`
- `h_min` (number): Only objects with H at least this (smaller objects). Example: `10`
- `limit` (number): Approaches per page. Example: `50`
- `max_distance_au` (number): Maximum nominal distance in au (default 0.05, or 0.2 with a designation). Example: `10`
- `max_distance_ld` (number): Maximum nominal distance in lunar distances, instead of max_distance_au. Example: `10`
- `min_distance_au` (number): Minimum nominal distance in au. Example: `10`
- `pha_only` (boolean): Only potentially hazardous asteroids. Example: `false`
- `sort` (string): Sort key; prefix - for descending. Example: `date`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "ssd-api-jpl-nasa-gov",
    capability: "small-bodies/close_approaches",
    options: {
      date_max: "2029-12-31",
      date_min: "2029-01-01",
      designation: "99942",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "ssd-api-jpl-nasa-gov",
  "capability": "small-bodies/close_approaches",
  "options": {
    "date_max": "2029-12-31",
    "date_min": "2029-01-01",
    "designation": "99942"
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "ssd-api-jpl-nasa-gov",
    "capability": "small-bodies/close_approaches",
    "options": {
      "date_max": "2029-12-31",
      "date_min": "2029-01-01",
      "designation": "99942"
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'ssd-api-jpl-nasa-gov/small-bodies/close_approaches' \
  --options '{"date_max":"2029-12-31","date_min":"2029-01-01","designation":"99942"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "ssd-api-jpl-nasa-gov",
  "capability": "small-bodies/close_approaches",
  "options": {
    "date_max": "2029-12-31",
    "date_min": "2029-01-01",
    "designation": "99942"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "ssd-api-jpl-nasa-gov",
  "capability": "small-bodies/close_approaches",
  "options": {
    "date_max": "2029-12-31",
    "date_min": "2029-01-01",
    "designation": "99942"
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "approaches": [
    {
      "body": "Earth",
      "designation": "99942",
      "diameter_km": 0.34,
      "diameter_sigma_km": 0.04,
      "distance_au": 0.000254090910419299,
      "distance_km": 38011,
      "distance_ld": 0.099,
      "distance_max_au": 0.000254112821017663,
      "distance_min_au": 0.000254068999976389,
      "fullname": "99942 Apophis (2004 MN4)",
      "h": 19.09,
      "jd_tdb": 2462240.407091969,
      "orbit_id": "220",
      "sbdb_url": "https://ssd.jpl.nasa.gov/tools/sbdb_lookup.html#/?sstr=99942",
      "time_tdb": "2029-04-13T21:46",
      "time_uncertainty": "< 00:01",
      "v_inf_km_s": 5.84135589753103,
      "v_rel_km_s": 7.42253895678452
    }
  ],
  "count": 1,
  "observed_at_ms": 1794422654882,
  "offset": 0,
  "query": {
    "body": "Earth",
    "date_max": "2029-12-31",
    "date_min": "2029-01-01",
    "designation": "99942",
    "max_distance": "0.2"
  },
  "source_url": "https://ssd-api.jpl.nasa.gov/cad.api?date-min=2029-01-01&date-max=2029-12-31&dist-max=0.2&des=99942&sort=date&limit=50&limit-from=0&diameter=true&fullname=true",
  "total": 1
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Close approaches

- Capability: `small-bodies/close_approaches`
- Description: Asteroid and comet close approaches from JPL's CNEOS close-approach data (cad.api): by date window (default now to 60 days ahead), maximum distance in au or lunar distances (default 0.05 au, 0.2 au for one object), body (Earth by default, Moon, planets or all), one object's designation, PHA-only and H range. Each approach: designation and full name, time (TDB), distance in au, LD and km with 3-sigma bounds, relative and infinity velocity, H, known diameter and an SBDB link. One API request per call.
- Instructions: 'Asteroids passing Earth this week', how close a named asteroid comes (Apophis in 2029), or approaches to the Moon or Mars. With a designation and no dates it covers 1900 to 2200.
- Cost: 5 credits per call
- Capability file: [Close approaches](https://alexandria.firecrawl.dev/agents/providers/ssd-api-jpl-nasa-gov/small-bodies/close_approaches)

Accepted options:
- `body` (string): Body approached (default earth). Example: `earth`
- `continuation` (string): Cursor from a previous call's continuation. Example: `<continuation>`
- `date_max` (string): Latest approach: YYYY-MM-DD, YYYY-MM-DDThh:mm:ss, now, or +D for D days ahead (default +60; 2200-01-01 with a designation). Example: `<date_max>`
- `date_min` (string): Earliest approach: YYYY-MM-DD, YYYY-MM-DDThh:mm:ss or now (default now; 1900-01-01 with a designation). Example: `<date_min>`
- `designation` (string): One object's designation or number, such as 99942, 2024 YR4 or 141P. Example: `<designation>`
- `h_max` (number): Only objects with H at most this (larger objects; H 22 is roughly 140 m). Example: `10`
- `h_min` (number): Only objects with H at least this (smaller objects). Example: `10`
- `limit` (number): Approaches per page. Example: `50`
- `max_distance_au` (number): Maximum nominal distance in au (default 0.05, or 0.2 with a designation). Example: `10`
- `max_distance_ld` (number): Maximum nominal distance in lunar distances, instead of max_distance_au. Example: `10`
- `min_distance_au` (number): Minimum nominal distance in au. Example: `10`
- `pha_only` (boolean): Only potentially hazardous asteroids. Example: `false`
- `sort` (string): Sort key; prefix - for descending. Example: `date`

Response schema example:
```json
{
  "approaches": [
    {
      "body": "Earth",
      "designation": "99942",
      "diameter_km": 0.34,
      "diameter_sigma_km": 0.04,
      "distance_au": 0.000254090910419299,
      "distance_km": 38011,
      "distance_ld": 0.099,
      "distance_max_au": 0.000254112821017663,
      "distance_min_au": 0.000254068999976389,
      "fullname": "99942 Apophis (2004 MN4)",
      "h": 19.09,
      "jd_tdb": 2462240.407091969,
      "orbit_id": "220",
      "sbdb_url": "https://ssd.jpl.nasa.gov/tools/sbdb_lookup.html#/?sstr=99942",
      "time_tdb": "2029-04-13T21:46",
      "time_uncertainty": "< 00:01",
      "v_inf_km_s": 5.84135589753103,
      "v_rel_km_s": 7.42253895678452
    }
  ],
  "count": 1,
  "observed_at_ms": 1794422654882,
  "offset": 0,
  "query": {
    "body": "Earth",
    "date_max": "2029-12-31",
    "date_min": "2029-01-01",
    "designation": "99942",
    "max_distance": "0.2"
  },
  "source_url": "https://ssd-api.jpl.nasa.gov/cad.api?date-min=2029-01-01&date-max=2029-12-31&dist-max=0.2&des=99942&sort=date&limit=50&limit-from=0&diameter=true&fullname=true",
  "total": 1
}
```

### Fireballs

- Capability: `small-bodies/fireballs`
- Description: Fireball (bolide) events reported by US Government sensors from JPL CNEOS (fireball.api), newest first by default: peak-brightness time, latitude and longitude, altitude, entry velocity, total radiated energy and estimated impact energy in kilotons, optionally entry velocity components. Filter by date range, minimum impact or radiated energy, and require a location or altitude; sort by date, energy, impact energy, velocity or altitude. One API request per call.
- Instructions: Recent meteor or bolide events, the largest fireballs (Chelyabinsk 2013 is about 440 kt), or fireballs in a date range.
- Cost: 5 credits per call
- Capability file: [Fireballs](https://alexandria.firecrawl.dev/agents/providers/ssd-api-jpl-nasa-gov/small-bodies/fireballs)

Accepted options:
- `date_max` (string): Latest event, YYYY-MM-DD or YYYY-MM-DDThh:mm:ss (UTC). Example: `<date_max>`
- `date_min` (string): Earliest event, YYYY-MM-DD or YYYY-MM-DDThh:mm:ss (UTC). Example: `<date_min>`
- `impact_energy_min_kt` (number): Minimum estimated impact energy, kilotons. Example: `10`
- `include_velocity_components` (boolean): Add Earth-centered entry velocity components. Example: `false`
- `limit` (number): Events to return. Example: `20`
- `radiated_energy_min` (number): Minimum total radiated energy in 10^10 J. Example: `10`
- `require_altitude` (boolean): Only events with a reported altitude. Example: `false`
- `require_location` (boolean): Only events with a reported location. Example: `false`
- `sort` (string): Sort key; prefix - for descending. Example: `-date`

Response schema example:
```json
{
  "count": 1,
  "events": [
    {
      "altitude_km": 23.3,
      "impact_energy_kt": 441,
      "latitude": 54.8,
      "longitude": 61.1,
      "radiated_energy_e10_j": 37500,
      "time_utc": "2013-02-15T03:20:26Z",
      "velocity_km_s": 18.6
    }
  ],
  "observed_at_ms": 1794422654888,
  "source_url": "https://ssd-api.jpl.nasa.gov/fireball.api?limit=20&date-min=2013-02-15&date-max=2013-02-16"
}
```

### Impact risk list

- Capability: `small-bodies/impact_risk_list`
- Description: Objects on JPL's Sentry impact-risk list (sentry.api summary table): each with cumulative impact probability, cumulative and maximum Palermo scale, maximum Torino scale, number of potential impacts and their year range, estimated diameter, H, entry velocity and last observation date. Filter by minimum Palermo scale, minimum impact probability, maximum H and recent observation; sorted by Palermo scale (default), probability, diameter, first year or last observation. One API request per call.
- Instructions: 'Which asteroids could hit Earth', the riskiest objects, or recently observed risk objects. Use impact_risk_object for one object's impact dates.
- Cost: 5 credits per call
- Capability file: [Impact risk list](https://alexandria.firecrawl.dev/agents/providers/ssd-api-jpl-nasa-gov/small-bodies/impact_risk_list)

Accepted options:
- `continuation` (string): Cursor from a previous call's continuation. Example: `<continuation>`
- `h_max` (number): Only objects with H at most this (larger objects). Example: `10`
- `limit` (number): Objects per page. Example: `20`
- `observed_within_days` (number): Only objects observed within this many days. Example: `10`
- `palermo_min` (number): Only objects whose cumulative Palermo scale is at least this, such as -3. Example: `10`
- `probability_min` (number): Only objects whose cumulative impact probability is at least this, such as 0.001. Example: `1`
- `sort` (string): Sort key, highest (or earliest year, newest observation) first. Example: `palermo`

Response schema example:
```json
{
  "count": 5,
  "objects": [
    {
      "designation": "29075",
      "diameter_km": 1.3,
      "first_year": 2880,
      "fullname": "29075 (1950 DA)",
      "h": 17.94,
      "impact_probability": 0.0003401,
      "last_observed": "2026-11-05",
      "last_year": 2880,
      "palermo_cumulative": -0.98,
      "palermo_max": -0.98,
      "potential_impacts": 1,
      "sbdb_url": "https://ssd.jpl.nasa.gov/tools/sbdb_lookup.html#/?sstr=29075",
      "torino_max": null,
      "v_inf_km_s": 14.1
    },
    {
      "designation": "101955",
      "diameter_km": 0.49,
      "first_year": 2178,
      "fullname": "101955 Bennu (1999 RQ36)",
      "h": 20.63,
      "impact_probability": 0.000571699999999996,
      "last_observed": "2020-10-3.80160",
      "last_year": 2290,
      "palermo_cumulative": -1.4,
      "palermo_max": -1.58,
      "potential_impacts": 157,
      "sbdb_url": "https://ssd.jpl.nasa.gov/tools/sbdb_lookup.html#/?sstr=101955",
      "torino_max": null,
      "v_inf_km_s": 5.9916984432395
    },
    {
      "designation": "2008 JL3",
      "diameter_km": 0.029,
      "first_year": 2027,
      "fullname": "(2008 JL3)",
      "h": 25.31,
      "impact_probability": 0.0001658147615,
      "last_observed": "2008-05-09",
      "last_year": 2122,
      "palermo_cumulative": -2.38,
      "palermo_max": -2.39,
      "potential_impacts": 44,
      "sbdb_url": "https://ssd.jpl.nasa.gov/tools/sbdb_lookup.html#/?sstr=2008%20JL3",
      "torino_max": 0,
      "v_inf_km_s": 8.41901237821941
    },
    {
      "designation": "1979 XB",
      "diameter_km": 0.66,
      "first_year": 2056,
      "fullname": "(1979 XB)",
      "h": 18.54,
      "impact_probability": 8.515158e-7,
      "last_observed": "1979-12-15",
      "last_year": 2113,
      "palermo_cumulative": -2.69,
      "palermo_max": -2.99,
      "potential_impacts": 4,
      "sbdb_url": "https://ssd.jpl.nasa.gov/tools/sbdb_lookup.html#/?sstr=1979%20XB",
      "torino_max": 0,
      "v_inf_km_s": 23.7606234552547
    },
    {
      "designation": "2000 SG344",
      "diameter_km": 0.037,
      "first_year": 2069,
      "fullname": "(2000 SG344)",
      "h": 24.79,
      "impact_probability": 0.002743395186,
      "last_observed": "2000-10-03",
      "last_year": 2122,
      "palermo_cumulative": -2.76,
      "palermo_max": -3.1,
      "potential_impacts": 300,
      "sbdb_url": "https://ssd.jpl.nasa.gov/tools/sbdb_lookup.html#/?sstr=2000%20SG344",
      "torino_max": 0,
      "v_inf_km_s": 1.35802744453748
    }
  ],
  "observed_at_ms": 1794422654884,
  "offset": 0,
  "query": {
    "h_max": null,
    "observed_within_days": null,
    "palermo_min": -3,
    "probability_min": null,
    "sort": "palermo"
  },
  "source_url": "https://ssd-api.jpl.nasa.gov/sentry.api?ps-min=-3",
  "total": 7
}
```

### Impact risk object

- Capability: `small-bodies/impact_risk_object`
- Description: One object's Sentry impact assessment (sentry.api object table): status listed or removed (with the removal time, such as Apophis removed 2021-02-21), the probability-weighted summary (cumulative probability, Palermo and Torino scales, impact energy in Mt, diameter, mass, velocities, observation arc and computation time), and its potential impacts (date, probability, Palermo, Torino, energy) ordered by probability. One API request per call.
- Instructions: The impact risk of a named asteroid such as 1950 DA (29075), 2000 SG344 or 2024 YR4, or whether it was removed from the risk list.
- Cost: 5 credits per call
- Capability file: [Impact risk object](https://alexandria.firecrawl.dev/agents/providers/ssd-api-jpl-nasa-gov/small-bodies/impact_risk_object)

Accepted options:
- `designation` (string, required): Designation or number, such as 29075, 2000 SG344 or 99942. Example: `<designation>`
- `limit` (number): Most probable potential impacts to return. Example: `25`

Response schema example:
```json
{
  "designation": "29075",
  "observed_at_ms": 1794422654886,
  "removed_at": null,
  "sbdb_url": "https://ssd.jpl.nasa.gov/tools/sbdb_lookup.html#/?sstr=29075",
  "source_url": "https://ssd-api.jpl.nasa.gov/sentry.api?des=29075",
  "status": "listed",
  "summary": {
    "computed_at": "2026-11-06 10:10:13",
    "diameter_km": 1.3,
    "energy_mt": 75210,
    "first_observed": "1950-02-23",
    "fullname": "29075 (1950 DA)",
    "h": 17.94,
    "impact_probability": 0.0003401,
    "last_observed": "2026-11-05",
    "mass_kg": 1960000000000,
    "method": "IOBS",
    "observation_arc": "28014. days",
    "observations": 1192,
    "palermo_cumulative": -0.98,
    "palermo_max": -0.98,
    "potential_impacts": 1,
    "torino_max": null,
    "v_imp_km_s": 17.97,
    "v_inf_km_s": 14.1
  },
  "virtual_impactor_count": 1,
  "virtual_impactors": [
    {
      "date": "2880-03-16.99",
      "energy_mt": 75210,
      "impact_probability": 0.0003401,
      "palermo": -0.98,
      "sigma": 2.2853,
      "torino": null
    }
  ]
}
```

### Small body

- Capability: `small-bodies/small_body`
- Description: One asteroid or comet from JPL's Small-Body Database (sbdb.api) by name, designation or SPK-ID: identity (designation, SPK-ID, full name, kind, NEO and PHA flags, orbit class, alternate designations), the current orbit (epoch, elements e, a, q, i, node, peri, M, tp, period, n, Q with 1-sigma uncertainties, Earth and Jupiter MOID, Tisserand parameter, condition code, data arc, observations), physical parameters (H, G, diameter, albedo, rotation period, spectral type, density ... with references) and discovery circumstances with the IAU citation. A name matching several objects fails with the candidates to choose from. One API request per call.
- Instructions: Facts about a named asteroid or comet (Ceres, Eros, Bennu, 1P/Halley): size, orbit, discovery, whether it is a PHA. Keplerian orbital elements for small bodies.
- Cost: 5 credits per call
- Capability file: [Small body](https://alexandria.firecrawl.dev/agents/providers/ssd-api-jpl-nasa-gov/small-bodies/small_body)

Accepted options:
- `designation` (string): Exact primary designation or number, such as 99942, 1P or 73P-C; use it to pick one of several matches. Example: `<designation>`
- `query` (string): Name or designation in any common form, such as Apophis, eros, 2004 MN4 or 1P. Example: `<query>`
- `spkid` (string): JPL SPK-ID, such as 20099942. Example: `<spkid>`

Response schema example:
```json
{
  "alternate_designations": [
    "2004 MN4"
  ],
  "designation": "99942",
  "discovery": {
    "citation": "Also known as Apep, the Destroyer, Apophis is the Egyptian god of evil and destruction who dwelled in eternal darkness. As a result of its passage within 40 000 km of the earth on 2029 Apr. 13, this minor planet will move from the Aten to the Apollo class.",
    "date": "2004-Jun-19",
    "location": "Kitt Peak",
    "name": "Apophis",
    "summary": "Discovered 2004 June 19 by R. A. Tucker, D. J. Tholen and F. Bernardi at Kitt Peak.",
    "who": "Tholen, D. J."
  },
  "fullname": "99942 Apophis (2004 MN4)",
  "kind": "an",
  "neo": true,
  "observed_at_ms": 1794422654887,
  "orbit": {
    "comment": null,
    "condition_code": "0",
    "data_arc_days": 6599,
    "elements": [
      {
        "name": "e",
        "sigma": 1.8e-9,
        "title": "eccentricity",
        "units": null,
        "value": 0.191
      },
      {
        "name": "a",
        "sigma": 1.6e-9,
        "title": "semi-major axis",
        "units": "au",
        "value": 0.922
      },
      {
        "name": "q",
        "sigma": 2.9e-9,
        "title": "perihelion distance",
        "units": "au",
        "value": 0.746
      },
      {
        "name": "i",
        "sigma": 9.9e-8,
        "title": "inclination; angle with respect to x-y ecliptic plane",
        "units": "deg",
        "value": 3.34
      },
      {
        "name": "om",
        "sigma": 0.0000031,
        "title": "longitude of the ascending node",
        "units": "deg",
        "value": 204
      },
      {
        "name": "w",
        "sigma": 0.0000033,
        "title": "argument of perihelion",
        "units": "deg",
        "value": 127
      },
      {
        "name": "ma",
        "sigma": 5.3e-7,
        "title": "mean anomaly",
        "units": "deg",
        "value": 175
      },
      {
        "name": "tp",
        "sigma": 7.1e-7,
        "title": "time of perihelion passage",
        "units": "TDB",
        "value": 2461042.919
      },
      {
        "name": "per",
        "sigma": 8.2e-7,
        "title": "sidereal orbital period",
        "units": "d",
        "value": 324
      },
      {
        "name": "n",
        "sigma": 2.8e-9,
        "title": "mean motion",
        "units": "deg/d",
        "value": 1.11
      },
      {
        "name": "ad",
        "sigma": 1.9e-9,
        "title": "aphelion distance",
        "units": "au",
        "value": 1.1
      }
    ],
    "epoch": "2026-Jun-09.0",
    "epoch_jd_tdb": 2461200.5,
    "equinox": "J2000",
    "first_observed": "2004-03-15",
    "last_observed": "2022-04-09",
    "moid_au": 0.000108,
    "moid_jupiter_au": 4.12,
    "observations_used": 7370,
    "orbit_id": "220",
    "producer": "Davide Farnocchia",
    "solution_date": "2024-06-25 10:48:08",
    "source": "JPL",
    "t_jup": 6.466
  },
  "orbit_class": {
    "code": "ATE",
    "name": "Aten"
  },
  "pha": true,
  "physical_parameters": [
    {
      "name": "H",
      "notes": null,
      "reference": "Pravec et al., Icarus 233, 48-60 (2014)",
      "sigma": "0.19",
      "title": "absolute magnitude",
      "units": null,
      "value": "19.09"
    },
    {
      "name": "G",
      "notes": "Assumed based on Warner et al., Icarus 202, 1340146 (2009)",
      "reference": "Pravec et al., Icarus 233, 48-60 (2014)",
      "sigma": "0.11",
      "title": "magnitude slope",
      "units": null,
      "value": "0.24"
    },
    {
      "name": "diameter",
      "notes": "Based on 3D shape model derived from radar observations in 2012-2013",
      "reference": "Brozovic et al., Icarus 300, 115-128 (2018)",
      "sigma": "0.04",
      "title": "diameter",
      "units": "km",
      "value": "0.34"
    },
    {
      "name": "rot_per",
      "notes": null,
      "reference": "Pravec et al., Icarus 233, 48-60 (2014)",
      "sigma": "0.01",
      "title": "rotation period",
      "units": "h",
      "value": "30.56"
    },
    {
      "name": "albedo",
      "notes": null,
      "reference": "Brozovic et al., Icarus 300, 115-128 (2018)",
      "sigma": "0.10",
      "title": "geometric albedo",
      "units": null,
      "value": "0.35"
    },
    {
      "name": "I",
      "notes": null,
      "reference": "Licandro et al., A&A 585, A10 (2016)",
      "sigma": null,
      "title": "thermal inertia",
      "units": "J/m^2/s^0.5/K",
      "value": "50-500"
    },
    {
      "name": "spec_B",
      "notes": null,
      "reference": "Binzel, R. P. et al.  Icarus 200 (2009) 480-485",
      "sigma": null,
      "title": "SMASSII spectral type",
      "units": null,
      "value": "Sq"
    }
  ],
  "prefix": null,
  "sbdb_url": "https://ssd.jpl.nasa.gov/tools/sbdb_lookup.html#/?sstr=99942",
  "shortname": "99942 Apophis",
  "source_url": "https://ssd-api.jpl.nasa.gov/sbdb.api?sstr=Apophis&phys-par=1&discovery=1&alt-des=1&cd-epoch=1",
  "spkid": "20099942"
}
```

### Small body query

- Capability: `small-bodies/small_body_query`
- Description: Lists of asteroids and comets matching constraints from JPL's SBDB query API (sbdb_query.api): kind, NEO/PHA group, numbered status, orbit classes, has satellites, excluding comet fragments, and field constraints written field|OP|value (EQ, NE, LT, GT, LE, GE, RG range, RE regex, DF defined, ND undefined), such as diameter|GT|100 or H|RG|15|18, combined with AND (or OR). Choose output fields by SBDB name (default spkid, full_name, pdes, name, kind, class, neo, pha, H, diameter, e, a, q, i, moid), sort by up to three fields, page with continuation. One API request per call.
- Instructions: Finding many small bodies at once: the largest asteroids, all Atiras, PHAs larger than 1 km, Jupiter Trojans with known albedo, comets with q below 1 au, or orbital elements for a class.
- Cost: 5 credits per call
- Capability file: [Small body query](https://alexandria.firecrawl.dev/agents/providers/ssd-api-jpl-nasa-gov/small-bodies/small_body_query)

Accepted options:
- `constraints` (string[]): Field constraints field|OP|value[|value2], such as diameter|GT|100, H|LT|18, albedo|DF, name|RE|^Ka. Example: `[]`
- `continuation` (string): Cursor from a previous call's continuation. Example: `<continuation>`
- `exclude_fragments` (boolean): Exclude comet fragments. Example: `false`
- `fields` (string[]): SBDB output fields (case-sensitive), such as full_name, H, diameter, albedo, rot_per, e, a, q, i, om, w, ma, epoch_cal, per_y, moid_ld, spec_B. pdes is always added. Example: `[]`
- `group` (string): NEOs or PHAs only. Example: `neo`
- `has_satellite` (boolean): Only bodies with at least one known satellite. Example: `false`
- `kind` (string): Asteroids or comets only. Example: `asteroid`
- `limit` (number): Records per page. Example: `20`
- `match_any` (boolean): Combine constraints with OR instead of AND. Example: `false`
- `numbered` (string): Numbered or unnumbered only. Example: `numbered`
- `orbit_class` (string[]): Orbit class codes: IEO (Atira), ATE, APO, AMO, MCA, IMB, MBA, OMB, TJN, AST, CEN, TNO, PAA, HYA, ETc, JFc, JFC, CTc, HTC, PAR, HYP, COM. Example: `[]`
- `sort` (string[]): Up to three SBDB fields; prefix - for descending, such as -diameter. Example: `[]`

Response schema example:
```json
{
  "count": 4,
  "observed_at_ms": 1794422654888,
  "offset": 0,
  "query": {
    "constraints": [
      "diameter|GT|500"
    ],
    "fields": [
      "pdes",
      "full_name",
      "diameter"
    ],
    "sort": "-diameter"
  },
  "records": [
    {
      "diameter": 939.4,
      "full_name": "1 Ceres (A801 AA)",
      "pdes": "1"
    },
    {
      "diameter": 900,
      "full_name": "20000 Varuna (2000 WR106)",
      "pdes": "20000"
    },
    {
      "diameter": 522.77,
      "full_name": "4 Vesta (A807 FA)",
      "pdes": "4"
    },
    {
      "diameter": 513,
      "full_name": "2 Pallas (A802 FA)",
      "pdes": "2"
    }
  ],
  "source_url": "https://ssd-api.jpl.nasa.gov/sbdb_query.api?fields=pdes,full_name,diameter&sb-kind=a&sb-cdata=%7B%22AND%22%3A%5B%22diameter%7CGT%7C500%22%5D%7D&sort=-diameter&limit=5&limit-from=0",
  "total": 4
}
```
