- NASA/JPL Small-Body Database Query API (SBDB Query API)
- Endpoint:
https://ssd-api.jpl.nasa.gov/sbdb_query.api - Used for:
- startup-sample refresh tooling
- server-side catalog pagination
- catalog sorting and filter constraints
- fetching object records by designation or SPK-ID
- NASA/JPL Small-Body Database Object API (SBDB Object API)
- Endpoint:
https://ssd-api.jpl.nasa.gov/sbdb.api - Used for:
- resolving direct object searches such as
Ceres,Vesta, or known designations
- resolving direct object searches such as
- Identity:
spkid,full_name,pdes,class - Orbital:
a,e,i,om,w,ma,epoch - Physical:
diameter,albedo,H
- Browser requests same-origin
GET /api/main-belt. - The Node server serves the prepared startup sample from
data/main-belt-startup.json. - Browser renders charts, KPIs, and the map from that startup sample.
- Browser requests
GET /api/catalogfor the table. - The Node server proxies table pagination, sorting, and filters to the live JPL Query API.
- Browser requests
GET /api/search?q=...for object lookup. - The Node server uses the live JPL APIs to resolve search results.
- When an object is selected, the client pins it into the live sample so it becomes visible in the charts and belt navigator.
- Separately, the server refreshes part of the loaded sample in memory in the background.
- The startup sample is intentionally smaller than the full catalog for browser responsiveness.
config/startup-sample-core-bodies.jsondefines bodies that must always survive sample regeneration.npm run sample:updaterebuilds the prepared sample from current JPL data.
- Numeric parsing is strict; invalid values become
null. - Missing physical values are expected and rendered explicitly as
Unknown. - Aggregate charts describe the loaded sample, not the entire 1.3M+ object catalog.
- Full-catalog browsing is available through the API-backed table rather than by loading the whole catalog into the browser.