Search Kayako cases, replies, customers and help-center articles, and reply to or create cases.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: add tags to a case, keeping its existing tags. Kayako: POST /api/v1/cases/{id}/tags.json.
Comma-separated tags to add.
The case id (integer).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
WRITE: add tags to a case, keeping its existing tags. Kayako: POST /api/v1/cases/{id}/tags.json.
| Argument | Type | Description |
|---|---|---|
| tags* | string | Comma-separated tags to add. |
| case_id* | integer | The case id (integer). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"case_id",
"tags"
],
"properties": {
"tags": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Comma-separated tags to add."
},
"case_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The case id (integer).",
"exclusiveMinimum": 0
}
}
}WRITE: open a new case (conversation) for a requester. channel MAIL sends the first message to the customer by email from the mailbox given as channel_id; channel NOTE creates it with an internal note and emails nobody. Get channel ids from kayako_list_channels and status/priority/type ids from kayako_list_case_options. Kayako: POST /api/v1/cases.json.
| Argument | Type | Description |
|---|---|---|
| cc | array | MAIL only: CC addresses. |
| html | boolean | MAIL/NOTE: treat contents as HTML (sanitized by Kayako). |
| tags | string | Comma-separated tags. |
| channel* | string | MAIL, TWITTER, FACEBOOK or NOTE (internal, not sent). |
| form_id | integer | |
| subject* | string | Case subject. |
| type_id | integer | |
| contents* | string | Body of the first post. |
| status_id | integer | |
| channel_id | integer | Channel account id (e.g. the mailbox id). Required unless channel is NOTE. |
| priority_id | integer | |
| field_values | object | Custom field values keyed by field key, e.g. {"order_number": "1234"}. For multi-select fields pass CSV options — ALL options must be passed; omitted ones are removed. |
| requester_id |
WRITE: create a user — typically a CUSTOMER to use as requester_id on a new case. role_id comes from kayako_list_roles. Collaborator/agent/admin roles also require email and team_ids. No password is set by this tool. Kayako: POST /api/v1/users.json.
| Argument | Type | Description |
|---|---|---|
| string | Primary email. Required for collaborator/agent/admin roles. | |
| role_id* | integer | The role id (integer). |
| team_ids | array | Team ids (required for collaborator/agent/admin). |
| full_name* | string | |
| time_zone | string | |
| designation | string | Job title. |
| field_values | object | Custom field values keyed by field key, e.g. {"order_number": "1234"}. For multi-select fields pass CSV options — ALL options must be passed; omitted ones are removed. |
| organization_case_access | string | CUSTOMER only: see only own cases (default) or the whole organization's. |
Fetch one knowledge-base article with its localized titles and contents expanded (include defaults to 'locale_field'), status, section, tags, votes and help-center URL. Kayako: GET /api/v1/articles/{id}.json.
| Argument | Type | Description |
|---|---|---|
| include | string | Resource types to expand. Defaults to 'locale_field' so titles/contents are readable. |
| article_id* | integer | The article id (integer). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"article_id"
],
"properties": {
"include": {
"type": "string",
"maxLength": 300,
"description": "Resource types to expand. Defaults to 'locale_field' so titles/contents are readable."
},
"article_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The article id (integer).",
"exclusiveMinimum": 0
}
}
}Fetch one case (conversation) by id: subject, requester, assignee, status, priority, type, SLA metrics, custom fields, last post preview. Use include (e.g. 'user,case_status,case_priority,team') to expand references and fields='+tags' for tags. Kayako: GET /api/v1/cases/{id}.json.
| Argument | Type | Description |
|---|---|---|
| fields | string | Partial-output field rules, e.g. '+tags' to add tags to a case, or 'subject,status' to return only those. |
| case_id* | integer | The case id (integer). |
| include | string | Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"case_id"
],
"properties": {
"fields": {
"type": "string",
"maxLength": 300,
"description": "Partial-output field rules, e.g. '+tags' to add tags to a case, or 'subject,status' to return only those."
},
"case_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The case id (integer).",
"exclusiveMinimum": 0
},
"include": {
"type": "string",
"maxLength": 300,
"description": "Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all."
}
}
}Fetch the Kayako user these credentials belong to (name, role, teams, locale). A cheap way to confirm the subdomain and credentials work. Kayako: GET /api/v1/me.json.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Fetch one user by id: name, role, organization, teams, identities (emails, phones, social), custom fields. include='identity_email,organization' expands references. Kayako: GET /api/v1/users/{id}.json.
| Argument | Type | Description |
|---|---|---|
| include | string | Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all. |
| user_id* | integer | The user id (integer). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"user_id"
],
"properties": {
"include": {
"type": "string",
"maxLength": 300,
"description": "Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all."
},
"user_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The user id (integer).",
"exclusiveMinimum": 0
}
}
}List knowledge-base articles, optionally by section, tags, or PUBLISHED / PINNED. Titles and contents are locale references unless include='locale_field'. Kayako: GET /api/v1/articles.json.
| Argument | Type | Description |
|---|---|---|
| tags | string | Comma-separated tags. |
| limit | integer | Items per page, 1-100. Kayako's default is 10. |
| filter | string | Only pinned or only published articles. |
| offset | integer | Offset into the collection (0-based). Default 0. |
| include | string | Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all. |
| section_id | integer | Only articles in this section. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"tags": {
"type": "string",
"maxLength": 500,
"description": "Comma-separated tags."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Items per page, 1-100. Kayako's default is 10."
},
"filter": {
"enum": [
"PINNED",
"PUBLISHED"
],
"type": "string",
"description": "Only pinned or only published articles."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Offset into the collection (0-based). Default 0."
},
"include": {
"type": "string",
"maxLength": 300,
"description": "Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all."
},
"section_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only articles in this section.",
"exclusiveMinimum": 0
}
}
}List the instance's case statuses (id, label, type), priorities (id, label, level) or types (id, label, type) — the ids needed for status_id / priority_id / type_id when creating, updating or replying to a case. Kayako: GET /api/v1/cases/{statuses|priorities|types}.json.
| Argument | Type | Description |
|---|---|---|
| kind* | string | Which list to return. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"statuses",
"priorities",
"types"
],
"type": "string",
"description": "Which list to return."
}
}
}Read a case's timeline: customer messages, agent replies and internal notes (newest first). By default activities are excluded; filters='NOTES' for internal notes only, 'MESSAGES' for messages, 'ALL' to include activities. Paginate with before_id / after_id (one at a time). Kayako: GET /api/v1/cases/{id}/posts.json.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Items per page, 1-100. Kayako's default is 10. |
| case_id* | integer | The case id (integer). |
| filters | string | Which kinds of post to return. |
| include | string | Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all. |
| after_id | integer | Cursor: return the page after this post id. |
| before_id | integer | Cursor: return the page before this post id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"case_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Items per page, 1-100. Kayako's default is 10."
},
"case_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The case id (integer).",
"exclusiveMinimum": 0
},
"filters": {
"enum": [
"ALL",
"ACTIVITIES",
"MESSAGES",
"NOTES",
"SHADOW_POSTS",
"CHAT_MESSAGES",
"FACEBOOK_POSTS",
"FACEBOOK_POST_COMMENTS",
"FACEBOOK_MESSAGES",
"TWEETS",
"TWITTER_MESSAGES"
],
"type": "string",
"description": "Which kinds of post to return."
},
"include": {
"type": "string",
"maxLength": 300,
"description": "Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all."
},
"after_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Cursor: return the page after this post id.",
"exclusiveMinimum": 0
},
"before_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Cursor: return the page before this post id.",
"exclusiveMinimum": 0
}
}
}List cases (conversations / tickets), newest-updated first. Filter by status type, tags, max priority level, or a requester identity (email, Twitter screen name, Facebook username, phone); or fetch specific ids. Nested resources are references unless `include` expands them. Kayako: GET /api/v1/cases.json.
| Argument | Type | Description |
|---|---|---|
| ids | array | Fetch these case ids instead of filtering. |
| tags | string | Comma-separated tags to filter by. |
| limit | integer | Items per page, 1-100. Kayako's default is 10. |
| fields | string | Partial-output field rules, e.g. '+tags' to add tags to a case, or 'subject,status' to return only those. |
| offset | integer | Offset into the collection (0-based). Default 0. |
| status | array | Status types to include, e.g. ['OPEN','PENDING']. |
| include | string | Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all. |
| priority | integer |
List the channels (MAIL mailbox, TWITTER, FACEBOOK, NOTE) usable for a reply on an existing case (pass case_id) or for a new case (omit case_id; optionally pass the requester's user_id). A channel's account.id is the channel_id to pass to kayako_reply_to_case / kayako_create_case. Kayako: GET /api/v1/cases/{id}/reply/channels.json or GET /api/v1/cases/channels.json.
| Argument | Type | Description |
|---|---|---|
| case_id | integer | Existing case to reply on. |
| user_id | integer | Requester of a NEW case (ignored with case_id). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"case_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Existing case to reply on.",
"exclusiveMinimum": 0
},
"user_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Requester of a NEW case (ignored with case_id).",
"exclusiveMinimum": 0
}
}
}List the cases (conversations) raised by members of one organization, newest-updated first. Kayako: GET /api/v1/organizations/{id}/cases.json.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Items per page, 1-100. Kayako's default is 10. |
| offset | integer | Offset into the collection (0-based). Default 0. |
| include | string | Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all. |
| organization_id* | integer | The organization id (integer). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"organization_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Items per page, 1-100. Kayako's default is 10."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Offset into the collection (0-based). Default 0."
},
"include": {
"type": "string",
"maxLength": 300,
"description": "Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all."
},
"organization_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The organization id (integer).",
"exclusiveMinimum": 0
}
}
}List customer organizations (name, domains, phone, custom fields), oldest first. To find one by name use kayako_search with resources=['ORGANIZATIONS']. Kayako: GET /api/v1/organizations.json.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Items per page, 1-100. Kayako's default is 10. |
| offset | integer | Offset into the collection (0-based). Default 0. |
| include | string | Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Items per page, 1-100. Kayako's default is 10."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Offset into the collection (0-based). Default 0."
},
"include": {
"type": "string",
"maxLength": 300,
"description": "Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all."
}
}
}List user roles (id, title, type OWNER/ADMIN/AGENT/COLLABORATOR/CUSTOMER) — the role_id needed by kayako_create_user. Kayako: GET /api/v1/roles.json.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Items per page, 1-100. Kayako's default is 10. |
| offset | integer | Offset into the collection (0-based). Default 0. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Items per page, 1-100. Kayako's default is 10."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Offset into the collection (0-based). Default 0."
}
}
}List agent teams (id, title, member count) — the ids for assigned_team_id. Kayako: GET /api/v1/teams.json.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Items per page, 1-100. Kayako's default is 10. |
| offset | integer | Offset into the collection (0-based). Default 0. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Items per page, 1-100. Kayako's default is 10."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Offset into the collection (0-based). Default 0."
}
}
}List users (customers, collaborators, agents, admins), newest first, optionally by role type or specific ids. To find a user by email or name use kayako_search. Kayako: GET /api/v1/users.json.
| Argument | Type | Description |
|---|---|---|
| ids | array | Fetch these user ids. |
| role | string | Only users of this role type. |
| limit | integer | Items per page, 1-100. Kayako's default is 10. |
| offset | integer | Offset into the collection (0-based). Default 0. |
| include | string | Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 100,
"description": "Fetch these user ids."
},
"role": {
"enum": [
"CUSTOMER",
"COLLABORATOR",
"AGENT",
"ADMIN"
],
"type": "string",
"description": "Only users of this role type."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Items per page, 1-100. Kayako's default is 10."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Offset into the collection (0-based). Default 0."
},
"include": {
"type": "string",
"maxLength": 300,
"description": "Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all."
}
}
}WRITE: add a post to a case. channel NOTE adds an INTERNAL note visible only to agents (no channel_id needed). channel MAIL/TWITTER/FACEBOOK sends a PUBLIC reply to the customer — get channel_id from kayako_list_channels with case_id. Can also set status/priority/assignee in the same call. Kayako: POST /api/v1/cases/{id}/reply.json.
| Argument | Type | Description |
|---|---|---|
| cc | array | MAIL only: CC addresses. |
| html | boolean | NOTE only: treat contents as HTML (sanitized by Kayako). |
| tags | string | Comma-separated tags. |
| case_id* | integer | The case id (integer). |
| channel* | string | NOTE for an internal note; MAIL/TWITTER/FACEBOOK for a public reply. |
| type_id | integer | |
| contents* | string | Reply or note text. |
| status_id | integer | Also set the case status. |
| channel_id |
Unified search across conversations (cases), users and organizations. Returns id, title, snippet, relevance and resource type; pass fields='*' to get each full resource inline. Max 30 results. Kayako: GET /api/v1/search.json.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results, 1-30 (default 30). |
| query* | string | Search text (Kayako Unified Search Language). |
| fields | string | Resource fields to return, e.g. '*' for full resources. |
| resources | array | Restrict to these resource kinds. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 30,
"minimum": 1,
"description": "Max results, 1-30 (default 30)."
},
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Search text (Kayako Unified Search Language)."
},
"fields": {
"type": "string",
"maxLength": 300,
"description": "Resource fields to return, e.g. '*' for full resources."
},
"resources": {
"type": "array",
"items": {
"enum": [
"USERS",
"ORGANIZATIONS",
"CONVERSATIONS"
],
"type": "string"
},
"description": "Restrict to these resource kinds."
}
}
}Search the help center's articles and/or public conversations. Returns references (e.g. {id, resource_type: 'article'}); read an article with kayako_get_article. Kayako: GET /api/v1/helpcenter/search.json.
| Argument | Type | Description |
|---|---|---|
| in | string | What to search. Default ALL. |
| limit | integer | Items per page, 1-100. Kayako's default is 10. |
| query* | string | Search text, at least 3 characters. |
| locale | string | Locale, e.g. en-us. |
| offset | integer | Offset into the collection (0-based). Default 0. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"in": {
"enum": [
"ARTICLES",
"CONVERSATIONS",
"ALL"
],
"type": "string",
"description": "What to search. Default ALL."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Items per page, 1-100. Kayako's default is 10."
},
"query": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "Search text, at least 3 characters."
},
"locale": {
"type": "string",
"maxLength": 20,
"description": "Locale, e.g. en-us."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Offset into the collection (0-based). Default 0."
}
}
}WRITE: change a case's subject, requester, assignee (team/agent), status, priority, type, brand, form, tags or custom fields. Sends nothing to the customer. `tags` sets the case's tag list (use kayako_add_case_tags to append). Trashing is deliberately not exposed. Kayako: PUT /api/v1/cases/{id}.json.
| Argument | Type | Description |
|---|---|---|
| tags | string | Comma-separated tags (sets the list). |
| case_id* | integer | The case id (integer). |
| form_id | integer | |
| subject | string | |
| type_id | integer | |
| brand_id | integer | |
| status_id | integer | |
| priority_id | integer | |
| field_values | object | Custom field values keyed by field key, e.g. {"order_number": "1234"}. For multi-select fields pass CSV options — ALL options must be passed; omitted ones are removed. |
| integer |
| The requester (customer user) id (integer). |
| assigned_team_id | integer |
| assigned_agent_id | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subject",
"contents",
"requester_id",
"channel"
],
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"maxItems": 50,
"description": "MAIL only: CC addresses."
},
"html": {
"type": "boolean",
"description": "MAIL/NOTE: treat contents as HTML (sanitized by Kayako)."
},
"tags": {
"type": "string",
"maxLength": 500,
"description": "Comma-separated tags."
},
"channel": {
"enum": [
"MAIL",
"TWITTER",
"FACEBOOK",
"NOTE"
],
"type": "string",
"description": "MAIL, TWITTER, FACEBOOK or NOTE (internal, not sent)."
},
"form_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"subject": {
"type": "string",
"maxLength": 255,
"minLength": 1,
"description": "Case subject."
},
"type_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"contents": {
"type": "string",
"minLength": 1,
"description": "Body of the first post."
},
"status_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"channel_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Channel account id (e.g. the mailbox id). Required unless channel is NOTE.",
"exclusiveMinimum": 0
},
"priority_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"field_values": {
"type": "object",
"description": "Custom field values keyed by field key, e.g. {\"order_number\": \"1234\"}. For multi-select fields pass CSV options — ALL options must be passed; omitted ones are removed.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"requester_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The requester (customer user) id (integer).",
"exclusiveMinimum": 0
},
"assigned_team_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"assigned_agent_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"full_name",
"role_id"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Primary email. Required for collaborator/agent/admin roles."
},
"role_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The role id (integer).",
"exclusiveMinimum": 0
},
"team_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"description": "Team ids (required for collaborator/agent/admin)."
},
"full_name": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"time_zone": {
"type": "string",
"maxLength": 64
},
"designation": {
"type": "string",
"maxLength": 255,
"description": "Job title."
},
"field_values": {
"type": "object",
"description": "Custom field values keyed by field key, e.g. {\"order_number\": \"1234\"}. For multi-select fields pass CSV options — ALL options must be passed; omitted ones are removed.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"organization_case_access": {
"enum": [
"REQUESTED",
"ORGANIZATION"
],
"type": "string",
"description": "CUSTOMER only: see only own cases (default) or the whole organization's."
}
}
}| Include cases whose priority level is less than or equal to this level. |
| identity_type | string | Filter by the requester's identity type; requires identity_value. |
| identity_value | string | Email, Facebook username, Twitter screen name or phone number, matching identity_type. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 100,
"description": "Fetch these case ids instead of filtering."
},
"tags": {
"type": "string",
"maxLength": 500,
"description": "Comma-separated tags to filter by."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Items per page, 1-100. Kayako's default is 10."
},
"fields": {
"type": "string",
"maxLength": 300,
"description": "Partial-output field rules, e.g. '+tags' to add tags to a case, or 'subject,status' to return only those."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Offset into the collection (0-based). Default 0."
},
"status": {
"type": "array",
"items": {
"enum": [
"NEW",
"OPEN",
"PENDING",
"COMPLETED",
"CLOSED",
"CUSTOM"
],
"type": "string"
},
"description": "Status types to include, e.g. ['OPEN','PENDING']."
},
"include": {
"type": "string",
"maxLength": 300,
"description": "Comma-separated resource types to expand instead of returning {id, resource_type} references, e.g. 'user,case_status,case_priority,team', or '*' for all."
},
"priority": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Include cases whose priority level is less than or equal to this level."
},
"identity_type": {
"enum": [
"EMAIL",
"FACEBOOK",
"TWITTER",
"PHONE"
],
"type": "string",
"description": "Filter by the requester's identity type; requires identity_value."
},
"identity_value": {
"type": "string",
"maxLength": 320,
"description": "Email, Facebook username, Twitter screen name or phone number, matching identity_type."
}
}
}| integer |
| Channel account id. Required unless channel is NOTE. |
| priority_id | integer |
| assigned_team_id | integer |
| assigned_agent_id | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"case_id",
"contents",
"channel"
],
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"maxItems": 50,
"description": "MAIL only: CC addresses."
},
"html": {
"type": "boolean",
"description": "NOTE only: treat contents as HTML (sanitized by Kayako)."
},
"tags": {
"type": "string",
"maxLength": 500,
"description": "Comma-separated tags."
},
"case_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The case id (integer).",
"exclusiveMinimum": 0
},
"channel": {
"enum": [
"MAIL",
"TWITTER",
"FACEBOOK",
"NOTE"
],
"type": "string",
"description": "NOTE for an internal note; MAIL/TWITTER/FACEBOOK for a public reply."
},
"type_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"contents": {
"type": "string",
"minLength": 1,
"description": "Reply or note text."
},
"status_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Also set the case status.",
"exclusiveMinimum": 0
},
"channel_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Channel account id. Required unless channel is NOTE.",
"exclusiveMinimum": 0
},
"priority_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"assigned_team_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"assigned_agent_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}| requester_id | integer |
| assigned_team_id | integer |
| assigned_agent_id | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"case_id"
],
"properties": {
"tags": {
"type": "string",
"maxLength": 500,
"description": "Comma-separated tags (sets the list)."
},
"case_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The case id (integer).",
"exclusiveMinimum": 0
},
"form_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"subject": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"type_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"brand_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"status_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"priority_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"field_values": {
"type": "object",
"description": "Custom field values keyed by field key, e.g. {\"order_number\": \"1234\"}. For multi-select fields pass CSV options — ALL options must be passed; omitted ones are removed.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"requester_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"assigned_team_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"assigned_agent_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}