> For the complete documentation index, see [llms.txt](https://docs.cekat.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cekat.ai/api-documentation/models.md).

# Models

## The Error object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"Error":{"type":"object","description":"Error body returned by the `/templates` endpoints.","properties":{"success":{"type":"boolean"},"status_code":{"type":"integer"},"error":{"type":"object","properties":{"message":{"type":"string"}}}}}}}}
```

## The ApiError object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"ApiError":{"type":"object","description":"Error body returned by the `/api/...` endpoints.","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"statusCode":{"type":"integer"},"error":{"type":"object","properties":{"message":{"type":"string"}}},"correlationId":{"type":"string","description":"Request ID. Include it when contacting Cekat support."}}}}}}
```

## The RateLimitError object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"RateLimitError":{"type":"object","properties":{"message":{"type":"string"}}}}}}
```

## The Pagination object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"Pagination":{"type":"object","properties":{"current_page":{"type":"integer"},"total_page":{"type":"integer"},"total_items":{"type":"integer"}}}}}}
```

## The TemplateInbox object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"TemplateInbox":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"business_id":{"type":"string","format":"uuid"}}}}}}
```

## The Inbox object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"Inbox":{"type":"object","description":"A connected channel (inbox).","properties":{"id":{"type":"string","format":"uuid","description":"Inbox ID. Use it as `inbox_id` in other endpoints."},"business_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true,"description":"The channel's phone number, for WhatsApp inboxes."},"type":{"type":"string","description":"Channel type.","enum":["whatsapp","whatsapp_mobile","livechat","instagram","messenger","tokopedia","shopee","custom_api","instagram_comment","facebook_comment","email","tiktok_business_messaging","google_play_review"]},"status":{"type":"string","enum":["active","inactive","processing"]},"is_whatsapp_coexistence":{"type":"boolean","nullable":true,"description":"True when the WhatsApp number is also used in the WhatsApp Business app (coexistence)."},"auto_reassign":{"type":"boolean","nullable":true},"ai_agent_id":{"type":"string","format":"uuid","nullable":true,"description":"AI agent assigned to the inbox, if any."},"ai_agent_name":{"type":"string","nullable":true},"flow_mode":{"type":"boolean","nullable":true,"description":"True when the inbox replies with a flow instead of an AI agent."},"flow_id":{"type":"string","format":"uuid","nullable":true},"flow_name":{"type":"string","nullable":true},"created_at":{"type":"string","description":"Creation time. ISO 8601 UTC with `version=2026-05-22` or later; otherwise Asia/Jakarta local time without an offset."}}}}}}
```

## The Template object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"Template":{"type":"object","description":"A WhatsApp message template. Additional fields may be present.","additionalProperties":true,"properties":{"id":{"type":"string","format":"uuid","description":"Cekat's internal template ID."},"created_at":{"type":"string","description":"Creation time. See **Versioning** for the format."},"wa_template_id":{"type":"string","description":"Meta's template ID. Use this value to send, delete, or run a campaign with the template."},"name":{"type":"string"},"category":{"type":"string","enum":["AUTHENTICATION","MARKETING","UTILITY"]},"language":{"type":"string"},"status":{"type":"string","description":"Meta review status, for example `APPROVED`, `PENDING`, or `REJECTED`. Only `APPROVED` templates can be sent."},"body":{"type":"string"},"body_placeholder":{"type":"array","nullable":true,"description":"Sample values for the body variables, as submitted to Meta.","items":{"type":"string"}},"header_type":{"type":"string","nullable":true,"enum":["TEXT","DOCUMENT","IMAGE","VIDEO",null]},"header":{"type":"string","nullable":true,"description":"Header text, for templates with a text header."},"file_url":{"type":"string","nullable":true,"description":"URL of the header media, for templates with a media header."},"footer":{"type":"string","nullable":true},"buttons":{"type":"array","nullable":true,"items":{"type":"object","additionalProperties":true}},"inbox_id":{"type":"string","format":"uuid"},"business_id":{"type":"string","format":"uuid"},"inbox":{"$ref":"#/components/schemas/TemplateInbox"}}},"TemplateInbox":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"business_id":{"type":"string","format":"uuid"}}}}}}
```

## The RecipientList object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"RecipientList":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"total_contacts":{"type":"integer","description":"Number of contacts imported into the list so far."}}}}}}
```

## The CampaignListItem object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"CampaignListItem":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Campaign ID."},"campaign_name":{"type":"string"},"inbox_id":{"type":"string","format":"uuid"},"inbox_name":{"type":"string"},"template_id":{"type":"string","format":"uuid","description":"Cekat's internal template ID. This is not the `wa_template_id` used when creating a campaign."},"template_name":{"type":"string"},"template_category":{"type":"string"},"recipient_list_id":{"type":"string","format":"uuid"},"recipient_list_name":{"type":"string"},"status":{"type":"string","enum":["scheduled","processing","completed","partially completed","failed"]},"send_at":{"type":"string","format":"date-time","description":"When the campaign starts (or started) sending."},"created_at":{"type":"string","format":"date-time"},"total_recipient":{"type":"integer","description":"Number of recipients the campaign targets."},"total":{"type":"integer","description":"Number of campaign messages created so far."},"sent":{"type":"integer","description":"Messages whose latest status is `sent`."},"delivered":{"type":"integer","description":"Messages whose latest status is `delivered` (not yet read)."},"read":{"type":"integer","description":"Messages whose latest status is `read`."},"failed":{"type":"integer","description":"Messages that failed to send."},"replied":{"type":"integer","description":"Recipients who replied after receiving the message."},"buttonClicked":{"type":"integer","description":"Recipients who tapped a template button."},"agentReplied":{"type":"integer","description":"Conversations where an agent replied after the campaign message."}}}}}}
```

## The CampaignMessage object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"CampaignMessage":{"type":"object","description":"One recipient's campaign message and what happened to it. Empty strings mean \"not available\".","properties":{"id":{"type":"string","description":"Message ID."},"campaign_id":{"type":"string","format":"uuid"},"campaign_name":{"type":"string"},"conversation_id":{"type":"string"},"phone_number":{"type":"string"},"name":{"type":"string"},"message":{"type":"string","description":"The text that was sent, with variables filled in."},"media_type":{"type":"string"},"media_url":{"type":"string"},"template_category":{"type":"string"},"sent_by":{"type":"string"},"sent_by_name":{"type":"string"},"sent_by_type":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"date_sent":{"type":"string","description":"When the message was sent; empty if it has not been sent."},"last_status":{"type":"string","description":"Latest delivery status, for example `sent`, `delivered`, `read`, or `failed`."},"last_status_at":{"type":"string"},"sent":{"type":"boolean"},"delivered":{"type":"boolean"},"read":{"type":"boolean"},"failed":{"type":"boolean"},"error":{"type":"string","description":"Failure reason when `failed` is true."},"replied":{"type":"boolean"},"is_replied":{"type":"boolean","description":"Same as `replied`."},"button_clicked":{"type":"boolean"},"agent_replied":{"type":"boolean"},"first_reply_id":{"type":"string"},"first_reply_message":{"type":"string"},"first_reply_sent_by":{"type":"string"},"first_reply_sent_by_name":{"type":"string"},"first_reply_media_url":{"type":"string"},"first_reply_media_type":{"type":"string"},"first_reply_created_at":{"type":"string"}}}}}}
```

## The CampaignMessageLegacy object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"CampaignMessageLegacy":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"campaign_id":{"type":"string","format":"uuid"},"conversation_id":{"type":"string"},"message":{"type":"string"},"status":{"type":"string","description":"Latest delivery status, for example `sent`, `delivered`, `read`, or `failed`."},"created_at":{"type":"string","description":"ISO 8601 UTC with `version=2026-05-22` or later; otherwise `YYYY-MM-DD HH:mm:ss` in Asia/Jakarta time."},"media_type":{"type":"string"},"media_url":{"type":"string","nullable":true},"sent_by":{"type":"string"},"sent_by_name":{"type":"string"},"sent_by_type":{"type":"string"},"additional_data":{"type":"object","additionalProperties":true,"description":"Includes the recipient as `to_phone` and `to_name`."},"error":{"nullable":true},"is_replied":{"type":"boolean"},"first_reply":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"message":{"type":"string"},"created_at":{"type":"string"},"media_type":{"type":"string"},"media_url":{"type":"string","nullable":true},"sent_by":{"type":"string"},"sent_by_name":{"type":"string"}}},"business_id":{"type":"string","format":"uuid"}}}}}}
```

## The SentMessage object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"SentMessage":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string","format":"uuid","description":"Message ID."},"message":{"type":"string","description":"The text that was sent, with variables filled in."},"conversation_id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["sent","failed"]},"error":{"type":"string","nullable":true,"description":"Why the message failed, when `status` is `failed`."},"platform_mid":{"type":"string","nullable":true,"description":"WhatsApp message ID returned by Meta."},"media_type":{"type":"string"},"media_url":{"type":"string","nullable":true},"is_template":{"type":"boolean"},"template_id":{"type":"string","description":"The template's `wa_template_id`."},"template_category":{"type":"string"},"sent_by":{"type":"string","description":"ID of the agent the message is sent as."},"sent_by_name":{"type":"string"},"sent_by_type":{"type":"string"},"additional_data":{"type":"object","nullable":true,"additionalProperties":true,"description":"Billing details for the message."},"business_id":{"type":"string","format":"uuid"}}}}}}
```

## The TemplateBilling object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"TemplateBilling":{"type":"object","additionalProperties":true,"properties":{"billing_mode":{"type":"string","description":"How the message is billed, for example `credit_card` or `credit_line_prepaid`."},"is_balance_locked":{"type":"boolean","description":"True when balance was reserved for this message."},"estimated_price":{"type":"number"},"currency_code":{"type":"string"},"to_country_code":{"type":"string","nullable":true},"template_id":{"type":"string"},"template_category":{"type":"string"},"inbox_id":{"type":"string","format":"uuid"},"wa_business_id":{"type":"string","nullable":true},"billing_settlement_status":{"type":"string","nullable":true},"billing_lock_reference_type":{"type":"string","nullable":true},"billing_lock_reference_id":{"type":"string","nullable":true}}}}}}
```

## The CrmConflictError object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"CrmConflictError":{"type":"object","description":"Returned when the email or phone number already belongs to another contact.","properties":{"statusCode":{"type":"integer"},"error":{"type":"object","properties":{"phone_error":{"type":"string"},"email_error":{"type":"string"},"contact_id":{"type":"string","format":"uuid","description":"The existing contact with this email, when the email conflicts."},"contact_name":{"type":"string"}}}}}}}}
```

## The NamedRef object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"NamedRef":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}}}}}
```

## The ContactListItem object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"ContactListItem":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"contact_name":{"type":"string"},"email":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"platform_id":{"type":"string","nullable":true,"description":"The contact's ID on its channel (for example a WhatsApp business-scoped user ID)."},"username":{"type":"string","nullable":true},"platform":{"type":"string","description":"Channel type, for example `whatsapp` or `instagram`."},"created_at":{"type":"string","format":"date-time"},"additional_data":{"type":"object","nullable":true,"additionalProperties":true},"inboxes":{"type":"array","description":"Inboxes the contact has conversations in.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}}}}}}}}
```

## The Contact object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"Contact":{"type":"object","description":"A contact with its standard fields, relations and custom property values. Additional fields may be present.","additionalProperties":true,"properties":{"id":{"type":"string","format":"uuid"},"display_name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"country_code":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"type":{"type":"string","description":"Channel the contact came from, for example `whatsapp`."},"platform_id":{"type":"string","nullable":true},"note":{"type":"string","nullable":true},"additional_data":{"type":"object","nullable":true,"additionalProperties":true},"stage_id":{"type":"string","format":"uuid","nullable":true},"agent_id":{"type":"string","format":"uuid","nullable":true,"description":"The contact owner's agent ID."},"company_id":{"type":"string","format":"uuid","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time","nullable":true},"created_by_name":{"type":"string"},"business":{"$ref":"#/components/schemas/NamedRef"},"stage":{"$ref":"#/components/schemas/NamedRef"},"agent":{"$ref":"#/components/schemas/NamedRef"},"pipeline_status":{"$ref":"#/components/schemas/NamedRef"},"company":{"type":"object","nullable":true,"additionalProperties":true},"conversations":{"type":"array","description":"The contact's conversations, one per inbox.","items":{"type":"object","additionalProperties":true}},"crm_column":{"type":"object","description":"Custom property values, keyed by property (column) name.","additionalProperties":true}}},"NamedRef":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}}}}}
```

## The CrmColumnLabel object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"CrmColumnLabel":{"type":"object","properties":{"id":{"type":"string","description":"Label ID. Use it as the value for `select` and `dropdown` columns."},"name":{"type":"string"},"color":{"type":"string"}}}}}}
```

## The CrmColumn object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"CrmColumn":{"type":"object","description":"A board column (field) or contact property.","additionalProperties":true,"properties":{"id":{"type":"string","format":"uuid"},"board_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"type":{"type":"string","enum":["text","long_text","email","phone","number","timeline","date","checkbox","select","dropdown","file","files","reference","references","agents","contacts","conversation","order","orders","companies","subscriptions","item_deals"]},"settings":{"type":"object","additionalProperties":true,"description":"Type-specific settings. `select` and `dropdown` columns list their options in `labels`.","properties":{"labels":{"type":"array","items":{"$ref":"#/components/schemas/CrmColumnLabel"}}}},"default_value":{"type":"string","nullable":true},"is_required":{"type":"boolean"},"is_visible":{"type":"boolean"},"is_unique":{"type":"boolean"},"read_only":{"type":"boolean"},"position":{"type":"number"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"CrmColumnLabel":{"type":"object","properties":{"id":{"type":"string","description":"Label ID. Use it as the value for `select` and `dropdown` columns."},"name":{"type":"string"},"color":{"type":"string"}}}}}}
```

## The CrmGroup object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"CrmGroup":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"board_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"color":{"type":"string","nullable":true},"position":{"type":"number"},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The CrmBoard object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"CrmBoard":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"business_id":{"type":"string","format":"uuid"},"icon":{"type":"string","nullable":true},"item_display":{"type":"string","nullable":true},"column_name":{"type":"string","description":"Label used for the item name column, for example `Item` or `Deal`."},"visibility":{"type":"string","enum":["public","private","restricted"]},"position":{"type":"number"},"type":{"type":"string"},"created_by":{"nullable":true,"description":"The board's creator. An agent ID in the board list, and an object with `id` and `name` in the board details."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time","nullable":true}}}}}}
```

## The CrmBoardDetail object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"CrmBoardDetail":{"allOf":[{"$ref":"#/components/schemas/CrmBoard"},{"type":"object","properties":{"crm_groups":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CrmGroup"}},"crm_columns":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CrmColumn"}},"crm_board_views":{"type":"array","nullable":true,"items":{"type":"object","additionalProperties":true}},"agent_ids":{"type":"array","description":"Agents the board is shared with.","items":{"$ref":"#/components/schemas/NamedRef"}},"role_ids":{"type":"array","description":"Roles the board is shared with.","items":{"$ref":"#/components/schemas/NamedRef"}}}}]},"CrmBoard":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"business_id":{"type":"string","format":"uuid"},"icon":{"type":"string","nullable":true},"item_display":{"type":"string","nullable":true},"column_name":{"type":"string","description":"Label used for the item name column, for example `Item` or `Deal`."},"visibility":{"type":"string","enum":["public","private","restricted"]},"position":{"type":"number"},"type":{"type":"string"},"created_by":{"nullable":true,"description":"The board's creator. An agent ID in the board list, and an object with `id` and `name` in the board details."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"CrmGroup":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"board_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"color":{"type":"string","nullable":true},"position":{"type":"number"},"created_at":{"type":"string","format":"date-time"}}},"CrmColumn":{"type":"object","description":"A board column (field) or contact property.","additionalProperties":true,"properties":{"id":{"type":"string","format":"uuid"},"board_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"type":{"type":"string","enum":["text","long_text","email","phone","number","timeline","date","checkbox","select","dropdown","file","files","reference","references","agents","contacts","conversation","order","orders","companies","subscriptions","item_deals"]},"settings":{"type":"object","additionalProperties":true,"description":"Type-specific settings. `select` and `dropdown` columns list their options in `labels`.","properties":{"labels":{"type":"array","items":{"$ref":"#/components/schemas/CrmColumnLabel"}}}},"default_value":{"type":"string","nullable":true},"is_required":{"type":"boolean"},"is_visible":{"type":"boolean"},"is_unique":{"type":"boolean"},"read_only":{"type":"boolean"},"position":{"type":"number"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time","nullable":true}}},"CrmColumnLabel":{"type":"object","properties":{"id":{"type":"string","description":"Label ID. Use it as the value for `select` and `dropdown` columns."},"name":{"type":"string"},"color":{"type":"string"}}},"NamedRef":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}}}}}
```

## The CrmItem object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"CrmItem":{"type":"object","description":"A board item. Each column's value appears as an extra field named after the column.","additionalProperties":true,"properties":{"item_id":{"type":"string","format":"uuid"},"item_name":{"type":"string"},"group_id":{"type":"string","format":"uuid"},"group_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"created_by":{"description":"The agent who created the item, when known.","nullable":true}}}}}}
```

## The CrmItemWriteResult object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"CrmItemWriteResult":{"type":"object","properties":{"message":{"type":"string","enum":["success","success_with_failures"],"description":"`success_with_failures` when some column values were rejected. The item is still saved."},"failed":{"type":"array","description":"Column values that were not saved.","items":{"type":"object","properties":{"column_name":{"type":"string"},"message":{"type":"string"}}}},"data":{"$ref":"#/components/schemas/CrmItem"}}},"CrmItem":{"type":"object","description":"A board item. Each column's value appears as an extra field named after the column.","additionalProperties":true,"properties":{"item_id":{"type":"string","format":"uuid"},"item_name":{"type":"string"},"group_id":{"type":"string","format":"uuid"},"group_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"created_by":{"description":"The agent who created the item, when known.","nullable":true}}}}}}
```

## The QnaDocument object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"QnaDocument":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"question":{"type":"string"},"answer":{"type":"string"},"ai_agent_id":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time","nullable":true}}}}}}
```

## The LegacyInbox object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"LegacyInbox":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"business_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"},"image_url":{"type":"string","nullable":true},"ai_agent_id":{"type":"string","format":"uuid","nullable":true},"ai_agent":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"plugin_type":{"type":"string","nullable":true}}}}}}}}
```

## The ChatMessage object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"ChatMessage":{"type":"object","description":"A message in a conversation. Additional fields may be present.","additionalProperties":true,"properties":{"id":{"type":"string"},"conversation_id":{"type":"string","format":"uuid"},"message":{"type":"string","nullable":true},"sent_by":{"type":"string","nullable":true,"description":"ID of the sender (agent, AI agent, contact or `system`)."},"sent_by_name":{"type":"string","nullable":true},"sent_by_type":{"type":"string","description":"Who sent the message, for example `user` (the contact), `agent`, `api` or `system`."},"media_type":{"type":"string","nullable":true},"media_url":{"type":"string","nullable":true},"platform_mid":{"type":"string","nullable":true,"description":"The channel's message ID, for example the WhatsApp message ID."},"status":{"type":"string","nullable":true,"description":"Delivery status, for example `sent`, `delivered`, `read` or `failed`."},"is_template":{"type":"boolean","nullable":true},"created_at":{"type":"string","description":"ISO 8601 UTC with `version=2026-05-22` or later; otherwise `YYYY-MM-DD HH:mm:ss` in Asia/Jakarta time."},"updated_at":{"type":"string","nullable":true},"chat_credits_used":{"type":"number","nullable":true,"description":"AI credits used to generate the message, for AI replies."},"location":{"type":"object","nullable":true,"additionalProperties":true},"action":{"type":"object","nullable":true,"additionalProperties":true},"additional_data":{"type":"object","nullable":true,"additionalProperties":true,"description":"Extra data, such as the ad referral for messages that came from a click-to-WhatsApp ad."},"contact":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"display_name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"platform_id":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"type":{"type":"string"}}},"inbox":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"business_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"type":{"type":"string"}}}}}}}}
```

## The MessageSnippet object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"MessageSnippet":{"type":"object","properties":{"message":{"type":"string"},"created_at":{"type":"string","format":"date-time","nullable":true}}}}}}
```

## The ConversationListItem object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"ConversationListItem":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"stage_status":{"type":"string","enum":["open","pending","assigned","resolved"]},"inbox_id":{"type":"string","format":"uuid"},"inbox_name":{"type":"string"},"platform_type":{"type":"string"},"contact_id":{"type":"string","format":"uuid"},"contact_name":{"type":"string"},"contact_phone":{"type":"string","nullable":true},"contact_platform_id":{"type":"string","nullable":true},"contact_username":{"type":"string","nullable":true},"handled_by_id":{"type":"string","format":"uuid","nullable":true,"description":"The human agent handling the conversation."},"handled_by_name":{"type":"string","nullable":true},"resolved_at":{"type":"string","format":"date-time","nullable":true},"resolved_by_id":{"type":"string","format":"uuid","nullable":true},"resolved_by_name":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"notes":{"type":"string","nullable":true,"description":"The contact's notes."},"additional_data":{"type":"object","nullable":true,"additionalProperties":true},"labels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}}},"first_message":{"type":"object","properties":{"message":{"type":"string"}}},"last_message":{"$ref":"#/components/schemas/MessageSnippet"}}},"MessageSnippet":{"type":"object","properties":{"message":{"type":"string"},"created_at":{"type":"string","format":"date-time","nullable":true}}}}}}
```

## The ConversationDetail object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"ConversationDetail":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"stage_status":{"type":"string","enum":["open","pending","assigned","resolved"]},"notes":{"type":"string","nullable":true},"labels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"color":{"type":"string"}}}},"pipeline":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}},"collaborators":{"type":"array","description":"Agents added to the conversation as collaborators.","items":{"$ref":"#/components/schemas/NamedRef"}},"inbox_id":{"type":"string","format":"uuid"},"inbox_name":{"type":"string"},"platform_type":{"type":"string"},"contact_id":{"type":"string","format":"uuid"},"contact_name":{"type":"string"},"contact_phone":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"resolved_at":{"type":"string","format":"date-time","nullable":true},"handled_by_id":{"type":"string","format":"uuid","nullable":true},"handled_by_name":{"type":"string","nullable":true},"resolved_by_id":{"type":"string","format":"uuid","nullable":true},"resolved_by_name":{"type":"string","nullable":true},"additional_data":{"type":"object","nullable":true,"additionalProperties":true},"first_message":{"type":"object","properties":{"message":{"type":"string"}}},"last_message":{"type":"object","properties":{"message":{"type":"string"},"created_at":{"type":"string","format":"date-time","nullable":true},"sent_by_type":{"type":"string","description":"Who sent the last message."}}},"last_message_by_human":{"type":"object","nullable":true,"description":"The last message sent by a human agent, if any.","properties":{"message":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"sent_by_type":{"type":"string"}}}}},"NamedRef":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}}}}}
```

## The Agent object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"Agent":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string"},"is_online":{"type":"boolean"},"created_at":{"type":"string","description":"Creation time in Asia/Jakarta local time, without an offset."},"division":{"type":"array","items":{"$ref":"#/components/schemas/NamedRef"}}}},"NamedRef":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}}}}}
```

## The AgentV2 object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"AgentV2":{"type":"object","description":"An agent. Includes `chat` when `module=chat`, and `crm` otherwise.","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"email":{"type":"string"},"is_verified":{"type":"boolean","description":"False when the agent hasn't verified their email yet."},"chat":{"type":"object","properties":{"role":{"type":"string","nullable":true},"is_active":{"type":"boolean"},"divisions":{"type":"array","items":{"type":"object","additionalProperties":true}},"inboxes":{"type":"array","items":{"type":"object","additionalProperties":true}}}},"crm":{"type":"object","properties":{"is_active":{"type":"boolean"},"authority":{"type":"string","nullable":true},"role":{"type":"object","nullable":true,"additionalProperties":true}}}}}}}}
```

## The OrderProduct object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"OrderProduct":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string","format":"uuid"},"product_id":{"type":"string","format":"uuid","nullable":true},"product_name":{"type":"string"},"quantity":{"type":"integer"},"price":{"type":"number"}}}}}}
```

## The Invoice object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"Invoice":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["PENDING","PAID","EXPIRED","SETTLED"]},"amount":{"type":"number"},"payment_link":{"type":"string","nullable":true,"description":"Xendit payment link, for `xendit` orders."},"pdf_link":{"type":"string","nullable":true,"description":"Invoice PDF, or your own invoice URL for `custom` orders."},"is_sent":{"type":"boolean","nullable":true},"expiry_date":{"type":"string","nullable":true},"paid_at":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The Order object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"Order":{"type":"object","description":"An order with its contact, products and invoices. Additional fields may be present.","additionalProperties":true,"properties":{"id":{"type":"string","format":"uuid"},"order_number":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"order_status":{"type":"string","enum":["pending","processing","shipping","cancelled","completed"]},"payment_method":{"type":"string","enum":["manual","xendit","custom"]},"subtotal":{"type":"number"},"discount":{"type":"number"},"shipping_fee":{"type":"number"},"vat":{"type":"number"},"grand_total":{"type":"number"},"currency":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"contact_id":{"type":"string","format":"uuid"},"conversation_id":{"type":"string","format":"uuid","nullable":true},"contact":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"display_name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"email":{"type":"string","nullable":true}}},"cekat_orders_products":{"type":"array","items":{"$ref":"#/components/schemas/OrderProduct"}},"invoices":{"type":"array","description":"The order's invoices, newest first.","items":{"$ref":"#/components/schemas/Invoice"}}}},"OrderProduct":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string","format":"uuid"},"product_id":{"type":"string","format":"uuid","nullable":true},"product_name":{"type":"string"},"quantity":{"type":"integer"},"price":{"type":"number"}}},"Invoice":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["PENDING","PAID","EXPIRED","SETTLED"]},"amount":{"type":"number"},"payment_link":{"type":"string","nullable":true,"description":"Xendit payment link, for `xendit` orders."},"pdf_link":{"type":"string","nullable":true,"description":"Invoice PDF, or your own invoice URL for `custom` orders."},"is_sent":{"type":"boolean","nullable":true},"expiry_date":{"type":"string","nullable":true},"paid_at":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The TicketFieldValue object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"TicketFieldValue":{"type":"object","properties":{"field_name":{"type":"string","description":"The field's name from the ticket template."},"field_value":{"description":"The value. Its format depends on the field type."}}}}}}
```

## The Ticket object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"Ticket":{"type":"object","description":"A ticket. List responses also include the template, products and conversation. Additional fields may be present.","additionalProperties":true,"properties":{"id":{"type":"string","format":"uuid"},"public_ticket_id":{"type":"integer","description":"The ticket number shown in Cekat."},"board_id":{"type":"string","format":"uuid"},"ticket_template_id":{"type":"string","format":"uuid"},"title":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string","description":"A status ID from the board's `statuses`, or `done`."},"priority":{"type":"integer","enum":[0,1,2,3],"description":"0 Low, 1 Medium, 2 High, 3 Urgent."},"field_values":{"type":"array","items":{"$ref":"#/components/schemas/TicketFieldValue"}},"assigned_to":{"type":"array","description":"Agent IDs assigned to the ticket.","items":{"type":"string"}},"attachments":{"type":"array","items":{"type":"string"}},"conversation_id":{"type":"string","format":"uuid","nullable":true},"created_by":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"TicketFieldValue":{"type":"object","properties":{"field_name":{"type":"string","description":"The field's name from the ticket template."},"field_value":{"description":"The value. Its format depends on the field type."}}}}}}
```

## The TicketBoard object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"TicketBoard":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Board ID. Use it as `board_id`."},"business_id":{"type":"string","format":"uuid"},"board_name":{"type":"string"},"statuses":{"type":"array","description":"The board's statuses. Use a status `id` when creating or updating tickets.","items":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"default_template_id":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The TicketTemplate object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"TicketTemplate":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Template ID. Use it as `ticket_template_id`."},"name":{"type":"string"},"board_id":{"type":"string","format":"uuid"},"type":{"type":"string","nullable":true},"default_status":{"type":"string","nullable":true,"description":"Status used when a ticket is created without one."},"default_priority":{"type":"integer","nullable":true,"description":"Priority used when a ticket is created without one."},"fields":{"type":"array","nullable":true,"description":"The template's custom fields. Send values for them in `field_values`, using each field's name.","items":{"type":"object","additionalProperties":true}},"business_id":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The PageLimitPagination object

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"components":{"schemas":{"PageLimitPagination":{"type":"object","properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"total_data":{"type":"integer"},"total_pages":{"type":"integer"}}}}}}
```
