{"eid":"spaceflightnewsapi","name":"Spaceflight News API","domain":"spaceflightnewsapi.net","resolved_by":"domain","topics":["data-apis"],"n_records":1,"best_vorder":0,"review":null,"aliases":["Spaceflight News API","Spaceflight News API (SNAPI)","spaceflightnewsapi.net"],"records":[{"rid":"data-apis/spaceflight-news-api","card":{"rid":"data-apis/spaceflight-news-api","eid":"spaceflightnewsapi","topic":"data-apis","slug":"spaceflight-news-api","provider":"Spaceflight News API (SNAPI)","url":"https://api.spaceflightnewsapi.net/v4/docs/","domain":"spaceflightnewsapi.net","category":"news search API","tier":"Free (no key)","verdict":"qualifies","vorder":0,"grp":"usable","self_hosted":0,"confidence":"documented","binding":"request-rate","identity_kind":"anonymous","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"rest,graphql","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-11-02T00:23:50.592Z","verified_basis":"live","checked_on":"2026-11-02","stale_on":"2026-12-03","n_evidence":8,"usd_month":null,"usd_per_tb_month":null,"summary":"Free for everyone with no API key: articles, blogs and ISS reports from many spaceflight news sites, up to 500 results a request, 5 requests a second for ano...","duplicate_of":null,"n_unknown":1,"free_unit":"requests"},"record":{"topic":"data-apis","slug":"spaceflight-news-api","provider":"Spaceflight News API (SNAPI)","url":"https://api.spaceflightnewsapi.net/v4/docs/","category":"news search API","tier":"Free (no key)","free_tier":{"stated":"Free for everyone with no API key: articles, blogs and ISS reports from many spaceflight news sites, up to 500 results a request, 5 requests a second for anonymous callers.","unit":"requests","metered_on":"request-count","source_url":"https://github.com/TheSpaceDevs/Tutorials/blob/main/faqs/faq_SNAPI.md","read_on":"2026-11-02","notes":"No daily or monthly request quota is stated; the only published limit is the anonymous throttle of 5 requests a second. The importer checks for new data every 10 minutes. The project asks commercial users to consider supporting it through Patreon or a donation."},"per_object_cap":{"stated":"500 results a request: a limit above 500 is answered with 500 results and a next link at limit=500","bytes":null,"source_url":"https://api.spaceflightnewsapi.net/v4/schema/","notes":"The offset parameter is at most 10,000; further back, filter on published_at_lt with the published_at of the last result."},"retention":{"stated":"the full archive is served: the article list counted 36741 articles when read","days":null,"notes":"","source_url":"https://api.spaceflightnewsapi.net/v4/docs/"},"egress":{"terms":"not applicable","metered":false,"free_allowance":null,"price_per_tb":null,"source_url":"https://api.spaceflightnewsapi.net/v4/docs/"},"interface":["rest","graphql"],"interface_detail":"REST over HTTPS at api.spaceflightnewsapi.net/v4 (articles, blogs, reports, info) with an OpenAPI 3 schema at /v4/schema/, and a GraphQL endpoint at /v4/graphql/","endpoint":"https://api.spaceflightnewsapi.net/v4/articles/","tooling":"any HTTP client or GraphQL client; the OpenAPI schema generates a client","chaining":"Article, blog and report metadata with a summary, the source URL and Launch Library 2 launch and event ids; the full article is fetched from the source URL by a crawler.","limits":[{"kind":"request-rate","value":"5 requests a second for anonymous callers","source":"https://github.com/TheSpaceDevs/spaceflightnewsapi/blob/main/CHANGELOG.md"},{"kind":"retention-clamped","value":"a limit above 500 is clamped to 500 results a request","source":"probe:https://api.spaceflightnewsapi.net/v4/articles/?limit=2000"},{"kind":"per-object-cap","value":"offset at most 10,000; filter on published_at_lt to go further back","source":"https://api.spaceflightnewsapi.net/v4/schema/"}],"binding":"request-rate","binding_note":"5 requests a second is the only published limit; 36741 articles at 500 results a request is 74 requests (36741 / 500, rounded up).","identity_cost":{"kind":"anonymous","detail":"No account and no key: a plain GET answered HTTP 200 with articles.","country":null},"reliability_note":"Responses carry cache-control max-age 600; the throttle for anonymous callers is stated in the project changelog and was not exercised by a burst.","confidence":"documented","confidence_note":"The no-key access and the page-size clamp were read from live answers; the 5 requests a second throttle is read from the project changelog and was not exercised, so the record stays documented.","evidence":[{"url":"https://github.com/TheSpaceDevs/Tutorials/blob/main/faqs/faq_SNAPI.md","date":"2026-11-02","proved":"the API is free for everyone","capture":"sha256:6727f7d4eeb5d68a785c49d2dcbe241b98864e3f4d6ad1470a661ef5c22de1d8","quote":"Yes, SNAPI is fully free to use for everyone."},{"url":"https://github.com/TheSpaceDevs/Tutorials/blob/main/faqs/faq_SNAPI.md","date":"2026-11-02","proved":"no API key is needed","capture":"sha256:6727f7d4eeb5d68a785c49d2dcbe241b98864e3f4d6ad1470a661ef5c22de1d8","quote":"No API key is required to use SNAPI."},{"url":"https://github.com/TheSpaceDevs/Tutorials/blob/main/faqs/faq_SNAPI.md","date":"2026-11-02","proved":"new articles appear within 10 minutes","capture":"sha256:6727f7d4eeb5d68a785c49d2dcbe241b98864e3f4d6ad1470a661ef5c22de1d8","quote":"The importer runs every 10 minutes to check for new data, so new articles can take up to 10 minutes to appear in the API."},{"url":"https://github.com/TheSpaceDevs/spaceflightnewsapi/blob/main/CHANGELOG.md","date":"2026-11-02","proved":"anonymous requests are throttled to 5 per second","capture":"sha256:c3ffbd2485f5afb3d590848d847edef658d4590d93bac86e6a33aad10126ff51","quote":"Update API throttling settings to limit anonymous requests to 5 per second"},{"url":"https://api.spaceflightnewsapi.net/v4/schema/","date":"2026-11-02","proved":"the offset parameter is at most 10,000, with published_at_lt for going further","capture":"sha256:9404d81642bc28208880f59d9a694c3068375e0b553da309f39532c97d334a03","quote":"The initial index from which to return the results, at most 10,000."},{"url":"https://api.spaceflightnewsapi.net/v4/docs/","date":"2026-11-02","proved":"a GraphQL endpoint is offered beside REST","capture":"sha256:3e0b91a97475a1f36bbbf229c89afdfa49af3e2357e01f4227cf7aee27881a17","quote":"The Spaceflight News API also has GraphQL support available!"},{"url":"probe:https://api.spaceflightnewsapi.net/v4/articles/?limit=1","date":"2026-11-02","proved":"a keyless GET answered with articles and counted 36741 of them","capture":"sha256:78ac46775a76ee181b4fe71494f5f482989c464083fdf2b3bb90cccaf6e6c23f","quote":"{\"count\":36741,"},{"url":"probe:https://api.spaceflightnewsapi.net/v4/articles/?limit=2000","date":"2026-11-02","proved":"a request for limit=2000 was clamped: the next link is at limit=500","capture":"sha256:343b519086f583279b4da4e2fbc157276b257e8626bcb056b22d10ee5fc5f831","quote":"\"next\":\"https://api.spaceflightnewsapi.net/v4/articles/?limit=500&offset=500\""}],"verdict":"qualifies","verified_at":"2026-11-02T00:23:50.592Z","notes":"Storage: no storage or caching limit is stated in the documentation or the FAQ. Bulk path: page the article list at limit=500 with offset up to 10,000, then filter on published_at_lt with the published_at of the last result; 74 requests cover 36741 articles."},"claims":[{"path":"$.free_tier","kind":"has-free-tier","num":1.0,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.free_tier.stated","kind":"free-quota","num":5.0,"unit":"requests","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:request-rate","num":5.0,"unit":"requests","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[1].value","kind":"limit:retention-clamped","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[2].value","kind":"limit:per-object-cap","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[["$.egress.terms","not-applicable"]],"history":[],"drift":[]}]}