BYTETOOLS

NASA APOD API

Free NASA Astronomy Picture of the Day API. Daily space images with expert explanations, HD URLs and archive access back to 1995. Tested curl example.

API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-19

What is the NASA APOD API?

The NASA APOD API returns the Astronomy Picture of the Day — a daily space image or video with a professional astronomer's explanation. It is free, works with the shared DEMO_KEY for testing, and archives back to June 1995.

APOD is one of the longest-running features on the internet, publishing a curated astronomy image with an expert explanation every day since 1995. The API exposes that entire archive, which is over 10,000 images with genuinely well-written accompanying text.

You can test with `api_key=DEMO_KEY`, as the verified example here does, but that key is shared across every anonymous user worldwide and is limited to about 30 requests per hour per IP. Registering for your own free key takes under a minute and raises the limit to 1,000 requests per hour.

Quick facts

Base URL
https://api.nasa.gov/planetary/apod
Authentication
Free API key required. DEMO_KEY works for casual testing but is heavily rate-limited; register at api.nasa.gov for your own.
Rate limit
DEMO_KEY: about 30 requests/hour per IP. Personal key: 1,000 requests/hour.
Pricing
Free. NASA imagery is generally public domain, but check each image's credit line.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the NASA APOD API

Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.

1. Fetch today's astronomy picture

GET https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY

curl
curl 'https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY'
JavaScript (fetch)
const res = await fetch("https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "date": "2026-08-19",
  "explanation": "Whatdunit? What disappeared while crossing a partially eclipsed Sun? Let’s present the evidence. The 24 frames-per-second video was taken in Spain (40°34'30.3\"N 1°12'28.8\"W) at 20:28 local time on August 12, 2026. The Perseids meteor shower was at its peak during this time. Is this a meteor? Meteor showers trace back to a region of the sky called a radiant point that corresponds to where the Earth is crossing a comet’s path. The object’s path might trace back to the Perseids’ radiant point in the Perseus constellation. The object trails a smaller angle on the sky than the 0.5 degree Sun and Moon, which is smaller than expected for a meteor. Its brightness does not extend much past the Sun, but a meteor burning up in the sky would not need sunlight to be seen. Perhaps the sunlight is reflecting off of the object? After cross-referencing the location, time, and point in the sky with a flight database, the culprit is found to be an airplane contrail!",
  "media_type": "video",
  "service_version": "v1",
  "title": "The Case of the Mysterious Maybe Meteor",
  "url": "https://apod.nasa.gov/apod/image/2608/perseids_eclipse_mystery.mp4"
}

Parameters

ParameterTypeRequiredDescription
api_keystringRequiredYour NASA key, or DEMO_KEY for testing. DEMO_KEY
datestringOptionalSpecific date as YYYY-MM-DD, from 1995-06-16 onwards. 2026-01-01
start_date / end_datestringOptionalDate range to fetch many entries at once. 2026-01-01
countintegerOptionalReturn this many random images instead of a date. 5
thumbsbooleanOptionalInclude a thumbnail URL when the entry is a video. true

Response fields

titlestring
Title of the image.
explanationstring
Detailed explanation written by a professional astronomer — several hundred words.
urlstring
Standard resolution image or video URL.
hdurlstring
High resolution image URL. Absent for video entries.
media_typestring
`image` or `video` — always branch on this before rendering.
copyrightstring
Present only when the image is not public domain.

What you can build with the NASA APOD API

  • Build a daily space image widget or wallpaper app
  • Create an educational astronomy resource with expert-written text
  • Generate a random space image gallery using the count parameter
  • Practise handling mixed media types in a single feed

Common errors and how to fix them

429 OVER_RATE_LIMIT

DEMO_KEY's shared hourly allowance is exhausted.

Fix: Register a free key at api.nasa.gov — it takes a minute and gives 1,000 requests/hour.

400

Date outside the valid range.

Fix: The archive starts at 1995-06-16; earlier dates are rejected.

hdurl missing

The entry is a video, not an image.

Fix: Check `media_type` before reading image-specific fields.

NASA APOD API — frequently asked questions

Is the NASA API free?

Yes. It requires a free API key, and DEMO_KEY works for casual testing. Registering your own key at api.nasa.gov raises the limit from roughly 30 to 1,000 requests per hour.

How far back does the APOD archive go?

To 16 June 1995, giving more than 10,000 entries, each with a professionally written explanation.

Why is hdurl sometimes missing?

Some entries are videos rather than images. Always check `media_type` first and render accordingly — this is the most common bug when integrating APOD.

Can I use NASA images commercially?

NASA imagery is generally public domain, but APOD sometimes features images from other photographers. If a `copyright` field is present, that image is not public domain — check before commercial use.

Tools that pair with this API

NASA APOD is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.