{"components":{"schemas":{"CreatePostRequest":{"properties":{"blocks_json":{"type":"object"},"category_slugs":{"items":{"type":"string"},"type":"array"},"excerpt":{"type":"string"},"language":{"type":"string"},"post_type":{"type":"string"},"slug":{"type":"string"},"status":{"enum":["draft","published"],"type":"string"},"tag_slugs":{"items":{"type":"string"},"type":"array"},"title":{"type":"string"}},"required":["title","blocks_json"],"type":"object"},"CreatePostResponse":{"properties":{"id":{"type":"string"},"public_url":{"nullable":true,"type":"string"},"slug":{"type":"string"},"status":{"type":"string"}},"required":["id","slug","status"],"type":"object"},"Error":{"properties":{"error":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"}},"required":["error"],"type":"object"},"PostType":{"properties":{"id":{"type":"string"},"label":{"type":"string"},"slug":{"type":"string"}},"type":"object"},"SiteMe":{"properties":{"default_language":{"type":"string"},"id":{"type":"string"},"primary_domain":{"type":"string"},"slug":{"type":"string"}},"type":"object"}},"securitySchemes":{"apiKey":{"bearerFormat":"ck_<32-char-base62>","description":"Pass the API key issued by /admin/api-keys as `Authorization: Bearer ck_xxx`.","scheme":"bearer","type":"http"}}},"info":{"contact":{"name":"Canverly","url":"https://canverly.com"},"description":"Public REST API for third-party integrations (Chimpee + others). Authenticate with an API key issued at /admin/api-keys.","title":"Canverly Public API","version":"0.5.1"},"openapi":"3.1.0","paths":{"/v1/post-types":{"get":{"operationId":"listPostTypes","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PostType"},"type":"array"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Rate limited"}},"summary":"List active post types for the API key's site","x-required-scope":"post_types:read"}},"/v1/posts":{"post":{"operationId":"createPost","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePostRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePostResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden — scope missing"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Rate limited"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Upstream error"}},"summary":"Create a post","x-required-scope":"posts:write"}},"/v1/sites/me":{"get":{"operationId":"siteMe","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteMe"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Rate limited"}},"summary":"Site info for the API key's site","x-required-scope":"sites:read"}}},"security":[{"apiKey":[]}],"servers":[{"description":"production","url":"https://api.canverly.com"}]}