NASA JPL Horizons Ephemeris Scraper avatar

NASA JPL Horizons Ephemeris Scraper

Pricing

from $4.00 / 1,000 results

Go to Apify Store
NASA JPL Horizons Ephemeris Scraper

NASA JPL Horizons Ephemeris Scraper

Pull NASA JPL Horizons physical data and observer ephemerides for any planet, moon, asteroid, or comet. Returns right ascension, declination, apparent magnitude, range in astronomical units, solar elongation, mean radius, mass, and rotation period. Built for astronomy research.

Pricing

from $4.00 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

ParseForge Banner

🪐 NASA JPL Horizons Ephemeris Scraper

🚀 Pull observer ephemerides and physical data in seconds. Get right ascension, declination, apparent magnitude, range, elongation, plus mean radius, mass, density, and rotation period for any solar-system body from NASA JPL Horizons.

🕒 Last updated: 2026-06-08 · 📊 Up to 28 fields per record · one record per ephemeris step · planets, moons, asteroids, comets, spacecraft

Turn NASA's Jet Propulsion Laboratory (JPL) Horizons system into clean, structured records you can drop into an observation planner, an orbital-mechanics study, a planetarium app, or a research notebook. Pick a body, an observing center, a time span, and a step size, and the Actor returns one row per epoch with the apparent sky position and the body's physical parameters attached to every row.

Coverage is the full Horizons catalog: the Sun, the eight planets, the Moon, Pluto, and any object addressable by a Horizons COMMAND id, including numbered asteroids (for example 433 Eros), comets (for example 1P Halley), and spacecraft (for example -125544 for the ISS). Observer geometry can be computed from Earth's center, the solar-system barycenter, the Sun, the Moon, or Mars.

🎯 Target Audience💡 Primary Use Cases
Amateur and professional astronomersPlan observations with RA/Dec and magnitude
Orbital and planetary researchersPull range, elongation, and physical constants
Planetarium and app developersSeed a sky engine without a Horizons client
Educators and science communicatorsBuild clear datasets for teaching

📋 What the NASA JPL Horizons Ephemeris Scraper does

This Actor calls the public NASA JPL Horizons API in OBSERVER mode and returns one clean record per ephemeris step:

  • Sky position — right ascension and declination in the ICRF frame.
  • Brightness and geometry — apparent magnitude, surface brightness, range in astronomical units, range rate, solar elongation with its leading/trailing code, and the Sun-target-observer angle.
  • Physical data — mean and equatorial radius, mass, density, GM, sidereal rotation and orbit periods, obliquity, geometric albedo, mean temperature, and escape speed, parsed from the body's Horizons header and attached to every row.

The NASA logo is used as the record image. Every record carries a scrapedAt timestamp.

🎬 Full Demo (🚧 Coming soon)

⚙️ Input

FieldTypeDescription
bodyselectBody to query, by Horizons COMMAND id. Major bodies in the dropdown (Sun 10, Mercury 199, Venus 299, Earth 399, Moon 301, Mars 499, Jupiter 599, Saturn 699, Uranus 799, Neptune 899, Pluto 999) or custom. Defaults to Mars (499).
customBodystringUsed only when body is custom. Any Horizons id, e.g. 433 (Eros), 1P (Halley), -125544 (ISS).
centerselectObserving center: Geocentric 500@399, barycenter 500@0, Sun 500@10, Moon 500@301, or Mars 500@499. Defaults to geocentric.
startTimestringFirst epoch of the span, e.g. 2026-06-08 (a time like 2026-06-08 12:00 also works).
stopTimestringLast epoch of the span. Must be after the start.
stepSizestringInterval between rows, e.g. 1 d, 6 h, 30 m, or a count like 20 to split the span into equal steps.
maxItemsintegerHow many rows to return. Free plan is capped at 10.

Example 1 — daily Mars ephemeris from Earth

{
"body": "499",
"center": "500@399",
"startTime": "2026-06-08",
"stopTime": "2026-06-18",
"stepSize": "1 d",
"maxItems": 10
}

Example 2 — asteroid 433 Eros, geocentric, six-hour steps

{
"body": "custom",
"customBody": "433",
"center": "500@399",
"startTime": "2026-06-08",
"stopTime": "2026-06-10",
"stepSize": "6 h",
"maxItems": 9
}

⚠️ Good to Know: the row count is set by your time span and step size. A 10-day span at 1 d yields about 11 rows. Some physical-data fields are not published for every body, so a field like geometricAlbedo or meanTemperatureK may be null for objects where Horizons does not provide it.

📊 Output

Each ephemeris record looks like this:

FieldDescription
🖼 imageUrlNASA logo
🪐 bodyNameResolved target body name
🆔 bodyIdHorizons COMMAND id used
🎯 centerNameObserving center body name
📍 centerSiteCenter-site name
📅 dateUtcEpoch of the row (UT)
🧭 raIcrfRight ascension, ICRF
🧭 decIcrfDeclination, ICRF
apparentMagnitudeApparent visual magnitude
🔆 surfaceBrightnessSurface brightness
📏 deltaAuObserver-target range in AU
🚀 rangeRateKmSRange rate (km/s)
solarElongationDegSolar elongation in degrees
elongationCodeElongation leading/trailing code
📐 sunTargetObserverDegSun-target-observer angle
🌐 meanRadiusKmMean radius (km)
🌐 equatorialRadiusKmEquatorial radius (km)
massKgMass (kg)
🧪 densityGCm3Density (g/cm³)
🔭 gmKm3S2GM (km³/s²)
🔁 siderealRotationPeriodHrSidereal rotation period (hours)
🛰 siderealOrbitPeriodYrSidereal orbit period (years)
🌀 obliquityToOrbitDegObliquity to orbit
🌑 geometricAlbedoGeometric albedo
🌡 meanTemperatureKMean temperature (K)
💨 escapeSpeedKmSEscape speed (km/s)
🕒 scrapedAtCollection timestamp
errorNull on success

