{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/smry-ai/json-schema/smry-ai-article-schema.json",
  "title": "Article",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/smry-ai-openapi.json#/components/schemas/Article",
  "type": "object",
  "required": [
    "sourceUrl",
    "readerUrl",
    "title",
    "author",
    "siteName",
    "publishedAt",
    "language",
    "content",
    "contentCharacters",
    "returnedCharacters",
    "truncated",
    "source",
    "cacheHit",
    "qualityStatus",
    "respondedAt",
    "headings"
  ],
  "properties": {
    "sourceUrl": {
      "format": "uri",
      "type": "string"
    },
    "readerUrl": {
      "format": "uri",
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "author": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "siteName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "publishedAt": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "language": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "content": {
      "type": "string"
    },
    "contentCharacters": {
      "type": "number"
    },
    "returnedCharacters": {
      "type": "number"
    },
    "truncated": {
      "type": "boolean"
    },
    "source": {
      "type": "string"
    },
    "cacheHit": {
      "type": "boolean"
    },
    "qualityStatus": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "sourceCategory": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "respondedAt": {
      "type": "string"
    },
    "headings": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ]
    }
  }
}