NASA APOD Scraper avatar

NASA APOD Scraper

Pricing

from $1.32 / 1,000 result emitteds

Go to Apify Store
NASA APOD Scraper

NASA APOD Scraper

NASA APOD Scraper: fetch NASA's Astronomy Picture of the Day for any date or date range via the NASA APOD API — title, explanation, image / video URL, HD URL, copyright, media type, date — export to JSON or CSV. A NASA APOD API wrapper; no key needed for small volumes.

Pricing

from $1.32 / 1,000 result emitteds

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Categories

Features

Limited permissions

Share


🎯 What this scrapes

NASA's Astronomy Picture of the Day has been publishing one space image or video per day since 1995 — over 11,000 captioned entries spanning galaxies, nebulae, rocket launches, and solar phenomena. In 2026 NASA moved the archive from apod.nasa.gov to science.nasa.gov. This Actor reads that official archive, supports today, single-date, date-range, and random-pick modes, and delivers one clean structured row per entry.

Thirty years of pages mean thirty years of layouts: GIFs from 1995, Flash and Vimeo embeds from the 2000s, YouTube and self-hosted MP4 videos today, credit lines in many formats, and page notes ("Tomorrow's picture", share-button leftovers) mixed into the explanation. We parse all of it into one consistent row, so you get the same fields for every year.

Target use cases span the full spectrum: indie developers shipping a daily space photo widget, researchers building a multimodal RAG dataset with captions, educators building astronomy lesson apps, and data artists exporting the nasa images dataset for print-on-demand posters.

🔥 Features

  • 🛡️ Browser fingerprint rotation — curl-cffi impersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not a Python script.
  • 🌐 Proxy support — Apify Proxy on by default with one proxy session per run, or your own proxy URLs; switch it off to connect directly. A proxy you asked for that cannot be set up stops the run instead of silently connecting directly.
  • 🔁 Retries with exponential backoff on 429 / 500 / 502 / 503 / 504 and network errors — up to 5 attempts per request, Retry-After honoured.
  • 🧱 Fails loud, never fakes — if NASA's site stays down or blocks us, the run keeps the rows it already delivered, says how many, and fails instead of reporting success. Placeholder pages are never turned into rows.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, plain-text explanations, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — $0.0015 per delivered row plus a $0.20 start fee, charged once a run delivers its first result. A run that delivers nothing is not charged, and dates without an APOD entry are never charged.
  • 🎞️ Video-day handling — media_type distinguishes images from YouTube, Vimeo and MP4 videos; thumbnail_url is filled for YouTube and Vimeo videos.
  • 📅 Full archive support — date range mode lets you pull the entire astronomy image archive in one run; earliest entry is 1995-06-16.

💡 Use cases

  • Multimodal RAG dataset — bulk-export the APOD archive as image-caption pairs to build or evaluate a vision-LLM retrieval pipeline.
  • Daily space photo widget — run on a schedule, pull today's entry, push to your iOS / Android / desktop wallpaper service or Telegram bot.
  • Astronomy lesson app — backfill 10+ years of entries into a CMS, pair captions with AI-generated quiz questions.
  • Generative art seeds — feed APOD images and captions into a multimodal model or Stable Diffusion workflow.
  • Print-on-demand posters — harvest HD image URLs from the nasa images dataset and generate high-resolution wall art.
  • Newsletter automation — scheduled daily pull delivers title, explanation, and image URL to your email or Slack.

⚙️ How to use it

  1. Open the Actor in Apify Console.
  2. Choose a mode: Today (the newest published entry), Single date, Date range, or Random N.
  3. Click Start. Output streams into the run's dataset in real time.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or pull via the Apify REST API.

For bulk astronomy image archive exports, use Date range mode with startDate and endDate. The run pages through the range, retries on throttles, and delivers one row per published entry. A range without dates covers the last count days, ending with the newest entry NASA has published.

📥 Input

FieldTypeRequiredDefaultNotes
modestringnorangetoday (newest published entry), single_date, range, or random.
datestringno—ISO date (YYYY-MM-DD). Used when mode=single_date. Earliest: 1995-06-16.
startDatestringno—ISO date (YYYY-MM-DD). Range start, inclusive.
endDatestringno—ISO date (YYYY-MM-DD). Range end, inclusive.
countintegerno5How many random APODs (mode=random), or how many days a range without dates covers, ending with the newest published entry. 1–100.
apiKeystringno—No longer used: NASA's api.nasa.gov APOD feed stopped returning real entries in 2026. Still accepted so existing inputs keep working.
thumbsForVideosbooleannotrueAdds thumbnail_url for video APODs (YouTube / Vimeo).
proxyConfigurationobjectno{"useApifyProxy": true}On by default: each run uses its own Apify Proxy session. Your own proxyUrls work too; turn the proxy off to connect directly.

Example input

{
"mode": "range",
"startDate": "2024-01-01",
"endDate": "2024-01-31",
"thumbsForVideos": true,
"proxyConfiguration": {
"useApifyProxy": true
}
}

📤 Output

One dataset row per APOD entry.

