{
  "openapi" : "3.0.1",
  "info" : {
    "description" : "Create and edit content types, content entries and AI-assisted content programmatically, and read your projects. The\nMCP server is built on these routes.\n\n### Authentication\nSend an API key in the `X-API-Key` header, or the JWT access token the dashboard uses as `Authorization: Bearer <token>`.\n\nAn API key acts with the role of the user who created it. `GET` requests need the key's `read` permission and every\nother method needs `write`. A key limited to one project receives `403` with `API_KEY_PROJECT_SCOPE` on any other project.\n\nOnly the routes listed here accept an API key. Every other admin route (commerce, webhooks, integrations, AI provider\nsettings and so on) requires a JWT. Projects are read-only through a key: it can list and fetch them, but creating,\nrenaming or deleting a project needs a signed-in dashboard session.\n\n### Errors\nEvery error response has the same shape. Branch on `error.code`, never on `error.message`, whose wording can change.\n\n```json\n{ \"error\": { \"code\": \"NOT_FOUND\", \"message\": \"Content entry not found: hello-world\" } }\n```\n\nValidation failures use `VALIDATION_ERROR` and list the offending fields under `error.details`.\n\n### Rate limits\nRequests are counted per API key (per client IP when no key is sent) in a fixed one-minute window. The default limit is\n100 requests per minute. Beyond it the API answers `429` with a `Retry-After` header giving the seconds until the\nwindow resets.\n",
    "title" : "Akorrah Management API",
    "version" : "v1"
  },
  "servers" : [ {
    "url" : "https://api.staging.akorrah.com"
  } ],
  "security" : [ {
    "apiKeyAuth" : [ ]
  }, {
    "bearerAuth" : [ ]
  } ],
  "tags" : [ {
    "description" : "The projects your key can access. Read-only: creating, renaming and deleting a project needs a signed-in dashboard session.",
    "name" : "Projects"
  }, {
    "description" : "Define the fields of each kind of content.",
    "name" : "Content Types"
  }, {
    "description" : "Create, edit, publish and translate entries.",
    "name" : "Content Entries"
  }, {
    "description" : "Editorial comments on an entry.",
    "name" : "Comments"
  }, {
    "description" : "Bulk-load or download a content type's entries as JSON or CSV.",
    "name" : "Import & Export"
  }, {
    "description" : "Rewrite, translate, summarise, score and generate content. Counts against the project's AI budget.",
    "name" : "AI Assist"
  } ],
  "paths" : {
    "/api/projects" : {
      "get" : {
        "description" : "The projects the caller can access.",
        "operationId" : "listProjects",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListProjectResponse"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "List projects",
        "tags" : [ "Projects" ]
      }
    },
    "/api/projects/{projectSlug}/ai/alt-text" : {
      "post" : {
        "description" : "Describes the image at `imageUrl` for use as alt text.",
        "operationId" : "generateAltText",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AltTextRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseAiTextResponse"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Generate image alt text",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/ai/bulk/rewrite" : {
      "post" : {
        "description" : "Rewrites one field on each of the listed entries and returns the proposed results without saving them.",
        "operationId" : "bulkRewriteField",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BulkRewriteRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListBulkFieldResult"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Rewrite a field across entries",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/ai/bulk/seo-suggest" : {
      "post" : {
        "description" : "Suggests SEO metadata for each of the listed entries and returns it without saving.",
        "operationId" : "bulkSuggestSeo",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BulkSeoSuggestRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListBulkSeoSuggestResult"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Suggest SEO metadata across entries",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/ai/bulk/translate" : {
      "post" : {
        "description" : "Translates one field on each of the listed entries and returns the proposed results without saving them.",
        "operationId" : "bulkTranslateField",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BulkTranslateRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListBulkFieldResult"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Translate a field across entries",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/ai/expand" : {
      "post" : {
        "description" : "Lengthens `text` toward `targetLength`.",
        "operationId" : "expandText",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ExpandRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseAiTextResponse"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Expand text",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/ai/generate" : {
      "post" : {
        "description" : "Drafts the field values for a whole entry of the given content type. Returns the data without saving it.",
        "operationId" : "generateEntry",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/GenerateEntryRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseJsonNode"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Generate an entry",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/ai/generate-samples" : {
      "post" : {
        "description" : "Drafts sample field values for a content type (five unless `count` is given). Returns the data without saving it.",
        "operationId" : "generateSampleEntries",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/GenerateSamplesRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListJsonNode"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Generate sample entries",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/ai/live-audit" : {
      "post" : {
        "description" : "Fetches a deployed page and runs the full site audit against it: rendered title, canonical handling, security headers, structured data and Core Web Vitals. Does not use the AI budget. Answers `502` if the URL can't be audited.",
        "operationId" : "auditLiveUrl",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LiveAuditRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseLiveAuditResponse"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Audit a live URL",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/ai/rewrite" : {
      "post" : {
        "description" : "Rewrites `text` in the requested tone, following any extra `instructions`.",
        "operationId" : "rewriteText",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/RewriteRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseAiTextResponse"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Rewrite text",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/ai/seo-score" : {
      "post" : {
        "description" : "Rule-based SEO and GEO grading of field data. It makes no AI call, so it does not use the AI budget and is safe to run on every edit.",
        "operationId" : "scoreSeo",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SeoScoreRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSeoScoreResponse"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Score SEO",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/ai/seo-suggest" : {
      "post" : {
        "description" : "Suggests a title, meta description and keywords for a piece of content.",
        "operationId" : "suggestSeo",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SeoSuggestRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSeoSuggestion"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Suggest SEO metadata",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/ai/shorten" : {
      "post" : {
        "description" : "Shortens `text` to within `maxLength`.",
        "operationId" : "shortenText",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ShortenRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseAiTextResponse"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Shorten text",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/ai/stream/rewrite" : {
      "post" : {
        "description" : "Same as Rewrite text, but streams the result as server-sent events while it is generated.",
        "operationId" : "rewriteTextStream",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/RewriteRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "text/event-stream" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "type" : "string"
                  }
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Rewrite text (streaming)",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/ai/translate" : {
      "post" : {
        "description" : "Translates `text` into `targetLanguage`.",
        "operationId" : "translateText",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/TranslateRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseAiTextResponse"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Translate text",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/ai/variants" : {
      "post" : {
        "description" : "Alternative phrasings of `text` (three unless `count` is given), such as headline options.",
        "operationId" : "generateVariants",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/VariantsRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListString"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Generate variants",
        "tags" : [ "AI Assist" ]
      }
    },
    "/api/projects/{projectSlug}/content-types" : {
      "get" : {
        "description" : "Every content type in the project, with its fields.",
        "operationId" : "listContentTypes",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListContentTypeResponse"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "List content types",
        "tags" : [ "Content Types" ]
      },
      "post" : {
        "description" : "Defines a new kind of content and its fields.",
        "operationId" : "createContentType",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ContentTypeRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseContentTypeResponse"
                }
              }
            },
            "description" : "The new content type."
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Create a content type",
        "tags" : [ "Content Types" ]
      }
    },
    "/api/projects/{projectSlug}/content-types/{typeSlug}" : {
      "delete" : {
        "description" : "Deletes the content type.",
        "operationId" : "deleteContentType",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Deleted."
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Delete a content type",
        "tags" : [ "Content Types" ]
      },
      "get" : {
        "description" : "One content type and its fields.",
        "operationId" : "getContentType",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseContentTypeResponse"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Get a content type",
        "tags" : [ "Content Types" ]
      },
      "put" : {
        "description" : "Changes a content type's definition and fields.",
        "operationId" : "updateContentType",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ContentTypeRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseContentTypeResponse"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Update a content type",
        "tags" : [ "Content Types" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries" : {
      "get" : {
        "description" : "Entries of a content type in any status, paginated. Unlike the Delivery API this includes drafts and archived entries. When `search` is given it does a text search and `filter`, `sortField` and `sortDirection` are ignored.",
        "operationId" : "listEntries",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "JSON filter on field values, using the same operators as the Delivery API. URL-encode it.",
          "in" : "query",
          "name" : "filter",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Only entries in this status: `DRAFT`, `PUBLISHED` or `ARCHIVED`.",
          "in" : "query",
          "name" : "status",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Free-text search across the content type's text fields.",
          "in" : "query",
          "name" : "search",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Field slug to sort by.",
          "in" : "query",
          "name" : "sortField",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "`asc` or `desc`.",
          "in" : "query",
          "name" : "sortDirection",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "asc"
          }
        }, {
          "description" : "Comma-separated field slugs to return.",
          "in" : "query",
          "name" : "fields",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Comma-separated relation field slugs to resolve into `_expanded`.",
          "in" : "query",
          "name" : "expand",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "1-based page number.",
          "in" : "query",
          "name" : "page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 1
          }
        }, {
          "description" : "Entries per page.",
          "in" : "query",
          "name" : "pageSize",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListContentEntryResponse"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "List entries",
        "tags" : [ "Content Entries" ]
      },
      "post" : {
        "description" : "Creates an entry as a draft. `data` holds the field values and is validated against the content type's fields.",
        "operationId" : "createEntry",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ContentEntryRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseContentEntryResponse"
                }
              }
            },
            "description" : "The new entry."
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Create an entry",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/bulk" : {
      "post" : {
        "description" : "Applies `action` (`PUBLISH`, `UNPUBLISH`, `ARCHIVE` or `DELETE`) to every entry in `ids`.",
        "operationId" : "bulkEntryAction",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BulkActionRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Applied to every entry."
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Run a bulk action",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/semantic-search" : {
      "get" : {
        "description" : "Ranks entries by embedding similarity to `q`, which finds paraphrases that plain text search misses. Needs the platform's AI provider to be configured.",
        "operationId" : "searchEntriesSemantically",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The search text.",
          "in" : "query",
          "name" : "q",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Maximum number of results.",
          "in" : "query",
          "name" : "limit",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListContentEntryResponse"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Search entries by meaning",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/{entryId}/comments" : {
      "get" : {
        "description" : "Editorial comments on an entry.",
        "operationId" : "listEntryComments",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "entryId",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListCommentResponse"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "List comments",
        "tags" : [ "Comments" ]
      },
      "post" : {
        "description" : "Adds an editorial comment to an entry.",
        "operationId" : "createEntryComment",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "entryId",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CommentRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseCommentResponse"
                }
              }
            },
            "description" : "The new comment."
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Add a comment",
        "tags" : [ "Comments" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/{id}" : {
      "delete" : {
        "description" : "Permanently deletes the entry. If other entries still reference it the request fails with `409` and `REFERENCE_INTEGRITY`, listing them under `error.details`, unless you pass `force=true`.",
        "operationId" : "deleteEntry",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Delete even if other entries still reference this one.",
          "in" : "query",
          "name" : "force",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Deleted."
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "409" : {
            "description" : "Other entries still reference this one (`REFERENCE_INTEGRITY`)."
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Delete an entry",
        "tags" : [ "Content Entries" ]
      },
      "get" : {
        "description" : "One entry by ID, including its working copy.",
        "operationId" : "getEntry",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Comma-separated field slugs to return.",
          "in" : "query",
          "name" : "fields",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Comma-separated relation field slugs to resolve into `_expanded`.",
          "in" : "query",
          "name" : "expand",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseContentEntryResponse"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Get an entry",
        "tags" : [ "Content Entries" ]
      },
      "put" : {
        "description" : "Replaces the entry's field values. Send `expectedVersion` to avoid overwriting a concurrent edit: if it no longer matches, the request fails with `409` and the body carries `currentData` and `currentVersion`.",
        "operationId" : "updateEntry",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ContentEntryRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseContentEntryResponse"
                }
              }
            },
            "description" : "The updated entry."
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "409" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseContentEntryResponse"
                }
              }
            },
            "description" : "`expectedVersion` no longer matches (`EDIT_CONFLICT`). The body also carries `currentData` and `currentVersion`."
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Update an entry",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/{id}/archive" : {
      "post" : {
        "description" : "Moves the entry to `ARCHIVED`.",
        "operationId" : "archiveEntry",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseContentEntryResponse"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Archive an entry",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/{id}/discard-draft-changes" : {
      "post" : {
        "description" : "Reverts the working copy to the last published version, dropping edits made since.",
        "operationId" : "discardEntryDraftChanges",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseContentEntryResponse"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Discard draft changes",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/{id}/hreflang" : {
      "get" : {
        "description" : "The alternate-language links the Delivery API will serve once every linked translation is published.",
        "operationId" : "previewEntryHreflang",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListMapStringString"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Preview an entry's hreflang links",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/{id}/json-ld" : {
      "get" : {
        "description" : "The structured data the Delivery API will serve once the entry is published.",
        "operationId" : "previewEntryJsonLd",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Preview the `@graph` form (with breadcrumbs), as the Delivery API serves it for `graph=true`.",
          "in" : "query",
          "name" : "graph",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseObject"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Preview an entry's JSON-LD",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/{id}/open-graph" : {
      "get" : {
        "description" : "The social-share tags the Delivery API will serve once the entry is published.",
        "operationId" : "previewEntryOpenGraph",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseMapStringString"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Preview an entry's Open Graph tags",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/{id}/publish" : {
      "post" : {
        "description" : "Makes the entry's current draft the live version served by the Delivery API.",
        "operationId" : "publishEntry",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseContentEntryResponse"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Publish an entry",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/{id}/restore/{versionId}" : {
      "post" : {
        "description" : "Restores an earlier version of the entry.",
        "operationId" : "restoreEntryVersion",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "ID of the version to restore.",
          "in" : "path",
          "name" : "versionId",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseContentEntryResponse"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Restore a version",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/{id}/schedule" : {
      "post" : {
        "description" : "Publishes the entry automatically at `scheduledPublishAt` instead of now.",
        "operationId" : "scheduleEntry",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ScheduleEntryRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseContentEntryResponse"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Schedule publishing",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/{id}/translations" : {
      "get" : {
        "description" : "This entry and its translations in other locales.",
        "operationId" : "listEntryTranslations",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListTranslationSummary"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "List translations",
        "tags" : [ "Content Entries" ]
      },
      "post" : {
        "description" : "Starts a draft in `targetLocale`, seeded from this entry.",
        "operationId" : "createEntryTranslation",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateTranslationRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseContentEntryResponse"
                }
              }
            },
            "description" : "The new translation."
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Create a translation",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/{id}/unpublish" : {
      "post" : {
        "description" : "Returns a published entry to draft so the Delivery API stops serving it.",
        "operationId" : "unpublishEntry",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseContentEntryResponse"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Unpublish an entry",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/entries/{id}/versions" : {
      "get" : {
        "description" : "The entry's saved version history.",
        "operationId" : "listEntryVersions",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "ID of the entry.",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListContentVersionResponse"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "List versions",
        "tags" : [ "Content Entries" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/export/csv" : {
      "get" : {
        "description" : "Every entry of the content type as a CSV download.",
        "operationId" : "exportEntriesCsv",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "text/csv" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "The CSV file."
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Export as CSV",
        "tags" : [ "Import & Export" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/export/json" : {
      "get" : {
        "description" : "Every entry of the content type as a JSON array.",
        "operationId" : "exportEntriesJson",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseArrayNode"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Export as JSON",
        "tags" : [ "Import & Export" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/import/csv" : {
      "post" : {
        "description" : "Creates entries from an uploaded CSV file (multipart field `file`). Returns how many were imported and which rows failed.",
        "operationId" : "importEntriesCsv",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "format" : "binary"
                  }
                },
                "required" : [ "file" ]
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseImportResult"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Import from CSV",
        "tags" : [ "Import & Export" ]
      }
    },
    "/api/projects/{projectSlug}/content/{typeSlug}/import/json" : {
      "post" : {
        "description" : "Creates entries from a JSON array in the request body. Returns how many were imported and which rows failed.",
        "operationId" : "importEntriesJson",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "projectSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Slug of the content type, such as `blog-post`.",
          "in" : "path",
          "name" : "typeSlug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseImportResult"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Import from JSON",
        "tags" : [ "Import & Export" ]
      }
    },
    "/api/projects/{slug}" : {
      "get" : {
        "description" : "One project by slug.",
        "operationId" : "getProject",
        "parameters" : [ {
          "description" : "The project's slug, as shown in the dashboard.",
          "in" : "path",
          "name" : "slug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseProjectResponse"
                }
              }
            },
            "description" : "OK"
          },
          "401" : {
            "$ref" : "#/components/responses/Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "429" : {
            "$ref" : "#/components/responses/RateLimited"
          }
        },
        "summary" : "Get a project",
        "tags" : [ "Projects" ]
      }
    }
  },
  "components" : {
    "responses" : {
      "BadRequest" : {
        "content" : {
          "application/json" : {
            "example" : {
              "error" : {
                "code" : "VALIDATION_ERROR",
                "message" : "Request validation failed"
              }
            },
            "schema" : {
              "$ref" : "#/components/schemas/ErrorResponse"
            }
          }
        },
        "description" : "The request was malformed or failed validation."
      },
      "Forbidden" : {
        "content" : {
          "application/json" : {
            "example" : {
              "error" : {
                "code" : "FORBIDDEN",
                "message" : "You do not have permission to perform this action"
              }
            },
            "schema" : {
              "$ref" : "#/components/schemas/ErrorResponse"
            }
          }
        },
        "description" : "Authenticated, but not allowed to do this."
      },
      "NotFound" : {
        "content" : {
          "application/json" : {
            "example" : {
              "error" : {
                "code" : "NOT_FOUND",
                "message" : "Content entry not found: hello-world"
              }
            },
            "schema" : {
              "$ref" : "#/components/schemas/ErrorResponse"
            }
          }
        },
        "description" : "The project, content type or entry does not exist."
      },
      "RateLimited" : {
        "content" : {
          "application/json" : {
            "example" : {
              "error" : {
                "code" : "RATE_LIMITED",
                "message" : "Too many requests, slow down"
              }
            },
            "schema" : {
              "$ref" : "#/components/schemas/ErrorResponse"
            }
          }
        },
        "description" : "Too many requests. Wait for `Retry-After` seconds.",
        "headers" : {
          "Retry-After" : {
            "description" : "Seconds until the current rate-limit window resets.",
            "schema" : {
              "type" : "integer",
              "format" : "int32"
            }
          }
        }
      },
      "Unauthorized" : {
        "content" : {
          "application/json" : {
            "example" : {
              "error" : {
                "code" : "UNAUTHORIZED",
                "message" : "This endpoint requires a valid X-API-Key header"
              }
            },
            "schema" : {
              "$ref" : "#/components/schemas/ErrorResponse"
            }
          }
        },
        "description" : "The API key is missing, invalid, expired, lacks the permission this operation needs, or is limited to a different project."
      }
    },
    "schemas" : {
      "AiTextResponse" : {
        "type" : "object",
        "properties" : {
          "result" : {
            "type" : "string"
          }
        }
      },
      "AltTextRequest" : {
        "required" : [ "imageUrl" ],
        "type" : "object",
        "properties" : {
          "imageUrl" : {
            "type" : "string"
          }
        }
      },
      "ApiError" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "string",
            "description" : "Stable, machine-readable code. Branch on this, not on `message`.",
            "example" : "NOT_FOUND"
          },
          "details" : {
            "type" : "array",
            "description" : "Per-field problems; present on validation errors.",
            "items" : {
              "$ref" : "#/components/schemas/ErrorDetail"
            }
          },
          "message" : {
            "type" : "string",
            "description" : "Human-readable explanation. Wording may change.",
            "example" : "Content entry not found: hello-world"
          }
        }
      },
      "ApiResponseAiTextResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "$ref" : "#/components/schemas/AiTextResponse"
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseArrayNode" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "$ref" : "#/components/schemas/ArrayNode"
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseCommentResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "$ref" : "#/components/schemas/CommentResponse"
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseContentEntryResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "$ref" : "#/components/schemas/ContentEntryResponse"
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseContentTypeResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "$ref" : "#/components/schemas/ContentTypeResponse"
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseImportResult" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "$ref" : "#/components/schemas/ImportResult"
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseJsonNode" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "object"
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseListBulkFieldResult" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/BulkFieldResult"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseListBulkSeoSuggestResult" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/BulkSeoSuggestResult"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseListCommentResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CommentResponse"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseListContentEntryResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ContentEntryResponse"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseListContentTypeResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ContentTypeResponse"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseListContentVersionResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ContentVersionResponse"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseListJsonNode" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "array",
            "items" : {
              "type" : "object"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseListMapStringString" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "array",
            "items" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "string"
              }
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseListProjectResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ProjectResponse"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseListString" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseListTranslationSummary" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TranslationSummary"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseLiveAuditResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "$ref" : "#/components/schemas/LiveAuditResponse"
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseMapStringString" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            }
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseObject" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "object"
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseProjectResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "$ref" : "#/components/schemas/ProjectResponse"
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseSeoScoreResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "$ref" : "#/components/schemas/SeoScoreResponse"
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ApiResponseSeoSuggestion" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "$ref" : "#/components/schemas/SeoSuggestion"
          },
          "meta" : {
            "$ref" : "#/components/schemas/PageMeta"
          }
        }
      },
      "ArrayNode" : {
        "type" : "object"
      },
      "BulkActionRequest" : {
        "required" : [ "action", "ids" ],
        "type" : "object",
        "properties" : {
          "action" : {
            "type" : "string"
          },
          "ids" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "uuid"
            }
          }
        }
      },
      "BulkFieldResult" : {
        "type" : "object",
        "properties" : {
          "entryId" : {
            "type" : "string",
            "format" : "uuid"
          },
          "original" : {
            "type" : "string"
          },
          "result" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          }
        }
      },
      "BulkRewriteRequest" : {
        "required" : [ "entryIds", "field" ],
        "type" : "object",
        "properties" : {
          "entryIds" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "uuid"
            }
          },
          "field" : {
            "type" : "string"
          },
          "instructions" : {
            "type" : "string"
          }
        }
      },
      "BulkSeoSuggestRequest" : {
        "required" : [ "entryIds" ],
        "type" : "object",
        "properties" : {
          "contentField" : {
            "type" : "string"
          },
          "descriptionField" : {
            "type" : "string"
          },
          "entryIds" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "uuid"
            }
          },
          "focusKeyword" : {
            "type" : "string"
          },
          "geoSummaryTarget" : {
            "type" : "string"
          },
          "keyFactsTarget" : {
            "type" : "string"
          },
          "keywordsTarget" : {
            "type" : "string"
          },
          "metaDescriptionTarget" : {
            "type" : "string"
          },
          "seoTitleTarget" : {
            "type" : "string"
          },
          "slugTarget" : {
            "type" : "string"
          },
          "titleField" : {
            "type" : "string"
          }
        }
      },
      "BulkSeoSuggestResult" : {
        "type" : "object",
        "properties" : {
          "entryId" : {
            "type" : "string",
            "format" : "uuid"
          },
          "slug" : {
            "type" : "string"
          },
          "suggestion" : {
            "$ref" : "#/components/schemas/SeoSuggestion"
          }
        }
      },
      "BulkTranslateRequest" : {
        "required" : [ "entryIds", "field", "targetLanguage" ],
        "type" : "object",
        "properties" : {
          "entryIds" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "uuid"
            }
          },
          "field" : {
            "type" : "string"
          },
          "targetLanguage" : {
            "type" : "string"
          }
        }
      },
      "CommentRequest" : {
        "required" : [ "body" ],
        "type" : "object",
        "properties" : {
          "body" : {
            "type" : "string"
          }
        }
      },
      "CommentResponse" : {
        "type" : "object",
        "properties" : {
          "authorId" : {
            "type" : "string",
            "format" : "uuid"
          },
          "authorName" : {
            "type" : "string"
          },
          "body" : {
            "type" : "string"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "entryId" : {
            "type" : "string",
            "format" : "uuid"
          },
          "id" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "ContentEntryRequest" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "object"
          },
          "expectedVersion" : {
            "type" : "integer",
            "format" : "int64"
          },
          "metadata" : {
            "type" : "object"
          },
          "slug" : {
            "type" : "string"
          },
          "sortOrder" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "ContentEntryResponse" : {
        "type" : "object",
        "properties" : {
          "contentTypeId" : {
            "type" : "string",
            "format" : "uuid"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "createdBy" : {
            "type" : "string",
            "format" : "uuid"
          },
          "createdByName" : {
            "type" : "string"
          },
          "data" : {
            "type" : "object"
          },
          "expanded" : {
            "type" : "object"
          },
          "hasUnpublishedChanges" : {
            "type" : "boolean"
          },
          "id" : {
            "type" : "string",
            "format" : "uuid"
          },
          "locale" : {
            "type" : "string"
          },
          "metadata" : {
            "type" : "object"
          },
          "projectId" : {
            "type" : "string",
            "format" : "uuid"
          },
          "publishedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledPublishAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "slug" : {
            "type" : "string"
          },
          "sortOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "DRAFT", "PUBLISHED", "SCHEDULED", "ARCHIVED" ]
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedBy" : {
            "type" : "string",
            "format" : "uuid"
          },
          "version" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "ContentTypeRequest" : {
        "required" : [ "name", "slug" ],
        "type" : "object",
        "properties" : {
          "commerceEnabled" : {
            "type" : "boolean"
          },
          "description" : {
            "type" : "string"
          },
          "displayField" : {
            "type" : "string"
          },
          "fields" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/FieldDefinition"
            }
          },
          "icon" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "previewUrlTemplate" : {
            "type" : "string"
          },
          "singleton" : {
            "type" : "boolean"
          },
          "slug" : {
            "pattern" : "^[a-z0-9]+(?:-[a-z0-9]+)*$",
            "type" : "string"
          },
          "sortOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sourceFile" : {
            "type" : "string"
          }
        }
      },
      "ContentTypeResponse" : {
        "type" : "object",
        "properties" : {
          "commerceEnabled" : {
            "type" : "boolean"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "description" : {
            "type" : "string"
          },
          "displayField" : {
            "type" : "string"
          },
          "fields" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/FieldDefinition"
            }
          },
          "icon" : {
            "type" : "string"
          },
          "id" : {
            "type" : "string",
            "format" : "uuid"
          },
          "name" : {
            "type" : "string"
          },
          "previewUrlTemplate" : {
            "type" : "string"
          },
          "singleton" : {
            "type" : "boolean"
          },
          "slug" : {
            "type" : "string"
          },
          "sortOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sourceFile" : {
            "type" : "string"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "ContentVersionResponse" : {
        "type" : "object",
        "properties" : {
          "changeSummary" : {
            "type" : "string"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "createdBy" : {
            "type" : "string",
            "format" : "uuid"
          },
          "createdByName" : {
            "type" : "string"
          },
          "data" : {
            "type" : "object"
          },
          "id" : {
            "type" : "string",
            "format" : "uuid"
          },
          "metadata" : {
            "type" : "object"
          },
          "versionNumber" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "CreateTranslationRequest" : {
        "required" : [ "targetLocale" ],
        "type" : "object",
        "properties" : {
          "targetLocale" : {
            "type" : "string"
          }
        }
      },
      "ErrorDetail" : {
        "type" : "object",
        "properties" : {
          "field" : {
            "type" : "string"
          },
          "message" : {
            "type" : "string"
          }
        },
        "description" : "Per-field problems; present on validation errors."
      },
      "ErrorResponse" : {
        "type" : "object",
        "properties" : {
          "error" : {
            "$ref" : "#/components/schemas/ApiError"
          }
        },
        "description" : "Body of every non-2xx response."
      },
      "ExpandRequest" : {
        "required" : [ "text" ],
        "type" : "object",
        "properties" : {
          "instructions" : {
            "type" : "string"
          },
          "targetLength" : {
            "type" : "integer",
            "format" : "int32"
          },
          "text" : {
            "type" : "string"
          }
        }
      },
      "FieldDefinition" : {
        "type" : "object",
        "properties" : {
          "cardinality" : {
            "type" : "string",
            "enum" : [ "ONE_TO_ONE", "MANY_TO_ONE", "ONE_TO_MANY", "MANY_TO_MANY" ]
          },
          "description" : {
            "type" : "string"
          },
          "itemType" : {
            "type" : "string",
            "enum" : [ "TEXT", "LONG_TEXT", "RICH_TEXT", "NUMBER", "BOOLEAN", "DATE", "DATETIME", "MEDIA", "SELECT", "MULTI_SELECT", "LIST", "JSON", "RELATION", "SLUG", "EMAIL", "URL", "COLOR" ]
          },
          "name" : {
            "type" : "string"
          },
          "options" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "relatedType" : {
            "type" : "string",
            "deprecated" : true
          },
          "relatedTypes" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "required" : {
            "type" : "boolean"
          },
          "slug" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string",
            "enum" : [ "TEXT", "LONG_TEXT", "RICH_TEXT", "NUMBER", "BOOLEAN", "DATE", "DATETIME", "MEDIA", "SELECT", "MULTI_SELECT", "LIST", "JSON", "RELATION", "SLUG", "EMAIL", "URL", "COLOR" ]
          },
          "validations" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "weakReference" : {
            "type" : "boolean"
          }
        }
      },
      "GenerateEntryRequest" : {
        "required" : [ "contentTypeSlug" ],
        "type" : "object",
        "properties" : {
          "contentTypeSlug" : {
            "type" : "string"
          },
          "focusKeyword" : {
            "type" : "string"
          },
          "instructions" : {
            "type" : "string"
          },
          "targetWordCount" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "GenerateSamplesRequest" : {
        "required" : [ "contentTypeSlug" ],
        "type" : "object",
        "properties" : {
          "contentTypeSlug" : {
            "type" : "string"
          },
          "count" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "ImportResult" : {
        "type" : "object",
        "properties" : {
          "created" : {
            "type" : "integer",
            "format" : "int32"
          },
          "errors" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "LiveAuditCategory" : {
        "type" : "object",
        "properties" : {
          "checks" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LiveAuditCheck"
            }
          },
          "id" : {
            "type" : "string"
          },
          "label" : {
            "type" : "string"
          },
          "score" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "LiveAuditCheck" : {
        "type" : "object",
        "properties" : {
          "detail" : {
            "type" : "string"
          },
          "id" : {
            "type" : "string"
          },
          "label" : {
            "type" : "string"
          },
          "recommendation" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string"
          }
        }
      },
      "LiveAuditRequest" : {
        "required" : [ "url" ],
        "type" : "object",
        "properties" : {
          "url" : {
            "type" : "string"
          }
        }
      },
      "LiveAuditResponse" : {
        "type" : "object",
        "properties" : {
          "categories" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LiveAuditCategory"
            }
          },
          "finalUrl" : {
            "type" : "string"
          },
          "overallScore" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "PageMeta" : {
        "type" : "object",
        "properties" : {
          "page" : {
            "type" : "integer",
            "format" : "int32"
          },
          "pageSize" : {
            "type" : "integer",
            "format" : "int32"
          },
          "totalItems" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "ProjectResponse" : {
        "type" : "object",
        "properties" : {
          "cdnBaseUrl" : {
            "type" : "string"
          },
          "cdnPurgeWebhookAuthConfigured" : {
            "type" : "boolean"
          },
          "cdnPurgeWebhookHeaderName" : {
            "type" : "string"
          },
          "cdnPurgeWebhookUrl" : {
            "type" : "string"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "defaultLocale" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "framework" : {
            "type" : "string"
          },
          "id" : {
            "type" : "string",
            "format" : "uuid"
          },
          "name" : {
            "type" : "string"
          },
          "orgSlug" : {
            "type" : "string"
          },
          "repoUrl" : {
            "type" : "string"
          },
          "settings" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "siteUrl" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          },
          "supportedLocales" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "RewriteRequest" : {
        "required" : [ "text" ],
        "type" : "object",
        "properties" : {
          "instructions" : {
            "type" : "string"
          },
          "text" : {
            "type" : "string"
          },
          "tone" : {
            "type" : "string"
          }
        }
      },
      "ScheduleEntryRequest" : {
        "required" : [ "scheduledPublishAt" ],
        "type" : "object",
        "properties" : {
          "scheduledPublishAt" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "SeoCheckResult" : {
        "type" : "object",
        "properties" : {
          "category" : {
            "type" : "string"
          },
          "max" : {
            "type" : "integer",
            "format" : "int32"
          },
          "name" : {
            "type" : "string"
          },
          "note" : {
            "type" : "string"
          },
          "pass" : {
            "type" : "string"
          },
          "points" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "SeoScoreRequest" : {
        "type" : "object",
        "properties" : {
          "author" : {
            "type" : "string"
          },
          "body" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "focusKeyword" : {
            "type" : "string"
          },
          "image" : {
            "type" : "string"
          },
          "publishedAt" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          },
          "title" : {
            "type" : "string"
          }
        }
      },
      "SeoScoreResponse" : {
        "type" : "object",
        "properties" : {
          "checks" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SeoCheckResult"
            }
          },
          "score" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "SeoSuggestRequest" : {
        "type" : "object",
        "properties" : {
          "content" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "focusKeyword" : {
            "type" : "string"
          },
          "title" : {
            "type" : "string"
          }
        }
      },
      "SeoSuggestion" : {
        "type" : "object",
        "properties" : {
          "geoSummary" : {
            "type" : "string"
          },
          "keyFacts" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "keywords" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "metaDescription" : {
            "type" : "string"
          },
          "seoTitle" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          }
        }
      },
      "ShortenRequest" : {
        "required" : [ "text" ],
        "type" : "object",
        "properties" : {
          "instructions" : {
            "type" : "string"
          },
          "maxLength" : {
            "type" : "integer",
            "format" : "int32"
          },
          "text" : {
            "type" : "string"
          }
        }
      },
      "TranslateRequest" : {
        "required" : [ "targetLanguage", "text" ],
        "type" : "object",
        "properties" : {
          "targetLanguage" : {
            "type" : "string"
          },
          "text" : {
            "type" : "string"
          }
        }
      },
      "TranslationSummary" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "format" : "uuid"
          },
          "locale" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "DRAFT", "PUBLISHED", "SCHEDULED", "ARCHIVED" ]
          }
        }
      },
      "VariantsRequest" : {
        "required" : [ "text" ],
        "type" : "object",
        "properties" : {
          "count" : {
            "type" : "integer",
            "format" : "int32"
          },
          "text" : {
            "type" : "string"
          }
        }
      }
    },
    "securitySchemes" : {
      "apiKeyAuth" : {
        "description" : "A project API key from **Settings → API Keys** in the dashboard.",
        "in" : "header",
        "name" : "X-API-Key",
        "type" : "apiKey"
      },
      "bearerAuth" : {
        "bearerFormat" : "JWT",
        "description" : "The access token issued at sign-in. Used by the dashboard.",
        "scheme" : "bearer",
        "type" : "http"
      }
    }
  }
}