RSS · Schema

RSS 2.0 Item

Schema describing an element inside an RSS 2.0 channel. All sub-elements are optional, but at least one of title or description must be present.

SyndicationRSSAtomJSON FeedOPMLContentXMLSpecificationStandard

Properties

Name Type Description
title string Title of the item.
link string URL of the item — typically the permalink to the corresponding HTML page.
description string Synopsis of the item. May contain HTML markup, typically escaped or in a CDATA section.
author string Email address of the author of the item, optionally followed by a name in parentheses.
category array Categories this item belongs to, optionally tagged with a taxonomy domain.
comments string URL of a page for comments relating to the item.
enclosure object Media object — most often used to attach podcast audio or video to the item. For maximum interoperability, the RSS Best Practices Profile recommends no more than one enclosure per item.
guid object Globally unique identifier for the item. When isPermaLink is true (default), the value MUST be a resolvable URL. Best practice is to provide a stable, opaque identifier and set isPermaLink=false when
pubDate string Indicates when the item was published, formatted per RFC 822. Items should not be published with future-dated pubDate as embargo, since aggregators do not honor this.
source object RSS channel that the item came from when republished from another feed.
View JSON Schema on GitHub

JSON Schema

rss-item-schema.json Raw ↑
{
  "$id": "rss-item-schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "RSS 2.0 Item",
  "description": "Schema describing an <item> element inside an RSS 2.0 channel. All sub-elements are optional, but at least one of title or description must be present.",
  "type": "object",
  "anyOf": [
    {
      "required": [
        "title"
      ]
    },
    {
      "required": [
        "description"
      ]
    }
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "Title of the item."
    },
    "link": {
      "type": "string",
      "format": "uri",
      "description": "URL of the item — typically the permalink to the corresponding HTML page."
    },
    "description": {
      "type": "string",
      "description": "Synopsis of the item. May contain HTML markup, typically escaped or in a CDATA section."
    },
    "author": {
      "type": "string",
      "description": "Email address of the author of the item, optionally followed by a name in parentheses."
    },
    "category": {
      "type": "array",
      "description": "Categories this item belongs to, optionally tagged with a taxonomy domain.",
      "items": {
        "type": "object",
        "required": [
          "value"
        ],
        "properties": {
          "value": {
            "type": "string"
          },
          "domain": {
            "type": "string"
          }
        }
      }
    },
    "comments": {
      "type": "string",
      "format": "uri",
      "description": "URL of a page for comments relating to the item."
    },
    "enclosure": {
      "type": "object",
      "description": "Media object — most often used to attach podcast audio or video to the item. For maximum interoperability, the RSS Best Practices Profile recommends no more than one enclosure per item.",
      "required": [
        "url",
        "length",
        "type"
      ],
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "URL where the enclosure is located."
        },
        "length": {
          "type": "integer",
          "minimum": 0,
          "description": "Size of the enclosure in bytes."
        },
        "type": {
          "type": "string",
          "description": "MIME type of the enclosure (e.g., audio/mpeg, video/mp4).",
          "examples": [
            "audio/mpeg"
          ]
        }
      }
    },
    "guid": {
      "type": "object",
      "description": "Globally unique identifier for the item. When isPermaLink is true (default), the value MUST be a resolvable URL. Best practice is to provide a stable, opaque identifier and set isPermaLink=false when the value is not a URL (e.g., a tag: URI).",
      "required": [
        "value"
      ],
      "properties": {
        "value": {
          "type": "string"
        },
        "isPermaLink": {
          "type": "boolean",
          "default": true
        }
      }
    },
    "pubDate": {
      "type": "string",
      "description": "Indicates when the item was published, formatted per RFC 822. Items should not be published with future-dated pubDate as embargo, since aggregators do not honor this."
    },
    "source": {
      "type": "object",
      "description": "RSS channel that the item came from when republished from another feed.",
      "required": [
        "url",
        "value"
      ],
      "properties": {
        "url": {
          "type": "string",
          "format": "uri"
        },
        "value": {
          "type": "string"
        }
      }
    }
  },
  "additionalProperties": true
}