FieldTypeNotes
datestringAPOD date (YYYY-MM-DD).
titlestringTitle of the APOD entry.
explanationstring | nullThe curator-written explanation, as plain text.
urlstring | nullWeb-size image — NASA's own 1,024–1,280 px rendition when its image service offers one, otherwise the original file — or the video URL. null when NASA's page carries no image or video file.
hdurlstring | nullThe original full-resolution image file (images only).
thumbnail_urlstring | nullVideo thumbnail (YouTube and Vimeo videos).
media_typestringimage or video; other when the page has neither.
copyrightstring | nullCopyright holder from the page's credit line. null for public-domain / agency credits.
service_versionstring | nullSource the row was read from: science.nasa.gov/wp-json/wp/v2.
apod_urlstringCanonical APOD page URL on science.nasa.gov.
scraped_atstringISO-8601 timestamp of when this row was recorded.

Example output

{
"date": "2026-08-01",
"title": "Buck Moon and Belt of Venus",
"explanation": "The Buck Moon is a traditional name for the full moon of July. In this colorful Adriatic sea and skyscape captured on July 28 from Krk Island along the coast of Croatia, a full Buck Moon is just rising over distant mountains...",
"url": "https://assets.science.nasa.gov/dynamicimage/assets/science/cds/apod/apod/2026/august/FullMoon28-7-2026BrankoNadj.jpg?w=1200&h=798&fit=crop&crop=faces%2Cfocalpoint",
"hdurl": "https://assets.science.nasa.gov/dynamicimage/assets/science/cds/apod/apod/2026/august/FullMoon28-7-2026BrankoNadj.jpg",
"thumbnail_url": null,
"media_type": "image",
"copyright": "Branko Nadj",
"service_version": "science.nasa.gov/wp-json/wp/v2",
"apod_url": "https://science.nasa.gov/image-article/apod/apod-2026-august-1-buck-moon-and-belt-of-venus/",
"scraped_at": "2026-10-13T13:16:12+00:00"
}

💰 Pricing

Pay-Per-Event — you only pay when these events fire:

EventUSDWhat it means
actor-start$0.20Charged once per run, together with its first delivered result — never on a run that delivers nothing
result$0.0015Per dataset item delivered

1,000 results ≈ $1.70. No subscription, no minimum.

🚧 Limitations

  • The APOD archive holds one entry per day since 1995-06-16 — 11,436 entries on 2026-10-13, with a few early dates (such as 1995-06-17 to 06-19) that never had one. It is not a million-image dataset — pitch it as a curated multimodal-RAG corpus or fine-tuning seed, not as a large-scale training set.
  • Dates without an entry are skipped, listed in the run log and status message, and never charged.
  • Some entries were emptied in NASA's migration: the page has a title but no picture or text (for example 2015-01-12 and 2023-01-24). They are skipped, named in the status message, and not charged.
  • A few entries lost only their image in the migration (for example 2023-02-03). Those rows carry url: null rather than a guessed link.
  • We surface image and video URLs as published on NASA's APOD pages. We do not proxy or cache images ourselves — the buyer is responsible for downloading from the target host.
  • hdurl is always the original file. url is NASA's own 1,024–1,280 px rendition where its image service offers one (mostly recent entries); older entries are served as the original file only, so there url equals hdurl.
  • thumbnail_url is filled for YouTube and Vimeo videos; self-hosted MP4 videos usually have no thumbnail.
  • A small share of APOD entries feature imagery by external photographers who retain their own copyright. The copyright field is present on every row — downstream use must respect it.

❓ FAQ

Do I need a NASA API key?

No key is involved any more. NASA stopped serving real entries from its api.nasa.gov APOD feed when APOD moved to science.nasa.gov in 2026, so the Actor reads the official archive there. The apiKey field is still accepted so existing inputs keep working, but it is ignored.

What is the astronomy picture of the day API and how does this Actor replace it?

NASA used to publish a JSON endpoint at api.nasa.gov/planetary/apod. Since APOD moved to science.nasa.gov, that endpoint answers every date with the same "NASA Science" placeholder and the NASA logo. This Actor reads the archive NASA now publishes on science.nasa.gov, normalises 30 years of page formats, and writes Pydantic-validated rows with the old API's field names. Some values differ because the source changed: url is a web-size rendition where NASA offers one and hdurl the original file, apod_url points to science.nasa.gov, service_version names the new source, and media_type can be other.

Can I use this as a multimodal RAG dataset?

Yes. Each row contains the title, the full curator-written explanation (your caption), a web-size image URL and the full-resolution original. That is a complete image-caption pair. Export as JSON, upload to HuggingFace, and you have an astronomy domain corpus ready for semantic search or vision-LLM evaluation.

Why do some rows have media_type: video?

Some APOD entries are videos (rocket launches, solar animations, telescope time-lapses). The url field points to YouTube, Vimeo, or NASA's own MP4 file; thumbnail_url contains the video thumbnail for YouTube and Vimeo. Filter media_type == "image" if you need images-only.

What is the earliest APOD entry?

1995-06-16. The archive held 11,436 entries on 2026-10-13.

Can I bulk-download the actual image files?

We provide the URL — pair this Actor with a generic file-download Actor or a curl loop to retrieve the image bytes. We intentionally do not bundle image download to keep the pricing predictable.

💬 Your feedback

Spotted a bug, hit a rate-limit edge case, or need a new field? Open an issue on the Actor's Issues tab in Apify Console.