Reddit · Schema

Reddit Post (Submission)

Represents a Reddit submission (also known as a post or link), including its content, metadata, voting data, and associated subreddit information.

AdvertisingCommunitiesContentSocial MediaSocial News

Properties

Name Type Description
id string The unique ID36 identifier for the post.
name string The fullname of the post, with the t3_ prefix.
subreddit string The name of the subreddit the post was submitted to, without the r/ prefix.
subreddit_id string The fullname of the subreddit.
title string The title of the post.
author string The username of the post author.
author_fullname string The fullname of the post author.
selftext string The body text of a self-post in markdown format. Empty string for link posts.
selftext_html stringnull The body text of a self-post rendered as HTML.
url string The URL of the linked content, or the permalink for self-posts.
permalink string The relative permalink URL of the post on Reddit.
domain string The domain of the linked URL.
is_self boolean Whether the post is a self-post (text post) rather than a link post.
is_video boolean Whether the post contains hosted video content.
score integer The net score (upvotes minus downvotes) of the post.
ups integer The number of upvotes.
downs integer The number of downvotes.
upvote_ratio number The ratio of upvotes to total votes, between 0.0 and 1.0.
num_comments integer The number of comments on the post.
created_utc number The Unix timestamp of when the post was created.
edited numberboolean The Unix timestamp of the last edit, or false if never edited.
over_18 boolean Whether the post is marked as NSFW.
spoiler boolean Whether the post is marked as a spoiler.
stickied boolean Whether the post is stickied (pinned) in the subreddit.
locked boolean Whether the post is locked from new comments.
archived boolean Whether the post is archived and no longer accepts votes or comments.
hidden boolean Whether the post is hidden by the authenticated user.
saved boolean Whether the post is saved by the authenticated user.
distinguished stringnull Whether the post has been distinguished by a moderator or admin.
link_flair_text stringnull The text of the link flair applied to the post.
link_flair_css_class stringnull The CSS class of the link flair.
thumbnail string The URL of the post thumbnail, or a placeholder value like self, default, image, or nsfw.
thumbnail_width integernull The width of the thumbnail in pixels.
thumbnail_height integernull The height of the thumbnail in pixels.
media objectnull Media metadata for video or embedded content posts.
gilded integer The number of times this post has been gilded (awarded gold).
num_crossposts integer The number of times this post has been crossposted.
View JSON Schema on GitHub

JSON Schema

reddit-post-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://reddit.com/schemas/reddit/post.json",
  "title": "Reddit Post (Submission)",
  "description": "Represents a Reddit submission (also known as a post or link), including its content, metadata, voting data, and associated subreddit information.",
  "type": "object",
  "required": ["id", "name", "subreddit", "title", "author", "created_utc"],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unique ID36 identifier for the post."
    },
    "name": {
      "type": "string",
      "description": "The fullname of the post, with the t3_ prefix.",
      "pattern": "^t3_[a-z0-9]+$"
    },
    "subreddit": {
      "type": "string",
      "description": "The name of the subreddit the post was submitted to, without the r/ prefix."
    },
    "subreddit_id": {
      "type": "string",
      "description": "The fullname of the subreddit.",
      "pattern": "^t5_[a-z0-9]+$"
    },
    "title": {
      "type": "string",
      "description": "The title of the post.",
      "maxLength": 300
    },
    "author": {
      "type": "string",
      "description": "The username of the post author."
    },
    "author_fullname": {
      "type": "string",
      "description": "The fullname of the post author.",
      "pattern": "^t2_[a-z0-9]+$"
    },
    "selftext": {
      "type": "string",
      "description": "The body text of a self-post in markdown format. Empty string for link posts."
    },
    "selftext_html": {
      "type": ["string", "null"],
      "description": "The body text of a self-post rendered as HTML."
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "The URL of the linked content, or the permalink for self-posts."
    },
    "permalink": {
      "type": "string",
      "description": "The relative permalink URL of the post on Reddit."
    },
    "domain": {
      "type": "string",
      "description": "The domain of the linked URL."
    },
    "is_self": {
      "type": "boolean",
      "description": "Whether the post is a self-post (text post) rather than a link post."
    },
    "is_video": {
      "type": "boolean",
      "description": "Whether the post contains hosted video content."
    },
    "score": {
      "type": "integer",
      "description": "The net score (upvotes minus downvotes) of the post."
    },
    "ups": {
      "type": "integer",
      "description": "The number of upvotes."
    },
    "downs": {
      "type": "integer",
      "description": "The number of downvotes."
    },
    "upvote_ratio": {
      "type": "number",
      "format": "double",
      "description": "The ratio of upvotes to total votes, between 0.0 and 1.0.",
      "minimum": 0.0,
      "maximum": 1.0
    },
    "num_comments": {
      "type": "integer",
      "description": "The number of comments on the post.",
      "minimum": 0
    },
    "created_utc": {
      "type": "number",
      "format": "double",
      "description": "The Unix timestamp of when the post was created."
    },
    "edited": {
      "type": ["number", "boolean"],
      "description": "The Unix timestamp of the last edit, or false if never edited."
    },
    "over_18": {
      "type": "boolean",
      "description": "Whether the post is marked as NSFW."
    },
    "spoiler": {
      "type": "boolean",
      "description": "Whether the post is marked as a spoiler."
    },
    "stickied": {
      "type": "boolean",
      "description": "Whether the post is stickied (pinned) in the subreddit."
    },
    "locked": {
      "type": "boolean",
      "description": "Whether the post is locked from new comments."
    },
    "archived": {
      "type": "boolean",
      "description": "Whether the post is archived and no longer accepts votes or comments."
    },
    "hidden": {
      "type": "boolean",
      "description": "Whether the post is hidden by the authenticated user."
    },
    "saved": {
      "type": "boolean",
      "description": "Whether the post is saved by the authenticated user."
    },
    "distinguished": {
      "type": ["string", "null"],
      "description": "Whether the post has been distinguished by a moderator or admin.",
      "enum": [null, "moderator", "admin"]
    },
    "link_flair_text": {
      "type": ["string", "null"],
      "description": "The text of the link flair applied to the post."
    },
    "link_flair_css_class": {
      "type": ["string", "null"],
      "description": "The CSS class of the link flair."
    },
    "thumbnail": {
      "type": "string",
      "description": "The URL of the post thumbnail, or a placeholder value like self, default, image, or nsfw."
    },
    "thumbnail_width": {
      "type": ["integer", "null"],
      "description": "The width of the thumbnail in pixels."
    },
    "thumbnail_height": {
      "type": ["integer", "null"],
      "description": "The height of the thumbnail in pixels."
    },
    "media": {
      "type": ["object", "null"],
      "description": "Media metadata for video or embedded content posts."
    },
    "gilded": {
      "type": "integer",
      "description": "The number of times this post has been gilded (awarded gold).",
      "minimum": 0
    },
    "num_crossposts": {
      "type": "integer",
      "description": "The number of times this post has been crossposted.",
      "minimum": 0
    }
  }
}