{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fiatdock-com/json-schema/fiatdock-com-feed-read-schema.json",
  "title": "FeedRead",
  "description": "Paid. RSS / Atom feed reader.",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fiatdock-com-feed-api-openapi.yml#/components/schemas/FeedRead",
  "type": "object",
  "properties": {
    "feed": {
      "type": "object",
      "properties": {
        "title": {
          "type": [
            "string",
            "null"
          ]
        },
        "link": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "format": {
          "type": "string",
          "enum": [
            "rss",
            "atom",
            "rdf"
          ]
        }
      },
      "required": [
        "title",
        "link",
        "description",
        "format"
      ],
      "description": "The feed itself: its title, website link, description, and format (rss = RSS 0.9x/2.0, rdf = RSS 1.0, atom = Atom)"
    },
    "url": {
      "type": "string",
      "description": "The URL the feed was actually read from, after redirects"
    },
    "count": {
      "type": "number",
      "description": "Items returned"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "The item's title (plain text), or null when the feed gives none"
          },
          "link": {
            "type": [
              "string",
              "null"
            ],
            "description": "The item's web address (http/https only), or null"
          },
          "published": {
            "type": [
              "string",
              "null"
            ],
            "description": "ISO time the item was published (RSS pubDate / dc:date, Atom published), or null"
          },
          "updated": {
            "type": [
              "string",
              "null"
            ],
            "description": "ISO time the item was last updated (Atom updated), or null"
          },
          "summary": {
            "type": [
              "string",
              "null"
            ],
            "description": "Plain-text summary (HTML removed), at most 500 characters, or null"
          },
          "author": {
            "type": [
              "string",
              "null"
            ],
            "description": "Author name(s), or null"
          },
          "id": {
            "type": [
              "string",
              "null"
            ],
            "description": "The item's guid / Atom id, or null"
          }
        },
        "required": [
          "title",
          "link",
          "published",
          "updated",
          "summary",
          "author",
          "id"
        ]
      },
      "description": "The feed's items, in the order the feed lists them"
    },
    "truncated": {
      "type": "boolean",
      "description": "True when the feed holds more items than were returned"
    },
    "source": {
      "type": "string",
      "description": "Where the data came from"
    },
    "asOf": {
      "type": "string",
      "description": "ISO time the feed was read (answers are cached for up to 60 s)"
    },
    "note": {
      "type": "string",
      "description": "How to read the items, and their limits"
    },
    "defaulted": {
      "type": "object",
      "properties": {
        "field": {
          "type": "string"
        },
        "to": {
          "type": "string"
        },
        "value": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "field",
        "to",
        "value",
        "note"
      ],
      "description": "Present only when the body was empty: which feed the answer is for, and why"
    }
  },
  "required": [
    "feed",
    "url",
    "count",
    "items",
    "truncated",
    "source",
    "asOf",
    "note"
  ]
}