openapi: 3.0.3 info: title: Spaceflight News Articles API version: 4.30.2 x-api-version: v4 x-generated-from: documentation x-last-validated: '2026-05-30' x-source-url: https://api.spaceflightnewsapi.net/v4/schema/ description: 'The Spaceflight News API (SNAPI) is a product by [The Space Devs](https://thespacedevs.com) (TSD). It is the most complete and up-to-date open spaceflight news API currently available, aggregating articles, blog posts, and official reports from 40+ news sites across the space industry. While this API is **free to use**, the project encourages developers to support TSD through [Patreon](https://www.patreon.com/TheSpaceDevs) to keep the API running. ### GraphQL A companion GraphQL endpoint is available at [/v4/graphql/](https://api.spaceflightnewsapi.net/v4/graphql/). ### Launch Library 2 Integration Every article, blog, and report can be linked to a Launch Library 2 launch (UUID) or event (LL2 ID), enabling launch tracking apps to surface related news. ### FAQs & Tutorials - [TheSpaceDevs Tutorials repo](https://github.com/TheSpaceDevs/Tutorials) - [SNAPI FAQ](https://github.com/TheSpaceDevs/Tutorials/blob/main/faqs/faq_SNAPI.md) - [TSD FAQ](https://github.com/TheSpaceDevs/Tutorials/blob/main/faqs/faq_TSD.md) ### Feedback & Support Reach the team on the TSD [Discord server](https://discord.gg/p7ntkNA) (#feedback-and-help) or email [derk@spaceflightnewsapi.net](mailto:derk@spaceflightnewsapi.net). ' contact: name: The Space Devs email: derk@spaceflightnewsapi.net url: https://spaceflightnewsapi.net license: name: AGPL-3.0 url: https://github.com/TheSpaceDevs/spaceflightnewsapi/blob/main/LICENSE servers: - url: https://api.spaceflightnewsapi.net/v4 description: Spaceflight News API production server (v4) tags: - name: Articles description: News articles aggregated from 40+ spaceflight news sites. paths: /articles/: get: operationId: listArticles summary: Spaceflight News List Articles description: List spaceflight news articles aggregated from 40+ publishers. Supports full-text search, news-site filtering (include/exclude lists), published_at/updated_at date range filters, related Launch Library 2 launch (UUID) or event (LL2 ID) filters, featured filter, and offset/limit pagination with ordering by published_at or updated_at. tags: - Articles security: - {} parameters: - $ref: '#/components/parameters/event' - $ref: '#/components/parameters/has_event' - $ref: '#/components/parameters/has_launch' - $ref: '#/components/parameters/is_featured' - $ref: '#/components/parameters/launch' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/news_site' - $ref: '#/components/parameters/news_site_exclude' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/ordering' - $ref: '#/components/parameters/published_at_gt' - $ref: '#/components/parameters/published_at_gte' - $ref: '#/components/parameters/published_at_lt' - $ref: '#/components/parameters/published_at_lte' - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/summary_contains' - $ref: '#/components/parameters/summary_contains_all' - $ref: '#/components/parameters/summary_contains_one' - $ref: '#/components/parameters/title_contains' - $ref: '#/components/parameters/title_contains_all' - $ref: '#/components/parameters/title_contains_one' - $ref: '#/components/parameters/updated_at_gt' - $ref: '#/components/parameters/updated_at_gte' - $ref: '#/components/parameters/updated_at_lt' - $ref: '#/components/parameters/updated_at_lte' responses: '200': description: A paginated list of news articles matching the supplied filters. content: application/json: schema: $ref: '#/components/schemas/PaginatedArticleList' examples: ListArticles200Example: summary: Default listArticles 200 response x-microcks-default: true value: count: 34380 next: https://api.spaceflightnewsapi.net/v4/articles/?limit=2&offset=2 previous: null results: - id: 38168 title: 'Live coverage: SpaceX to launch 50th Starlink mission of 2026' authors: - name: Will Robinson-Smith socials: null url: https://spaceflightnow.com/2026/05/30/live-coverage-spacex-to-launch-50th-starlink-mission-of-2026/ image_url: http://spaceflightnow.com/wp-content/uploads/2025/09/20250818_Starlink_G17_5_Vertical.jpg news_site: Spaceflight Now summary: The Starlink 17-41 mission is SpaceX's 10th and final launch of May. published_at: '2026-05-30T13:46:18Z' updated_at: '2026-05-30T13:50:17.306479Z' featured: false launches: [] events: [] x-microcks-operation: delay: 0 dispatcher: FALLBACK /articles/{id}/: get: operationId: retrieveArticle summary: Spaceflight News Retrieve Article description: Retrieve a single news article by its unique integer ID. tags: - Articles security: - {} parameters: - in: path name: id required: true description: A unique integer value identifying this article. schema: type: integer example: 38168 responses: '200': description: The requested news article. content: application/json: schema: $ref: '#/components/schemas/Article' examples: RetrieveArticle200Example: summary: Default retrieveArticle 200 response x-microcks-default: true value: id: 38168 title: 'Live coverage: SpaceX to launch 50th Starlink mission of 2026' authors: - name: Will Robinson-Smith socials: null url: https://spaceflightnow.com/2026/05/30/live-coverage-spacex-to-launch-50th-starlink-mission-of-2026/ image_url: http://spaceflightnow.com/wp-content/uploads/2025/09/20250818_Starlink_G17_5_Vertical.jpg news_site: Spaceflight Now summary: The Starlink 17-41 mission is SpaceX's 10th and final launch of May. published_at: '2026-05-30T13:46:18Z' updated_at: '2026-05-30T13:50:17.306479Z' featured: false launches: [] events: [] '404': description: Article not found. x-microcks-operation: delay: 0 dispatcher: FALLBACK components: parameters: updated_at_lte: in: query name: updated_at_lte description: Get all documents updated before a given ISO8601 timestamp (included). schema: type: string format: date-time example: '2026-12-31T23:59:59Z' updated_at_gt: in: query name: updated_at_gt description: Get all documents updated after a given ISO8601 timestamp (excluded). schema: type: string format: date-time example: '2025-01-01T00:00:00Z' published_at_lt: in: query name: published_at_lt description: Get all documents published before a given ISO8601 timestamp (excluded). schema: type: string format: date-time example: '2026-12-31T23:59:59Z' title_contains_all: in: query name: title_contains_all description: Search for documents with a title containing all keywords from comma-separated values. schema: type: string example: Starlink,launch launch: in: query name: launch description: Search for all documents related to a specific launch using its Launch Library 2 UUID. schema: type: array items: type: string format: uuid explode: false style: form example: - f33d5ece-e825-4cd8-809f-1d4c72a2e0d3 published_at_gt: in: query name: published_at_gt description: Get all documents published after a given ISO8601 timestamp (excluded). schema: type: string format: date-time example: '2025-01-01T00:00:00Z' title_contains: in: query name: title_contains description: Search for all documents with a specific phrase in the title. schema: type: string example: SpaceX updated_at_gte: in: query name: updated_at_gte description: Get all documents updated after a given ISO8601 timestamp (included). schema: type: string format: date-time example: '2025-01-01T00:00:00Z' has_launch: in: query name: has_launch description: Get all documents that have a related launch. schema: type: boolean example: true summary_contains: in: query name: summary_contains description: Search for all documents with a specific phrase in the summary. schema: type: string example: Falcon 9 summary_contains_all: in: query name: summary_contains_all description: Search for documents with a summary containing all keywords from comma-separated values. schema: type: string example: Starship,booster is_featured: in: query name: is_featured description: Get all documents that are featured. schema: type: boolean example: true title_contains_one: in: query name: title_contains_one description: Search for documents with a title containing at least one keyword from comma-separated values. schema: type: string example: SpaceX,Blue Origin search: in: query name: search required: false description: Search for documents with a specific phrase in the title or summary. schema: type: string example: Starship has_event: in: query name: has_event description: Get all documents that have a related event. schema: type: boolean example: true summary_contains_one: in: query name: summary_contains_one description: Search for documents with a summary containing at least one keyword from comma-separated values. schema: type: string example: Falcon,Starship,Dragon updated_at_lt: in: query name: updated_at_lt description: Get all documents updated before a given ISO8601 timestamp (excluded). schema: type: string format: date-time example: '2026-12-31T23:59:59Z' published_at_lte: in: query name: published_at_lte description: Get all documents published before a given ISO8601 timestamp (included). schema: type: string format: date-time example: '2026-12-31T23:59:59Z' news_site: in: query name: news_site description: Search for documents with a news_site name present in a list of comma-separated values. Case insensitive. schema: type: string example: SpaceX,NASA news_site_exclude: in: query name: news_site_exclude description: Search for documents with a news_site name NOT present in a list of comma-separated values. Case insensitive. schema: type: string example: TechCrunch published_at_gte: in: query name: published_at_gte description: Get all documents published after a given ISO8601 timestamp (included). schema: type: string format: date-time example: '2025-01-01T00:00:00Z' ordering: in: query name: ordering description: 'Order the result on `published_at, -published_at, updated_at, -updated_at`. * `published_at` - Published at * `-published_at` - Published at (descending) * `updated_at` - Updated at * `-updated_at` - Updated at (descending)' schema: type: array items: type: string enum: - -published_at - -updated_at - published_at - updated_at explode: false style: form example: - -published_at event: in: query name: event description: Search for all documents related to a specific event using its Launch Library 2 ID. schema: type: array items: type: integer explode: false style: form example: - 42 offset: in: query name: offset required: false description: The initial index from which to return the results. schema: type: integer example: 0 limit: in: query name: limit required: false description: Number of results to return per page. schema: type: integer example: 10 schemas: Launch: type: object description: Relationship to a Launch Library 2 launch. properties: launch_id: type: string format: uuid description: Launch Library 2 launch UUID. example: f33d5ece-e825-4cd8-809f-1d4c72a2e0d3 provider: type: string readOnly: true description: Source provider of the related launch (typically Launch Library 2). example: Launch Library 2 required: - launch_id - provider Event: type: object description: Relationship to a Launch Library 2 event (e.g. EVA, docking, milestone). properties: event_id: type: integer maximum: 2147483647 minimum: -2147483648 description: Launch Library 2 event identifier. example: 851 provider: type: string readOnly: true description: Source provider of the related event (typically Launch Library 2). example: Launch Library 2 required: - event_id - provider Author: type: object description: Author byline for an article, blog, or report. properties: name: type: string maxLength: 250 description: Display name of the author. example: Will Robinson-Smith socials: $ref: '#/components/schemas/Socials' required: - name Article: type: object description: A spaceflight news article aggregated from a participating publisher. properties: id: type: integer readOnly: true description: Unique identifier of the article. example: 38168 title: type: string maxLength: 250 description: Title of the article. example: 'Live coverage: SpaceX to launch 50th Starlink mission of 2026' authors: type: array description: List of authors who contributed to the article. items: $ref: '#/components/schemas/Author' url: type: string format: uri maxLength: 200 description: Canonical URL of the article on the source publisher. example: https://spaceflightnow.com/2026/05/30/live-coverage-spacex-starlink/ image_url: type: string format: uri maxLength: 500 description: URL to a cover/header image for the article. example: https://spaceflightnow.com/wp-content/uploads/2025/09/Starlink_Vertical.jpg news_site: type: string readOnly: true description: Display name of the publisher that produced the article. example: Spaceflight Now summary: type: string description: Short summary of the article body. example: The Starlink 17-41 mission is SpaceX's 10th and final launch of May. published_at: type: string format: date-time description: ISO 8601 timestamp when the article was originally published. example: '2026-05-30T13:46:18Z' updated_at: type: string format: date-time readOnly: true description: ISO 8601 timestamp when the article was last updated in SNAPI. example: '2026-05-30T13:50:17.306479Z' featured: type: boolean description: Whether the article is featured (curated by SNAPI editors). example: false launches: type: array description: Related Launch Library 2 launches. items: $ref: '#/components/schemas/Launch' events: type: array description: Related Launch Library 2 events. items: $ref: '#/components/schemas/Event' required: - authors - events - id - image_url - launches - news_site - published_at - summary - title - updated_at - url Socials: type: object description: Social media handles for an author. properties: x: type: string format: uri maxLength: 200 description: URL of the author's X (Twitter) profile. example: https://x.com/willrobinsons youtube: type: string format: uri maxLength: 200 description: URL of the author's YouTube channel. example: https://youtube.com/@author instagram: type: string format: uri maxLength: 200 description: URL of the author's Instagram profile. example: https://instagram.com/author linkedin: type: string format: uri maxLength: 200 description: URL of the author's LinkedIn profile. example: https://linkedin.com/in/author mastodon: type: string format: uri maxLength: 200 description: URL of the author's Mastodon profile. example: https://mastodon.social/@author bluesky: type: string format: uri maxLength: 200 description: URL of the author's Bluesky profile. example: https://bsky.app/profile/author.bsky.social PaginatedArticleList: type: object description: Paginated envelope wrapping a page of articles. required: - count - results properties: count: type: integer description: Total number of articles matching the query. example: 34380 next: type: string nullable: true format: uri description: URL to fetch the next page of results, or null on the last page. example: https://api.spaceflightnewsapi.net/v4/articles/?limit=10&offset=20 previous: type: string nullable: true format: uri description: URL to fetch the previous page of results, or null on the first page. example: https://api.spaceflightnewsapi.net/v4/articles/?limit=10&offset=0 results: type: array description: The current page of articles. items: $ref: '#/components/schemas/Article'