News — entry 013 of 17

Spaceflight News

Verified Sep 2026

Spaceflight News API is a free, keyless aggregator of space and astronomy news, articles, blogs, and reports pulled from NASA, ESA, and dozens of other spaceflight outlets, currently indexing more than 35,000 articles. The v4 API is fully open — no signup or API key needed — and returns paginated JSON with count/next/previous fields, plus a public OpenAPI/Swagger reference at its /v4/docs endpoint.

Spaceflight News API is a free, community-run aggregator that indexes space and astronomy articles from dozens of outlets, including SpaceNews and Space Scout, into one paginated JSON feed. A live GET this run against /articles/?limit=2 returned genuine, current article data with no registration, key, or authentication of any kind.

spaceaerospacenewsnasaopen-data
AuthenticationNone requiredCall it straight away — no key, no signup.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score94out of 100
Authentication25/25No authentication required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 94 on greatapis.com
<a href="https://greatapis.com/api/spaceflight-news/"><img src="https://greatapis.com/badge/spaceflight-news.svg" alt="Scored 94 on greatapis.com"></a>

Auth quickstart

  1. No API key, signup, or credit card required. A live GET this run against /articles/?limit=2 returned real article JSON with access-control-allow-origin: * on the response, confirming both keyless auth and open CORS with nothing to configure first.
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

articles2
GET/v4/articles/
Parameters
NameInRequiredType
eventquerynoarray
has_eventquerynoboolean
has_launchquerynoboolean
is_featuredquerynoboolean
launchquerynoarray
limitquerynointeger
news_sitequerynostring
news_site_excludequerynostring
offsetquerynointeger
orderingquerynoarray
published_at_gtquerynostring
published_at_gtequerynostring
published_at_ltquerynostring
published_at_ltequerynostring
searchquerynostring
summary_containsquerynostring
summary_contains_allquerynostring
summary_contains_onequerynostring
title_containsquerynostring
title_contains_allquerynostring
title_contains_onequerynostring
updated_at_gtquerynostring
updated_at_gtequerynostring
updated_at_ltquerynostring
updated_at_ltequerynostring
Responses
StatusDescriptionSchema
200PaginatedArticleList
GET/v4/articles/{id}/
Parameters
NameInRequiredType
idpathyesinteger
Responses
StatusDescriptionSchema
200Article
blogs2
GET/v4/blogs/
Parameters
NameInRequiredType
eventquerynoarray
has_eventquerynoboolean
has_launchquerynoboolean
is_featuredquerynoboolean
launchquerynoarray
limitquerynointeger
news_sitequerynostring
news_site_excludequerynostring
offsetquerynointeger
orderingquerynoarray
published_at_gtquerynostring
published_at_gtequerynostring
published_at_ltquerynostring
published_at_ltequerynostring
searchquerynostring
summary_containsquerynostring
summary_contains_allquerynostring
summary_contains_onequerynostring
title_containsquerynostring
title_contains_allquerynostring
title_contains_onequerynostring
updated_at_gtquerynostring
updated_at_gtequerynostring
updated_at_ltquerynostring
updated_at_ltequerynostring
Responses
StatusDescriptionSchema
200PaginatedBlogList
GET/v4/blogs/{id}/
Parameters
NameInRequiredType
idpathyesinteger
Responses
StatusDescriptionSchema
200Blog
info1
GET/v4/info/
Responses
StatusDescriptionSchema
200Info
reports2
GET/v4/reports/
Parameters
NameInRequiredType
limitquerynointeger
news_sitequerynostring
news_site_excludequerynostring
offsetquerynointeger
orderingquerynoarray
published_at_gtquerynostring
published_at_gtequerynostring
published_at_ltquerynostring
published_at_ltequerynostring
searchquerynostring
summary_containsquerynostring
summary_contains_allquerynostring
summary_contains_onequerynostring
title_containsquerynostring
title_contains_allquerynostring
title_contains_onequerynostring
updated_at_gtquerynostring
updated_at_gtequerynostring
updated_at_ltquerynostring
updated_at_ltequerynostring
Responses
StatusDescriptionSchema
200PaginatedReportList
GET/v4/reports/{id}/
Parameters
NameInRequiredType
idpathyesinteger
Responses
StatusDescriptionSchema
200Report

Try it

Developer reference

Base URLhttps://api.spaceflightnewsapi.net
Key endpoints
  • GET/v4/articles/
  • GET/v4/articles/{id}/
  • GET/v4/blogs/
  • GET/v4/info/

Gotchas & limits

  • A nonexistent article id is a real HTTP 404, not a 200 with an empty body — a live GET this run against /articles/999999999/ returned HTTP 404 with JSON body {"detail":"No Article matches the given query."}.
  • CORS reflects any origin — a live GET this run with Origin: https://example.com against /articles/?limit=2 still returned access-control-allow-origin: *, so this API can be called directly from client-side JavaScript on any domain.
  • summary is prose scraped from the source outlet and sometimes carries the outlet's own boilerplate (a trailing "The post ... appeared first on ..." line was present in this run's live capture) — do not assume it is a clean editorial abstract.
  • There is no /articles/{id}.json shorthand like some read-only news APIs use — the id is a query-string-free path segment, /articles/{id}/, with the trailing slash required by the underlying Django REST Framework router.
  • A public OpenAPI/Swagger reference is served at /v4/docs/ for the full endpoint set (articles, blogs, reports, info) — this quickstart only exercises /articles/; the other two content types share the same shape and pagination style.

Availability

Uptime100%
Median latency152 ms
Last checkUp · 200 · Sep 2026

5 checks since Sep 2026. A person runs this check by hand, not an automated monitor.