Spaceflight News Blogs API

Blog posts and longform commentary from spaceflight publishers.

OpenAPI Specification

spaceflight-news-blogs-api-openapi.yml Raw ↑
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'