{
  "openapi": "3.1.1",
  "info": {
    "title": "microfeed API",
    "version": "1.0.13",
    "description": "Create, read, update, and delete content in this microfeed instance. Send an API key using Bearer authentication. A protected dashboard can separately expose experimental, draft-only WebMCP site tools to compatible browser agents after the signed-in dashboard is opened; WebMCP is not a remote API or MCP server.",
    "license": {
      "name": "GNU Affero General Public License v3.0",
      "identifier": "AGPL-3.0-only"
    }
  },
  "servers": [
    {
      "url": "/api/v1/",
      "description": "This microfeed instance API"
    }
  ],
  "tags": [
    {
      "name": "Feed",
      "description": "Read the complete feed."
    },
    {
      "name": "Items",
      "description": "Create and manage feed items."
    },
    {
      "name": "Pages",
      "description": "Create and manage standalone public Pages."
    },
    {
      "name": "Site Files",
      "description": "Manage editable root-level text files."
    },
    {
      "name": "Search",
      "description": "Find items and Pages by title or plain-text content."
    },
    {
      "name": "Channel",
      "description": "Update the primary channel."
    },
    {
      "name": "Media",
      "description": "Prepare same-origin media uploads."
    }
  ],
  "paths": {
    "/i/{slug}/chapters.json": {
      "servers": [
        {
          "url": "/",
          "description": "Public site"
        }
      ],
      "get": {
        "security": [],
        "operationId": "getPodcastChapters",
        "summary": "Get an episode's chapter file",
        "description": "Generated from the saved chapter list. Accepts an item ID, current slug, or historical alias. Published and unlisted items are available; unpublished/deleted items, empty chapter lists, offline sites, and disabled RSS return 404. Headless sites remain available. No API key is required.",
        "tags": [
          "Feed"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Podcasting 2.0 JSON chapters, version 1.2.0.",
            "content": {
              "application/json+chapters": {
                "schema": {
                  "$ref": "#/components/schemas/PodcastChapters"
                }
              }
            }
          },
          "302": {
            "description": "Site setup must be completed."
          },
          "404": {
            "description": "Episode chapters are not publicly available."
          }
        }
      },
      "head": {
        "security": [],
        "operationId": "headPodcastChapters",
        "summary": "Check episode chapter availability",
        "description": "Uses the same publication, RSS, and site access rules as GET, without returning a response body.",
        "tags": [
          "Feed"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Episode chapters are available."
          },
          "302": {
            "description": "Site setup must be completed."
          },
          "404": {
            "description": "Episode chapters are not publicly available."
          }
        }
      }
    },
    "/feed/": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "getFeed",
        "summary": "Get the feed",
        "tags": [
          "Feed"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 300
            }
          },
          {
            "in": "query",
            "name": "next_cursor",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "order",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ]
            }
          },
          {
            "in": "query",
            "name": "prev_cursor",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort",
            "schema": {
              "type": "string",
              "enum": [
                "created_at",
                "updated_at",
                "published_at",
                "newest_first",
                "oldest_first"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Feed"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/items/": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "createItem",
        "summary": "Create an item",
        "description": "Creates an item. The optional image field is cover art; the optional attachments array holds at most one main media attachment, which is published as JSON Feed attachments[0] and the RSS enclosure. Optional _microfeed.seo, _microfeed.authors, _microfeed.slug, and language configure search/social metadata, authors, and a Unicode item URL. The url field sets the feed Link and HTTP(S) canonical URL. Use _microfeed.podcast for transcripts, chapter entries, podcast participants, and content license. These are exported using the Podcasting 2.0 RSS namespace.",
        "tags": [
          "Items"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Microfeed-Causation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "header",
            "name": "Microfeed-Correlation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^(?:[\\x21-\\x7e]|[\\x21-\\x7e][\\x20-\\x7e]*[\\x21-\\x7e])$",
              "description": "A caller-generated key that makes retries of one logical item creation safe for 24 hours.",
              "example": "8ca861ab-0383-4f10-bbc2-8c80d8ef29dc"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful response.",
            "headers": {
              "Idempotency-Replayed": {
                "description": "Present with value true when an earlier request reserved this idempotency key.",
                "schema": {
                  "type": "string",
                  "enum": [
                    "true"
                  ]
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request body is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "The item URL is reserved, or the Idempotency-Key was already used with a different item payload.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/items/validate/": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "validateItem",
        "summary": "Validate an item",
        "description": "Validates the request with the same schema as item creation without creating content, uploading media, or invalidating caches.",
        "tags": [
          "Items"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemValidationResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request body is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/items/{itemId}/": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "getItem",
        "summary": "Get an item",
        "tags": [
          "Items"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "itemId",
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "The microfeed item ID or an item-page slug ending in that ID.",
              "example": "0HGJLSML3P1"
            },
            "required": true,
            "description": "The microfeed item ID or an item-page slug ending in that ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Feed"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "The item does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "put": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "updateItem",
        "summary": "Update an item",
        "description": "Only provided fields are changed; omitted attachments, GUIDs, dates, and other fields are preserved. Supplying attachments replaces the one main media attachment/RSS enclosure. The image field remains separate cover art. The url field sets the feed Link and HTTP(S) canonical URL; null or an empty string restores the local item URL. In _microfeed.seo, omitted properties are preserved and null properties restore defaults. Set seo or authors to null to clear all overrides. In _microfeed.podcast, omitted properties are preserved, null clears a property, and supplied lists replace the entire list; null clears the whole podcast object. Empty people and a cleared license inherit channel defaults. Supplying _microfeed.slug explicitly applies and freezes a Unicode URL; old public HTML URLs redirect with 301. IDs and ID-based API/feed endpoints remain stable.",
        "tags": [
          "Items"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Microfeed-Causation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "header",
            "name": "Microfeed-Correlation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "path",
            "name": "itemId",
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "The microfeed item ID or an item-page slug ending in that ID.",
              "example": "0HGJLSML3P1"
            },
            "required": true,
            "description": "The microfeed item ID or an item-page slug ending in that ID."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Item"
                }
              }
            }
          },
          "400": {
            "description": "The request body or item ID is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "The item does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "The item URL is reserved or changed concurrently.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "delete": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "deleteItem",
        "summary": "Delete an item",
        "tags": [
          "Items"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Microfeed-Causation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "header",
            "name": "Microfeed-Correlation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "path",
            "name": "itemId",
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "The microfeed item ID or an item-page slug ending in that ID.",
              "example": "0HGJLSML3P1"
            },
            "required": true,
            "description": "The microfeed item ID or an item-page slug ending in that ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "The item ID is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "The item does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/pages/": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "listPages",
        "summary": "List Pages",
        "tags": [
          "Pages"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "in": "query",
            "name": "next_cursor",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "default": "published,unlisted,unpublished",
              "type": "string",
              "pattern": "^(?:published|unlisted|unpublished)(?:,(?:published|unlisted|unpublished))*$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageListResponse"
                }
              }
            }
          },
          "400": {
            "description": "The list query or cursor is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "createPage",
        "summary": "Create a Page",
        "description": "Creates a top-level Page. A format v2 theme must be active before the Page can be published.",
        "tags": [
          "Pages"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Microfeed-Causation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "header",
            "name": "Microfeed-Correlation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PageCreateInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "The Page input or path is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "The Page path is already reserved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "The active theme does not support Pages.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/pages/validate/": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "validatePage",
        "summary": "Validate a Page",
        "tags": [
          "Pages"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PageCreateInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemValidationResponse"
                }
              }
            }
          },
          "400": {
            "description": "The Page input is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/pages/{pageId}/": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "getPage",
        "summary": "Get a Page",
        "tags": [
          "Pages"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "pageId",
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "The Page ID."
            },
            "required": true,
            "description": "The Page ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageOutput"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "The Page does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "put": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "updatePage",
        "summary": "Update a Page",
        "description": "Updates a Page. The built-in 404 Page allows content edits, but its path, published state, navigation exclusion, and existence are protected.",
        "tags": [
          "Pages"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Microfeed-Causation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "header",
            "name": "Microfeed-Correlation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "path",
            "name": "pageId",
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "The Page ID."
            },
            "required": true,
            "description": "The Page ID."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PageInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageOutput"
                }
              }
            }
          },
          "400": {
            "description": "The Page input or path is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "The Page does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "The Page path is already reserved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "The active theme does not support Pages.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "delete": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "deletePage",
        "summary": "Delete a Page",
        "tags": [
          "Pages"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Microfeed-Causation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "header",
            "name": "Microfeed-Correlation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "path",
            "name": "pageId",
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "The Page ID."
            },
            "required": true,
            "description": "The Page ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "The built-in 404 Page cannot be deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "The Page does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/site-files/": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "listSiteFiles",
        "summary": "List Site Files",
        "tags": [
          "Site Files"
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteFileListResponse"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "createSiteFile",
        "summary": "Create a Site File",
        "tags": [
          "Site Files"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Microfeed-Causation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "header",
            "name": "Microfeed-Correlation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteFileInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteFileCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "The Site File input is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "The root filename already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/site-files/validate/": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "validateSiteFile",
        "summary": "Validate a Site File",
        "tags": [
          "Site Files"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteFileInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemValidationResponse"
                }
              }
            }
          },
          "400": {
            "description": "The Site File input is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/site-files/preview/": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "previewSiteFile",
        "summary": "Render a Site File preview",
        "description": "Renders an unsaved Mustache template with current public feed, _site helpers, up to 100 newest Published items, and up to 100 most recently updated Published Pages. The special 404 Page is excluded. Preview responses are never publicly cached.",
        "tags": [
          "Site Files"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteFilePreviewInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteFilePreviewResponse"
                }
              }
            }
          },
          "400": {
            "description": "The template or rendered output is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "The Site File does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/site-files/{siteFileId}/": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "getSiteFile",
        "summary": "Get a Site File",
        "tags": [
          "Site Files"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "siteFileId",
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "The Site File ID."
            },
            "required": true,
            "description": "The Site File ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteFileOutput"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "The Site File does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "put": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "updateSiteFile",
        "summary": "Update a Site File draft",
        "tags": [
          "Site Files"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Microfeed-Causation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "header",
            "name": "Microfeed-Correlation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "path",
            "name": "siteFileId",
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "The Site File ID."
            },
            "required": true,
            "description": "The Site File ID."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteFileInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteFileOutput"
                }
              }
            }
          },
          "400": {
            "description": "The Site File draft is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "The Site File does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "delete": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "deleteSiteFile",
        "summary": "Delete a custom Site File",
        "tags": [
          "Site Files"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Microfeed-Causation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "header",
            "name": "Microfeed-Correlation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "path",
            "name": "siteFileId",
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "The Site File ID."
            },
            "required": true,
            "description": "The Site File ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Generated Site Files cannot be deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "The Site File does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/site-files/{siteFileId}/publish/": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "publishSiteFile",
        "summary": "Publish a Site File draft",
        "tags": [
          "Site Files"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Microfeed-Causation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "header",
            "name": "Microfeed-Correlation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "path",
            "name": "siteFileId",
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "The Site File ID."
            },
            "required": true,
            "description": "The Site File ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteFileOutput"
                }
              }
            }
          },
          "400": {
            "description": "The Site File content is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "The Site File does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/site-files/{siteFileId}/reset/": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "resetSiteFile",
        "summary": "Reset a generated Site File",
        "tags": [
          "Site Files"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Microfeed-Causation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "header",
            "name": "Microfeed-Correlation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "path",
            "name": "siteFileId",
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "The Site File ID."
            },
            "required": true,
            "description": "The Site File ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteFileOutput"
                }
              }
            }
          },
          "400": {
            "description": "Only generated Site Files can be reset.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "The Site File does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/search/": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "searchContent",
        "summary": "Search items and Pages",
        "description": "Searches D1 for non-deleted items and Pages. The types query defaults to items for backward compatibility. Unquoted terms use AND semantics; single- and double-quoted clauses require an exact phrase. Exact matches rank before typo-tolerant title matches for word-only queries. Clauses with at least two Unicode code points containing Han, Hiragana, Katakana, Hangul, Thai, Lao, Khmer, or Myanmar characters use literal substring matching with NFC normalization and locale-independent lowercase. Queries containing these clauses do not use typo tolerance. Single-character API queries retain legacy word/prefix matching. Each result is a content record with safe title and content highlight segments.",
        "tags": [
          "Search"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "date_published_ms_gt",
            "schema": {
              "description": "Return items published strictly after this Unix timestamp in milliseconds.",
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "description": "Return items published strictly after this Unix timestamp in milliseconds."
          },
          {
            "in": "query",
            "name": "date_published_ms_lt",
            "schema": {
              "description": "Return items published strictly before this Unix timestamp in milliseconds.",
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "description": "Return items published strictly before this Unix timestamp in milliseconds."
          },
          {
            "in": "query",
            "name": "fields",
            "schema": {
              "default": "title,content",
              "description": "Comma-separated fields to search. The default searches title and content.",
              "type": "string",
              "enum": [
                "title",
                "content",
                "title,content",
                "content,title"
              ]
            },
            "description": "Comma-separated fields to search. The default searches title and content."
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "in": "query",
            "name": "next_cursor",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 2048
            }
          },
          {
            "in": "query",
            "name": "q",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "description": "Terms are ANDed. Use single or double quotes for an exact phrase. Clauses of at least two Unicode code points containing Chinese, Japanese, Korean, Thai, Lao, Khmer, or Myanmar characters match literal substrings. One-character queries retain word/prefix matching.",
              "example": "launch \"season finale\""
            },
            "required": true,
            "description": "Terms are ANDed. Use single or double quotes for an exact phrase. Clauses of at least two Unicode code points containing Chinese, Japanese, Korean, Thai, Lao, Khmer, or Myanmar characters match literal substrings. One-character queries retain word/prefix matching."
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "default": "published,unlisted,unpublished",
              "description": "Comma-separated content statuses. Deleted content is never searched.",
              "type": "string",
              "pattern": "^(?:published|unlisted|unpublished)(?:,(?:published|unlisted|unpublished))*$"
            },
            "description": "Comma-separated content statuses. Deleted content is never searched."
          },
          {
            "in": "query",
            "name": "types",
            "schema": {
              "default": "items",
              "description": "Content types to search. The default preserves item-only behavior.",
              "type": "string",
              "enum": [
                "items",
                "pages",
                "items,pages",
                "pages,items"
              ]
            },
            "description": "Content types to search. The default preserves item-only behavior."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              }
            }
          },
          "400": {
            "description": "The search query, filters, or cursor are invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "The credential does not have read access.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Search normalization or indexing is not ready.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/channels/{channelId}/": {
      "put": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "updatePrimaryChannel",
        "summary": "Update the primary channel",
        "description": "Optional _microfeed.seo configures homepage metadata; _microfeed.publisher enriches the existing publisher identity; _microfeed.authors supplies default item authors. Omitted properties are preserved; null clears an override. Legacy authors[0].name input still sets the podcast publisher. Use _microfeed.authors for attribution without changing itunes:author. Use _microfeed.podcast for regular participants, funding links, content license, and an advisory feed import lock. Supplied lists replace the entire list; null clears a property or the whole podcast object.",
        "tags": [
          "Channel"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Microfeed-Causation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "header",
            "name": "Microfeed-Correlation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "path",
            "name": "channelId",
            "schema": {
              "type": "string",
              "const": "primary",
              "description": "microfeed currently exposes one primary channel."
            },
            "required": true,
            "description": "microfeed currently exposes one primary channel."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChannelInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "The request body or channel ID is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/media_files/presigned_urls/": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "prepareMediaUpload",
        "summary": "Prepare a media upload",
        "description": "Creates a short-lived same-origin upload URL. PUT the raw file bytes to presigned_url without a Bearer credential, then save media_url as an item image, channel icon, or attachments[0].url. An item media attachment is published as the RSS enclosure. Include item_id for an attachment; omit it only for cover-image uploads.",
        "tags": [
          "Media"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Microfeed-Causation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          },
          {
            "in": "header",
            "name": "Microfeed-Correlation-Id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[\\x20-\\x7e]+$",
              "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
              "example": "evt_12345678-1234-4123-8123-123456789abc"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadResponse"
                }
              }
            }
          },
          "400": {
            "description": "The upload request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "The Bearer credential is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Media storage is unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "webhooks": {
    "microfeedEvent": {
      "post": {
        "x-codeSamples": [
          {
            "label": "Express receiver",
            "lang": "JavaScript",
            "source": "const express = require(\"express\");\nconst {Webhook} = require(\"standardwebhooks\");\n\nconst secret = process.env.MICROFEED_WEBHOOK_SECRET;\nif (!secret) {\n  throw new Error(\"Set MICROFEED_WEBHOOK_SECRET before starting the receiver.\");\n}\n\nconst app = express();\nconst verifier = new Webhook(secret);\nconst seenDeliveryIds = new Set();\n\napp.post(\n  \"/webhook\",\n  express.raw({limit: \"256kb\", type: \"application/json\"}),\n  (request, response) => {\n    let event;\n    try {\n      event = verifier.verify(request.body, {\n        \"webhook-id\": request.get(\"webhook-id\") || \"\",\n        \"webhook-signature\": request.get(\"webhook-signature\") || \"\",\n        \"webhook-timestamp\": request.get(\"webhook-timestamp\") || \"\",\n      });\n    } catch {\n      response.status(401).send(\"Invalid webhook signature.\");\n      return;\n    }\n\n    const deliveryId = request.get(\"webhook-id\");\n    const duplicate = seenDeliveryIds.has(deliveryId);\n    seenDeliveryIds.add(deliveryId);\n    if (seenDeliveryIds.size > 10000) {\n      seenDeliveryIds.delete(seenDeliveryIds.values().next().value);\n    }\n\n    console.log(JSON.stringify({\n      delivery_id: deliveryId,\n      duplicate,\n      event_type: event.type,\n      test: event.test,\n      payload: event,\n    }, null, 2));\n\n    if (event.test === true) {\n      console.log(\"Test event accepted; production effects were skipped.\");\n    } else {\n      console.log(\"Real event accepted; this local inspector has no production effects.\");\n    }\n\n    response.status(204).end();\n  },\n);\n\napp.listen(3000, \"127.0.0.1\", () => {\n  console.log(\"Listening at http://127.0.0.1:3000/webhook\");\n});\n"
          },
          {
            "label": "Flask receiver",
            "lang": "Python",
            "source": "import json\nimport os\n\nfrom flask import Flask, request\nfrom standardwebhooks.webhooks import Webhook\n\nsecret = os.environ.get(\"MICROFEED_WEBHOOK_SECRET\")\nif not secret:\n    raise RuntimeError(\"Set MICROFEED_WEBHOOK_SECRET before starting the receiver.\")\n\napp = Flask(__name__)\nverifier = Webhook(secret)\nseen_delivery_ids = set()\n\n\n@app.post(\"/webhook\")\ndef receive_webhook():\n    raw_body = request.get_data(cache=False, as_text=False)\n    try:\n        event = verifier.verify(\n            raw_body,\n            {\n                \"webhook-id\": request.headers.get(\"webhook-id\", \"\"),\n                \"webhook-signature\": request.headers.get(\"webhook-signature\", \"\"),\n                \"webhook-timestamp\": request.headers.get(\"webhook-timestamp\", \"\"),\n            },\n        )\n    except Exception:\n        return \"Invalid webhook signature.\", 401\n\n    delivery_id = request.headers.get(\"webhook-id\", \"\")\n    duplicate = delivery_id in seen_delivery_ids\n    seen_delivery_ids.add(delivery_id)\n    if len(seen_delivery_ids) > 10000:\n        seen_delivery_ids.pop()\n\n    print(\n        json.dumps(\n            {\n                \"delivery_id\": delivery_id,\n                \"duplicate\": duplicate,\n                \"event_type\": event.get(\"type\"),\n                \"test\": event.get(\"test\"),\n                \"payload\": event,\n            },\n            indent=2,\n        ),\n        flush=True,\n    )\n\n    if event.get(\"test\") is True:\n        print(\"Test event accepted; production effects were skipped.\", flush=True)\n    else:\n        print(\n            \"Real event accepted; this local inspector has no production effects.\",\n            flush=True,\n        )\n\n    return \"\", 204\n\n\nif __name__ == \"__main__\":\n    app.run(host=\"127.0.0.1\", port=3000)\n"
          }
        ],
        "security": [],
        "operationId": "receiveMicrofeedWebhook",
        "summary": "Receive a microfeed webhook event",
        "description": "microfeed sends this signed request to each subscribed endpoint. Verify the Standard Webhooks headers against the exact raw body, deduplicate by webhook-id, durably accept the work, and then return 2xx.",
        "parameters": [
          {
            "in": "header",
            "name": "webhook-id",
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "Unique delivery ID used for receiver deduplication."
            },
            "required": true,
            "description": "Unique delivery ID used for receiver deduplication."
          },
          {
            "in": "header",
            "name": "webhook-signature",
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "Standard Webhooks HMAC signature, such as v1,<base64>."
            },
            "required": true,
            "description": "Standard Webhooks HMAC signature, such as v1,<base64>."
          },
          {
            "in": "header",
            "name": "webhook-timestamp",
            "schema": {
              "type": "string",
              "pattern": "^\\d+$",
              "description": "Unix timestamp in seconds used by signature verification."
            },
            "required": true,
            "description": "Unix timestamp in seconds used by signature verification."
          },
          {
            "in": "header",
            "name": "x-microfeed-attempt",
            "schema": {
              "type": "string",
              "pattern": "^\\d+$",
              "description": "One-based delivery attempt number."
            },
            "required": true,
            "description": "One-based delivery attempt number."
          },
          {
            "in": "header",
            "name": "x-microfeed-event",
            "schema": {
              "type": "string",
              "enum": [
                "channel.updated",
                "item.created",
                "item.updated",
                "item.published",
                "item.unlisted",
                "item.unpublished",
                "item.deleted",
                "page.created",
                "page.updated",
                "page.published",
                "page.unlisted",
                "page.unpublished",
                "page.deleted",
                "page.navigation_updated",
                "site_file.created",
                "site_file.updated",
                "site_file.published",
                "site_file.reset",
                "site_file.deleted",
                "theme.activated",
                "theme.deactivated",
                "webhook.test"
              ],
              "description": "The event type duplicated from the JSON envelope."
            },
            "required": true,
            "description": "The event type duplicated from the JSON envelope."
          },
          {
            "in": "header",
            "name": "x-microfeed-test",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ],
              "description": "Whether this is an administrator-requested test. Trust the signed JSON body's test field after signature verification."
            },
            "required": true,
            "description": "Whether this is an administrator-requested test. Trust the signed JSON body's test field after signature verification."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MicrofeedWebhookEvent"
              },
              "examples": {
                "channel.updated": {
                  "description": "The primary channel's public metadata changed.",
                  "summary": "Channel updated",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_channel_updated",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "description",
                        "title"
                      ],
                      "object": {
                        "_microfeed": {
                          "copyright": "© 2026 Example Publisher"
                        },
                        "authors": [
                          {
                            "name": "Example Publisher"
                          }
                        ],
                        "description": "A representative microfeed channel.",
                        "expired": false,
                        "homepage_url": "https://feed.example.com/",
                        "icon": "https://feed.example.com/media/production/images/icon.png",
                        "id": "primary",
                        "language": "en",
                        "title": "Example channel"
                      },
                      "previous_status": null,
                      "truncated_fields": []
                    },
                    "id": "evt_example_channel_updated",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/channels/primary/",
                      "id": "primary",
                      "type": "channel"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "channel.updated"
                  }
                },
                "item.created": {
                  "description": "An item was created. A visibility event may follow.",
                  "summary": "Item created",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_item_created",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "attachments",
                        "content_html",
                        "content_text",
                        "date_modified",
                        "date_published",
                        "image",
                        "status",
                        "title",
                        "url"
                      ],
                      "object": {
                        "attachments": [
                          {
                            "category": "audio",
                            "duration_in_seconds": 1262,
                            "mime_type": "audio/mpeg",
                            "size_in_bytes": 277000,
                            "url": "https://feed.example.com/media/production/media/example.mp3"
                          }
                        ],
                        "content_html": "<p>A representative microfeed item.</p>",
                        "content_text": "A representative microfeed item.",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "id": "item_example",
                        "image": "https://feed.example.com/media/production/images/example.png",
                        "status": "published",
                        "title": "Example item",
                        "url": "https://feed.example.com/i/example-item-item_example/"
                      },
                      "previous_status": null,
                      "truncated_fields": []
                    },
                    "id": "evt_example_item_created",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/items/item_example/",
                      "id": "item_example",
                      "type": "item"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "item.created"
                  }
                },
                "item.updated": {
                  "description": "One or more material item fields changed.",
                  "summary": "Item updated",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_item_updated",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "content_html",
                        "title"
                      ],
                      "object": {
                        "attachments": [
                          {
                            "category": "audio",
                            "duration_in_seconds": 1262,
                            "mime_type": "audio/mpeg",
                            "size_in_bytes": 277000,
                            "url": "https://feed.example.com/media/production/media/example.mp3"
                          }
                        ],
                        "content_html": "<p>A representative microfeed item.</p>",
                        "content_text": "A representative microfeed item.",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "id": "item_example",
                        "image": "https://feed.example.com/media/production/images/example.png",
                        "status": "published",
                        "title": "Example item",
                        "url": "https://feed.example.com/i/example-item-item_example/"
                      },
                      "previous_status": "published",
                      "truncated_fields": []
                    },
                    "id": "evt_example_item_updated",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/items/item_example/",
                      "id": "item_example",
                      "type": "item"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "item.updated"
                  }
                },
                "item.published": {
                  "description": "An item became publicly listed.",
                  "summary": "Item published",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_item_published",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "status"
                      ],
                      "object": {
                        "attachments": [
                          {
                            "category": "audio",
                            "duration_in_seconds": 1262,
                            "mime_type": "audio/mpeg",
                            "size_in_bytes": 277000,
                            "url": "https://feed.example.com/media/production/media/example.mp3"
                          }
                        ],
                        "content_html": "<p>A representative microfeed item.</p>",
                        "content_text": "A representative microfeed item.",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "id": "item_example",
                        "image": "https://feed.example.com/media/production/images/example.png",
                        "status": "published",
                        "title": "Example item",
                        "url": "https://feed.example.com/i/example-item-item_example/"
                      },
                      "previous_status": "unpublished",
                      "truncated_fields": []
                    },
                    "id": "evt_example_item_published",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/items/item_example/",
                      "id": "item_example",
                      "type": "item"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "item.published"
                  }
                },
                "item.unlisted": {
                  "description": "An item became public only at its direct URL.",
                  "summary": "Item unlisted",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_item_unlisted",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "status"
                      ],
                      "object": {
                        "attachments": [
                          {
                            "category": "audio",
                            "duration_in_seconds": 1262,
                            "mime_type": "audio/mpeg",
                            "size_in_bytes": 277000,
                            "url": "https://feed.example.com/media/production/media/example.mp3"
                          }
                        ],
                        "content_html": "<p>A representative microfeed item.</p>",
                        "content_text": "A representative microfeed item.",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "id": "item_example",
                        "image": "https://feed.example.com/media/production/images/example.png",
                        "status": "unlisted",
                        "title": "Example item",
                        "url": "https://feed.example.com/i/example-item-item_example/"
                      },
                      "previous_status": "published",
                      "truncated_fields": []
                    },
                    "id": "evt_example_item_unlisted",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/items/item_example/",
                      "id": "item_example",
                      "type": "item"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "item.unlisted"
                  }
                },
                "item.unpublished": {
                  "description": "An item became a private draft.",
                  "summary": "Item unpublished",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_item_unpublished",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "status"
                      ],
                      "object": {
                        "attachments": [
                          {
                            "category": "audio",
                            "duration_in_seconds": 1262,
                            "mime_type": "audio/mpeg",
                            "size_in_bytes": 277000,
                            "url": "https://feed.example.com/media/production/media/example.mp3"
                          }
                        ],
                        "content_html": "<p>A representative microfeed item.</p>",
                        "content_text": "A representative microfeed item.",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "id": "item_example",
                        "image": "https://feed.example.com/media/production/images/example.png",
                        "status": "unpublished",
                        "title": "Example item",
                        "url": "https://feed.example.com/i/example-item-item_example/"
                      },
                      "previous_status": "published",
                      "truncated_fields": []
                    },
                    "id": "evt_example_item_unpublished",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/items/item_example/",
                      "id": "item_example",
                      "type": "item"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "item.unpublished"
                  }
                },
                "item.deleted": {
                  "description": "An item was deleted; the object is its last available snapshot.",
                  "summary": "Item deleted",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_item_deleted",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [],
                      "object": {
                        "attachments": [
                          {
                            "category": "audio",
                            "duration_in_seconds": 1262,
                            "mime_type": "audio/mpeg",
                            "size_in_bytes": 277000,
                            "url": "https://feed.example.com/media/production/media/example.mp3"
                          }
                        ],
                        "content_html": "<p>A representative microfeed item.</p>",
                        "content_text": "A representative microfeed item.",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "id": "item_example",
                        "image": "https://feed.example.com/media/production/images/example.png",
                        "status": "published",
                        "title": "Example item",
                        "url": "https://feed.example.com/i/example-item-item_example/"
                      },
                      "previous_status": "published",
                      "truncated_fields": []
                    },
                    "id": "evt_example_item_deleted",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/items/item_example/",
                      "id": "item_example",
                      "type": "item"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "item.deleted"
                  }
                },
                "page.created": {
                  "description": "A Page was created. A visibility event may follow.",
                  "summary": "Page created",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_page_created",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "content_html",
                        "content_text",
                        "date_created",
                        "date_modified",
                        "date_published",
                        "is_not_found_page",
                        "meta_description",
                        "navigation_label",
                        "navigation_order",
                        "show_in_navigation",
                        "slug",
                        "status",
                        "title",
                        "url"
                      ],
                      "object": {
                        "content_html": "<p>A representative microfeed Page.</p>",
                        "content_text": "A representative microfeed Page.",
                        "date_created": "2026-08-14T12:00:00.000Z",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "id": "page_example",
                        "is_not_found_page": false,
                        "meta_description": "A representative Page used for webhook testing.",
                        "navigation_label": "Example",
                        "navigation_order": 10,
                        "show_in_navigation": true,
                        "slug": "example",
                        "status": "published",
                        "title": "Example Page",
                        "url": "https://feed.example.com/example/"
                      },
                      "previous_status": null,
                      "truncated_fields": []
                    },
                    "id": "evt_example_page_created",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/pages/page_example/",
                      "id": "page_example",
                      "type": "page"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "page.created"
                  }
                },
                "page.updated": {
                  "description": "One or more material Page fields changed.",
                  "summary": "Page updated",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_page_updated",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "content_html",
                        "title"
                      ],
                      "object": {
                        "content_html": "<p>A representative microfeed Page.</p>",
                        "content_text": "A representative microfeed Page.",
                        "date_created": "2026-08-14T12:00:00.000Z",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "id": "page_example",
                        "is_not_found_page": false,
                        "meta_description": "A representative Page used for webhook testing.",
                        "navigation_label": "Example",
                        "navigation_order": 10,
                        "show_in_navigation": true,
                        "slug": "example",
                        "status": "published",
                        "title": "Example Page",
                        "url": "https://feed.example.com/example/"
                      },
                      "previous_status": "published",
                      "truncated_fields": []
                    },
                    "id": "evt_example_page_updated",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/pages/page_example/",
                      "id": "page_example",
                      "type": "page"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "page.updated"
                  }
                },
                "page.published": {
                  "description": "A Page became publicly listed.",
                  "summary": "Page published",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_page_published",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "status"
                      ],
                      "object": {
                        "content_html": "<p>A representative microfeed Page.</p>",
                        "content_text": "A representative microfeed Page.",
                        "date_created": "2026-08-14T12:00:00.000Z",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "id": "page_example",
                        "is_not_found_page": false,
                        "meta_description": "A representative Page used for webhook testing.",
                        "navigation_label": "Example",
                        "navigation_order": 10,
                        "show_in_navigation": true,
                        "slug": "example",
                        "status": "published",
                        "title": "Example Page",
                        "url": "https://feed.example.com/example/"
                      },
                      "previous_status": "unpublished",
                      "truncated_fields": []
                    },
                    "id": "evt_example_page_published",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/pages/page_example/",
                      "id": "page_example",
                      "type": "page"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "page.published"
                  }
                },
                "page.unlisted": {
                  "description": "A Page became public only at its direct URL.",
                  "summary": "Page unlisted",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_page_unlisted",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "status"
                      ],
                      "object": {
                        "content_html": "<p>A representative microfeed Page.</p>",
                        "content_text": "A representative microfeed Page.",
                        "date_created": "2026-08-14T12:00:00.000Z",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "id": "page_example",
                        "is_not_found_page": false,
                        "meta_description": "A representative Page used for webhook testing.",
                        "navigation_label": "Example",
                        "navigation_order": 10,
                        "show_in_navigation": false,
                        "slug": "example",
                        "status": "unlisted",
                        "title": "Example Page",
                        "url": "https://feed.example.com/example/"
                      },
                      "previous_status": "published",
                      "truncated_fields": []
                    },
                    "id": "evt_example_page_unlisted",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/pages/page_example/",
                      "id": "page_example",
                      "type": "page"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "page.unlisted"
                  }
                },
                "page.unpublished": {
                  "description": "A Page became a private draft.",
                  "summary": "Page unpublished",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_page_unpublished",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "status"
                      ],
                      "object": {
                        "content_html": "<p>A representative microfeed Page.</p>",
                        "content_text": "A representative microfeed Page.",
                        "date_created": "2026-08-14T12:00:00.000Z",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "id": "page_example",
                        "is_not_found_page": false,
                        "meta_description": "A representative Page used for webhook testing.",
                        "navigation_label": "Example",
                        "navigation_order": 10,
                        "show_in_navigation": false,
                        "slug": "example",
                        "status": "unpublished",
                        "title": "Example Page",
                        "url": "https://feed.example.com/example/"
                      },
                      "previous_status": "published",
                      "truncated_fields": []
                    },
                    "id": "evt_example_page_unpublished",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/pages/page_example/",
                      "id": "page_example",
                      "type": "page"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "page.unpublished"
                  }
                },
                "page.deleted": {
                  "description": "A Page was deleted; the object is its last available snapshot.",
                  "summary": "Page deleted",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_page_deleted",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [],
                      "object": {
                        "content_html": "<p>A representative microfeed Page.</p>",
                        "content_text": "A representative microfeed Page.",
                        "date_created": "2026-08-14T12:00:00.000Z",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "id": "page_example",
                        "is_not_found_page": false,
                        "meta_description": "A representative Page used for webhook testing.",
                        "navigation_label": "Example",
                        "navigation_order": 10,
                        "show_in_navigation": true,
                        "slug": "example",
                        "status": "published",
                        "title": "Example Page",
                        "url": "https://feed.example.com/example/"
                      },
                      "previous_status": "published",
                      "truncated_fields": []
                    },
                    "id": "evt_example_page_deleted",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/pages/page_example/",
                      "id": "page_example",
                      "type": "page"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "page.deleted"
                  }
                },
                "page.navigation_updated": {
                  "description": "The ordered list of Pages shown in website navigation changed.",
                  "summary": "Page navigation updated",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_page_navigation_updated",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "page_ids"
                      ],
                      "object": {
                        "id": "navigation",
                        "page_ids": [
                          "page_example",
                          "page_contact"
                        ]
                      },
                      "previous_status": null,
                      "truncated_fields": []
                    },
                    "id": "evt_example_page_navigation_updated",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "id": "navigation",
                      "type": "page"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "page.navigation_updated"
                  }
                },
                "site_file.created": {
                  "description": "A root-level Site File was created.",
                  "summary": "Site File created",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_site_file_created",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "content_type",
                        "date_created",
                        "date_modified",
                        "date_published",
                        "draft_content",
                        "enabled",
                        "filename",
                        "mode",
                        "published_content",
                        "system",
                        "url"
                      ],
                      "object": {
                        "content_type": "text/plain",
                        "date_created": "2026-08-14T12:00:00.000Z",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "draft_content": "Contact: mailto:security@example.com",
                        "enabled": true,
                        "filename": "security.txt",
                        "id": "site_file_example",
                        "mode": "override",
                        "published_content": "Contact: mailto:security@example.com",
                        "system": false,
                        "url": "https://feed.example.com/security.txt"
                      },
                      "previous_status": null,
                      "truncated_fields": []
                    },
                    "id": "evt_example_site_file_created",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/site-files/site_file_example/",
                      "id": "site_file_example",
                      "type": "site_file"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "site_file.created"
                  }
                },
                "site_file.updated": {
                  "description": "A Site File's configuration or draft template changed.",
                  "summary": "Site File updated",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_site_file_updated",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "draft_content",
                        "enabled"
                      ],
                      "object": {
                        "content_type": "text/plain",
                        "date_created": "2026-08-14T12:00:00.000Z",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "draft_content": "Contact: mailto:security@example.com",
                        "enabled": true,
                        "filename": "security.txt",
                        "id": "site_file_example",
                        "mode": "override",
                        "published_content": "Contact: mailto:security@example.com",
                        "system": false,
                        "url": "https://feed.example.com/security.txt"
                      },
                      "previous_status": null,
                      "truncated_fields": []
                    },
                    "id": "evt_example_site_file_updated",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/site-files/site_file_example/",
                      "id": "site_file_example",
                      "type": "site_file"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "site_file.updated"
                  }
                },
                "site_file.published": {
                  "description": "A Site File's draft template was published.",
                  "summary": "Site File published",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_site_file_published",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "date_published",
                        "published_content"
                      ],
                      "object": {
                        "content_type": "text/plain",
                        "date_created": "2026-08-14T12:00:00.000Z",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "draft_content": "Contact: mailto:security@example.com",
                        "enabled": true,
                        "filename": "security.txt",
                        "id": "site_file_example",
                        "mode": "override",
                        "published_content": "Contact: mailto:security@example.com",
                        "system": false,
                        "url": "https://feed.example.com/security.txt"
                      },
                      "previous_status": null,
                      "truncated_fields": []
                    },
                    "id": "evt_example_site_file_published",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/site-files/site_file_example/",
                      "id": "site_file_example",
                      "type": "site_file"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "site_file.published"
                  }
                },
                "site_file.reset": {
                  "description": "A built-in Site File was restored to its generated default.",
                  "summary": "Site File reset",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_site_file_reset",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "draft_content",
                        "mode"
                      ],
                      "object": {
                        "content_type": "text/plain",
                        "date_created": "2026-08-14T12:00:00.000Z",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "draft_content": "User-agent: *\nAllow: /",
                        "enabled": true,
                        "filename": "robots.txt",
                        "id": "site_file_robots",
                        "mode": "generated",
                        "published_content": "User-agent: *\nAllow: /",
                        "system": true,
                        "url": "https://feed.example.com/robots.txt",
                        "generator": "robots"
                      },
                      "previous_status": null,
                      "truncated_fields": []
                    },
                    "id": "evt_example_site_file_reset",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/site-files/site_file_robots/",
                      "id": "site_file_robots",
                      "type": "site_file"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "site_file.reset"
                  }
                },
                "site_file.deleted": {
                  "description": "A custom Site File was deleted; the object is its last snapshot.",
                  "summary": "Site File deleted",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_site_file_deleted",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [],
                      "object": {
                        "content_type": "text/plain",
                        "date_created": "2026-08-14T12:00:00.000Z",
                        "date_modified": "2026-08-14T12:00:00.000Z",
                        "date_published": "2026-08-14T12:00:00.000Z",
                        "draft_content": "Contact: mailto:security@example.com",
                        "enabled": true,
                        "filename": "security.txt",
                        "id": "site_file_example",
                        "mode": "override",
                        "published_content": "Contact: mailto:security@example.com",
                        "system": false,
                        "url": "https://feed.example.com/security.txt"
                      },
                      "previous_status": null,
                      "truncated_fields": []
                    },
                    "id": "evt_example_site_file_deleted",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "api_path": "/api/v1/site-files/site_file_example/",
                      "id": "site_file_example",
                      "type": "site_file"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "site_file.deleted"
                  }
                },
                "theme.activated": {
                  "description": "An installed theme version became active.",
                  "summary": "Theme activated",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_theme_activated",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "active_theme_id"
                      ],
                      "object": {
                        "asset_owner_theme_id": null,
                        "checksum_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                        "created_at": "2026-08-14T12:00:00.000Z",
                        "id": "theme_example",
                        "manifest": {
                          "assets": [],
                          "author": "Example Publisher",
                          "files": {
                            "rssStylesheet": "rss.xsl",
                            "webBodyEnd": "body-end.html",
                            "webBodyStart": "body-start.html",
                            "webFeed": "feed.html",
                            "webHeader": "header.html",
                            "webItem": "item.html",
                            "webPage": "page.html",
                            "webSearch": "search.html"
                          },
                          "formatVersion": 2,
                          "license": "AGPL-3.0",
                          "microfeed": ">=1.0.0",
                          "name": "Example theme",
                          "packageId": "org.example.theme",
                          "version": "1.0.0"
                        },
                        "name": "Example theme",
                        "origin_theme_id": null,
                        "package_id": "org.example.theme",
                        "source_commit": null,
                        "source_kind": "github",
                        "source_ref": "main",
                        "source_url": "https://github.com/example/microfeed-theme",
                        "version": "1.0.0"
                      },
                      "previous_status": null,
                      "truncated_fields": []
                    },
                    "id": "evt_example_theme_activated",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "id": "theme_example",
                      "type": "theme"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "theme.activated"
                  }
                },
                "theme.deactivated": {
                  "description": "An installed theme version stopped being active.",
                  "summary": "Theme deactivated",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_theme_deactivated",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [
                        "active_theme_id"
                      ],
                      "object": {
                        "asset_owner_theme_id": null,
                        "checksum_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                        "created_at": "2026-08-14T12:00:00.000Z",
                        "id": "theme_example",
                        "manifest": {
                          "assets": [],
                          "author": "Example Publisher",
                          "files": {
                            "rssStylesheet": "rss.xsl",
                            "webBodyEnd": "body-end.html",
                            "webBodyStart": "body-start.html",
                            "webFeed": "feed.html",
                            "webHeader": "header.html",
                            "webItem": "item.html",
                            "webPage": "page.html",
                            "webSearch": "search.html"
                          },
                          "formatVersion": 2,
                          "license": "AGPL-3.0",
                          "microfeed": ">=1.0.0",
                          "name": "Example theme",
                          "packageId": "org.example.theme",
                          "version": "1.0.0"
                        },
                        "name": "Example theme",
                        "origin_theme_id": null,
                        "package_id": "org.example.theme",
                        "source_commit": null,
                        "source_kind": "github",
                        "source_ref": "main",
                        "source_url": "https://github.com/example/microfeed-theme",
                        "version": "1.0.0"
                      },
                      "previous_status": null,
                      "truncated_fields": []
                    },
                    "id": "evt_example_theme_deactivated",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "id": "theme_example",
                      "type": "theme"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "theme.deactivated"
                  }
                },
                "webhook.test": {
                  "description": "A connection test requested by an administrator.",
                  "summary": "Webhook connection test",
                  "value": {
                    "api_version": "1",
                    "context": {
                      "causation_id": null,
                      "correlation_id": "evt_example_webhook_test",
                      "origin": "dashboard",
                      "request_id": "req_example"
                    },
                    "data": {
                      "changed_fields": [],
                      "object": {
                        "id": "endpoint_example",
                        "message": "This is a microfeed webhook test."
                      },
                      "previous_status": null,
                      "truncated_fields": []
                    },
                    "id": "evt_example_webhook_test",
                    "site": {
                      "id": "site_example",
                      "url": "https://feed.example.com"
                    },
                    "subject": {
                      "id": "endpoint_example",
                      "type": "webhook"
                    },
                    "test": true,
                    "timestamp": "2026-08-14T12:00:00.000Z",
                    "type": "webhook.test"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "2XX": {
            "description": "The receiver durably accepted the event."
          },
          "default": {
            "description": "A non-2xx response. Retryable statuses follow the documented delivery policy."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ItemInput": {
        "type": "object",
        "properties": {
          "_microfeed": {
            "$ref": "#/components/schemas/ItemMicrofeed"
          },
          "attachment": {
            "description": "Compatibility input alias for attachments[0]. Prefer attachments.",
            "$ref": "#/components/schemas/Attachment"
          },
          "attachments": {
            "description": "Zero or one main media attachment. This is distinct from the item cover image and becomes the RSS enclosure.",
            "maxItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attachment"
            }
          },
          "content_html": {
            "type": "string"
          },
          "date_published": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "date_published_ms": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "guid": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "image": {
            "description": "Item-specific cover art or thumbnail. This is not the main media attachment or RSS enclosure.",
            "example": "https://feed.example.com/media/production/images/item.png",
            "type": "string",
            "format": "uri"
          },
          "language": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "published",
                  "unlisted",
                  "unpublished"
                ]
              },
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 4
              }
            ],
            "description": "The item visibility. Names are preferred; numeric values are retained for compatibility.",
            "example": "published"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "description": "Item Link: the RSS/JSON Feed destination and, for HTTP(S) links, the canonical, Open Graph, and structured-data URL. Null or an empty string restores the local item URL; omission preserves the saved Link. A different canonical excludes the local item from the generated sitemap without redirecting it. URL fragments are omitted from canonical metadata.",
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uri"
                  },
                  {
                    "type": "string",
                    "const": ""
                  }
                ]
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": {}
      },
      "ItemMicrofeed": {
        "type": "object",
        "properties": {
          "podcast": {
            "description": "Podcast episode fields: transcripts, ordered chapters, people, and license. Omitted properties are preserved on update; null clears a property. Empty people and a cleared license inherit channel defaults. Chapters are also served as application/json+chapters at /i/{id}/chapters.json for published or unlisted items.",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "people": {
                    "anyOf": [
                      {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "role": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "group": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            },
                            "img": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "license": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "identifier": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "url": {
                            "type": "string",
                            "maxLength": 2048,
                            "format": "uri"
                          }
                        },
                        "required": [
                          "identifier"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "transcripts": {
                    "anyOf": [
                      {
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "url": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "text/vtt",
                                "application/x-subrip"
                              ]
                            },
                            "language": {
                              "type": "string",
                              "maxLength": 100
                            }
                          },
                          "required": [
                            "url",
                            "type"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "chapters": {
                    "anyOf": [
                      {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "startTime": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 604800
                            },
                            "title": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "img": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            },
                            "url": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            }
                          },
                          "required": [
                            "startTime",
                            "title"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "seo": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "title": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 4096
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 10000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "social_image": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "format": "uri"
                          },
                          "width": {
                            "type": "number",
                            "const": 1200
                          },
                          "height": {
                            "type": "number",
                            "const": 630
                          },
                          "mime_type": {
                            "type": "string",
                            "enum": [
                              "image/jpeg",
                              "image/png"
                            ]
                          },
                          "alt": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 2000
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "url",
                          "width",
                          "height",
                          "mime_type"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "authors": {
            "anyOf": [
              {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 300
                    },
                    "type": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "Person",
                            "Organization"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "url": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "name"
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "slug": {
            "description": "Apply a clean /i/{slug}/ URL. NFC-normalized and lowercased; a conflict returns 409. Omit to keep the URL unchanged.",
            "type": "string"
          }
        },
        "additionalProperties": {}
      },
      "Attachment": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "enum": [
              "audio",
              "video",
              "document",
              "image",
              "external_url"
            ],
            "description": "How the main media attachment should be presented. Use external_url only for a linked web page rather than an uploaded file.",
            "example": "audio"
          },
          "duration_in_seconds": {
            "description": "Optional playback duration for an audio or video attachment.",
            "example": 1262,
            "type": "number",
            "minimum": 0
          },
          "mime_type": {
            "description": "Media type of the attachment, such as audio/mpeg or image/png.",
            "example": "audio/mpeg",
            "type": "string"
          },
          "size_in_byte": {
            "deprecated": true,
            "description": "Deprecated singular spelling. Use size_in_bytes.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "size_in_bytes": {
            "description": "Attachment size in bytes. RSS uses this as the enclosure length.",
            "example": 277000,
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Permanent attachment URL. Uploaded media should use media_url returned by the upload-preparation operation.",
            "example": "https://feed.example.com/media/production/media/audio.mp3"
          }
        },
        "required": [
          "category",
          "url"
        ],
        "additionalProperties": {},
        "description": "The item's one main media attachment. It appears as JSON Feed attachments[0] and as the RSS enclosure."
      },
      "PageCreateInput": {
        "type": "object",
        "properties": {
          "content_html": {
            "description": "The Page body as sanitized rich-text HTML.",
            "type": "string"
          },
          "meta_description": {
            "description": "An optional plain-text summary used in the Page's HTML meta description. Maximum 155 characters.",
            "anyOf": [
              {
                "type": "string",
                "maxLength": 155
              },
              {
                "type": "null"
              }
            ]
          },
          "navigation_label": {
            "description": "The manually chosen text used for this Page in website navigation. Required when show_in_navigation is true unless the Page is Unlisted.",
            "example": "About",
            "type": "string",
            "maxLength": 100
          },
          "show_in_navigation": {
            "description": "Whether the Page is eligible for website navigation. This setting is only active when status is published. For an unpublished Draft, it is stored but ignored until the Page is published. For an unlisted Page, it is always forced to false.",
            "type": "boolean"
          },
          "slug": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "The required, manually chosen top-level path segment, such as about for /about/.",
            "example": "about"
          },
          "status": {
            "description": "The Page visibility: published is public and discoverable; unlisted remains public at its direct URL but cannot appear in navigation; unpublished is a private Draft.",
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "published",
                  "unlisted",
                  "unpublished"
                ]
              },
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 4
              }
            ],
            "example": "published"
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          }
        },
        "required": [
          "slug",
          "title"
        ]
      },
      "PageInput": {
        "type": "object",
        "properties": {
          "content_html": {
            "description": "The Page body as sanitized rich-text HTML.",
            "type": "string"
          },
          "meta_description": {
            "description": "An optional plain-text summary used in the Page's HTML meta description. Maximum 155 characters.",
            "anyOf": [
              {
                "type": "string",
                "maxLength": 155
              },
              {
                "type": "null"
              }
            ]
          },
          "navigation_label": {
            "description": "The manually chosen text used for this Page in website navigation. Required when show_in_navigation is true unless the Page is Unlisted.",
            "example": "About",
            "type": "string",
            "maxLength": 100
          },
          "show_in_navigation": {
            "description": "Whether the Page is eligible for website navigation. This setting is only active when status is published. For an unpublished Draft, it is stored but ignored until the Page is published. For an unlisted Page, it is always forced to false.",
            "type": "boolean"
          },
          "slug": {
            "description": "A top-level path segment, such as about for /about/.",
            "example": "about",
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "status": {
            "description": "The Page visibility: published is public and discoverable; unlisted remains public at its direct URL but cannot appear in navigation; unpublished is a private Draft.",
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "published",
                  "unlisted",
                  "unpublished"
                ]
              },
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 4
              }
            ],
            "example": "published"
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          }
        }
      },
      "SiteFileInput": {
        "type": "object",
        "properties": {
          "content_type": {
            "type": "string",
            "enum": [
              "application/json",
              "application/manifest+json",
              "application/rss+xml",
              "application/xml",
              "text/css",
              "text/csv",
              "text/markdown",
              "text/plain",
              "text/yaml"
            ]
          },
          "draft_content": {
            "description": "A Mustache template. It is rendered with the public feed, Pages, items, and _site helpers when previewed or served.",
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "filename": {
            "description": "A lowercase root filename with a supported text extension.",
            "example": "security.txt",
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        }
      },
      "SiteFilePreviewInput": {
        "type": "object",
        "properties": {
          "content_type": {
            "type": "string",
            "enum": [
              "application/json",
              "application/manifest+json",
              "application/rss+xml",
              "application/xml",
              "text/css",
              "text/csv",
              "text/markdown",
              "text/plain",
              "text/yaml"
            ]
          },
          "draft_content": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "filename": {
            "description": "A lowercase root filename with a supported text extension.",
            "example": "security.txt",
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "site_file_id": {
            "description": "The existing Site File ID, used to preserve its built-in generator context.",
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "draft_content"
        ]
      },
      "ChannelInput": {
        "type": "object",
        "properties": {
          "_microfeed": {
            "$ref": "#/components/schemas/ChannelMicrofeedInput"
          },
          "authors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "name"
              ]
            }
          },
          "description": {
            "type": "string"
          },
          "expired": {
            "type": "boolean"
          },
          "home_page_url": {
            "deprecated": true,
            "type": "string",
            "format": "uri"
          },
          "homepage_url": {
            "type": "string",
            "format": "uri"
          },
          "icon": {
            "type": "string",
            "format": "uri"
          },
          "language": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "additionalProperties": {}
      },
      "ChannelMicrofeedInput": {
        "type": "object",
        "properties": {
          "podcast": {
            "description": "Podcast show fields: regular people, support links (funding), content license, and advisory import lock (locked). Omitted properties are preserved; null clears an override. Podcast people are separate from SEO authors and the publisher.",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "people": {
                    "anyOf": [
                      {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "role": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "group": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            },
                            "img": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "license": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "identifier": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "url": {
                            "type": "string",
                            "maxLength": 2048,
                            "format": "uri"
                          }
                        },
                        "required": [
                          "identifier"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "funding": {
                    "anyOf": [
                      {
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "url": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            }
                          },
                          "required": [
                            "label",
                            "url"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "locked": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "seo": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "title": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 4096
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 10000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "social_image": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "format": "uri"
                          },
                          "width": {
                            "type": "number",
                            "const": 1200
                          },
                          "height": {
                            "type": "number",
                            "const": 630
                          },
                          "mime_type": {
                            "type": "string",
                            "enum": [
                              "image/jpeg",
                              "image/png"
                            ]
                          },
                          "alt": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 2000
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "url",
                          "width",
                          "height",
                          "mime_type"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "publisher": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "type": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Person",
                          "Organization"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "url": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "same_as": {
                    "anyOf": [
                      {
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uri"
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "authors": {
            "anyOf": [
              {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 300
                    },
                    "type": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "Person",
                            "Organization"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "url": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "name"
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "copyright": {
            "description": "Channel copyright text. Use the allowlisted {{current_year}} variable to publish the current UTC year automatically; the expression is saved literally and resolved in public output.",
            "example": "© {{current_year}} Example Publisher",
            "type": "string"
          }
        },
        "additionalProperties": {}
      },
      "UploadRequest": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "enum": [
              "image",
              "audio",
              "video",
              "document"
            ],
            "description": "The uploaded file category. For an item attachment, this must match attachments[0].category.",
            "example": "audio"
          },
          "full_local_file_path": {
            "type": "string",
            "minLength": 1,
            "description": "A filename or local path used to preserve the extension. The server never reads this path.",
            "example": "/tmp/episode.mp3"
          },
          "item_id": {
            "description": "The existing item ID that will own a media attachment. Required for audio, video, and document uploads; include it for an image attachment. Omit it only for item or channel cover-image uploads.",
            "example": "0HGJLSML3P1",
            "type": "string"
          },
          "size": {
            "description": "Expected upload size in bytes.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "type": {
            "description": "Expected media type, such as audio/mpeg.",
            "type": "string"
          }
        },
        "required": [
          "category",
          "full_local_file_path"
        ]
      },
      "MicrofeedWebhookEvent": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookChannelData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookChannelSubject"
              },
              "type": {
                "type": "string",
                "const": "channel.updated"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookItemData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookItemSubject"
              },
              "type": {
                "type": "string",
                "const": "item.created"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookItemData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookItemSubject"
              },
              "type": {
                "type": "string",
                "const": "item.updated"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookItemData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookItemSubject"
              },
              "type": {
                "type": "string",
                "const": "item.published"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookItemData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookItemSubject"
              },
              "type": {
                "type": "string",
                "const": "item.unlisted"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookItemData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookItemSubject"
              },
              "type": {
                "type": "string",
                "const": "item.unpublished"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookItemData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookItemSubject"
              },
              "type": {
                "type": "string",
                "const": "item.deleted"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookPageData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookPageSubject"
              },
              "type": {
                "type": "string",
                "const": "page.created"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookPageData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookPageSubject"
              },
              "type": {
                "type": "string",
                "const": "page.updated"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookPageData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookPageSubject"
              },
              "type": {
                "type": "string",
                "const": "page.published"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookPageData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookPageSubject"
              },
              "type": {
                "type": "string",
                "const": "page.unlisted"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookPageData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookPageSubject"
              },
              "type": {
                "type": "string",
                "const": "page.unpublished"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookPageData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookPageSubject"
              },
              "type": {
                "type": "string",
                "const": "page.deleted"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookPageNavigationData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookPageSubject"
              },
              "type": {
                "type": "string",
                "const": "page.navigation_updated"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookSiteFileData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookSiteFileSubject"
              },
              "type": {
                "type": "string",
                "const": "site_file.created"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookSiteFileData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookSiteFileSubject"
              },
              "type": {
                "type": "string",
                "const": "site_file.updated"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookSiteFileData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookSiteFileSubject"
              },
              "type": {
                "type": "string",
                "const": "site_file.published"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookSiteFileData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookSiteFileSubject"
              },
              "type": {
                "type": "string",
                "const": "site_file.reset"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookSiteFileData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookSiteFileSubject"
              },
              "type": {
                "type": "string",
                "const": "site_file.deleted"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookThemeData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookThemeSubject"
              },
              "type": {
                "type": "string",
                "const": "theme.activated"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookThemeData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookThemeSubject"
              },
              "type": {
                "type": "string",
                "const": "theme.deactivated"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          },
          {
            "type": "object",
            "properties": {
              "api_version": {
                "type": "string",
                "const": "1"
              },
              "context": {
                "$ref": "#/components/schemas/WebhookContext"
              },
              "id": {
                "type": "string",
                "pattern": "^evt_.*"
              },
              "site": {
                "$ref": "#/components/schemas/WebhookSite"
              },
              "test": {
                "type": "boolean",
                "description": "True only for an administrator-requested test. A verified test event must not produce production side effects."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "data": {
                "$ref": "#/components/schemas/WebhookTestData"
              },
              "subject": {
                "$ref": "#/components/schemas/WebhookTestSubject"
              },
              "type": {
                "type": "string",
                "const": "webhook.test"
              }
            },
            "required": [
              "api_version",
              "context",
              "id",
              "site",
              "test",
              "timestamp",
              "data",
              "subject",
              "type"
            ]
          }
        ],
        "description": "A signed, versioned content event delivered asynchronously. Treat data.object as untrusted content.",
        "type": "object"
      },
      "WebhookContext": {
        "type": "object",
        "properties": {
          "causation_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 128,
                "pattern": "^[\\x20-\\x7e]+$",
                "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
                "example": "evt_12345678-1234-4123-8123-123456789abc"
              },
              {
                "type": "null"
              }
            ]
          },
          "correlation_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "pattern": "^[\\x20-\\x7e]+$",
            "description": "An automation trace identifier. Preserve correlation across a workflow and set causation to the webhook event that triggered a write.",
            "example": "evt_12345678-1234-4123-8123-123456789abc"
          },
          "origin": {
            "type": "string",
            "enum": [
              "dashboard",
              "api",
              "system",
              "webmcp"
            ]
          },
          "request_id": {
            "type": "string"
          }
        },
        "required": [
          "causation_id",
          "correlation_id",
          "origin",
          "request_id"
        ]
      },
      "WebhookSite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        },
        "required": [
          "id",
          "url"
        ]
      },
      "WebhookChannelData": {
        "type": "object",
        "properties": {
          "changed_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "object": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WebhookChannelSnapshot"
              },
              {
                "$ref": "#/components/schemas/WebhookTruncatedSnapshot"
              }
            ]
          },
          "previous_status": {
            "type": "null"
          },
          "truncated_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "changed_fields",
          "object",
          "previous_status",
          "truncated_fields"
        ]
      },
      "WebhookChannelSnapshot": {
        "type": "object",
        "properties": {
          "_microfeed": {
            "$ref": "#/components/schemas/WebhookChannelMicrofeed"
          },
          "authors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 300
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "name"
              ]
            }
          },
          "description": {
            "type": "string"
          },
          "expired": {
            "type": "boolean"
          },
          "homepage_url": {
            "type": "string",
            "format": "uri"
          },
          "icon": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ]
      },
      "WebhookChannelMicrofeed": {
        "type": "object",
        "properties": {
          "podcast": {
            "description": "Podcast show fields: regular people, support links (funding), content license, and advisory import lock (locked). Omitted properties are preserved; null clears an override. Podcast people are separate from SEO authors and the publisher.",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "people": {
                    "anyOf": [
                      {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "role": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "group": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            },
                            "img": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "license": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "identifier": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "url": {
                            "type": "string",
                            "maxLength": 2048,
                            "format": "uri"
                          }
                        },
                        "required": [
                          "identifier"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "funding": {
                    "anyOf": [
                      {
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "url": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            }
                          },
                          "required": [
                            "label",
                            "url"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "locked": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "seo": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "title": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 4096
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 10000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "social_image": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "minLength": 1,
                            "description": "An absolute image URL or a managed media key relative to the site's media address."
                          },
                          "width": {
                            "type": "number",
                            "const": 1200
                          },
                          "height": {
                            "type": "number",
                            "const": 630
                          },
                          "mime_type": {
                            "type": "string",
                            "enum": [
                              "image/jpeg",
                              "image/png"
                            ]
                          },
                          "alt": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 2000
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "url",
                          "width",
                          "height",
                          "mime_type"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "publisher": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "type": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Person",
                          "Organization"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "url": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "same_as": {
                    "anyOf": [
                      {
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uri"
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "authors": {
            "anyOf": [
              {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 300
                    },
                    "type": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "Person",
                            "Organization"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "url": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "name"
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "copyright": {
            "description": "Channel copyright text. Use the allowlisted {{current_year}} variable to publish the current UTC year automatically; the expression is saved literally and resolved in public output.",
            "example": "© {{current_year}} Example Publisher",
            "type": "string"
          }
        },
        "additionalProperties": {}
      },
      "WebhookTruncatedSnapshot": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "description": "The stable subject identifier retained when larger snapshot fields are removed to fit the webhook payload limit."
      },
      "WebhookChannelSubject": {
        "type": "object",
        "properties": {
          "api_path": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "const": "channel"
          }
        },
        "required": [
          "id",
          "type"
        ]
      },
      "WebhookItemData": {
        "type": "object",
        "properties": {
          "changed_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "object": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WebhookItemSnapshot"
              },
              {
                "$ref": "#/components/schemas/WebhookTruncatedSnapshot"
              }
            ]
          },
          "previous_status": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "published",
                  "unlisted",
                  "unpublished"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "truncated_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "changed_fields",
          "object",
          "previous_status",
          "truncated_fields"
        ]
      },
      "WebhookItemSnapshot": {
        "type": "object",
        "properties": {
          "_microfeed": {
            "$ref": "#/components/schemas/WebhookItemMicrofeed"
          },
          "language": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ]
          },
          "authors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 300
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "name"
              ]
            }
          },
          "attachments": {
            "maxItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentOutput"
            }
          },
          "content_html": {
            "type": "string"
          },
          "content_text": {
            "type": "string"
          },
          "date_modified": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "date_published": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "id": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "published",
              "unlisted",
              "unpublished"
            ]
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "content_text",
          "id",
          "status"
        ]
      },
      "WebhookItemMicrofeed": {
        "type": "object",
        "properties": {
          "podcast": {
            "description": "Podcast episode fields: transcripts, ordered chapters, people, and license. Omitted properties are preserved on update; null clears a property. Empty people and a cleared license inherit channel defaults. Chapters are also served as application/json+chapters at /i/{id}/chapters.json for published or unlisted items.",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "people": {
                    "anyOf": [
                      {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "role": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "group": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            },
                            "img": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "license": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "identifier": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "url": {
                            "type": "string",
                            "maxLength": 2048,
                            "format": "uri"
                          }
                        },
                        "required": [
                          "identifier"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "transcripts": {
                    "anyOf": [
                      {
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "url": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "text/vtt",
                                "application/x-subrip"
                              ]
                            },
                            "language": {
                              "type": "string",
                              "maxLength": 100
                            }
                          },
                          "required": [
                            "url",
                            "type"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "chapters": {
                    "anyOf": [
                      {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "startTime": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 604800
                            },
                            "title": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "img": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            },
                            "url": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            }
                          },
                          "required": [
                            "startTime",
                            "title"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "seo": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "title": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 4096
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 10000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "social_image": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "minLength": 1,
                            "description": "An absolute image URL or a managed media key relative to the site's media address."
                          },
                          "width": {
                            "type": "number",
                            "const": 1200
                          },
                          "height": {
                            "type": "number",
                            "const": 630
                          },
                          "mime_type": {
                            "type": "string",
                            "enum": [
                              "image/jpeg",
                              "image/png"
                            ]
                          },
                          "alt": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 2000
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "url",
                          "width",
                          "height",
                          "mime_type"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "authors": {
            "anyOf": [
              {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 300
                    },
                    "type": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "Person",
                            "Organization"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "url": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "name"
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "slug": {
            "description": "Apply a clean /i/{slug}/ URL. NFC-normalized and lowercased; a conflict returns 409. Omit to keep the URL unchanged.",
            "type": "string"
          }
        },
        "additionalProperties": {}
      },
      "AttachmentOutput": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "enum": [
              "audio",
              "video",
              "document",
              "image",
              "external_url"
            ],
            "description": "How the main media attachment should be presented. Use external_url only for a linked web page rather than an uploaded file.",
            "example": "audio"
          },
          "duration_in_seconds": {
            "description": "Optional playback duration for an audio or video attachment.",
            "example": 1262,
            "type": "number",
            "minimum": 0
          },
          "mime_type": {
            "description": "Media type of the attachment, such as audio/mpeg or image/png.",
            "example": "audio/mpeg",
            "type": "string"
          },
          "size_in_byte": {
            "deprecated": true,
            "description": "Deprecated singular spelling. Use size_in_bytes.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "size_in_bytes": {
            "description": "Attachment size in bytes. RSS uses this as the enclosure length.",
            "example": 277000,
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "url": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "url"
        ],
        "additionalProperties": {}
      },
      "WebhookItemSubject": {
        "type": "object",
        "properties": {
          "api_path": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "const": "item"
          }
        },
        "required": [
          "id",
          "type"
        ]
      },
      "WebhookPageData": {
        "type": "object",
        "properties": {
          "changed_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "object": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WebhookPageSnapshot"
              },
              {
                "$ref": "#/components/schemas/WebhookTruncatedSnapshot"
              }
            ]
          },
          "previous_status": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "published",
                  "unlisted",
                  "unpublished"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "truncated_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "changed_fields",
          "object",
          "previous_status",
          "truncated_fields"
        ]
      },
      "WebhookPageSnapshot": {
        "$ref": "#/components/schemas/Page"
      },
      "Page": {
        "type": "object",
        "properties": {
          "content_html": {
            "type": "string"
          },
          "meta_description": {
            "description": "An optional plain-text summary used in the Page's HTML meta description. Maximum 155 characters.",
            "anyOf": [
              {
                "type": "string",
                "maxLength": 155
              },
              {
                "type": "null"
              }
            ]
          },
          "navigation_label": {
            "type": "string"
          },
          "show_in_navigation": {
            "type": "boolean",
            "description": "Whether the Page is eligible for website navigation. This setting is only active when status is published. For an unpublished Draft, it is stored but ignored until the Page is published. For an unlisted Page, it is always forced to false."
          },
          "slug": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "published",
              "unlisted",
              "unpublished"
            ],
            "description": "The Page visibility: published is public and discoverable; unlisted remains public at its direct URL but cannot appear in navigation; unpublished is a private Draft."
          },
          "title": {
            "type": "string"
          },
          "content_text": {
            "type": "string"
          },
          "date_created": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "date_modified": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "date_published": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "id": {
            "type": "string"
          },
          "is_not_found_page": {
            "type": "boolean",
            "description": "Whether this is the protected Page used for public 404 responses."
          },
          "navigation_order": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        },
        "required": [
          "content_html",
          "navigation_label",
          "show_in_navigation",
          "slug",
          "status",
          "title",
          "content_text",
          "date_created",
          "date_modified",
          "id",
          "is_not_found_page",
          "navigation_order",
          "url"
        ]
      },
      "WebhookPageSubject": {
        "type": "object",
        "properties": {
          "api_path": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "const": "page"
          }
        },
        "required": [
          "id",
          "type"
        ]
      },
      "WebhookPageNavigationData": {
        "type": "object",
        "properties": {
          "changed_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "object": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WebhookPageNavigationSnapshot"
              },
              {
                "$ref": "#/components/schemas/WebhookTruncatedSnapshot"
              }
            ]
          },
          "previous_status": {
            "type": "null"
          },
          "truncated_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "changed_fields",
          "object",
          "previous_status",
          "truncated_fields"
        ]
      },
      "WebhookPageNavigationSnapshot": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "const": "navigation"
          },
          "page_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "page_ids"
        ]
      },
      "WebhookSiteFileData": {
        "type": "object",
        "properties": {
          "changed_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "object": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WebhookSiteFileSnapshot"
              },
              {
                "$ref": "#/components/schemas/WebhookTruncatedSnapshot"
              }
            ]
          },
          "previous_status": {
            "type": "null"
          },
          "truncated_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "changed_fields",
          "object",
          "previous_status",
          "truncated_fields"
        ]
      },
      "WebhookSiteFileSnapshot": {
        "$ref": "#/components/schemas/SiteFile"
      },
      "SiteFile": {
        "type": "object",
        "properties": {
          "content_type": {
            "type": "string",
            "enum": [
              "application/json",
              "application/manifest+json",
              "application/rss+xml",
              "application/xml",
              "text/css",
              "text/csv",
              "text/markdown",
              "text/plain",
              "text/yaml"
            ]
          },
          "draft_content": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "filename": {
            "type": "string"
          },
          "date_created": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "date_modified": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "date_published": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "generator": {
            "type": "string",
            "enum": [
              "robots",
              "llms",
              "sitemap"
            ]
          },
          "id": {
            "type": "string"
          },
          "mode": {
            "type": "string",
            "enum": [
              "generated",
              "override"
            ]
          },
          "published_content": {
            "description": "The currently published Mustache template.",
            "type": "string"
          },
          "system": {
            "type": "boolean"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        },
        "required": [
          "content_type",
          "draft_content",
          "enabled",
          "filename",
          "date_created",
          "date_modified",
          "id",
          "mode",
          "system",
          "url"
        ]
      },
      "WebhookSiteFileSubject": {
        "type": "object",
        "properties": {
          "api_path": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "const": "site_file"
          }
        },
        "required": [
          "id",
          "type"
        ]
      },
      "WebhookThemeData": {
        "type": "object",
        "properties": {
          "changed_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "object": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WebhookThemeSnapshot"
              },
              {
                "$ref": "#/components/schemas/WebhookTruncatedSnapshot"
              }
            ]
          },
          "previous_status": {
            "type": "null"
          },
          "truncated_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "changed_fields",
          "object",
          "previous_status",
          "truncated_fields"
        ]
      },
      "WebhookThemeSnapshot": {
        "type": "object",
        "properties": {
          "asset_owner_theme_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "checksum_sha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "manifest": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "$schema": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240
                  },
                  "assets": {
                    "default": [],
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 240
                    }
                  },
                  "author": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 280
                  },
                  "homepage": {
                    "type": "string",
                    "format": "uri"
                  },
                  "license": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "microfeed": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "packageId": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 120,
                    "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"
                  },
                  "previewFixture": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240
                  },
                  "repository": {
                    "type": "string",
                    "format": "uri"
                  },
                  "version": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "files": {
                    "type": "object",
                    "properties": {
                      "rssStylesheet": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "webBodyEnd": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "webBodyStart": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "webFeed": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "webHeader": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "webItem": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      }
                    },
                    "required": [
                      "rssStylesheet",
                      "webBodyEnd",
                      "webBodyStart",
                      "webFeed",
                      "webHeader",
                      "webItem"
                    ]
                  },
                  "formatVersion": {
                    "type": "number",
                    "const": 1
                  }
                },
                "required": [
                  "author",
                  "license",
                  "microfeed",
                  "name",
                  "packageId",
                  "version",
                  "files",
                  "formatVersion"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "$schema": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240
                  },
                  "assets": {
                    "default": [],
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 240
                    }
                  },
                  "author": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 280
                  },
                  "homepage": {
                    "type": "string",
                    "format": "uri"
                  },
                  "license": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "microfeed": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "packageId": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 120,
                    "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"
                  },
                  "previewFixture": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240
                  },
                  "repository": {
                    "type": "string",
                    "format": "uri"
                  },
                  "version": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "files": {
                    "type": "object",
                    "properties": {
                      "rssStylesheet": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "webBodyEnd": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "webBodyStart": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "webFeed": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "webHeader": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "webItem": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "webPage": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "webSearch": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      }
                    },
                    "required": [
                      "rssStylesheet",
                      "webBodyEnd",
                      "webBodyStart",
                      "webFeed",
                      "webHeader",
                      "webItem",
                      "webPage",
                      "webSearch"
                    ]
                  },
                  "formatVersion": {
                    "type": "number",
                    "const": 2
                  },
                  "searchItemDestination": {
                    "description": "Where item results in public Search link. Use web for the local microfeed item page (JSON Feed items[]._microfeed.web_url and the RSS item link fallback), url for JSON Feed items[].url and the RSS item link, or attachment for JSON Feed items[].attachments[0].url and the RSS enclosure URL. Missing selected values fall back to the local item page.",
                    "type": "string",
                    "enum": [
                      "web",
                      "url",
                      "attachment"
                    ]
                  }
                },
                "required": [
                  "author",
                  "license",
                  "microfeed",
                  "name",
                  "packageId",
                  "version",
                  "files",
                  "formatVersion"
                ]
              }
            ],
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "origin_theme_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "package_id": {
            "type": "string"
          },
          "source_commit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "source_kind": {
            "type": "string",
            "enum": [
              "admin",
              "bundled",
              "github",
              "local-directory",
              "migration"
            ]
          },
          "source_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "source_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "asset_owner_theme_id",
          "checksum_sha256",
          "created_at",
          "id",
          "manifest",
          "name",
          "origin_theme_id",
          "package_id",
          "source_commit",
          "source_kind",
          "source_ref",
          "source_url",
          "version"
        ]
      },
      "WebhookThemeSubject": {
        "type": "object",
        "properties": {
          "api_path": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "const": "theme"
          }
        },
        "required": [
          "id",
          "type"
        ]
      },
      "WebhookTestData": {
        "type": "object",
        "properties": {
          "changed_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "object": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WebhookTestSnapshot"
              },
              {
                "$ref": "#/components/schemas/WebhookTruncatedSnapshot"
              }
            ]
          },
          "previous_status": {
            "type": "null"
          },
          "truncated_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "changed_fields",
          "object",
          "previous_status",
          "truncated_fields"
        ]
      },
      "WebhookTestSnapshot": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "message"
        ]
      },
      "WebhookTestSubject": {
        "type": "object",
        "properties": {
          "api_path": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "const": "webhook"
          }
        },
        "required": [
          "id",
          "type"
        ]
      },
      "PodcastChapters": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string",
            "const": "1.2.0"
          },
          "chapters": {
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "startTime": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 604800
                },
                "title": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                },
                "img": {
                  "type": "string",
                  "maxLength": 2048,
                  "format": "uri"
                },
                "url": {
                  "type": "string",
                  "maxLength": 2048,
                  "format": "uri"
                }
              },
              "required": [
                "startTime",
                "title"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "version",
          "chapters"
        ],
        "additionalProperties": false
      },
      "Feed": {
        "type": "object",
        "properties": {
          "authors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 300
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "name"
              ],
              "additionalProperties": false
            }
          },
          "_microfeed": {
            "$ref": "#/components/schemas/FeedMicrofeed"
          },
          "description": {
            "type": "string"
          },
          "favicon": {
            "type": "string"
          },
          "feed_url": {
            "type": "string"
          },
          "home_page_url": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Item"
            }
          },
          "language": {
            "type": "string"
          },
          "next_url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "items",
          "version"
        ],
        "additionalProperties": {}
      },
      "FeedMicrofeed": {
        "type": "object",
        "properties": {
          "podcast": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "people": {
                    "anyOf": [
                      {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "role": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "group": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            },
                            "img": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "license": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "identifier": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "url": {
                            "type": "string",
                            "maxLength": 2048,
                            "format": "uri"
                          }
                        },
                        "required": [
                          "identifier"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "funding": {
                    "anyOf": [
                      {
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "url": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            }
                          },
                          "required": [
                            "label",
                            "url"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "locked": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "seo": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "title": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 4096
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 10000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "social_image": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "format": "uri"
                          },
                          "width": {
                            "type": "number",
                            "const": 1200
                          },
                          "height": {
                            "type": "number",
                            "const": 630
                          },
                          "mime_type": {
                            "type": "string",
                            "enum": [
                              "image/jpeg",
                              "image/png"
                            ]
                          },
                          "alt": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 2000
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "url",
                          "width",
                          "height",
                          "mime_type"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "publisher": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "type": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "Person",
                          "Organization"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "url": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "same_as": {
                    "anyOf": [
                      {
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uri"
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "authors": {
            "anyOf": [
              {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 300
                    },
                    "type": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "Person",
                            "Organization"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "url": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "copyright": {
            "description": "Rendered channel copyright. A supported {{current_year}} variable in the saved channel has already been replaced with the current UTC year.",
            "example": "© 2026 Example Publisher",
            "type": "string"
          }
        },
        "additionalProperties": {}
      },
      "Item": {
        "type": "object",
        "properties": {
          "_microfeed": {
            "$ref": "#/components/schemas/ItemMicrofeedOutput"
          },
          "attachment": {
            "description": "Compatibility input alias for attachments[0]. Prefer attachments.",
            "$ref": "#/components/schemas/Attachment"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentOutput"
            }
          },
          "content_html": {
            "type": "string"
          },
          "date_published": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "date_published_ms": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "guid": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "language": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "published",
                  "unlisted",
                  "unpublished"
                ]
              },
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 4
              }
            ],
            "description": "The item visibility. Names are preferred; numeric values are retained for compatibility.",
            "example": "published"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "authors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 300
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "name"
              ],
              "additionalProperties": false
            }
          },
          "content_text": {
            "type": "string"
          },
          "date_modified": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          }
        },
        "required": [
          "id",
          "content_text"
        ],
        "additionalProperties": {}
      },
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string"
          }
        },
        "required": [
          "error"
        ],
        "additionalProperties": false
      },
      "ItemCreateResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "ItemValidationResponse": {
        "type": "object",
        "properties": {
          "valid": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "valid"
        ],
        "additionalProperties": false
      },
      "PageListResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PageOutput"
            }
          },
          "next_cursor": {
            "type": "string"
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "PageCreateResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "SiteFileListResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SiteFileOutput"
            }
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "SiteFileCreateResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "SiteFilePreviewResponse": {
        "type": "object",
        "properties": {
          "content_type": {
            "type": "string",
            "enum": [
              "application/json",
              "application/manifest+json",
              "application/rss+xml",
              "application/xml",
              "text/css",
              "text/csv",
              "text/markdown",
              "text/plain",
              "text/yaml"
            ]
          },
          "rendered_content": {
            "type": "string"
          },
          "valid": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "content_type",
          "rendered_content",
          "valid"
        ],
        "additionalProperties": false
      },
      "SearchResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SearchItem"
                },
                {
                  "$ref": "#/components/schemas/SearchPage"
                }
              ]
            }
          },
          "next_cursor": {
            "type": "string"
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "SearchItem": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Item"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "item"
              },
              "highlights": {
                "type": "object",
                "properties": {
                  "content_text": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/SearchHighlightSegment"
                    }
                  },
                  "title": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/SearchHighlightSegment"
                    }
                  }
                },
                "required": [
                  "content_text",
                  "title"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "type",
              "highlights"
            ],
            "additionalProperties": {}
          }
        ]
      },
      "SearchHighlightSegment": {
        "type": "object",
        "properties": {
          "matched": {
            "type": "boolean"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "matched",
          "text"
        ],
        "additionalProperties": false
      },
      "SearchPage": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "meta_description": {
                "description": "An optional plain-text summary used in the Page's HTML meta description. Maximum 155 characters.",
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 155
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "navigation_label": {
                "type": "string"
              },
              "show_in_navigation": {
                "type": "boolean",
                "description": "Whether the Page is eligible for website navigation. This setting is only active when status is published. For an unpublished Draft, it is stored but ignored until the Page is published. For an unlisted Page, it is always forced to false."
              },
              "slug": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "published",
                  "unlisted",
                  "unpublished"
                ],
                "description": "The Page visibility: published is public and discoverable; unlisted remains public at its direct URL but cannot appear in navigation; unpublished is a private Draft."
              },
              "title": {
                "type": "string"
              },
              "content_text": {
                "type": "string"
              },
              "date_modified": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "date_published": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "id": {
                "type": "string"
              },
              "is_not_found_page": {
                "type": "boolean",
                "description": "Whether this is the protected Page used for public 404 responses."
              },
              "navigation_order": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "url": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": [
              "navigation_label",
              "show_in_navigation",
              "slug",
              "status",
              "title",
              "content_text",
              "date_modified",
              "id",
              "is_not_found_page",
              "navigation_order",
              "url"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "page"
              },
              "highlights": {
                "type": "object",
                "properties": {
                  "content_text": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/SearchHighlightSegment"
                    }
                  },
                  "title": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/SearchHighlightSegment"
                    }
                  }
                },
                "required": [
                  "content_text",
                  "title"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "type",
              "highlights"
            ],
            "additionalProperties": {}
          }
        ]
      },
      "UploadResponse": {
        "type": "object",
        "properties": {
          "media_url": {
            "type": "string",
            "format": "uri",
            "description": "Permanent URL to save as the item image, channel icon, or attachment URL after the upload succeeds."
          },
          "presigned_url": {
            "type": "string",
            "format": "uri",
            "description": "Send the file bytes to this same-origin URL using HTTP PUT before saving media_url."
          }
        },
        "required": [
          "media_url",
          "presigned_url"
        ],
        "additionalProperties": false
      },
      "ItemMicrofeedOutput": {
        "type": "object",
        "properties": {
          "podcast": {
            "description": "Podcast episode fields: transcripts, ordered chapters, people, and license. Omitted properties are preserved on update; null clears a property. Empty people and a cleared license inherit channel defaults. Chapters are also served as application/json+chapters at /i/{id}/chapters.json for published or unlisted items.",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "people": {
                    "anyOf": [
                      {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "role": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "group": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            },
                            "img": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "license": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "identifier": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "url": {
                            "type": "string",
                            "maxLength": 2048,
                            "format": "uri"
                          }
                        },
                        "required": [
                          "identifier"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "transcripts": {
                    "anyOf": [
                      {
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "url": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "text/vtt",
                                "application/x-subrip"
                              ]
                            },
                            "language": {
                              "type": "string",
                              "maxLength": 100
                            }
                          },
                          "required": [
                            "url",
                            "type"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "chapters": {
                    "anyOf": [
                      {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "startTime": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 604800
                            },
                            "title": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "img": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            },
                            "url": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            }
                          },
                          "required": [
                            "startTime",
                            "title"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "seo": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "title": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 4096
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 10000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "social_image": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "format": "uri"
                          },
                          "width": {
                            "type": "number",
                            "const": 1200
                          },
                          "height": {
                            "type": "number",
                            "const": 630
                          },
                          "mime_type": {
                            "type": "string",
                            "enum": [
                              "image/jpeg",
                              "image/png"
                            ]
                          },
                          "alt": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 2000
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "url",
                          "width",
                          "height",
                          "mime_type"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "authors": {
            "anyOf": [
              {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 300
                    },
                    "type": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "Person",
                            "Organization"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "url": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "slug": {
            "description": "Apply a clean /i/{slug}/ URL. NFC-normalized and lowercased; a conflict returns 409. Omit to keep the URL unchanged.",
            "type": "string"
          }
        },
        "additionalProperties": {}
      },
      "PageOutput": {
        "type": "object",
        "properties": {
          "content_html": {
            "type": "string"
          },
          "meta_description": {
            "description": "An optional plain-text summary used in the Page's HTML meta description. Maximum 155 characters.",
            "anyOf": [
              {
                "type": "string",
                "maxLength": 155
              },
              {
                "type": "null"
              }
            ]
          },
          "navigation_label": {
            "type": "string"
          },
          "show_in_navigation": {
            "type": "boolean",
            "description": "Whether the Page is eligible for website navigation. This setting is only active when status is published. For an unpublished Draft, it is stored but ignored until the Page is published. For an unlisted Page, it is always forced to false."
          },
          "slug": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "published",
              "unlisted",
              "unpublished"
            ],
            "description": "The Page visibility: published is public and discoverable; unlisted remains public at its direct URL but cannot appear in navigation; unpublished is a private Draft."
          },
          "title": {
            "type": "string"
          },
          "content_text": {
            "type": "string"
          },
          "date_created": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "date_modified": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "date_published": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "id": {
            "type": "string"
          },
          "is_not_found_page": {
            "type": "boolean",
            "description": "Whether this is the protected Page used for public 404 responses."
          },
          "navigation_order": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        },
        "required": [
          "content_html",
          "navigation_label",
          "show_in_navigation",
          "slug",
          "status",
          "title",
          "content_text",
          "date_created",
          "date_modified",
          "id",
          "is_not_found_page",
          "navigation_order",
          "url"
        ],
        "additionalProperties": false
      },
      "SiteFileOutput": {
        "type": "object",
        "properties": {
          "content_type": {
            "type": "string",
            "enum": [
              "application/json",
              "application/manifest+json",
              "application/rss+xml",
              "application/xml",
              "text/css",
              "text/csv",
              "text/markdown",
              "text/plain",
              "text/yaml"
            ]
          },
          "draft_content": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "filename": {
            "type": "string"
          },
          "date_created": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "date_modified": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "date_published": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "generator": {
            "type": "string",
            "enum": [
              "robots",
              "llms",
              "sitemap"
            ]
          },
          "id": {
            "type": "string"
          },
          "mode": {
            "type": "string",
            "enum": [
              "generated",
              "override"
            ]
          },
          "published_content": {
            "description": "The currently published Mustache template.",
            "type": "string"
          },
          "system": {
            "type": "boolean"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        },
        "required": [
          "content_type",
          "draft_content",
          "enabled",
          "filename",
          "date_created",
          "date_modified",
          "id",
          "mode",
          "system",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "A named mf_ integration credential sent using Bearer authentication. The credential must have the read or write permission required by the operation."
      }
    }
  }
}