Spaceflight News · Schema

Article

A spaceflight news article aggregated from a participating publisher.

NewsSpaceSpaceflightAerospaceOpen SourceLaunchesPublic APIs

Properties

Name Type Description
id integer Unique identifier of the article.
title string Title of the article.
authors array List of authors who contributed to the article.
url string Canonical URL of the article on the source publisher.
image_url string URL to a cover/header image for the article.
news_site string Display name of the publisher that produced the article.
summary string Short summary of the article body.
published_at string ISO 8601 timestamp when the article was originally published.
updated_at string ISO 8601 timestamp when the article was last updated in SNAPI.
featured boolean Whether the article is featured (curated by SNAPI editors).
launches array Related Launch Library 2 launches.
events array Related Launch Library 2 events.
View JSON Schema on GitHub

JSON Schema

spaceflight-news-article-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/spaceflight-news/refs/heads/main/json-schema/spaceflight-news-article-schema.json",
  "title": "Article",
  "description": "A spaceflight news article aggregated from a participating publisher.",
  "type": "object",
  "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": {
        "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": {
            "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"
              }
            }
          }
        },
        "required": [
          "name"
        ]
      }
    },
    "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": {
        "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"
        ]
      }
    },
    "events": {
      "type": "array",
      "description": "Related Launch Library 2 events.",
      "items": {
        "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"
        ]
      }
    }
  },
  "required": [
    "authors",
    "events",
    "id",
    "image_url",
    "launches",
    "news_site",
    "published_at",
    "summary",
    "title",
    "updated_at",
    "url"
  ]
}