API 参考
Sections
Management API: GET /sections
List the section (module) types that can be placed on a page, with an English name, description, category and, in full mode, the JSON Schema (draft 2020-12) each section object must satisfy. Call this before pages.replace_sections. Without `types` you get a compact summary of all types; pass `types` (or detail=full) to receive the schemas. Pass `websiteId` to learn which types are available on that website's plan (sets `available`); this requires the editor:enter scope on that website. Errors: FORBIDDEN (no access to websiteId or website does not exist), WEBSITE_NOT_FOUND.
Parameters
websiteIdstring · queryOptional. When set, `available` reflects that website's plan; needs editor:enter.
typesstring[] · queryReturn only these section types, with full JSON Schemas.
detail"summary" | "full" · querysummary (default when `types` is omitted) or full (schemas included).
Response 200
sectionsobject[]requiredsections[].typestringrequiredsections[].namestringrequiredsections[].descriptionstring | nullrequiredsections[].categoriesstring[]requiredsections[].minimumPlanstring | nullrequiredsections[].availableboolean | nullrequiredsections[].schemaobjectconventionsobjectrequired
Errors
FORBIDDEN403 · no access to websiteId or website does not existWEBSITE_NOT_FOUND404
MCP tool sections_describe
curl -X GET "https://app.kanorio.com/api/v1/sections?types=hero%2Cfaq&detail=summary" \ -H "Authorization: Bearer $KANORIO_TOKEN"
{
"sections": [
{
"type": "hero",
"name": "Hero",
"description": "Full-width opening section with headline, subtitle, image and buttons.",
"categories": [
"intro"
],
"minimumPlan": null,
"available": true
},
{
"type": "faq",
"name": "FAQ",
"description": "Question and answer list.",
"categories": [
"content"
],
"minimumPlan": null,
"available": true
}
],
"conventions": {
"brandFirst": "Set brand colors and buttons before filling pages."
}
}