Real sample — ephemeris row

{
"imageUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/NASA_logo.svg/512px-NASA_logo.svg.png",
"bodyName": "Mars (499)",
"bodyId": "499",
"centerName": "Earth (399)",
"centerSite": "GEOCENTRIC",
"dateUtc": "2026-Jun-08 00:00",
"raIcrf": "05 41 22.18",
"decIcrf": "+24 12 03.4",
"apparentMagnitude": 1.64,
"surfaceBrightness": 5.42,
"deltaAu": 2.41887341,
"rangeRateKmS": 18.742133,
"solarElongationDeg": 21.3107,
"elongationCode": "T",
"sunTargetObserverDeg": 18.4521,
"meanRadiusKm": 3389.92,
"equatorialRadiusKm": 3396.19,
"massKg": 6.4171e23,
"densityGCm3": 3.933,
"gmKm3S2": 42828.375,
"siderealRotationPeriodHr": 24.622962,
"siderealOrbitPeriodYr": 1.88081578,
"obliquityToOrbitDeg": 25.19,
"geometricAlbedo": 0.15,
"meanTemperatureK": 210,
"escapeSpeedKmS": 5.027,
"scrapedAt": "2026-06-08T17:09:21.000Z",
"error": null
}

✨ Why choose this Actor

  • Observer ephemeris and physical data in one record, ready for analysis.
  • Works for planets, moons, Pluto, asteroids, comets, and spacecraft via Horizons ids.
  • Choose the observing center: Earth, barycenter, Sun, Moon, or Mars.
  • Flexible sampling with 1 d, 6 h, 30 m, or a step count.
  • No account, no API key, and no Horizons client to build.

📈 How it compares to alternatives

ApproachEffortStructured fieldsPhysical dataMaintenance
This ActorOne runYesAttached per rowNone on your side
Parsing Horizons by handHoursFragileManualConstant
Writing your own API clientDaysDependsYou parse itYou own the upkeep

🚀 How to use

  1. Create a free Apify account using this sign-up link.
  2. Open the NASA JPL Horizons Ephemeris Scraper.
  3. Choose a body (or custom plus a customBody id) and an observing center.
  4. Set startTime, stopTime, stepSize, and maxItems.
  5. Click Start and grab your results when the run finishes.

💼 Business use cases

Observation planning

GoalHow this helps
Schedule a targetUse RA/Dec, magnitude, and elongation per epoch
Track a close approachSweep a span at a fine step size

Research and analysis

GoalHow this helps
Study geometry over timeUse range, range rate, and Sun-target-observer angle
Reference physical constantsRead mass, radius, density, and rotation per body

Apps and tools

GoalHow this helps
Power a sky mapFeed clean ICRF positions to your renderer
Build a body fact sheetPull the physical-data block in one run

Education

GoalHow this helps
Teach orbital motionShow how position changes step by step
Compare planetsTabulate radius, mass, and rotation side by side

🔌 Automating NASA JPL Horizons Ephemeris Scraper

Connect runs to the tools you already use:

  • Make and Zapier to trigger runs and route records into sheets or databases.
  • Slack to post an object's nightly position to a channel.
  • Airbyte to load results into a warehouse.
  • GitHub Actions to schedule periodic snapshots.
  • Google Drive to archive each run's output.

🌟 Beyond business use cases

  • Research: assemble long ephemeris series for an orbital study.
  • Personal: plan a night of observing your favorite planet.
  • Non-profit: power a community planetarium or outreach event.
  • Experimentation: prototype a space app without wrangling the Horizons text format.

🤖 Ask an AI assistant

Paste your results into ChatGPT, Claude, Perplexity, or Microsoft Copilot and ask it to find the brightest night, plot range over time, or convert RA/Dec into alt/az for your location.

❓ Frequently Asked Questions

Do I need a NASA or JPL account or API key? No. The Actor reads the public NASA JPL Horizons API, which needs no login.

Which bodies can I query? Any object with a Horizons COMMAND id: planets, moons, Pluto, the Sun, numbered asteroids, comets, and spacecraft. Use the dropdown for major bodies or custom for everything else.

What is the observing center? Where the observer sits. Geocentric (500@399) gives the standard sky position from Earth. Barycenter, Sun, Moon, and Mars centers give other geometries.

What does the step size accept? Intervals like 1 d, 6 h, 30 m, or a plain count like 20 that splits the span into equal steps.

What frame are RA and Dec in? The ICRF (International Celestial Reference Frame), returned as raIcrf and decIcrf.

Why are some physical fields null? Horizons does not publish every physical parameter for every body. Fields it does not provide come back null rather than guessed.

Is the physical data on every row? Yes. The body's physical constants are parsed once and attached to each ephemeris row for convenience.

What does the elongation code mean? solarElongationDeg is the angle from the Sun; elongationCode marks whether the body is leading or trailing the Sun.

How fresh is the data? Each run queries Horizons live, so it reflects the current ephemeris computation.

Can I schedule this? Yes. Use Apify Schedules to refresh an object's ephemeris on any cadence.

🔌 Integrate with any app

Results are available through the Apify API, so you can pull them into any app, database, or workflow you already run.

💡 Pro Tip: browse the complete ParseForge collection.

🆘 Need Help? Open our contact form

⚠️ Disclaimer: independent tool, not affiliated with NASA or the Jet Propulsion Laboratory. Only publicly available data is collected.