{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/blog-posts-api-blog-post-schema.json",
  "title": "BlogPost",
  "description": "Represents a blog post with all content and metadata",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the blog post",
      "example": "500123"
    },
    "name": {
      "type": "string",
      "description": "Internal name of the blog post",
      "example": "Example Record"
    },
    "slug": {
      "type": "string",
      "description": "URL slug for the blog post",
      "example": "example-value"
    },
    "htmlTitle": {
      "type": "string",
      "description": "HTML title tag content",
      "example": "Example Record"
    },
    "postBody": {
      "type": "string",
      "description": "HTML content of the blog post body",
      "example": "This is an example description."
    },
    "postSummary": {
      "type": "string",
      "description": "Summary or excerpt of the blog post",
      "example": "example-value"
    },
    "blogAuthorId": {
      "type": "string",
      "description": "ID of the associated blog author",
      "example": "500123"
    },
    "authorName": {
      "type": "string",
      "description": "Display name of the author",
      "example": "Example Record"
    },
    "contentGroupId": {
      "type": "string",
      "description": "ID of the blog this post belongs to",
      "example": "500123"
    },
    "campaign": {
      "type": "string",
      "description": "Campaign GUID associated with the post",
      "example": "example-value"
    },
    "categoryId": {
      "type": "integer",
      "description": "Category ID for the post",
      "example": 500123
    },
    "state": {
      "type": "string",
      "enum": [
        "DRAFT",
        "DRAFT_AB",
        "AUTOMATED",
        "PUBLISHED",
        "SCHEDULED",
        "AUTOMATED_DRAFT"
      ],
      "description": "Current state of the blog post",
      "example": "DRAFT"
    },
    "currentState": {
      "type": "string",
      "description": "Current state description",
      "example": "active"
    },
    "publishDate": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the post was/will be published",
      "example": "2025-03-15T14:30:00Z"
    },
    "created": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the post was created",
      "example": "2025-03-15T14:30:00Z"
    },
    "updated": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the post was last updated",
      "example": "2025-03-15T14:30:00Z"
    },
    "archivedAt": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the post was archived",
      "example": "2025-03-15T14:30:00Z"
    },
    "currentlyPublished": {
      "type": "boolean",
      "description": "Whether the post is currently published",
      "example": true
    },
    "domain": {
      "type": "string",
      "description": "Domain where the post is published",
      "example": "example.hubspot.com"
    },
    "featuredImage": {
      "type": "string",
      "description": "URL of the featured image",
      "example": "example-value"
    },
    "featuredImageAltText": {
      "type": "string",
      "description": "Alt text for the featured image",
      "example": "example-value"
    },
    "metaDescription": {
      "type": "string",
      "description": "Meta description for SEO",
      "example": "This is an example description."
    },
    "headHtml": {
      "type": "string",
      "description": "Custom HTML for the head section",
      "example": "example-value"
    },
    "footerHtml": {
      "type": "string",
      "description": "Custom HTML for the footer section",
      "example": "example-value"
    },
    "language": {
      "type": "string",
      "description": "Language code of the blog post",
      "example": "en"
    },
    "translatedFromId": {
      "type": "string",
      "description": "ID of the original post this was translated from",
      "example": "500123"
    },
    "tagIds": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "description": "Array of tag IDs associated with the post",
      "example": [
        500123
      ]
    },
    "useFeaturedImage": {
      "type": "boolean",
      "description": "Whether to display the featured image",
      "example": true
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Full URL of the published post",
      "example": "https://app.hubspot.com/contacts/12345"
    },
    "abStatus": {
      "type": "string",
      "enum": [
        "master",
        "variant"
      ],
      "description": "A/B test status",
      "example": "master"
    },
    "abTestId": {
      "type": "string",
      "description": "A/B test ID if part of a test",
      "example": "500123"
    },
    "folderId": {
      "type": "string",
      "description": "ID of the folder containing the post",
      "example": "500123"
    }
  },
  "required": [
    "id",
    "name",
    "created",
    "updated"
  ]
}