{"openapi":"3.1.0","info":{"title":"BotMarketing Company API","version":"1.0.0","description":"Owner-only business setup API. One company per account. Use \/mcp for authenticated MCP and \/mcp\/onboarding for registration and reference dictionaries. Email confirmation is required before issuing access. System admin APIs are separate."},"servers":[{"url":"\/api\/v1"}],"paths":{"\/categories":{"get":{"operationId":"list_categories","security":[{"agentKey":[]},{"agentOAuth":["catalog:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string","maxLength":255}}],"description":"Requires catalog:read. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"post":{"operationId":"create_categories","security":[{"agentKey":[]},{"agentOAuth":["catalog:write"]}],"responses":{"201":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Stable key scoped to the owner and operation. Identical retries return the saved response; a different payload returns 409."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"type":{"type":"string"},"teaser":{"type":"string"},"is_active":{"type":"boolean"},"parent_id":{"type":"integer"},"cover_file_id":{"type":"integer"}},"required":["name","type","is_active"],"additionalProperties":false}}}},"description":"Requires catalog:write. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."}},"\/categories\/{id}":{"get":{"operationId":"get_categories","security":[{"agentKey":[]},{"agentOAuth":["catalog:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"description":"Requires catalog:read. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"patch":{"operationId":"update_categories","security":[{"agentKey":[]},{"agentOAuth":["catalog:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"type":{"type":"string"},"teaser":{"type":"string"},"is_active":{"type":"boolean"},"parent_id":{"type":"integer"},"cover_file_id":{"type":"integer"}},"required":[],"additionalProperties":false}}}},"description":"Requires catalog:write. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"delete":{"operationId":"delete_categories","security":[{"agentKey":[]},{"agentOAuth":["catalog:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"description":"Requires catalog:write. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."}},"\/categories\/{id}\/files\/{file}":{"delete":{"operationId":"remove_categories_file","security":[{"agentKey":[]},{"agentOAuth":["catalog:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}},{"name":"file","in":"path","required":true,"schema":{"type":"integer"}}]}},"\/items":{"get":{"operationId":"list_items","security":[{"agentKey":[]},{"agentOAuth":["catalog:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string","maxLength":255}}],"description":"Requires catalog:read. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"post":{"operationId":"create_items","security":[{"agentKey":[]},{"agentOAuth":["catalog:write"]}],"responses":{"201":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Stable key scoped to the owner and operation. Identical retries return the saved response; a different payload returns 409."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"teaser":{"type":"string"},"currency":{"type":"string"},"unit":{"type":"string"},"type":{"type":"string"},"duration_unit":{"type":"string"},"price":{"type":"number"},"old_price":{"type":"number"},"is_active":{"type":"boolean"},"is_featured":{"type":"boolean"},"booking_enabled":{"type":"boolean"},"delivery_enabled":{"type":"boolean"},"stock":{"type":"integer"},"duration":{"type":"integer"},"duration_value":{"type":"integer"},"cover_file_id":{"type":"integer"},"category_ids":{"type":"array","items":{"type":"integer"},"maxItems":100},"image_file_ids":{"type":"array","items":{"type":"integer"},"maxItems":100},"options":{"type":"object","properties":{"payment_link":{"type":"string"}},"required":[],"additionalProperties":false}},"required":["name","price","is_active","booking_enabled","delivery_enabled"],"additionalProperties":false}}}},"description":"Requires catalog:write. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."}},"\/items\/{id}":{"get":{"operationId":"get_items","security":[{"agentKey":[]},{"agentOAuth":["catalog:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"description":"Requires catalog:read. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"patch":{"operationId":"update_items","security":[{"agentKey":[]},{"agentOAuth":["catalog:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"teaser":{"type":"string"},"currency":{"type":"string"},"unit":{"type":"string"},"type":{"type":"string"},"duration_unit":{"type":"string"},"price":{"type":"number"},"old_price":{"type":"number"},"is_active":{"type":"boolean"},"is_featured":{"type":"boolean"},"booking_enabled":{"type":"boolean"},"delivery_enabled":{"type":"boolean"},"stock":{"type":"integer"},"duration":{"type":"integer"},"duration_value":{"type":"integer"},"cover_file_id":{"type":"integer"},"category_ids":{"type":"array","items":{"type":"integer"},"maxItems":100},"image_file_ids":{"type":"array","items":{"type":"integer"},"maxItems":100},"options":{"type":"object","properties":{"payment_link":{"type":"string"}},"required":[],"additionalProperties":false}},"required":[],"additionalProperties":false}}}},"description":"Requires catalog:write. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"delete":{"operationId":"delete_items","security":[{"agentKey":[]},{"agentOAuth":["catalog:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"description":"Requires catalog:write. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."}},"\/items\/{id}\/files\/{file}":{"delete":{"operationId":"remove_items_file","security":[{"agentKey":[]},{"agentOAuth":["catalog:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}},{"name":"file","in":"path","required":true,"schema":{"type":"integer"}}]}},"\/schedules":{"get":{"operationId":"list_schedules","security":[{"agentKey":[]},{"agentOAuth":["schedule:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string","maxLength":255}}],"description":"Requires schedule:read. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"post":{"operationId":"create_schedules","security":[{"agentKey":[]},{"agentOAuth":["schedule:write"]}],"responses":{"201":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Stable key scoped to the owner and operation. Identical retries return the saved response; a different payload returns 409."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"binding_type":{"type":"string"},"is_active":{"type":"boolean"},"item_id":{"type":"integer"},"category_id":{"type":"integer"},"user_id":{"type":"integer"},"weekends":{"type":"array","items":{"type":"string"}},"breaks":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"reason":{"type":"string"}},"required":["date"],"additionalProperties":false}},"opening_hours":{"type":"object","properties":{"monday":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}},"tuesday":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}},"wednesday":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}},"thursday":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}},"friday":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}},"saturday":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}},"sunday":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}}},"required":[],"additionalProperties":false}},"required":["binding_type"],"additionalProperties":false}}}},"description":"Requires schedule:write. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."}},"\/schedules\/{id}":{"get":{"operationId":"get_schedules","security":[{"agentKey":[]},{"agentOAuth":["schedule:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"description":"Requires schedule:read. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"patch":{"operationId":"update_schedules","security":[{"agentKey":[]},{"agentOAuth":["schedule:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"binding_type":{"type":"string"},"is_active":{"type":"boolean"},"item_id":{"type":"integer"},"category_id":{"type":"integer"},"user_id":{"type":"integer"},"weekends":{"type":"array","items":{"type":"string"}},"breaks":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"reason":{"type":"string"}},"required":["date"],"additionalProperties":false}},"opening_hours":{"type":"object","properties":{"monday":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}},"tuesday":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}},"wednesday":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}},"thursday":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}},"friday":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}},"saturday":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}},"sunday":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}}},"required":[],"additionalProperties":false}},"required":[],"additionalProperties":false}}}},"description":"Requires schedule:write. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"delete":{"operationId":"delete_schedules","security":[{"agentKey":[]},{"agentOAuth":["schedule:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"description":"Requires schedule:write. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."}},"\/loyalty-programs":{"get":{"operationId":"list_loyalty_programs","security":[{"agentKey":[]},{"agentOAuth":["loyalty:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string","maxLength":255}}],"description":"Requires loyalty:read. Subscription feature: loyalty. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"post":{"operationId":"create_loyalty_programs","security":[{"agentKey":[]},{"agentOAuth":["loyalty:write"]}],"responses":{"201":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Stable key scoped to the owner and operation. Identical retries return the saved response; a different payload returns 409."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"description":{"type":"string"},"coupon_program_end_at":{"type":"string"},"coupon_end_at":{"type":"string"},"orders_sum_amount":{"type":"number"},"permanent_discount_orders_sum":{"type":"number"},"permanent_discount_percent":{"type":"number"},"points":{"type":"number"},"cashback_percent":{"type":"number"},"coupon_discount_percent":{"type":"number"},"is_active":{"type":"boolean"},"visits_unique_daily":{"type":"boolean"},"visits_reward_count":{"type":"integer"},"permanent_discount_orders_count":{"type":"integer"},"day_to_reset_points":{"type":"integer"},"coupon_issue_count":{"type":"integer"},"coupon_total_limit":{"type":"integer"},"media_file_ids":{"type":"array","items":{"type":"integer"},"maxItems":100},"remove_files":{"type":"array","items":{"type":"integer"},"maxItems":100}},"required":["name","type","is_active"],"additionalProperties":false}}}},"description":"Requires loyalty:write. Subscription feature: loyalty. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."}},"\/loyalty-programs\/{id}":{"get":{"operationId":"get_loyalty_programs","security":[{"agentKey":[]},{"agentOAuth":["loyalty:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"description":"Requires loyalty:read. Subscription feature: loyalty. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"patch":{"operationId":"update_loyalty_programs","security":[{"agentKey":[]},{"agentOAuth":["loyalty:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"description":{"type":"string"},"coupon_program_end_at":{"type":"string"},"coupon_end_at":{"type":"string"},"orders_sum_amount":{"type":"number"},"permanent_discount_orders_sum":{"type":"number"},"permanent_discount_percent":{"type":"number"},"points":{"type":"number"},"cashback_percent":{"type":"number"},"coupon_discount_percent":{"type":"number"},"is_active":{"type":"boolean"},"visits_unique_daily":{"type":"boolean"},"visits_reward_count":{"type":"integer"},"permanent_discount_orders_count":{"type":"integer"},"day_to_reset_points":{"type":"integer"},"coupon_issue_count":{"type":"integer"},"coupon_total_limit":{"type":"integer"},"media_file_ids":{"type":"array","items":{"type":"integer"},"maxItems":100},"remove_files":{"type":"array","items":{"type":"integer"},"maxItems":100}},"required":[],"additionalProperties":false}}}},"description":"Requires loyalty:write. Subscription feature: loyalty. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"delete":{"operationId":"delete_loyalty_programs","security":[{"agentKey":[]},{"agentOAuth":["loyalty:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"description":"Requires loyalty:write. Subscription feature: loyalty. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."}},"\/loyalty-programs\/{id}\/files\/{file}":{"delete":{"operationId":"remove_loyalty_programs_file","security":[{"agentKey":[]},{"agentOAuth":["loyalty:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}},{"name":"file","in":"path","required":true,"schema":{"type":"integer"}}]}},"\/loyalty-levels":{"get":{"operationId":"list_loyalty_levels","security":[{"agentKey":[]},{"agentOAuth":["loyalty:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string","maxLength":255}}],"description":"Requires loyalty:read. Subscription feature: loyalty_levels. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"post":{"operationId":"create_loyalty_levels","security":[{"agentKey":[]},{"agentOAuth":["loyalty:write"]}],"responses":{"201":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Stable key scoped to the owner and operation. Identical retries return the saved response; a different payload returns 409."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"cashback":{"type":"number"},"pay_order_limit":{"type":"number"},"condition_sum":{"type":"number"},"condition_friends":{"type":"integer"}},"required":["name","cashback","pay_order_limit"],"additionalProperties":false}}}},"description":"Requires loyalty:write. Subscription feature: loyalty_levels. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."}},"\/loyalty-levels\/{id}":{"get":{"operationId":"get_loyalty_levels","security":[{"agentKey":[]},{"agentOAuth":["loyalty:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"description":"Requires loyalty:read. Subscription feature: loyalty_levels. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"patch":{"operationId":"update_loyalty_levels","security":[{"agentKey":[]},{"agentOAuth":["loyalty:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"cashback":{"type":"number"},"pay_order_limit":{"type":"number"},"condition_sum":{"type":"number"},"condition_friends":{"type":"integer"}},"required":[],"additionalProperties":false}}}},"description":"Requires loyalty:write. Subscription feature: loyalty_levels. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"delete":{"operationId":"delete_loyalty_levels","security":[{"agentKey":[]},{"agentOAuth":["loyalty:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"description":"Requires loyalty:write. Subscription feature: loyalty_levels. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."}},"\/engagement-reminders":{"get":{"operationId":"list_engagement_reminders","security":[{"agentKey":[]},{"agentOAuth":["messages:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string","maxLength":255}}],"description":"Requires messages:read. Subscription feature: telegram_bot. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"post":{"operationId":"create_engagement_reminders","security":[{"agentKey":[]},{"agentOAuth":["messages:write"]}],"responses":{"201":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Stable key scoped to the owner and operation. Identical retries return the saved response; a different payload returns 409."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string"},"target_type":{"type":"string"},"target_channel_type":{"type":"string"},"target_channel_context":{"type":"string"},"target_cohort":{"type":"string"},"target_channel_ids":{"type":"array","items":{"type":"integer"},"maxItems":100},"attachment_file_ids":{"type":"array","items":{"type":"integer"},"maxItems":100},"remove_attachments":{"type":"array","items":{"type":"integer"},"maxItems":100},"body":{"type":"object","properties":{"subject":{"type":"string"},"text":{"type":"string"}},"required":[],"additionalProperties":false},"schedule":{"type":"object","properties":{"type":{"type":"string"},"once":{"type":"object","properties":{"date":{"type":"string"},"time":{"type":"string"}},"required":[],"additionalProperties":false},"daily":{"type":"object","properties":{"time":{"type":"string"}},"required":[],"additionalProperties":false},"weekly":{"type":"object","properties":{"time":{"type":"string"},"weekday":{"type":"integer"}},"required":[],"additionalProperties":false},"monthly":{"type":"object","properties":{"time":{"type":"string"},"day":{"type":"integer"}},"required":[],"additionalProperties":false},"yearly":{"type":"object","properties":{"time":{"type":"string"},"day":{"type":"integer"},"month":{"type":"integer"}},"required":[],"additionalProperties":false}},"required":["type"],"additionalProperties":false}},"required":["name","status","schedule","target_type"],"additionalProperties":false}}}},"description":"Requires messages:write. Subscription feature: telegram_bot. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."}},"\/engagement-reminders\/{id}":{"get":{"operationId":"get_engagement_reminders","security":[{"agentKey":[]},{"agentOAuth":["messages:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"description":"Requires messages:read. Subscription feature: telegram_bot. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"patch":{"operationId":"update_engagement_reminders","security":[{"agentKey":[]},{"agentOAuth":["messages:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string"},"target_type":{"type":"string"},"target_channel_type":{"type":"string"},"target_channel_context":{"type":"string"},"target_cohort":{"type":"string"},"target_channel_ids":{"type":"array","items":{"type":"integer"},"maxItems":100},"attachment_file_ids":{"type":"array","items":{"type":"integer"},"maxItems":100},"remove_attachments":{"type":"array","items":{"type":"integer"},"maxItems":100},"body":{"type":"object","properties":{"subject":{"type":"string"},"text":{"type":"string"}},"required":[],"additionalProperties":false},"schedule":{"type":"object","properties":{"type":{"type":"string"},"once":{"type":"object","properties":{"date":{"type":"string"},"time":{"type":"string"}},"required":[],"additionalProperties":false},"daily":{"type":"object","properties":{"time":{"type":"string"}},"required":[],"additionalProperties":false},"weekly":{"type":"object","properties":{"time":{"type":"string"},"weekday":{"type":"integer"}},"required":[],"additionalProperties":false},"monthly":{"type":"object","properties":{"time":{"type":"string"},"day":{"type":"integer"}},"required":[],"additionalProperties":false},"yearly":{"type":"object","properties":{"time":{"type":"string"},"day":{"type":"integer"},"month":{"type":"integer"}},"required":[],"additionalProperties":false}},"required":["type"],"additionalProperties":false}},"required":[],"additionalProperties":false}}}},"description":"Requires messages:write. Subscription feature: telegram_bot. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"delete":{"operationId":"delete_engagement_reminders","security":[{"agentKey":[]},{"agentOAuth":["messages:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"description":"Requires messages:write. Subscription feature: telegram_bot. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."}},"\/engagement-reminders\/{id}\/files\/{file}":{"delete":{"operationId":"remove_engagement_reminders_file","security":[{"agentKey":[]},{"agentOAuth":["messages:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}},{"name":"file","in":"path","required":true,"schema":{"type":"integer"}}]}},"\/instagram-rules":{"get":{"operationId":"list_instagram_rules","security":[{"agentKey":[]},{"agentOAuth":["messages:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string","maxLength":255}}],"description":"Requires messages:read. Subscription feature: instagram. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"post":{"operationId":"create_instagram_rules","security":[{"agentKey":[]},{"agentOAuth":["messages:write"]}],"responses":{"201":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Stable key scoped to the owner and operation. Identical retries return the saved response; a different payload returns 409."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string"},"trigger_type":{"type":"string"},"scope":{"type":"string"},"match_mode":{"type":"string"},"keywords_text":{"type":"string"},"dm_thread_state":{"type":"string"},"follower_condition":{"type":"string"},"subscription_prompt_text":{"type":"string"},"quick_reply_title":{"type":"string"},"response_text":{"type":"string"},"response_link_url":{"type":"string"},"response_link_text":{"type":"string"},"comment_reply_text":{"type":"string"},"media_permalink":{"type":"string"},"external_media_id":{"type":"string"},"lead_enabled":{"type":"boolean"},"subscription_gate_enabled":{"type":"boolean"},"business_channel_account_id":{"type":"integer"},"instagram_media_item_id":{"type":"integer"},"priority":{"type":"integer"},"attachment_file_id":{"type":"integer"},"remove_attachment":{"type":"integer"}},"required":["name","status","trigger_type","scope","match_mode","business_channel_account_id","response_text","priority"],"additionalProperties":false}}}},"description":"Requires messages:write. Subscription feature: instagram. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."}},"\/instagram-rules\/{id}":{"get":{"operationId":"get_instagram_rules","security":[{"agentKey":[]},{"agentOAuth":["messages:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"description":"Requires messages:read. Subscription feature: instagram. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"patch":{"operationId":"update_instagram_rules","security":[{"agentKey":[]},{"agentOAuth":["messages:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string"},"trigger_type":{"type":"string"},"scope":{"type":"string"},"match_mode":{"type":"string"},"keywords_text":{"type":"string"},"dm_thread_state":{"type":"string"},"follower_condition":{"type":"string"},"subscription_prompt_text":{"type":"string"},"quick_reply_title":{"type":"string"},"response_text":{"type":"string"},"response_link_url":{"type":"string"},"response_link_text":{"type":"string"},"comment_reply_text":{"type":"string"},"media_permalink":{"type":"string"},"external_media_id":{"type":"string"},"lead_enabled":{"type":"boolean"},"subscription_gate_enabled":{"type":"boolean"},"business_channel_account_id":{"type":"integer"},"instagram_media_item_id":{"type":"integer"},"priority":{"type":"integer"},"attachment_file_id":{"type":"integer"},"remove_attachment":{"type":"integer"}},"required":[],"additionalProperties":false}}}},"description":"Requires messages:write. Subscription feature: instagram. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."},"delete":{"operationId":"delete_instagram_rules","security":[{"agentKey":[]},{"agentOAuth":["messages:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"description":"Requires messages:write. Subscription feature: instagram. Mutations require an active subscription. Omitted PATCH fields are preserved; arrays are replaced."}},"\/instagram-rules\/{id}\/files\/{file}":{"delete":{"operationId":"remove_instagram_rules_file","security":[{"agentKey":[]},{"agentOAuth":["messages:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}},{"name":"file","in":"path","required":true,"schema":{"type":"integer"}}]}},"\/auth\/register":{"post":{"operationId":"register_account","security":[],"responses":{"201":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"password":{"type":"string"},"locale":{"type":"string"},"subscription_code":{"type":"string"},"promo_code":{"type":"string"}},"required":["email","password"],"additionalProperties":false}}}}}},"\/auth\/token":{"post":{"operationId":"issue_agent_key","security":[],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"password":{"type":"string"},"name":{"type":"string"},"abilities":{"type":"array","items":{"type":"string","enum":["company:read","company:write","catalog:read","catalog:write","loyalty:read","loyalty:write","schedule:read","schedule:write","messages:read","messages:write","channels:read","channels:write"]},"minItems":1}},"required":["email","password","name","abilities"],"additionalProperties":false}}}}}},"\/company":{"get":{"operationId":"get_company","security":[{"agentKey":[]},{"agentOAuth":["company:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}},"post":{"operationId":"create_company","security":[{"agentKey":[]},{"agentOAuth":["company:write"]}],"responses":{"201":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Stable key scoped to the owner and operation. Identical retries return the saved response; a different payload returns 409."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"company_name":{"type":"string"},"city_name":{"type":"string"},"timezone":{"type":"string"},"subscription_code":{"type":"string"},"business_summary":{"type":"string"},"promo_code":{"type":"string"},"country_id":{"type":"integer"}},"required":["name","company_name","country_id","city_name","timezone","subscription_code"],"additionalProperties":false}}}}},"patch":{"operationId":"update_company","security":[{"agentKey":[]},{"agentOAuth":["company:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"type":{"type":"string"},"locale":{"type":"string"},"timezone":{"type":"string"},"default_currency":{"type":"string"},"teaser":{"type":"string"},"location_map_url":{"type":"string"},"location_latitude":{"type":"number"},"location_longitude":{"type":"number"},"country_id":{"type":"integer"},"city_id":{"type":"integer"},"cover_file_id":{"type":"integer"},"contacts":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"text":{"type":"object","properties":{"html":{"type":"string"}},"required":[],"additionalProperties":false}},"required":[],"additionalProperties":false}}}}}},"\/capabilities":{"get":{"operationId":"get_setup_status","security":[{"agentKey":[]},{"agentOAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/channel-context":{"get":{"operationId":"get_channel_context","security":[{"agentKey":[]},{"agentOAuth":["channels:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/configuration\/profile":{"get":{"operationId":"get_profile","security":[{"agentKey":[]},{"agentOAuth":["company:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}},"patch":{"operationId":"update_profile","security":[{"agentKey":[]},{"agentOAuth":["company:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"last_name":{"type":"string"},"locale":{"type":"string"},"timezone":{"type":"string"}},"required":[],"additionalProperties":false}}}}}},"\/configuration\/bot":{"get":{"operationId":"get_bot","security":[{"agentKey":[]},{"agentOAuth":["channels:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}},"patch":{"operationId":"update_bot","security":[{"agentKey":[]},{"agentOAuth":["channels:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"bot_token":{"type":"string"},"bot_is_active":{"type":"boolean"}},"required":[],"additionalProperties":false}}}}}},"\/configuration\/settings":{"get":{"operationId":"get_settings","security":[{"agentKey":[]},{"agentOAuth":["channels:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}},"patch":{"operationId":"update_settings","security":[{"agentKey":[]},{"agentOAuth":["channels:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"start_message_media_remove":{"type":"boolean"},"public_offer_remove":{"type":"boolean"},"privacy_policy_remove":{"type":"boolean"},"personal_data_consent_remove":{"type":"boolean"},"start_message_media_file_id":{"type":"integer"},"public_offer_file_id":{"type":"integer"},"privacy_policy_file_id":{"type":"integer"},"personal_data_consent_file_id":{"type":"integer"},"reviews":{"type":"object","properties":{"author_policy":{"type":"string"},"publication":{"type":"string"},"company_enabled":{"type":"boolean"},"items_enabled":{"type":"boolean"}},"required":[],"additionalProperties":false},"bot":{"type":"object","properties":{"options":{"type":"object","properties":{"forward_messages":{"type":"boolean"},"booking_enabled":{"type":"boolean"},"start_message":{"type":"object","properties":{"text":{"type":"string"}},"required":[],"additionalProperties":false},"about":{"type":"object","properties":{"description":{"type":"string"},"short_description":{"type":"string"}},"required":[],"additionalProperties":false}},"required":[],"additionalProperties":false}},"required":[],"additionalProperties":false}},"required":[],"additionalProperties":false}}}}}},"\/configuration\/assistant":{"get":{"operationId":"get_assistant","security":[{"agentKey":[]},{"agentOAuth":["channels:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}},"patch":{"operationId":"update_assistant","security":[{"agentKey":[]},{"agentOAuth":["channels:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"enabled":{"type":"boolean"},"invite_to_bot_enabled":{"type":"boolean"},"repeat_interval_hours":{"type":"integer"}},"required":[],"additionalProperties":false}}}}}},"\/configuration\/menu":{"get":{"operationId":"get_menu","security":[{"agentKey":[]},{"agentOAuth":["channels:read"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}},"patch":{"operationId":"update_menu","security":[{"agentKey":[]},{"agentOAuth":["channels:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"use_mini_app":{"type":"boolean"}},"required":["use_mini_app"],"additionalProperties":false}}}}}},"\/files":{"post":{"operationId":"upload_file","security":[{"agentKey":[]},{"agentOAuth":[]}],"responses":{"201":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Stable key scoped to the owner and operation. Identical retries return the saved response; a different payload returns 409."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"area":{"type":"string"},"filename":{"type":"string"},"base64":{"type":"string"},"source_url":{"type":"string"},"idempotency_key":{"type":"string"}},"required":["area","filename"],"additionalProperties":false}},"multipart\/form-data":{"schema":{"type":"object","properties":{"area":{"type":"string","enum":["company","catalog","loyalty","schedule","messages","channels"]},"file":{"type":"string","format":"binary"}},"required":["area","file"],"additionalProperties":false}}}}}},"\/items\/reorder":{"post":{"operationId":"reorder_items","security":[{"agentKey":[]},{"agentOAuth":["catalog:write"]}],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"order_version":{"type":"string"},"page":{"type":"integer"},"perPage":{"type":"integer"},"original_ids":{"type":"array","items":{"type":"integer"},"maxItems":100},"priorities":{"type":"array","items":{"type":"integer"},"maxItems":100},"filter":{"type":"object","additionalProperties":true}},"required":["order_version","page","perPage","original_ids","priorities"],"additionalProperties":false}}}}}},"\/lookups\/countries":{"get":{"operationId":"list_countries","security":[],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/lookups\/cities":{"get":{"operationId":"list_cities","security":[],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"parameters":[{"name":"q","in":"query","schema":{"type":"string","maxLength":255}},{"name":"country_id","in":"query","schema":{"type":"integer"}}]}},"\/lookups\/timezones":{"get":{"operationId":"list_timezones","security":[],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/lookups\/currencies":{"get":{"operationId":"list_currencies","security":[],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/lookups\/subscriptions":{"get":{"operationId":"list_subscriptions","security":[],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/lookups\/types":{"get":{"operationId":"list_types","security":[],"responses":{"200":{"description":"Successful operation","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Request failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}}},"components":{"securitySchemes":{"agentKey":{"type":"http","scheme":"bearer","description":"An owner-issued company-agent key. No expiration; valid until revoked. expires_at is null."},"agentOAuth":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"\/oauth\/authorize","tokenUrl":"\/oauth\/token","scopes":{"company:read":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u2014 \u0447\u0442\u0435\u043d\u0438\u0435","company:write":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u2014 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435","catalog:read":"\u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u2014 \u0447\u0442\u0435\u043d\u0438\u0435","catalog:write":"\u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u2014 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435","loyalty:read":"\u041b\u043e\u044f\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u2014 \u0447\u0442\u0435\u043d\u0438\u0435","loyalty:write":"\u041b\u043e\u044f\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u2014 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435","schedule:read":"\u0420\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u2014 \u0447\u0442\u0435\u043d\u0438\u0435","schedule:write":"\u0420\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u2014 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435","messages:read":"\u0410\u0432\u0442\u043e\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u2014 \u0447\u0442\u0435\u043d\u0438\u0435","messages:write":"\u0410\u0432\u0442\u043e\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u2014 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435","channels:read":"\u041a\u0430\u043d\u0430\u043b\u044b \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u2014 \u0447\u0442\u0435\u043d\u0438\u0435","channels:write":"\u041a\u0430\u043d\u0430\u043b\u044b \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u2014 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435"}}}}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}}}}}