{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://medium.com/schemas/medium/post.json", "title": "Medium Post", "description": "A post published on the Medium platform, including its content metadata, publishing status, tags, licensing, and authorship details.", "type": "object", "required": ["title", "contentFormat", "content"], "properties": { "id": { "type": "string", "description": "The unique identifier assigned to the post by Medium." }, "title": { "type": "string", "maxLength": 100, "description": "The title of the post, limited to 100 characters." }, "contentFormat": { "type": "string", "enum": ["html", "markdown"], "description": "The format of the content field, either HTML or Markdown." }, "content": { "type": "string", "minLength": 1, "description": "The body content of the post in the format specified by contentFormat." }, "authorId": { "type": "string", "description": "The unique identifier of the user who authored the post." }, "tags": { "type": "array", "maxItems": 3, "items": { "type": "string", "maxLength": 25 }, "description": "Tags to classify the post, limited to a maximum of three tags with each up to 25 characters." }, "canonicalUrl": { "type": "string", "format": "uri", "description": "The original URL if this post was first published elsewhere, used for SEO canonical linking." }, "publishStatus": { "type": "string", "enum": ["public", "draft", "unlisted"], "default": "public", "description": "The publish status of the post. Public posts are visible to everyone, drafts are private, and unlisted posts are accessible only via direct link." }, "publishedAt": { "type": "integer", "format": "int64", "description": "The timestamp in milliseconds when the post was published." }, "license": { "type": "string", "enum": [ "all-rights-reserved", "cc-40-by", "cc-40-by-sa", "cc-40-by-nd", "cc-40-by-nc", "cc-40-by-nc-nd", "cc-40-by-nc-sa", "cc-40-zero", "public-domain" ], "default": "all-rights-reserved", "description": "The license under which the post is published." }, "licenseUrl": { "type": "string", "format": "uri", "description": "The URL to the full text of the license under which the post is published." }, "url": { "type": "string", "format": "uri", "description": "The URL to the post on Medium." }, "publicationId": { "type": "string", "description": "The unique identifier of the publication the post belongs to, if published within a publication." }, "notifyFollowers": { "type": "boolean", "description": "Whether to notify the author's followers about the new post." } } }