medium · Schema
Medium Post
A post published on the Medium platform, including its content metadata, publishing status, tags, licensing, and authorship details.
Properties
| Name | Type | Description |
|---|---|---|
| id | string | The unique identifier assigned to the post by Medium. |
| title | string | The title of the post, limited to 100 characters. |
| contentFormat | string | The format of the content field, either HTML or Markdown. |
| content | string | The body content of the post in the format specified by contentFormat. |
| authorId | string | The unique identifier of the user who authored the post. |
| tags | array | Tags to classify the post, limited to a maximum of three tags with each up to 25 characters. |
| canonicalUrl | string | The original URL if this post was first published elsewhere, used for SEO canonical linking. |
| publishStatus | string | 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 | integer | The timestamp in milliseconds when the post was published. |
| license | string | The license under which the post is published. |
| licenseUrl | string | The URL to the full text of the license under which the post is published. |
| url | string | The URL to the post on Medium. |
| publicationId | string | The unique identifier of the publication the post belongs to, if published within a publication. |
| notifyFollowers | boolean | Whether to notify the author's followers about the new post. |
JSON Schema
{
"$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."
}
}
}