openapi: 3.0.3 info: title: Spaceflight News Articles Blogs 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: Blogs description: Blog posts and longform commentary from spaceflight publishers. paths: /blogs/: get: operationId: listBlogs summary: Spaceflight News List Blogs description: List spaceflight blog posts (longform commentary, mission updates, and analysis) from participating publishers. Supports the same filtering, ordering, and pagination as the articles endpoint, including Launch Library 2 launch and event filters. tags: - Blogs 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 blog posts matching the supplied filters. content: application/json: schema: $ref: '#/components/schemas/PaginatedBlogList' examples: ListBlogs200Example: summary: Default listBlogs 200 response x-microcks-default: true value: count: 1995 next: https://api.spaceflightnewsapi.net/v4/blogs/?limit=1&offset=1 previous: null results: - id: 2277 title: United Launch Alliance Precisely Delivers Seventh Amazon Leo Mission authors: - name: ULA socials: null url: https://blog.ulalaunch.com/blog/united-launch-alliance-precisely-delivers-seventh-amazon-leo-mission image_url: https://blog.ulalaunch.com/hubfs/av_leo7_l4_media.jpg news_site: United Launch Alliance summary: ULA has launched the majority of Amazon Leo satellites on orbit. published_at: '2026-05-30T01:40:06Z' updated_at: '2026-05-30T01:50:20.401325Z' featured: false launches: [] events: [] x-microcks-operation: delay: 0 dispatcher: FALLBACK /blogs/{id}/: get: operationId: retrieveBlog summary: Spaceflight News Retrieve Blog description: Retrieve a single blog post by its unique integer ID. tags: - Blogs security: - {} parameters: - in: path name: id required: true description: A unique integer value identifying this blog post. schema: type: integer example: 2277 responses: '200': description: The requested blog post. content: application/json: schema: $ref: '#/components/schemas/Blog' examples: RetrieveBlog200Example: summary: Default retrieveBlog 200 response x-microcks-default: true value: id: 2277 title: United Launch Alliance Precisely Delivers Seventh Amazon Leo Mission authors: - name: ULA socials: null url: https://blog.ulalaunch.com/blog/united-launch-alliance-precisely-delivers-seventh-amazon-leo-mission image_url: https://blog.ulalaunch.com/hubfs/av_leo7_l4_media.jpg news_site: United Launch Alliance summary: ULA has launched the majority of Amazon Leo satellites on orbit. published_at: '2026-05-30T01:40:06Z' updated_at: '2026-05-30T01:50:20.401325Z' featured: false launches: [] events: [] '404': description: Blog post 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 Blog: type: object description: A spaceflight blog post (longform commentary or analysis) from a participating publisher. properties: id: type: integer readOnly: true description: Unique identifier of the blog post. example: 2277 title: type: string maxLength: 250 description: Title of the blog post. example: United Launch Alliance Precisely Delivers Seventh Amazon Leo Mission authors: type: array description: List of authors who contributed to the blog post. items: $ref: '#/components/schemas/Author' url: type: string format: uri maxLength: 200 description: Canonical URL of the blog post on the source publisher. example: https://blog.ulalaunch.com/blog/seventh-amazon-leo-mission image_url: type: string format: uri maxLength: 500 description: URL to a cover/header image for the blog post. example: https://blog.ulalaunch.com/hubfs/av_leo7_l4_media.jpg news_site: type: string readOnly: true description: Display name of the publisher. example: United Launch Alliance summary: type: string description: Short summary of the blog post. example: ULA has launched the majority of Amazon Leo satellites on orbit. published_at: type: string format: date-time description: ISO 8601 timestamp when the blog post was originally published. example: '2026-05-30T01:40:06Z' updated_at: type: string format: date-time readOnly: true description: ISO 8601 timestamp when the blog post was last updated in SNAPI. example: '2026-05-30T01:50:20.401325Z' featured: type: boolean description: Whether the blog post is featured. 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 PaginatedBlogList: type: object description: Paginated envelope wrapping a page of blog posts. required: - count - results properties: count: type: integer description: Total number of blog posts matching the query. example: 1995 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/blogs/?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/blogs/?limit=10&offset=0 results: type: array description: The current page of blog posts. items: $ref: '#/components/schemas/Blog'