{
 "info": {
  "name": "Kustomer API",
  "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
  "description": "Every Kustomer REST API operation, from https://developer.kustomer.com/api.\n\nSet `orgName` to your Kustomer subdomain and `apiKey` to an API key, in the collection variables. Requests go to `https://{{orgName}}.api.kustomerapp.com`, which routes to your org's region. To use a regional host instead, set `baseUrl` to one of:\n\n- US (prod1): `https://api.kustomerapp.com`\n- EU (prod2): `https://api.prod2.kustomerapp.com`\n- India (prod4): `https://api.prod4.kustomerapp.com`\n\nEach request lists the roles it requires. Optional query parameters and headers are included but turned off."
 },
 "auth": {
  "type": "bearer",
  "bearer": [
   {
    "key": "token",
    "value": "{{apiKey}}",
    "type": "string"
   }
  ]
 },
 "variable": [
  {
   "key": "orgName",
   "value": "",
   "description": "Your Kustomer subdomain: acme for acme.kustomerapp.com."
  },
  {
   "key": "apiKey",
   "value": "",
   "description": "An API key from Settings > Security > API Keys."
  },
  {
   "key": "baseUrl",
   "value": "https://{{orgName}}.api.kustomerapp.com",
   "description": "Change to a regional host if you prefer."
  }
 ],
 "item": [
  {
   "name": "Core resources",
   "description": "Customers, companies, conversations, messages, notes, drafts, KObjects, Klasses, search, bulk operations and more.",
   "item": [
    {
     "name": "Audit Logs",
     "item": [
      {
       "name": "Query events associated with your organization",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/audit-logs",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "audit-logs"
         ],
         "query": [
          {
           "key": "count",
           "value": "100",
           "description": "Optional. Limits the number audit-log documents to be returned. Default 100, maximum 1000.",
           "disabled": true
          },
          {
           "key": "after",
           "value": "12398b37f821774356daa2a5",
           "description": "Optional. Paginates by the ID of the audit-log which marks the end of the pagination range. Requires \"before\".",
           "disabled": true
          },
          {
           "key": "before",
           "value": "45698b37f821774356dcc2g1",
           "description": "Optional. Paginates by the ID of the audit-log which marks the beginning of the pagination range. Requires \"after\".",
           "disabled": true
          },
          {
           "key": "filter[objectType]",
           "value": "",
           "description": "Optional. Filters by the type of database object the event relates to.",
           "disabled": true
          },
          {
           "key": "filter[objectId]",
           "value": "45698b37f821774356dcc2g1",
           "description": "Optional. Filters by the id of database object the event relates to. Requires `filter[objectType]`.",
           "disabled": true
          },
          {
           "key": "filter[userId]",
           "value": "45698b37f821774356dcc2g1",
           "description": "Optional. Filters by the ID of the user the event relates to.",
           "disabled": true
          },
          {
           "key": "filter[include]",
           "value": "user,shortcut,work_item,ip_rule",
           "description": "Optional. Adds additional OR query logic to include results for additional objectTypes. For available objectTypes to use in this query param, see the enum in the `filter[objectType]` field.",
           "disabled": true
          },
          {
           "key": "filter[start]",
           "value": "2016-08-06T19:47:49.235Z",
           "description": "Optional. Filter by the date range start.",
           "disabled": true
          },
          {
           "key": "filter[end]",
           "value": "2016-09-06T19:47:49.235Z",
           "description": "Optional. Filter by the date range end.",
           "disabled": true
          }
         ]
        },
        "description": "--------\n\n**Authorization:** Requires any one of these roles: `org.permission.audit_logs.read`; or legacy `org.admin.audit_logs.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/query-events-associated-with-your-organization"
       }
      }
     ]
    },
    {
     "name": "Attachments",
     "item": [
      {
       "name": "Create attachment",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/attachments",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "attachments"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"contentType\": \"application/pdf\",\n  \"contentLength\": 0,\n  \"externalUrl\": \"https://customer-storage.example/report.pdf\",\n  \"renderMode\": \"metadata_only\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new attachment document.\n\n### Uploading attachments (default S3 path)\nWhen `externalUrl` is omitted, the response includes a temporary upload policy. Upload the file by sending a multi-part POST request to the URL found in the response object's `meta.upload.url` property.\n\nThe request must be accompanied by the key/value pairs found in `meta.upload.fields` as standard form keys. The file should be included as the last key under the name \"file\".\n\n### External attachments (host-owned storage)\nWhen `externalUrl` is provided (HTTPS only; credentials-in-URL are rejected), Kustomer registers an attachment that points at that URL. No S3 upload policy is returned (`meta.upload` is omitted), `uploaded` is `true`, and later reads return `links.related` as the registered URL. Kustomer does not fetch, scan, own, or delete the external bytes; URL lifetime is the host's responsibility.\n\nOptional `renderMode` (only with `externalUrl`):\n- `default` (or omitted): clients may open/download via `links.related` (same as today).\n- `metadata_only`: client-facing responses expose attachment metadata only — `links.related` is omitted and the storage URL is never returned. Clients (SDKs, classic web, Agent Desktop) do not receive enough data to render or open the file; show a non-interactive uploaded placeholder instead.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.create`, `org.permission.message.create`; or legacy `org.user.note.write`, `org.user.message.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-attachment"
       }
      },
      {
       "name": "Get attachments by ID [Outbound Only]",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/attachments/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "attachments",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Attachment ID."
          }
         ]
        },
        "description": "Retrieves attachments using the unique ID of the attachment or an array of unique attachment IDs, if given.\n\n**Authorization:** Requires any one of these roles: `org.permission.attachment.read`; or legacy `org.user.attachment.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-attachments-by-id-outbound-only"
       }
      },
      {
       "name": "Update or upsert attachment",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/attachments/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "attachments",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Attachment ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"redacted\": true,\n  \"contentType\": \"application/pdf\",\n  \"contentLength\": 0\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates the requested attachment. Upserts the attachment if an attachment does not exist.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.update`; or legacy `org.admin.message.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-or-upsert-attachment"
       }
      },
      {
       "name": "Get attachment by message ID and attachment ID (inbound or outbound)",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/messages/:message_id/attachments/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "messages",
          ":message_id",
          "attachments",
          ":id"
         ],
         "variable": [
          {
           "key": "message_id",
           "value": "60254e3ec413ae00571e3c97",
           "description": "Required. Message ID."
          },
          {
           "key": "id",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Attachment ID."
          }
         ]
        },
        "description": "Retrieves attachments based on the unique ID of the attachment for a specific message ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.attachment.read`; or legacy `org.user.attachment.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-attachment-by-message-id-and-attachment-id-inbound-or-outbound"
       }
      }
     ]
    },
    {
     "name": "Brands",
     "item": [
      {
       "name": "Get brands",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/brands",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "brands"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Number of pages to return for results. Default value: 1.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page. Default value: 100.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of all brands belonging to your organization.\n\n**Authorization:** Requires any one of these roles: `org.permission.brand.read`; or legacy `org.admin.brand.read`, `org.user.brand.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-brands"
       }
      },
      {
       "name": "Create brand",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/brands",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "brands"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"Kustom Socks\",\n  \"iconUrl\": \"https://s29093.pcdn.co/wp-content/uploads/2019/12/Kustomer_Logo-2.svg\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a brand resource.\n\n**Authorization:** Requires any one of these roles: `org.permission.brand.create`; or legacy `org.admin.brand.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-brand"
       }
      },
      {
       "name": "Get default brand",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/brands/default",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "brands",
          "default"
         ]
        },
        "description": "Retrieves the default brand that was created for your Kustomer organization during registration.\n\nLearn more about the default brand in the [Kustomer Help Center](https://help.kustomer.com/create-and-manage-multiple-brands-ryc8HBZnD#customize).\n\n**Authorization:** Requires any one of these roles: `org.permission.brand.read`; or legacy `org.admin.brand.read`, `org.user.brand.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-default-brand"
       }
      },
      {
       "name": "List brand address mappings",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/brandAddresses",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "brandAddresses"
         ],
         "query": [
          {
           "key": "address",
           "value": "",
           "description": "Optional.",
           "disabled": true
          }
         ]
        },
        "description": "**Authorization:** Requires any one of these roles: `org.permission.apps.read`; or legacy `org.user.apps.read`, `org.admin.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/list-brand-address-mappings"
       }
      },
      {
       "name": "Create brand address mapping",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/brandAddresses",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "brandAddresses"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"address\": \"string\",\n  \"brand\": \"string\",\n  \"isDefault\": true,\n  \"allBrands\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "**Authorization:** Requires any one of these roles: `org.permission.apps.create`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-brand-address-mapping"
       }
      },
      {
       "name": "Update brand address mapping",
       "request": {
        "method": "PATCH",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/brandAddresses/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "brandAddresses",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "",
           "description": "Required."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "null",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "**Authorization:** Requires any one of these roles: `org.permission.apps.update`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-brand-address-mapping"
       }
      },
      {
       "name": "Delete brand address mapping by id",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/brandAddresses/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "brandAddresses",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "",
           "description": "Required."
          }
         ]
        },
        "description": "**Authorization:** Requires any one of these roles: `org.permission.apps.delete`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-brand-address-mapping-by-id"
       }
      },
      {
       "name": "Delete all mappings for an address",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/brandAddresses/address/:address",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "brandAddresses",
          "address",
          ":address"
         ],
         "variable": [
          {
           "key": "address",
           "value": "",
           "description": "Required."
          }
         ]
        },
        "description": "**Authorization:** Requires any one of these roles: `org.permission.apps.delete`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-all-mappings-for-an-address"
       }
      },
      {
       "name": "Delete all mappings for a brand",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/brandAddresses/brand/:brandId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "brandAddresses",
          "brand",
          ":brandId"
         ],
         "variable": [
          {
           "key": "brandId",
           "value": "",
           "description": "Required."
          }
         ]
        },
        "description": "**Authorization:** Requires any one of these roles: `org.permission.apps.delete`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-all-mappings-for-a-brand"
       }
      },
      {
       "name": "Get brand by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/brands/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "brands",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c9c",
           "description": "Required. Brand ID."
          }
         ]
        },
        "description": "Retrieves a brand by its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.brand.read`; or legacy `org.admin.brand.read`, `org.user.brand.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-brand-by-id"
       }
      },
      {
       "name": "Update brand",
       "request": {
        "method": "PATCH",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/brands/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "brands",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c9c",
           "description": "Required. Brand ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"Kustom Socks, VIP\",\n  \"iconUrl\": \"https://s29093.pcdn.co/wp-content/uploads/2019/12/Kustomer_Logo-3.svg\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a brand resource.\n\n**Authorization:** Requires any one of these roles: `org.permission.brand.update`; or legacy `org.admin.brand.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-brand"
       }
      }
     ]
    },
    {
     "name": "Business Schedules",
     "item": [
      {
       "name": "Get all business schedules",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/schedules",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "schedules"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "enabled",
           "value": "true",
           "description": "Optional. Set to `true` to return only enabled schedules.",
           "disabled": true
          },
          {
           "key": "include",
           "value": "holidays",
           "description": "Optional. Set to `holidays` to include schedule holiday data.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves business schedules for a Kustomer organization.\n\nTo learn more, see [Business Schedules](https://help.kustomer.com/business-schedules-SJj3ZxD1E) in the Kustomer Help Center.\n\n**Authorization:** Requires any one of these roles: `org.permission.schedule.read`; or legacy `org.user.schedule.read`, `org.admin.schedule.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-all-business-schedules"
       }
      },
      {
       "name": "Create a business schedule",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/schedules",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "schedules"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"hours\": {\n    \"0\": [\n      [\n        0\n      ]\n    ],\n    \"1\": [\n      [\n        0\n      ]\n    ],\n    \"2\": [\n      [\n        0\n      ]\n    ],\n    \"3\": [\n      [\n        0\n      ]\n    ],\n    \"4\": [\n      [\n        0\n      ]\n    ],\n    \"5\": [\n      [\n        0\n      ]\n    ],\n    \"6\": [\n      [\n        0\n      ]\n    ]\n  },\n  \"timezone\": \"string\",\n  \"default\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new business schedule.\n\n**Authorization:** Requires any one of these roles: `org.permission.schedule.create`; or legacy `org.admin.schedule.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-a-business-schedule"
       }
      },
      {
       "name": "Get default business schedule",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/schedules/default",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "schedules",
          "default"
         ],
         "query": [
          {
           "key": "include",
           "value": "holidays",
           "description": "Optional. Set to `holidays` to include schedule holiday data.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves default business schedules for a Kustomer organization.\n\n**Authorization:** Requires any one of these roles: `org.permission.schedule.read`; or legacy `org.user.schedule.read`, `org.admin.schedule.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-default-business-schedule"
       }
      },
      {
       "name": "Get business schedule by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/schedules/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "schedules",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "holidays",
           "description": "Optional. Set to `holidays` to include schedule holiday data.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c9b",
           "description": "Required. Schedule ID."
          }
         ]
        },
        "description": "Retrieves a business schedule by the schedule ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.schedule.read`; or legacy `org.user.schedule.read`, `org.admin.schedule.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-business-schedule-by-id"
       }
      },
      {
       "name": "Update business schedule by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/schedules/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "schedules",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "holidays",
           "description": "Optional. Set to `holidays` to include schedule holiday data.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c9b",
           "description": "Required. Schedule ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"hours\": {\n    \"0\": [\n      [\n        0\n      ]\n    ],\n    \"1\": [\n      [\n        0\n      ]\n    ],\n    \"2\": [\n      [\n        0\n      ]\n    ],\n    \"3\": [\n      [\n        0\n      ]\n    ],\n    \"4\": [\n      [\n        0\n      ]\n    ],\n    \"5\": [\n      [\n        0\n      ]\n    ],\n    \"6\": [\n      [\n        0\n      ]\n    ]\n  },\n  \"timezone\": \"string\",\n  \"default\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Modifies a business schedule based on the schedule ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.schedule.update`; or legacy `org.admin.schedule.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-business-schedule-by-id"
       }
      },
      {
       "name": "Delete a business schedule by ID",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/schedules/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "schedules",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c9b",
           "description": "Required. Schedule ID."
          }
         ]
        },
        "description": "Deletes a business schedule based on the schedule ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.schedule.delete`; or legacy `org.admin.schedule.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-a-business-schedule-by-id"
       }
      }
     ]
    },
    {
     "name": "Bulk Operations",
     "item": [
      {
       "name": "Get bulk operation by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/bulk/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "bulk",
          ":id"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "62799c44a96e7f160834199c",
           "description": "Required. Resource ID."
          }
         ]
        },
        "description": "Retrieves one bulk operation by the `id` returned when you submitted it. This endpoint returns the status and details of that operation.\n\n### Status Values\n* `queued` - Accepted and waiting to be processed. You can submit many jobs and leave them queued. This response is the status for the single `id` in the path, so poll this endpoint for each id until its status moves on.\n* `running` - A worker is processing this operation.\n* `complete` - Processing has finished.\n\n### Getting Detailed Results\nFor comprehensive details about batch processing, including individual object IDs created during bulk operations, use the `/v1/bulk/{id}/batches` endpoint. This is particularly useful for bulk create operations where you need to retrieve the IDs of newly created objects.\n\n### Alternative Approach for Bulk Creates\nWhen performing bulk create operations, consider including an `externalId` for each object. Once the bulk operation status is `complete`, you can perform lookups using the external IDs to retrieve the corresponding internal object IDs. This approach provides more reliable object tracking across bulk operations.\n\n### Response Field Details\n* `batches.complete` - Number of batches that have finished processing\n* `batches.total` - Total number of batches created for this operation\n* `completedAt` - Timestamp when the bulk operation finished\n\n### Common Usage\n1. Submit one or more bulk jobs (for example `POST /v1/customers/bulk`). Each response includes a bulk operation `id`. Store it.\n2. For each stored `id`, poll `GET /v1/bulk/{id}` until `status` is `complete`. Jobs move from `queued` to `running` to `complete` on their own, so one job staying `queued` does not block submitting or checking the others.\n3. Use `GET /v1/bulk/{id}/batches` to get detailed results and object IDs.\n4. For failed items, check batch errors for specific failure reasons\n\n### Performance Notes\n* Large bulk operations are processed in batches of up to 100 items each\n* Processing time varies based on operation type and data complexity\n* Poll interval recommendation: every 5-10 seconds for active operations\n\n### Error Handling\nWhen `batchErrors` is `true`:\n* Check `lastBatchError` for the most recent failure details\n* Use the batches endpoint to identify which specific items failed\n* Check individual batch success/failure counts for detailed results\n\n### Related Endpoints\n* `GET /v1/bulk/{id}/batches` - Get detailed batch processing results\n\n**Authorization:** Requires any one of these roles: `org.permission.bulk.read`; or legacy `org.user.bulk.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-bulk-operation-by-id"
       }
      },
      {
       "name": "Get bulk operation batches",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/bulk/:id/batches",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "bulk",
          ":id",
          "batches"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number for pagination",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "-createdAt",
           "description": "Optional. Sort field and direction. Only supports createdAt. Use \"createdAt\" for ascending or \"-createdAt\" for descending. Defaults to createdAt ascending.",
           "disabled": true
          },
          {
           "key": "status",
           "value": "complete",
           "description": "Optional. Filter batches by status",
           "disabled": true
          },
          {
           "key": "completed",
           "value": "true",
           "description": "Optional. Filter batches by completion status",
           "disabled": true
          },
          {
           "key": "limit",
           "value": "25",
           "description": "Optional. Number of results per page",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "62799c44a96e7f160834199c",
           "description": "Required. Resource ID."
          }
         ]
        },
        "description": "Retrieves detailed batch information for a specific bulk operation, including individual object IDs created or processed during the operation. This endpoint provides comprehensive details about each batch within a bulk operation.\n\n### Use Cases\n* Retrieve object IDs of newly created entities from bulk create operations\n* Get detailed error information for failed batch items\n* Monitor individual batch processing status and completion times\n* Access success/failure counts at the batch level\n\n### Batch Status Values\n* `queued` - Batch is waiting to be processed\n* `scheduled` - Batch has been scheduled for processing\n* `complete` - Batch processing has finished\n\n### Response Details\nEach batch includes:\n* `objectIds` - Array of IDs for successfully created/updated objects\n* `successCount` - Number of items processed successfully in this batch\n* `failureCount` - Number of items that failed in this batch\n* `completedAt` - Timestamp when batch processing finished\n* `errors` - Detailed error information for failed items\n* `results` - Per-item correlation array (only present when `_clientRef` was supplied\n  on the original request). Each entry contains:\n  * `_clientRef` — the token you supplied on that request item\n  * `status` — `\"created\"`, `\"updated\"`, or `\"error\"`\n  * `objectId` — ID of the created/updated object; **omitted on error entries**\n  * `error` — failure reason; present only when `status` is `\"error\"`\n\n### Sorting and Filtering\n* **Sorting**: Supports sorting by `createdAt` field\n  - `sort=createdAt` - Sort by creation time (ascending, oldest first)\n  - `sort=-createdAt` - Sort by creation time (descending, newest first)\n  - **Default**: `createdAt` ascending (oldest first)\n* **Status Filtering**: Filter by batch status (`queued`, `scheduled`, `complete`)\n* **Completion Filtering**: Filter by completion state (`true`/`false`)\n\n### Pagination\nResults are paginated. Use standard pagination parameters (`page`, `limit`) to navigate through large batch lists.\n\n**Authorization:** Requires any one of these roles: `org.permission.bulk.read`; or legacy `org.user.bulk.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-bulk-operation-batches"
       }
      }
     ]
    },
    {
     "name": "Companies",
     "item": [
      {
       "name": "Get companies",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/companies",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "companies"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "externalId",
           "value": "foobar",
           "description": "Optional. Unique external ID of the company",
           "disabled": true
          },
          {
           "key": "filter",
           "value": "foucault",
           "description": "Optional. Company name to use as a filter",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves all companies. You can optionally filter this list by the company name or the unique external company ID.\n\n### Note\n> If you use both the `externalId` and `filter` query params, the request ignores both query params.\n\n**Authorization:** Requires any one of these roles: `org.permission.company.read`; or legacy `org.user.company.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-companies"
       }
      },
      {
       "name": "Create company",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/companies",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "companies"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"externalId\": \"crm-10293\",\n  \"emails\": [\n    {\n      \"type\": \"home\",\n      \"email\": \"jane.doe@example.com\",\n      \"verified\": true\n    }\n  ],\n  \"phones\": [\n    {\n      \"type\": \"mobile\",\n      \"phone\": \"+15555550123\",\n      \"verified\": true\n    }\n  ],\n  \"tags\": [\n    \"vip\"\n  ],\n  \"custom\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new company.\n\n### Custom Attributes\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify\ncustom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n**Authorization:** Requires any one of these roles: `org.permission.company.create`; or legacy `org.user.company.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-company"
       }
      },
      {
       "name": "Get company by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/companies/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "companies",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6195640664b2fbb9eddc1e9b",
           "description": "Required. Company ID."
          }
         ]
        },
        "description": "Retrieves a company by their unique company ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.company.read`; or legacy `org.user.company.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-company-by-id"
       }
      },
      {
       "name": "Update company attributes",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/companies/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "companies",
          ":id"
         ],
         "query": [
          {
           "key": "replace",
           "value": "true",
           "description": "Optional. Set to `true` to replace the full resource instead of applying patch semantics.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "6195640664b2fbb9eddc1e9b",
           "description": "Required. Company ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"externalId\": \"crm-10293\",\n  \"emails\": [\n    {\n      \"type\": \"home\",\n      \"email\": \"jane.doe@example.com\",\n      \"verified\": true\n    }\n  ],\n  \"phones\": [\n    {\n      \"type\": \"mobile\",\n      \"phone\": \"+15555550123\",\n      \"verified\": true\n    }\n  ],\n  \"tags\": [\n    \"vip\"\n  ],\n  \"custom\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates the attributes of a company based on the company ID.\n\n### Note\n>This endpoint is subject to Object Rate Limiting, which limits how many updates a single user can make to a single company attribute. To learn more, see [Rate limiting](https://developer.kustomer.com/docs/concepts/rate-limits).\n\n>Setting `deleted: true` on a company that still has one or more children in a hierarchy tree (see [Companies (Hierarchy)](#tag/Companies-Hierarchy)) returns a `409 conflict` naming the first blocking child and the tree it appears in, and does not delete the company. The check spans every hierarchy tree the company participates in — not just `company_hierarchy`. Unlink or delete that child first — for example with `DELETE /kedge/{childId}/parent?name=<tree>`, using the tree name from the error message. If the company has blocking children in more than one tree, repeat until all are cleared.\n\n### Custom Attributes\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify\ncustom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n**Authorization:** Requires any one of these roles: `org.permission.company.update`; or legacy `org.user.company.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-company-attributes"
       }
      },
      {
       "name": "Find company KObjects (custom Objects)",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/companies/:id/klasses/:name",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "companies",
          ":id",
          "klasses",
          ":name"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort direction for results.",
           "disabled": true
          },
          {
           "key": "fromDate",
           "value": "2016-08-06T19:47:49.235Z",
           "description": "Optional. Return resources after this date or cursor timestamp, using the endpoint's sort direction.",
           "disabled": true
          },
          {
           "key": "fields",
           "value": "name,createdAt,updatedAt",
           "description": "Optional. Comma-separated response fields to project. The example is representative, not exhaustive; supported values are resource field names and custom field paths accepted by the endpoint handler.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "6195640664b2fbb9eddc1e9b",
           "description": "Required. Company ID."
          },
          {
           "key": "name",
           "value": "orders",
           "description": "Required. Klass name."
          }
         ]
        },
        "description": "Retrieves all [KObjects (custom Objects)](https://help.kustomer.com/en_us/define-attributes-Skr924HI) that are linked to a company based on the unique company ID and unique Klass name.\n\n**Authorization:** Requires any one of these roles: `org.permission.company.read`; or legacy `org.user.company.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/find-company-kobjects-custom-objects"
       }
      }
     ]
    },
    {
     "name": "Companies (Bulk)",
     "item": [
      {
       "name": "Bulk create companies",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/companies/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "companies",
          "bulk"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "[\n  {\n    \"name\": \"example_name\",\n    \"externalId\": \"crm-10293\",\n    \"emails\": [\n      {\n        \"type\": \"home\",\n        \"email\": \"jane.doe@example.com\",\n        \"verified\": true\n      }\n    ]\n  }\n]",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates companies in bulk.\n\n### Custom Attributes\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify\ncustom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n> **`_clientRef` support:** You can include an optional `_clientRef` string on each\n> item for per-item result correlation. See [Bulk create customers](https://developer.kustomer.com/api/core-resources/bulk-create-customers) for full\n> documentation of rules, the async poll flow, and the `results[]` response shape.\n\n**Authorization:** Requires any one of these roles: `org.permission.company.create`; or legacy `org.user.company.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-create-companies"
       }
      },
      {
       "name": "Bulk batch update companies",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/companies/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "companies",
          "bulk"
         ],
         "query": [
          {
           "key": "ids",
           "value": "58224b3eaa5f92110005d61e,58224b3eaa5f92110005d61d",
           "description": "Optional. Comma-separated company IDs to include in the bulk update batch.",
           "disabled": true
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "[\n  {\n    \"id\": \"65f2c0a1b4e3d2001234abcd\",\n    \"name\": \"example_name\",\n    \"externalId\": \"crm-10293\"\n  }\n]",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Batch updates multiple companies.\n\n### Custom Attributes\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify\ncustom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n> **Note:** `_clientRef` is supported when submitting an array-shaped request body,\n> but is **not** supported when using the `?ids=` query param mode. See\n> [Bulk create customers](https://developer.kustomer.com/api/core-resources/bulk-create-customers) for full `_clientRef` documentation.\n\n**Authorization:** Requires any one of these roles: `org.permission.company.update`; or legacy `org.user.company.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-batch-update-companies"
       }
      }
     ]
    },
    {
     "name": "Companies (Hierarchy)",
     "item": [
      {
       "name": "Create a company hierarchy edge",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kedge",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kedge"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"sourceId\": \"65f2c0a1b4e3d2001234abcd\",\n  \"sourceType\": \"string\",\n  \"targetId\": \"65f2c0a1b4e3d2001234abcd\",\n  \"targetType\": \"string\",\n  \"name\": \"example_name\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Links two companies in a Company hierarchy tree by setting a parent-child edge between them (`sourceId` is the parent, `targetId` is the child). If the child already has a parent edge in the same tree (`name`), this replaces it — a company can only have one parent per tree.\n\n### Note\n> A hierarchy tree cannot exceed a depth of 20 levels (root to leaf) or a total size of 2000 companies (checked on cross-tree moves).\n\n### Errors\nIn addition to the standard error responses below, `400`/`409` responses from this endpoint use the following `code` values:\n\n|HTTP Status|`code`|Scenario|\n|-----|-----|-----|\n|400|`badparam`|`sourceId` or `targetId` does not reference an existing, readable node.|\n|400|`badparam`|`targetId` is equal to `sourceId` (a company cannot be its own parent).|\n|400|`badparam`|Setting this edge would create a cycle.|\n|400|`badparam`|Setting this edge would put a node past the maximum tree depth of 20 levels.|\n|400|`badparam`|Setting this edge would grow the destination tree past its maximum size of 2000 companies.|\n|400|`badparam`|`sourceId` refers to a company that has already been deleted.|\n|400|`badparam`|`sourceType`/`targetType` is not a supported node type.|\n|409|`conflict`|Another write to this hierarchy tree is in progress; retry the request.|\n\n**Authorization:** Requires any one of these roles: `org.permission.company.update`; or legacy `org.user.company.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-a-company-hierarchy-edge"
       }
      },
      {
       "name": "Get a company hierarchy node",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kedge/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kedge",
          ":id"
         ],
         "query": [
          {
           "key": "name",
           "value": "company_hierarchy",
           "description": "Optional. Identifies which hierarchy tree to read from. Defaults to `company_hierarchy` if omitted.",
           "disabled": true
          },
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of children to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of children to return per page. Defaults to 100.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "58224b3eaa5f92110005d61e",
           "description": "Required. Company ID."
          }
         ]
        },
        "description": "Retrieves a company's position in its hierarchy tree: its direct parent edge (if any), a paginated list of its direct children edges, and its root-first breadcrumb trail (including itself).\n\n**Authorization:** Requires any one of these roles: `org.permission.company.read`; or legacy `org.user.company.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-a-company-hierarchy-node"
       }
      },
      {
       "name": "Delete a company hierarchy edge",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kedge/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kedge",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "64f1a2b3c4d5e6f7a8b9c0d1",
           "description": "Required. KEdge edge ID — the `id` of the `kedge`-typed resource returned by the create/set-parent endpoints, not a company ID."
          }
         ]
        },
        "description": "Deletes a single parent-child edge by its own edge ID. To unlink a company by its own company ID instead, use `DELETE /kedge/{id}/parent`.\n\n### Errors\nA `409 conflict` response means another request modified this same edge concurrently — retry the request.\n\n**Authorization:** Requires any one of these roles: `org.permission.company.update`; or legacy `org.user.company.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-a-company-hierarchy-edge"
       }
      },
      {
       "name": "Get a company's direct parent edge",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kedge/:id/parent",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kedge",
          ":id",
          "parent"
         ],
         "query": [
          {
           "key": "name",
           "value": "company_hierarchy",
           "description": "Optional. Identifies which hierarchy tree to read from. Defaults to `company_hierarchy` if omitted.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "58224b3eaa5f92110005d61d",
           "description": "Required. Company ID."
          }
         ]
        },
        "description": "Retrieves the direct parent edge for a company, or a `404` if the company is currently a root (has no parent in this tree).\n\n**Authorization:** Requires any one of these roles: `org.permission.company.read`; or legacy `org.user.company.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-a-companys-direct-parent-edge"
       }
      },
      {
       "name": "Set a company's parent",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kedge/:id/parent",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kedge",
          ":id",
          "parent"
         ],
         "variable": [
          {
           "key": "id",
           "value": "58224b3eaa5f92110005d61d",
           "description": "Required. Company ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"parentId\": \"65f2c0a1b4e3d2001234abcd\",\n  \"nodeType\": \"string\",\n  \"parentType\": \"string\",\n  \"name\": \"example_name\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Sets or changes the direct parent of a company. If the company already has a parent edge in this tree, it's replaced with the new one.\n\n### Note\n> A hierarchy tree cannot exceed a depth of 20 levels (root to leaf) or a total size of 2000 companies (checked on cross-tree moves).\n\n### Errors\nIn addition to the standard error responses below, `400`/`409` responses from this endpoint use the following `code` values:\n\n|HTTP Status|`code`|Scenario|\n|-----|-----|-----|\n|400|`badparam`|`parentId` does not reference an existing, readable node.|\n|400|`badparam`|`parentId` is equal to the path `id` (a company cannot be its own parent).|\n|400|`badparam`|Setting this parent would create a cycle.|\n|400|`badparam`|Setting this parent would put this node past the maximum tree depth of 20 levels.|\n|400|`badparam`|Setting this parent would grow the destination tree past its maximum size of 2000 companies.|\n|400|`badparam`|`parentId` refers to a company that has already been deleted.|\n|400|`badparam`|`nodeType`/`parentType` is not a supported node type.|\n|409|`conflict`|Another write to this hierarchy tree is in progress; retry the request.|\n\n**Authorization:** Requires any one of these roles: `org.permission.company.update`; or legacy `org.user.company.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/set-a-companys-parent"
       }
      },
      {
       "name": "Remove a company's parent",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kedge/:id/parent",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kedge",
          ":id",
          "parent"
         ],
         "query": [
          {
           "key": "name",
           "value": "company_hierarchy",
           "description": "Optional. Identifies which hierarchy tree to unlink from. Defaults to `company_hierarchy` if omitted.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "58224b3eaa5f92110005d61d",
           "description": "Required. Company ID."
          }
         ]
        },
        "description": "Unlinks a company from its hierarchy tree by removing its direct parent edge. The company itself, and its own children (if any), are unaffected — the company simply becomes a root.\n\n**Authorization:** Requires any one of these roles: `org.permission.company.update`; or legacy `org.user.company.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/remove-a-companys-parent"
       }
      }
     ]
    },
    {
     "name": "Conversations",
     "item": [
      {
       "name": "Get conversations",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort direction for results.",
           "disabled": true
          },
          {
           "key": "populateLinkedConversations",
           "value": "true",
           "description": "Optional. Set to `true` to populate linked conversation fields in the response.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of conversations for the organization.\n\nWhen an SLA is attached, `attributes.sla.metrics.nextReply` may include lifetime\ncycle tallies `onTimeCount` and `lateCount` (see Get conversation by ID).\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.read`; or legacy `org.user.conversation.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-conversations"
       }
      },
      {
       "name": "Create conversation",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"customer\": \"string\",\n  \"externalId\": \"crm-10293\",\n  \"name\": \"example_name\",\n  \"status\": \"open\",\n  \"direction\": \"in\",\n  \"tags\": [\n    \"vip\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new conversation.\n\n### Custom Attributes\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify custom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n### Rate Limit\nConversations are subject to a rate limit. A single client can create up to 120 conversations per minute per customer.\n\nConversations with `importedAt` in their body will not be subject to the rate limit.\n\nA `429 Too Many Requests` response will be returned if the rate limit has been reached for a customer.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.create`; or legacy `org.user.conversation.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-conversation"
       }
      },
      {
       "name": "Get conversation by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "customer",
           "description": "Optional. Comma-separated includes. Supported value for this endpoint is `customer`.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5faaf4a6ea0cb48cd0801bbf",
           "description": "Required. Conversation ID."
          }
         ]
        },
        "description": "Retrieves a single conversation based on the unique conversation ID.\n\nYou can also retrieve multiple conversations with a comma-separated list of IDs.\n\nWhen an SLA is attached, `attributes.sla.metrics.nextReply` may include lifetime\ncycle tallies `onTimeCount` and `lateCount` (non-negative integers) in addition to\ncurrent-cycle `breachAt` / `satisfiedAt` / `remainingTime`. These tallies increment\nwhen a pending Next Reply cycle completes and are preserved across cycle restarts;\nthey may be omitted when unset or zero.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.read`; or legacy `org.user.conversation.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-conversation-by-id"
       }
      },
      {
       "name": "Update conversation",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id"
         ],
         "query": [
          {
           "key": "replace",
           "value": "true",
           "description": "Optional. Set to `true` to replace the full resource instead of applying patch semantics.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5faaf4a6ea0cb48cd0801bbf",
           "description": "Required. Conversation ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"externalId\": \"crm-10293\",\n  \"name\": \"example_name\",\n  \"direction\": \"in\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a conversation based on the unique conversation ID.\n\n### Note\n>This endpoint is subject to Object Rate Limiting, which limits how many updates a single user can make to a single conversation. To learn more, see [Rate limiting](https://developer.kustomer.com/docs/concepts/rate-limits).\n\n### Custom Attributes\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify\ncustom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.update`; or legacy `org.user.conversation.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-conversation"
       }
      },
      {
       "name": "Update conversation attributes",
       "request": {
        "method": "PATCH",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json-patch+json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id"
         ],
         "query": [
          {
           "key": "rev",
           "value": "1",
           "description": "Optional. Expected resource revision for optimistic concurrency checks.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5faaf4a6ea0cb48cd0801bbf",
           "description": "Required. Conversation ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"externalId\": \"crm-10293\",\n  \"name\": \"example_name\",\n  \"direction\": \"in\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates the data attributes of a conversation based the unique conversation ID.\n\n### Note\n>This endpoint is subject to Object Rate Limiting, which limits how many updates a single user can make to a single company attribute. To learn more, see [Rate limiting](https://developer.kustomer.com/docs/concepts/rate-limits).\n\n### Custom Attributes\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify\ncustom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.update`; or legacy `org.user.conversation.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-conversation-attributes"
       }
      },
      {
       "name": "Delete conversation",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5faaf4a6ea0cb48cd0801bbf",
           "description": "Required. Conversation ID."
          }
         ]
        },
        "description": "Delete a conversation based on the unique conversation ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.delete`; or legacy `org.admin.conversation.delete`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-conversation"
       }
      },
      {
       "name": "Get conversation by external ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/externalId=5faaf4a6ea0cb48cd0801bbf",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          "externalId=5faaf4a6ea0cb48cd0801bbf"
         ]
        },
        "description": "Retrieves a single conversation based on a unique external ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.read`; or legacy `org.user.conversation.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-conversation-by-external-id"
       }
      },
      {
       "name": "Get conversation attachments",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id/attachments",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id",
          "attachments"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5faaf4a6ea0cb48cd0801bbf",
           "description": "Required. Conversation ID."
          }
         ]
        },
        "description": "Retrieves a paginated list of conversation attachments.\n\nAny attachment shared in a conversation via inbound and outbound messages.\n\n**Authorization:** Requires any one of these roles: `org.permission.attachment.read`; or legacy `org.user.attachment.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-conversation-attachments"
       }
      },
      {
       "name": "Get conversation events",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id/events",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id",
          "events"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort direction for results.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5faaf4a6ea0cb48cd0801bbf",
           "description": "Required. Conversation ID."
          }
         ]
        },
        "description": "Retrieves a paginated list of conversation events based on the unique ID of the conversation.\n\nSupports pagination and `sort` query parameters.\n\n**Authorization:** Requires any one of these roles: `org.permission.event.read`; or legacy `org.user.event.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-conversation-events"
       }
      }
     ]
    },
    {
     "name": "Conversations (Bulk)",
     "item": [
      {
       "name": "Bulk create conversations",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          "bulk"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "[\n  {\n    \"customer\": \"string\",\n    \"externalId\": \"crm-10293\",\n    \"name\": \"example_name\"\n  }\n]",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Create conversations in bulk.\n\n> **`_clientRef` support:** You can include an optional `_clientRef` string on each\n> item for per-item result correlation. See [Bulk create customers](https://developer.kustomer.com/api/core-resources/bulk-create-customers) for full\n> documentation of rules, the async poll flow, and the `results[]` response shape.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.create`; or legacy `org.user.conversation.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-create-conversations"
       }
      },
      {
       "name": "Bulk batch update conversations",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          "bulk"
         ],
         "query": [
          {
           "key": "replace",
           "value": "true",
           "description": "Optional. Set to `true` to replace the full resource instead of applying patch semantics.",
           "disabled": true
          },
          {
           "key": "ids",
           "value": "id1,id2",
           "description": "Optional. Comma-separated list of unique conversation IDs.",
           "disabled": true
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "[\n  {\n    \"id\": \"65f2c0a1b4e3d2001234abcd\",\n    \"externalId\": \"crm-10293\",\n    \"name\": \"example_name\"\n  }\n]",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a bulk batch of conversations.\n\nUse the `ids` query param to update multiple conversations in bulk with the same data.\n\n> **Note:** `_clientRef` is supported when submitting an array-shaped request body,\n> but is **not** supported when using the `?ids=` query param mode. See\n> [Bulk create customers](https://developer.kustomer.com/api/core-resources/bulk-create-customers) for full `_clientRef` documentation.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.update`; or legacy `org.user.conversation.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-batch-update-conversations"
       }
      },
      {
       "name": "Bulk delete conversations",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          "bulk"
         ],
         "query": [
          {
           "key": "ids",
           "value": "id1,id2",
           "description": "Optional. Comma-separated list of unique conversation IDs.",
           "disabled": true
          }
         ]
        },
        "description": "Deletes multiple conversations in bulk.\n\nUse the `ids` query param to delete multiple conversations in bulk.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.delete`; or legacy `org.admin.conversation.delete`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-delete-conversations"
       }
      }
     ]
    },
    {
     "name": "Conversations (Messages)",
     "item": [
      {
       "name": "Get messages by conversation",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id/messages",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id",
          "messages"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort direction for results.",
           "disabled": true
          },
          {
           "key": "channel",
           "value": "email",
           "description": "Optional. Filter messages by channel.",
           "disabled": true
          },
          {
           "key": "include",
           "value": "customer,conversation",
           "description": "Optional. Comma-separated related resources to include when supported by the endpoint.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5faaf4a6ea0cb48cd0801bbf",
           "description": "Required. Conversation ID."
          }
         ]
        },
        "description": "Retrieves messages for a conversation.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.read`; or legacy `org.user.message.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-messages-by-conversation"
       }
      },
      {
       "name": "Create message from conversation",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id/messages",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id",
          "messages"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5faaf4a6ea0cb48cd0801bbf",
           "description": "Required. Conversation ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"externalId\": \"crm-10293\",\n  \"channel\": \"email\",\n  \"preview\": \"Example text\",\n  \"subject\": \"Example title\",\n  \"direction\": \"in\",\n  \"app\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new message from a conversation.\n\n### NOTE\n> The new message created by the endpoint will be associated with the same customer as the conversation.\n\n### Authorization\n`org.admin` role is required for setting `createdAt`, `createdBy`, `modifiedAt`, and `modifiedBy`. Otherwise, the token automatically sets these attributes.\n\n### Rate Limit\nMessages are subject to a rate limit. A single client can create up to 120 messages per minute per customer.\nMessages with `importedAt` in their body will not be subject to the rate limit.\n\nA `429 Too Many Requests` response will be returned if the rate limit has been reached for a customer.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.create`; or legacy `org.user.message.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-message-from-conversation"
       }
      }
     ]
    },
    {
     "name": "Conversations (Tags)",
     "item": [
      {
       "name": "Append tags to conversation",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id/tags",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id",
          "tags"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5faaf4a6ea0cb48cd0801bbf",
           "description": "Required. Conversation ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "[\n  \"string\"\n]",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Adds tags to a conversation by the tag name and/or the unique ID of the conversation. Creates a new tag if a tag does not exist yet in your Kustomer organization.\n\nTo learn more, see [Conversation tags](https://help.kustomer.com/conversations-tags-H1c4iVrIb) in the Kustomer Help Center.\n\n### Note\n> This endpoint is subject to Object Rate Limiting, which limits how many updates a single User can make to a single Conversation. See [Rate limiting](https://developer.kustomer.com/docs/concepts/rate-limits) for more information.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.update`; or legacy `org.user.conversation.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/append-tags-to-conversation"
       }
      },
      {
       "name": "Remove tags from conversation",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id/tags",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id",
          "tags"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5faaf4a6ea0cb48cd0801bbf",
           "description": "Required. Conversation ID."
          }
         ]
        },
        "description": "Removes tags from a conversation by tag name and/or the unique ID of the conversation.\n\n### Note\n> This endpoint is subject to Object Rate Limiting, which limits how many updates a single User can make to a single Conversation. See [Rate limiting](https://developer.kustomer.com/docs/concepts/rate-limits) for more information.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.delete`; or legacy `org.user.conversation.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/remove-tags-from-conversation"
       }
      }
     ]
    },
    {
     "name": "Conversations (Forwards)",
     "item": [
      {
       "name": "Get all forwards by conversation",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id/forwards",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id",
          "forwards"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5faaf4a6ea0cb48cd0801bbf",
           "description": "Required. Conversation ID."
          }
         ]
        },
        "description": "Retrieves all forwarded conversations based on the unique conversation ID.\n\nTo learn more, see [Forwarding conversations](https://help.kustomer.com/forwarding-SJN_iaACN) in the Kustomer Help Center.\n\n**Authorization:** Requires any one of these roles: `org.permission.draft.read`; or legacy `org.user.draft.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-all-forwards-by-conversation"
       }
      },
      {
       "name": "Create forward by conversation",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id/forwards",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id",
          "forwards"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5faaf4a6ea0cb48cd0801bbf",
           "description": "Required. Conversation ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"channel\": \"email\",\n  \"app\": \"gmail\",\n  \"customer\": \"string\",\n  \"status\": \"draft\",\n  \"body\": \"Example text\",\n  \"subject\": \"Example title\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a forward to send through email. Forwards will send all messages in a conversation.\n\n### NOTE\n> To schedule the forward for delivery, create a forward with a `sendAt` property.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation_forward.create`; or legacy `org.user.conversation_forward`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-forward-by-conversation"
       }
      }
     ]
    },
    {
     "name": "Conversations (Time)",
     "item": [
      {
       "name": "Get conversation times by conversation",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id/times",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id",
          "times"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number for pagination.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort order by `createdAt`. Use `asc` for ascending (oldest first). Defaults to descending (newest first).",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Resource ID."
          }
         ]
        },
        "description": "Retrieves `conversation_time`s by the unique ID of the related conversation.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.read`; or legacy `org.user.conversation.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-conversation-times-by-conversation"
       }
      },
      {
       "name": "Get conversation time by ids",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/times/:ids",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          "times",
          ":ids"
         ],
         "variable": [
          {
           "key": "ids",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Comma-separated resource IDs."
          }
         ]
        },
        "description": "Retrieves `conversation_time`s base on the unique ID or the IDs of `conversation_time`(s).\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.read`; or legacy `org.user.conversation.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-conversation-time-by-ids"
       }
      }
     ]
    },
    {
     "name": "Conversations (Notes)",
     "item": [
      {
       "name": "Get notes by conversation",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id/notes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id",
          "notes"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort direction for results.",
           "disabled": true
          },
          {
           "key": "include",
           "value": "customer,conversation",
           "description": "Optional. Comma-separated related resources to include when supported by the endpoint.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5faaf4a6ea0cb48cd0801bbf",
           "description": "Required. Conversation ID."
          }
         ]
        },
        "description": "Retrieves notes found in a specific conversation based on the conversation ID.\n\nTo learn more, see [Notes](https://help.kustomer.com/using-notes-HJvDjNP58) in the Kustomer Help Center.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.read`; or legacy `org.user.note.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-notes-by-conversation"
       }
      }
     ]
    },
    {
     "name": "Notes (Conversations)",
     "item": [
      {
       "name": "Create note within conversation",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/conversations/:id/notes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "conversations",
          ":id",
          "notes"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5faaf4a6ea0cb48cd0801bbf",
           "description": "Required. Conversation ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"id\": \"65f2c0a1b4e3d2001234abcd\",\n  \"conversation\": \"string\",\n  \"externalId\": \"crm-10293\",\n  \"body\": \"Example text\",\n  \"userMentions\": [\n    {\n      \"user\": \"65f2c0a1b4e3d2001234abcd\",\n      \"team\": \"string\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"_id\": \"65f2c0a1b4e3d2001234abcd\",\n      \"name\": \"example_name\",\n      \"contentType\": \"application/pdf\",\n      \"contentLength\": 0\n    }\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new note within a conversation. Optionally, allows you to @mention another user in your Kustomer organization.\n\n### Authorization\nThe `org.admin` role is required for setting `createdAt`, `createdBy`, `modifiedAt`, and `modifiedBy`.  Otherwise, these attributes are automatically set by the token.\n\n### Rate limit\nNotes are subject to a rate limit. A single client can create up to 120 notes per minute per customer.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.create`; or legacy `org.user.note.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-note-within-conversation"
       }
      }
     ]
    },
    {
     "name": "Customers (Bulk)",
     "item": [
      {
       "name": "Bulk create customers",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "bulk"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "[\n  {\n    \"name\": \"Alice Smith\",\n    \"emails\": [\n      {\n        \"type\": \"home\",\n        \"email\": \"alice@example.com\"\n      }\n    ]\n  },\n  {\n    \"name\": \"Bob Jones\",\n    \"emails\": [\n      {\n        \"type\": \"home\",\n        \"email\": \"bob@example.com\"\n      }\n    ]\n  }\n]",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates customers in bulk.\n\n### `_clientRef` Correlation (Optional)\n\nYou can include a `_clientRef` string on each request item to correlate results back\nto your original entries without having to match on `objectId` order.\n\n#### Rules\n* **Optional on the request as a whole** — you may omit `_clientRef` entirely and use\n  the standard `objectIds` approach instead.\n* **All-or-nothing when used**: if any item includes `_clientRef`, every item must.\n  Sending a mixed payload — some items with `_clientRef`, some without — returns a\n  `400` error.\n* `_clientRef` must be a non-empty string, max 255 characters, and unique within the\n  request array.\n\n#### Async Poll Flow\n1. `POST /v1/customers/bulk` — submit the array with `_clientRef` on each item.\n   Response returns a bulk operation ID.\n2. `GET /v1/bulk/:id` — poll until `status` is `complete`.\n3. `GET /v1/bulk/:id/batches` — retrieve the `results[]` array for per-item outcomes.\n\n#### `results[]` Shape in Batch Response\nWhen `_clientRef` was supplied, each batch object includes a `results` array:\n\n```json\n[\n  { \"_clientRef\": \"crm-001\", \"objectId\": \"507f1f77bcf86cd799439031\", \"status\": \"created\" },\n  { \"_clientRef\": \"crm-002\", \"status\": \"error\", \"error\": \"duplicate detected\" }\n]\n```\n\n* `status`: `\"created\"`, `\"updated\"`, or `\"error\"`\n* `objectId`: ID of the created or updated object — **omitted on error entries**\n* `error`: failure reason — present only when `status` is `\"error\"`\n\nThe same `results[]` shape applies to array-shaped bulk updates (`PUT /v1/customers/bulk`\nwith a request body array); `status` will be `\"updated\"` for successful rows.\n\n#### Limitations\n* `_clientRef` is **not** supported on bulk update via `?ids=` query param mode (planned for a future release)\n* `_clientRef` is **not** supported on bulk delete (planned for a future release)\n\n**Authorization:** Requires any one of these roles: `org.permission.customer.create`; or legacy `org.user.customer.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-create-customers"
       }
      },
      {
       "name": "Bulk batch update customers",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "bulk"
         ],
         "query": [
          {
           "key": "replace",
           "value": "true",
           "description": "Optional. Set to `true` to replace the full resource instead of applying patch semantics.",
           "disabled": true
          },
          {
           "key": "ids",
           "value": "id1,id2",
           "description": "Optional. Comma-separated list of unique customer IDs.",
           "disabled": true
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "[\n  {\n    \"id\": \"65f2c0a1b4e3d2001234abcd\",\n    \"name\": \"Jane Doe\",\n    \"externalId\": \"crm-10293\"\n  }\n]",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a bulk batch of customers.\n\nUse the `ids` query param to update multiple customers in bulk with the same data.\n\n> **Note:** `_clientRef` is supported when submitting an array-shaped request body,\n> but is **not** supported when using the `?ids=` query param mode. See the\n> [Bulk create customers](https://developer.kustomer.com/api/core-resources/bulk-create-customers) endpoint for full `_clientRef` documentation.\n\n**Authorization:** Requires any one of these roles: `org.permission.customer.update`; or legacy `org.user.customer.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-batch-update-customers"
       }
      },
      {
       "name": "Bulk delete customers",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "bulk"
         ],
         "query": [
          {
           "key": "ids",
           "value": "id1,id2",
           "description": "Optional. Comma-separated list of unique customer IDs.",
           "disabled": true
          }
         ]
        },
        "description": "Deletes multiple customers in bulk.\n\n> **Note:** `_clientRef` correlation is **not** supported on bulk delete (planned for a future release).\n\n**Authorization:** Requires any one of these roles: `org.permission.bulk_deletion.create`, `org.permission.customer.delete`; or legacy `org.admin.customer.delete`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-delete-customers"
       }
      }
     ]
    },
    {
     "name": "Customers (Conversations)",
     "item": [
      {
       "name": "Get conversations by customer",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id/conversations",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id",
          "conversations"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "description": "Retrieves a paginated list of conversations using the unique Customer ID.\n\nWhen an SLA is attached, `attributes.sla.metrics.nextReply` may include lifetime\ncycle tallies `onTimeCount` and `lateCount` (see Get conversation by ID).\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.read`; or legacy `org.user.conversation.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-conversations-by-customer"
       }
      },
      {
       "name": "Create conversation for customer",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id/conversations",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id",
          "conversations"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"externalId\": \"crm-10293\",\n  \"name\": \"Jane Doe\",\n  \"status\": \"open\",\n  \"direction\": \"in\",\n  \"tags\": [\n    \"vip\"\n  ],\n  \"custom\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new, empty conversation for a customer.\n\n### Custom Attributes\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify\ncustom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.create`; or legacy `org.user.conversation.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-conversation-for-customer"
       }
      }
     ]
    },
    {
     "name": "Customers (Drafts)",
     "item": [
      {
       "name": "Get all drafts for customer",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id/drafts",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id",
          "drafts"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "include",
           "value": "customer,conversation",
           "description": "Optional. Comma-separated related resources to include when supported by the endpoint.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "description": "Retrieves all outbound drafts to a customer based on the unique customer ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.draft.read`; or legacy `org.user.draft.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-all-drafts-for-customer"
       }
      },
      {
       "name": "Create draft for customer",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id/drafts",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id",
          "drafts"
         ],
         "query": [
          {
           "key": "createConversation",
           "value": "false",
           "description": "Optional. Create a conversation while creating the customer draft.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"channel\": \"email\",\n  \"app\": \"gmail\",\n  \"body\": \"Example text\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates an outbound draft to a customer through a specific channel (email, SMS, Facebook DM, etc).\n\n### Scheduling drafts\n\nTo schedule a draft to be sent at a future time, you must include both:\n\n  - A `sendAt` timestamp that is in the future\n  - `\"scheduled\": true` in the request body\n\nIf `scheduled` is omitted, the system will override your `sendAt` value and create the draft immediately.\n\n---\n### Note drafts\n\nYou can also create [note](https://help.kustomer.com/using-notes-HJvDjNP58) drafts by specifying the channel as `note` in the request body `channel` field. You can have one note draft per conversation.\n\n---\n### Rate limit\n\nCustomer drafts are subject to a rate limit. A single client can create up to **120 drafts per minute per customer**, including drafts scheduled for the future. A `429 Too Many Requests` response will be returned if the rate limit has been reached for a customer.\n\nWhatsApp outbound messages are limited to **400 messages per minute per user**. This limit applies to both machine and non-machine (human) users.\n\n---\n### WhatsApp media file support\n\nWhen creating a WhatsApp draft that includes media, only specific file types are supported. Unsupported media types (e.g. `.videomp4`) will be blocked before submission to prevent send failures.\n\n**Supported file types for WhatsApp messages are:**\n\n- AUDIO: `aac`, `mp4`, `amr`, `mpeg`, `mp3`, `ogg`, `m4a`\n- VIDEO: `mp4`, `3gp`, `3gpp`\n- DOCUMENT: `txt`, `pdf`, `doc`, `docx`, `xls`, `xlsx`, `ppt`, `pptx`\n- IMAGE: `jpeg`, `jpg`, `png`\n- STICKER: `webp`\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/core-resources/create-draft-for-customer"
       }
      }
     ]
    },
    {
     "name": "Customers (Events)",
     "item": [
      {
       "name": "Get customer event",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:customerId/events/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":customerId",
          "events",
          ":id"
         ],
         "variable": [
          {
           "key": "customerId",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          },
          {
           "key": "id",
           "value": "58210c3d7281071100186631",
           "description": "Required. Event ID."
          }
         ]
        },
        "description": "Retrieves a single customer event based on the unique IDs of the customer and the event.\n\n**Authorization:** Requires any one of these roles: `org.permission.event.read`; or legacy `org.user.event.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-customer-event"
       }
      },
      {
       "name": "Get all events by customer for session",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:customerId/sessions/:sessionId/events",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":customerId",
          "sessions",
          ":sessionId",
          "events"
         ],
         "variable": [
          {
           "key": "customerId",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          },
          {
           "key": "sessionId",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer session ID."
          }
         ]
        },
        "description": "Retrieves all tracking events for a specific customer session based on the unique IDs of the customer and the session.\n\n**Authorization:** Requires any one of these roles: `org.permission.event.read`; or legacy `org.user.event.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-all-events-by-customer-for-session"
       }
      },
      {
       "name": "Get all customer events (deprecated) (deprecated)",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id/events",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id",
          "events"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "description": "Retrieves a single customer event based on the unique IDs of the customer and the event.\n\n### Deprecation notice\n> This endpoint has been deprecated and returns a `404 Not Found` error. Use [Get all events by customer for session](https://developer.kustomer.com/api/core-resources/get-all-events-by-customer-for-session) or [Get conversation events](https://developer.kustomer.com/api/core-resources/get-conversation-events) instead.\n\n**Authorization:** Requires any one of these roles: `org.permission.event.read`; or legacy `org.user.event.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-all-customer-events-deprecated"
       }
      },
      {
       "name": "Get all customer sessions",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id/sessions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id",
          "sessions"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "description": "Retrieves all sessions for a single customer based on the unique customer ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.event.read`; or legacy `org.user.event.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-all-customer-sessions"
       }
      }
     ]
    },
    {
     "name": "Customers (KObjects)",
     "item": [
      {
       "name": "Find customer KObjects (custom Objects)",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id/klasses/:name",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id",
          "klasses",
          ":name"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort direction for results.",
           "disabled": true
          },
          {
           "key": "fromDate",
           "value": "2016-08-06T19:47:49.235Z",
           "description": "Optional. Return resources after this date or cursor timestamp, using the endpoint's sort direction.",
           "disabled": true
          },
          {
           "key": "fields",
           "value": "name,createdAt,updatedAt",
           "description": "Optional. Comma-separated response fields to project. The example is representative, not exhaustive; supported values are resource field names and custom field paths accepted by the endpoint handler.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          },
          {
           "key": "name",
           "value": "orders",
           "description": "Required. Klass name."
          }
         ]
        },
        "description": "Finds all [KObjects (custom objects)](https://help.kustomer.com/define-attributes-Skr924HI) linked to a customer based on the name of the Klass.\n\n**Authorization:** Requires any one of these roles: `org.permission.customer.read`; or legacy `org.user.customer.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/find-customer-kobjects-custom-objects"
       }
      },
      {
       "name": "Create customer KObject (custom Object)",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id/klasses/:name",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id",
          "klasses",
          ":name"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          },
          {
           "key": "name",
           "value": "orders",
           "description": "Required. Klass name."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"externalId\": \"crm-10293\",\n  \"title\": \"Example title\",\n  \"description\": \"Example text\",\n  \"data\": {},\n  \"custom\": {},\n  \"tags\": [\n    \"vip\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new [KObject (custom object)](https://help.kustomer.com/define-attributes-Skr924HI) and links the KObject to a customer based on the unique customer ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kobject.create`, `org.permission.kobject.kobject_*.create`; or legacy `org.user.kobject.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-customer-kobject-custom-object"
       }
      }
     ]
    },
    {
     "name": "Customers (Merges)",
     "item": [
      {
       "name": "Create customer merge",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/merges",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "merges"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"source\": \"string\",\n  \"target\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a [customer merge](https://help.kustomer.com/merge-customers-SksSuFLaZ) based on a set of source customer and target customer IDs.\n\n### Merge rules\n\nCustomer merges follow these rules:\n\n**Merge the following fields**:\n\n  - Emails\n  - Phones\n  - Socials\n  - Locations\n  - Watchers\n  - Custom (target customer ID takes precedence with same attribute names)\n  - Tags\n  - KlassNames\n  - conversationCounts (sums all values)\n\n**Choose based on most recent value**:\n\n- Preview - Based on `preview.previewAt`\n- LastMessageIn - Based on `lastMessageIn.sentAt`\n- lastConversation - Based on `lastMessageIn.sentAt`\n- recentLocation - Based on `recentLocation.updatedAt`\n- signedUpAt\n- modifiedAt / modifiedBy\n- lastSeenAt\n- lastActivityAt\n\n**Choose based on the oldest value**:\n- createdAt / createdBy\n\n**Give precedence to the target customer ID value**:\n- Company\n- name\n- externalId\n- username\n- avatarUrl\n- locale\n- timeZone\n- birthdayAt\n- gender\n\n**Authorization:** Requires any one of these roles: `org.permission.customer_merge.create`; or legacy `org.user.customer.write`, `org.admin.customer.merge.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-customer-merge"
       }
      },
      {
       "name": "Get customer merge",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/merges/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "merges",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "description": "Retrieves an existing customer merge based on the unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.customer_merge.create`; or legacy `org.user.customer.read`, `org.admin.customer.merge.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-customer-merge"
       }
      },
      {
       "name": "Get customer merges by customer ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id/merges",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id",
          "merges"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort order of merge results.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "description": "Retrieves customer merges based on the unique ID of the customer.\n\n**Authorization:** Requires any one of these roles: `org.permission.customer_merge.read`; or legacy `org.user.customer.read`, `org.admin.customer.merge.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-customer-merges-by-customer-id"
       }
      }
     ]
    },
    {
     "name": "Customers (Messages)",
     "item": [
      {
       "name": "Get messages by customer ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id/messages",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id",
          "messages"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort direction for results.",
           "disabled": true
          },
          {
           "key": "channel",
           "value": "email",
           "description": "Optional. Filter messages by channel.",
           "disabled": true
          },
          {
           "key": "recentToOrFrom",
           "value": "customer@example.com",
           "description": "Optional. Filter customer messages to recent messages to or from the supplied address or channel identifier.",
           "disabled": true
          },
          {
           "key": "include",
           "value": "customer,conversation",
           "description": "Optional. Comma-separated related resources to include when supported by the endpoint.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "description": "Retrieves messages for a specific customer based on the unique customer ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.read`; or legacy `org.user.message.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-messages-by-customer-id"
       }
      },
      {
       "name": "Create message by customer ID",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id/messages",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id",
          "messages"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"externalId\": \"crm-10293\",\n  \"channel\": \"email\",\n  \"preview\": \"Example text\",\n  \"subject\": \"Example title\",\n  \"direction\": \"in\",\n  \"app\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new message based on the unique customer ID.\n\n### Note\n> If a conversation is specified, the message will be linked to the existing conversation. Otherwise, a new\nconversation will be created and associated with the message.\n\n### Authorization\nThe `org.admin` role is required for setting `createdAt`, `createdBy`, `modifiedAt`, and `modifiedBy`.  Otherwise, these attributes are automatically set by the token.\n\n### Rate Limit\nMessages are subject to a rate limit. A single client can create up to 120 messages per minute per customer.\nMessages with `importedAt` in their body will not be subject to the rate limit.\n\nA `429 Too Many Requests` response will be returned if the rate limit has been reached for a customer.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.create`; or legacy `org.user.message.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-message-by-customer-id"
       }
      }
     ]
    },
    {
     "name": "Customers (Notes)",
     "item": [
      {
       "name": "Get notes by customer ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id/notes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id",
          "notes"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "include",
           "value": "customer,conversation",
           "description": "Optional. Comma-separated related resources to include when supported by the endpoint.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "description": "Retrieves notes for a specific customer based on the unique customer ID.\n\n[Notes](https://help.kustomer.com/using-notes-HJvDjNP58) are internal communications visible only to users in your Kustomer organization.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.read`; or legacy `org.user.note.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-notes-by-customer-id"
       }
      }
     ]
    },
    {
     "name": "Customers (Unmasking Windows)",
     "item": [
      {
       "name": "Create unmasking window by customer ID",
       "request": {
        "method": "POST",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id/unmasking-windows",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id",
          "unmasking-windows"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "description": "Creates or replaces an unmasking window based on the unique customer ID.\n\n### Note\n> If an unmasking window is created for a customer, any sensitive attributes for the customer and for the customer's conversations, messages, and custom objects will be returned unmasked during the unmasking window period.\n\n**Authorization:** Requires any one of these roles: `org.permission.unmasking_window.create`; or legacy `org.user.customer.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-unmasking-window-by-customer-id"
       }
      },
      {
       "name": "Deletes unmasking window by customer ID",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id/unmasking-windows",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id",
          "unmasking-windows"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "description": "Deletes an unmasking window based on the unique customer ID.\n\n### Note\n> If an unmasking window is deleted for a customer, any sensitive attributes for the customer and for the customer's conversations, messages, and custom objects will be returned masked.\n\n**Authorization:** Requires any one of these roles: `org.permission.unmasking_window.delete`; or legacy `org.user.customer.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/deletes-unmasking-window-by-customer-id"
       }
      }
     ]
    },
    {
     "name": "Customers",
     "item": [
      {
       "name": "Get customers",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers"
         ],
         "query": [
          {
           "key": "filter[createdAt][gte]",
           "value": "2023-01-01T00:00:00Z",
           "description": "Optional. Filter parameter to retrieve customers based on specific criteria. Supports filtering by  createdAt and updatedAt fields with range operators (gt, gte, lt, lte).",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "-createdAt",
           "description": "Optional. Sort parameter to order results by specific fields. Prefix with '-' for descending order. Supported fields: createdAt, updatedAt.",
           "disabled": true
          },
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves all customers in your organization. Results include customer data, such as their phone number, sentiment score, and the last message in a conversation.\n\n### Example Request URL\n\n> /v1/customers?filter[createdAt][gte]=2023-01-01T00:00:00Z&filter[updatedAt][lt]=2023-12-31T23:59:59Z&sort=-createdAt&page=1&pageSize=100\n\nThis example URL demonstrates:\n\n* Filtering for customers created on or after January 1, 2023\n* Filtering for customers updated before December 31, 2023\n* Sorting by creation date in descending order (newest first)\n* Pagination parameters for page 1 with 100 results per page\n\n**Authorization:** Requires any one of these roles: `org.permission.customer.read`; or legacy `org.user.customer.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-customers"
       }
      },
      {
       "name": "Create customer",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"Jane Doe\",\n  \"externalId\": \"crm-10293\",\n  \"emails\": [\n    {\n      \"type\": \"home\",\n      \"email\": \"jane.doe@example.com\",\n      \"verified\": true\n    }\n  ],\n  \"phones\": [\n    {\n      \"type\": \"mobile\",\n      \"phone\": \"+15555550123\",\n      \"verified\": true\n    }\n  ],\n  \"tags\": [\n    \"vip\"\n  ],\n  \"custom\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new customer record.\n\n### Custom Attributes\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify custom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n**Authorization:** Requires any one of these roles: `org.permission.customer.create`; or legacy `org.user.customer.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-customer"
       }
      },
      {
       "name": "Get customer by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "company",
           "description": "Optional. Comma-separated includes. Supported value for this endpoint is `company`.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "description": "Retrieves a customer record based on the unique customer ID.\n\nYou can also retrieve multiple customers with a comma-separated list of IDs.\n\n**Authorization:** Requires any one of these roles: `org.permission.customer.read`; or legacy `org.user.customer.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-customer-by-id"
       }
      },
      {
       "name": "Update customer",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id"
         ],
         "query": [
          {
           "key": "replace",
           "value": "true",
           "description": "Optional. If `true`, replace the full resource instead of applying merge semantics.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"John Smith\",\n  \"externalId\": \"my-customer-database-id\",\n  \"emails\": [\n    {\n      \"type\": \"home\",\n      \"email\": \"johnsmith@example.com\"\n    }\n  ],\n  \"phones\": [\n    {\n      \"type\": \"work\",\n      \"phone\": \"+18005551212\"\n    }\n  ],\n  \"socials\": [\n    {\n      \"type\": \"twitter\",\n      \"userid\": \"1234\",\n      \"username\": \"@johnsmith\",\n      \"url\": \"http://twitter.com/johnsmith\"\n    }\n  ],\n  \"custom\": {\n    \"customBool\": true,\n    \"customStr\": \"Custom string value!\"\n  },\n  \"locations\": [\n    {\n      \"type\": \"work\",\n      \"address\": \"530 7th Ave, New York, NY 10018\"\n    }\n  ],\n  \"locale\": \"en_US\",\n  \"gender\": \"m\",\n  \"tags\": [\n    \"cool customer\",\n    \"nice\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a customer based on the unique customer ID.\n\n### Note\n> This endpoint is subject to Object Rate Limiting, which limits how many updates single user can make to a single customer. To learn more, see [Rate limiting](https://developer.kustomer.com/docs/concepts/rate-limits).\n\n### Company\nIf you omit the company, the customer will no longer be linked to the company.\n\n### Custom Attributes\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify custom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n**Authorization:** Requires any one of these roles: `org.permission.customer.update`; or legacy `org.user.customer.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-customer"
       }
      },
      {
       "name": "Update customer attributes",
       "request": {
        "method": "PATCH",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id"
         ],
         "query": [
          {
           "key": "rev",
           "value": "37",
           "description": "Optional. Expected resource revision for optimistic updates when using JSON Patch.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"John Smith\",\n  \"externalId\": \"my-customer-database-id\",\n  \"emails\": [\n    {\n      \"type\": \"home\",\n      \"email\": \"johnsmith@example.com\"\n    }\n  ],\n  \"phones\": [\n    {\n      \"type\": \"work\",\n      \"phone\": \"+18005551212\"\n    }\n  ],\n  \"socials\": [\n    {\n      \"type\": \"twitter\",\n      \"userid\": \"1234\",\n      \"username\": \"@johnsmith\",\n      \"url\": \"http://twitter.com/johnsmith\"\n    }\n  ],\n  \"custom\": {\n    \"customBool\": true,\n    \"customStr\": \"Custom string value!\"\n  },\n  \"locations\": [\n    {\n      \"type\": \"work\",\n      \"address\": \"530 7th Ave, New York, NY 10018\"\n    }\n  ],\n  \"locale\": \"en_US\",\n  \"gender\": \"m\",\n  \"tags\": [\n    \"cool customer\",\n    \"nice\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates customer attributes.\n\n### Note\n> This endpoint is subject to Object Rate Limiting, which limits how many updates single user can make to a single customer. To learn more, see [Rate limiting](https://developer.kustomer.com/docs/concepts/rate-limits).\n\n### Company\nIf you omit the company, the customer will no longer be linked to the company.\n\n### Custom Attributes\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify custom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n**Authorization:** Requires any one of these roles: `org.permission.customer.update`; or legacy `org.user.customer.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-customer-attributes"
       }
      },
      {
       "name": "Delete customer",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Required. Customer ID."
          }
         ]
        },
        "description": "Deletes a customer record based on the unique customer ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.customer.delete`; or legacy `org.admin.customer.delete`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-customer"
       }
      },
      {
       "name": "Get customer by email",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/email=customer%40example.com",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "email=customer%40example.com"
         ],
         "query": [
          {
           "key": "include",
           "value": "company",
           "description": "Optional. Comma-separated includes. Supported value for this endpoint is `company`.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a customer based on their email address.\n\n**Authorization:** Requires any one of these roles: `org.permission.customer.read`; or legacy `org.user.customer.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-customer-by-email"
       }
      },
      {
       "name": "Get customer by external ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/externalId=5f8efdd5d3de932f344ca367",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "externalId=5f8efdd5d3de932f344ca367"
         ],
         "query": [
          {
           "key": "include",
           "value": "company",
           "description": "Optional. Comma-separated includes. Supported value for this endpoint is `company`.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a customer based on their unique external ID.\n\nThe `externalId` is typically the ID of the customer within your database or an external service.\n\nThis provides a unique way to create and identify users by mapping a unique customer ID in Kustomer to a unique customer ID in an external system.\n\n**Authorization:** Requires any one of these roles: `org.permission.customer.read`; or legacy `org.user.customer.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-customer-by-external-id"
       }
      },
      {
       "name": "Get customer by phone number",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/phone=%2B15551234567",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "phone=%2B15551234567"
         ],
         "query": [
          {
           "key": "include",
           "value": "company",
           "description": "Optional. Comma-separated includes. Supported value for this endpoint is `company`.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a customer based on their phone number.\n\n**Authorization:** Requires any one of these roles: `org.permission.customer.read`; or legacy `org.user.customer.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-customer-by-phone-number"
       }
      }
     ]
    },
    {
     "name": "Custom Attributes",
     "item": [
      {
       "name": "Get custom attribute metadata",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/metadata/:resource",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "metadata",
          ":resource"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "translate",
           "value": "false",
           "description": "Optional. Set to `false` to return untranslated metadata.",
           "disabled": true
          },
          {
           "key": "include",
           "value": "customer,conversation",
           "description": "Optional. Comma-separated related resources to include when supported by the endpoint.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "resource",
           "value": "customer",
           "description": "Required. Resource for custom attribute metadata retrieval. Valid values: `company`, `conversation`, `customer`, `message`, `note`, `user`, `kobject`, `kobject.<klassSlug>`, `event`, and `event.<suffix>`."
          }
         ]
        },
        "description": "Retrieves the [metadata properties](https://developer.kustomer.com/docs/apps/klasses#metadata-properties) for the custom attributes of a specific resource (for example, Company, Conversation, Customer, Message, and KObject (custom Object)).\n\n**Authorization:** Requires any one of these roles: `org.permission.metadata.read`; or legacy `org.user.metadata.read`, `org.admin.metadata.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-custom-attribute-metadata"
       }
      },
      {
       "name": "Update custom attribute metadata",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/metadata/:resource",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "metadata",
          ":resource"
         ],
         "query": [
          {
           "key": "translate",
           "value": "false",
           "description": "Optional. Set to `false` to return untranslated metadata.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "resource",
           "value": "customer",
           "description": "Required. Resource for custom attribute metadata retrieval. Valid values: `company`, `conversation`, `customer`, `message`, `note`, `user`, `kobject`, `kobject.<klassSlug>`, `event`, and `event.<suffix>`."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"standardProperties\": {},\n  \"relationships\": {},\n  \"properties\": {},\n  \"validations\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Sets the [metadata properties](https://developer.kustomer.com/docs/apps/klasses#metadata-properties) for custom attributes on any of the available resources (for example, Company, Conversation, Customer, Message, and KObject (custom Object)).\n\nMetadata property options are dependent on the data type as specified by the\nsuffix of the property name. The `displayName` default value is set to the title cased version of the camelCase property name and the type is determined automatically. For example, a property named `totalOrdersNum` will have a default `displayName` value of `Total Orders` (if no alternative `displayName` value is set) and the type is set to `number` based on the `Num` suffix in the property name `totalOrdersNum`.\n\nTo learn more about options for metadata properties, visit [Klasses](https://developer.kustomer.com/docs/apps/klasses#metadata-properties).\n\n### Note\n> When you configure metadata property types for custom attributes, you must configure metadata for custom properties ending with `Id` before you can use the attributes. When you update these properties, Kustomer validates these values to ensure that the related object exists and matches the specified target type.\n\n> When configuring attributes as sensitive, note that some attributes will inherit any permissions and metadata from other attributes. These are\n  - `customer.externalId` inherits permissions and metadata from `customer.externalIds`\n  - `customer.firstName`, `customer.lastName`, and `customer.displayName` inherits permissions and metadata from `customer.name`\n\n### Custom Attributes\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify custom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n**Authorization:** Requires any one of these roles: `org.permission.metadata.update`; or legacy `org.admin.metadata.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-custom-attribute-metadata"
       }
      }
     ]
    },
    {
     "name": "Drafts (Attachments)",
     "item": [
      {
       "name": "Get draft attachments",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/drafts/:id/attachments",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "drafts",
          ":id",
          "attachments"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Draft ID."
          }
         ]
        },
        "description": "Retrieves all draft attachments.\n\n**Authorization:** Requires any one of these roles: `org.permission.attachment.read`; or legacy `org.user.attachment.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-draft-attachments"
       }
      },
      {
       "name": "Create draft attachment",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/drafts/:id/attachments",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "drafts",
          ":id",
          "attachments"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Draft ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"contentType\": \"application/pdf\",\n  \"contentLength\": 0\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates an attachment on a draft.\n\n## Pre-signed URL\n\nWhen you create an attachment, the response will include a **related** URL in the **links** section. You can use this URL to upload the contents of the attachment. This URL is a Pre-Signed URL from S3 and provides access to upload a file for a limited duration.\n\n### Example command to upload an attachment to the related Pre-Signed URL\n\n```bash\n$ curl --upload-file [full path to file] \"[Pre-Signed URL]\"\n```\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/core-resources/create-draft-attachment"
       }
      },
      {
       "name": "Get draft attachment",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/drafts/:id/attachments/:attachmentId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "drafts",
          ":id",
          "attachments",
          ":attachmentId"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Draft ID."
          },
          {
           "key": "attachmentId",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Attachment ID."
          }
         ]
        },
        "description": "Retrieves a draft attachment.\n\n### Pre-signed URL\n\nWhen you request the resource, the response will include a **related** URL in the **links** section. You can use this URL to download the attachment file.  This URL is a Pre-Signed URL from S3 and provides access for a limited duration to download a file.\n\n**Authorization:** Requires any one of these roles: `org.permission.attachment.read`; or legacy `org.user.attachment.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-draft-attachment"
       }
      },
      {
       "name": "Delete draft attachment",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/drafts/:id/attachments/:attachmentId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "drafts",
          ":id",
          "attachments",
          ":attachmentId"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Draft ID."
          },
          {
           "key": "attachmentId",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Attachment ID."
          }
         ]
        },
        "description": "Deletes a draft attachment resource.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-draft-attachment"
       }
      }
     ]
    },
    {
     "name": "Drafts",
     "item": [
      {
       "name": "Get draft forward by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/forwards/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "forwards",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "customer,conversation",
           "description": "Optional. Comma-separated related resources to include when supported by the endpoint.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c99",
           "description": "Required. Forward ID."
          }
         ]
        },
        "description": "Retrieves a draft forward based on the unique forward ID.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/core-resources/get-draft-forward-by-id"
       }
      },
      {
       "name": "Update draft forward",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/forwards/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "forwards",
          ":id"
         ],
         "query": [
          {
           "key": "force",
           "value": "true",
           "description": "Optional. Force the draft update or delete when supported by the draft service.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c99",
           "description": "Required. Forward ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"status\": \"draft\",\n  \"sendAt\": \"string\",\n  \"lang\": \"string\",\n  \"to\": [\n    {\n      \"email\": \"jane.doe@example.com\",\n      \"name\": \"example_name\"\n    }\n  ],\n  \"body\": \"Example text\",\n  \"subject\": \"Example title\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a draft forward.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/core-resources/update-draft-forward"
       }
      },
      {
       "name": "Get outbound accounts",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/outboundAccounts",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "outboundAccounts"
         ],
         "query": [
          {
           "key": "applyOutboundBrandVisibility",
           "value": "true",
           "description": "Optional. When `true`, filters email accounts using the caller's permission set `meta.outboundBrandVisibility`. When omitted or `false`, the stored visibility settings are ignored and all accounts are returned.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves all outbound accounts.\n\nSet `applyOutboundBrandVisibility=true` to filter email accounts by the calling user's `meta.outboundBrandVisibility` (set on the user's permission sets, directly or through their teams). Email accounts mapped to a visible brand are kept, and unmapped email accounts are kept only when `includeUnassigned` is `true`. Accounts for other channels are always returned. Users with role group write access, and users whose permission sets do not set `outboundBrandVisibility`, always receive the full list.\n\n**Authorization:** Requires any one of these roles: `org.permission.apps.read`; or legacy `org.user.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-outbound-accounts"
       }
      },
      {
       "name": "Update draft",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/drafts/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "drafts",
          ":id"
         ],
         "query": [
          {
           "key": "force",
           "value": "true",
           "description": "Optional. Force the draft update or delete when supported by the draft service.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5823e4d3bff98a100085320e",
           "description": "Required. Unique draft ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"channel\": \"email\",\n  \"app\": \"gmail\",\n  \"body\": \"Example text\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a draft.\n\nYou can use this endpoint to update any available properties for a channel.\n\n## `sendAt` property options\n\n* If the `sendAt` property is set to a valid timestamp, the draft will be scheduled to be sent.\n* If the `sendAt` property is empty, the draft will be unscheduled.\n* If the `sendAt` property is omitted, the draft status won't change.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/core-resources/update-draft"
       }
      },
      {
       "name": "Delete draft",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/drafts/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "drafts",
          ":id"
         ],
         "query": [
          {
           "key": "force",
           "value": "true",
           "description": "Optional. Force the draft update or delete when supported by the draft service.",
           "disabled": true
          },
          {
           "key": "deleteConversation",
           "value": "false",
           "description": "Optional. Delete the associated conversation when deleting the draft.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5823e4d3bff98a100085320e",
           "description": "Required. Unique draft ID."
          }
         ]
        },
        "description": "Deletes a draft.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-draft"
       }
      }
     ]
    },
    {
     "name": "Forwards (Attachments)",
     "item": [
      {
       "name": "Get forward attachments",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/forwards/:id/attachments",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "forwards",
          ":id",
          "attachments"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Forward ID."
          }
         ]
        },
        "description": "Retrieves all forward attachments.\n\n**Authorization:** Requires any one of these roles: `org.permission.attachment.read`; or legacy `org.user.attachment.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-forward-attachments"
       }
      },
      {
       "name": "Create forward attachment",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/forwards/:id/attachments",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "forwards",
          ":id",
          "attachments"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Forward ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"contentType\": \"application/pdf\",\n  \"contentLength\": 0\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates an attachment on a forward.\n\n## Pre-signed URL\n\nWhen you create an attachment, the response will include a **related** URL in the **links** section. You can use this URL to upload the contents of the attachment. This URL is a Pre-Signed URL from S3 and provides access to upload a file for a limited duration.\n\n### Example command to upload an attachment to the related Pre-Signed URL\n\n```bash\n$ curl --upload-file [full path to file] \"[Pre-Signed URL]\"\n```\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/core-resources/create-forward-attachment"
       }
      },
      {
       "name": "Get forward attachment",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/forwards/:id/attachments/:attachmentId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "forwards",
          ":id",
          "attachments",
          ":attachmentId"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Forward ID."
          },
          {
           "key": "attachmentId",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Attachment ID."
          }
         ]
        },
        "description": "Retrieves a forward attachment.\n\n### Pre-signed URL\n\nWhen you request the resource, the response will include a **related** URL in the **links** section. You can use this URL to download the attachment file.  This URL is a Pre-Signed URL from S3 and provides access for a limited duration to download a file.\n\n**Authorization:** Requires any one of these roles: `org.permission.attachment.read`; or legacy `org.user.attachment.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-forward-attachment"
       }
      },
      {
       "name": "Delete Forward Attachment",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/forwards/:id/attachments/:attachmentId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "forwards",
          ":id",
          "attachments",
          ":attachmentId"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Forward ID."
          },
          {
           "key": "attachmentId",
           "value": "5a4d1a8a6d92880012ad2923",
           "description": "Required. Attachment ID."
          }
         ]
        },
        "description": "Deletes a forward attachment resource.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-forward-attachment"
       }
      }
     ]
    },
    {
     "name": "KObjects (Custom Objects) (Bulk)",
     "item": [
      {
       "name": "Bulk create KObjects (custom objects)",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/klasses/:name/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "klasses",
          ":name",
          "bulk"
         ],
         "variable": [
          {
           "key": "name",
           "value": "orders",
           "description": "Required. Klass name."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "[\n  {\n    \"externalId\": \"crm-10293\",\n    \"title\": \"Example title\",\n    \"description\": \"Example text\"\n  }\n]",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates KObjects (custom objects) in bulk.\n\n> **`_clientRef` support:** You can include an optional `_clientRef` string on each\n> item for per-item result correlation. See [Bulk create customers](https://developer.kustomer.com/api/core-resources/bulk-create-customers) for full\n> documentation of rules, the async poll flow, and the `results[]` response shape.\n\n**Authorization:** Requires any one of these roles: `org.permission.kobject.create`, `org.permission.kobject.kobject_*.create`; or legacy `org.user.kobject.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-create-kobjects-custom-objects"
       }
      },
      {
       "name": "Bulk batch update KObjects (custom objects)",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/klasses/:name/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "klasses",
          ":name",
          "bulk"
         ],
         "variable": [
          {
           "key": "name",
           "value": "5f8efdd5d3de932f344ca369",
           "description": "Required. Klass name."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "[\n  {\n    \"id\": \"65f2c0a1b4e3d2001234abcd\",\n    \"externalId\": \"crm-10293\",\n    \"title\": \"Example title\"\n  }\n]",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a bulk batch of multiple KObjects (custom objects).\n\nUse the `ids` query param to update multiple KObjects in bulk with the same data.\n\n> **Note:** `_clientRef` is supported when submitting an array-shaped request body,\n> but is **not** supported when using the `?ids=` query param mode. See\n> [Bulk create customers](https://developer.kustomer.com/api/core-resources/bulk-create-customers) for full `_clientRef` documentation.\n\n**Authorization:** Requires any one of these roles: `org.permission.kobject.update`, `org.permission.kobject.kobject_*.update`; or legacy `org.user.kobject.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-batch-update-kobjects-custom-objects"
       }
      },
      {
       "name": "Bulk delete KObjects (custom objects)",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/klasses/:name/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "klasses",
          ":name",
          "bulk"
         ],
         "variable": [
          {
           "key": "name",
           "value": "orders",
           "description": "Required. Klass name."
          }
         ]
        },
        "description": "Deletes multiple KObjects in bulk.\n\n**Authorization:** Requires any one of these roles: `org.permission.bulk_deletion.create`, `org.permission.kobject.delete`, `org.permission.kobject.kobject_*.delete`; or legacy `org.user.kobject.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-delete-kobjects-custom-objects"
       }
      }
     ]
    },
    {
     "name": "KObjects (Custom Objects)",
     "item": [
      {
       "name": "Get KObjects (custom objects)",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/klasses/:name",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "klasses",
          ":name"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort direction for results.",
           "disabled": true
          },
          {
           "key": "fromDate",
           "value": "2016-08-06T19:47:49.235Z",
           "description": "Optional. Return resources after this date or cursor timestamp, using the endpoint's sort direction.",
           "disabled": true
          },
          {
           "key": "fields",
           "value": "name,createdAt,updatedAt",
           "description": "Optional. Comma-separated response fields to project. The example is representative, not exhaustive; supported values are resource field names and custom field paths accepted by the endpoint handler.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "name",
           "value": "orders",
           "description": "Required. Klass name of the KObjects (custom objects)."
          }
         ]
        },
        "description": "Retrieves a KObject (custom object) based on the Klass name.\n\nTo learn more, see [Data Model Overview](https://support.kustomer.com/data-model-overview-SyIS1S3zM).\n\n**Authorization:** Requires any one of these roles: `org.permission.klass.read`; or legacy `org.user.klass.read`, `org.admin.klass.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-kobjects-custom-objects"
       }
      },
      {
       "name": "Create KObject",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/klasses/:name",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "klasses",
          ":name"
         ],
         "variable": [
          {
           "key": "name",
           "value": "orders",
           "description": "Required. Klass name of the KObjects (custom objects)."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"externalId\": \"crm-10293\",\n  \"title\": \"Example title\",\n  \"description\": \"Example text\",\n  \"data\": {},\n  \"custom\": {},\n  \"tags\": [\n    \"vip\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new KObject (custom object).\n\n### Custom Attributes\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify custom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n### Rate Limit\nCustom objects are subject to a rate limit. A single client can create up to 120 custom objects per minute per customer.\n\n#### Notes\n* Custom objects with `importedAt` in the body will not be subject to the rate limit.\n* A `429 Too Many Requests` response will be returned if the rate limit has been reached for a customer.\n\n**Authorization:** Requires any one of these roles: `org.permission.kobject.create`, `org.permission.kobject.kobject_*.create`; or legacy `org.user.kobject.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-kobject"
       }
      },
      {
       "name": "Get KObject (custom object) by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/klasses/:name/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "klasses",
          ":name",
          ":id"
         ],
         "query": [
          {
           "key": "getS3DataUrls",
           "value": "true",
           "description": "Optional. Set to `true` to include signed S3 data URLs for KObject attachment fields.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "name",
           "value": "5f8efdd5d3de932f344ca369",
           "description": "Required. Klass name."
          },
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca369",
           "description": "Required. KObject ID."
          }
         ]
        },
        "description": "Retrieves a KObject (custom object) based on the unique KObject ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kobject.read`, `org.permission.kobject.kobject_*.read`; or legacy `org.user.kobject.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-kobject-custom-object-by-id"
       }
      },
      {
       "name": "Update KObject (custom object) by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/klasses/:name/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "klasses",
          ":name",
          ":id"
         ],
         "query": [
          {
           "key": "replace",
           "value": "true",
           "description": "Optional. Set to `true` to replace the full resource instead of applying patch semantics.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "name",
           "value": "orders",
           "description": "Required. Klass name."
          },
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca369",
           "description": "Required. KObject ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"externalId\": \"crm-10293\",\n  \"title\": \"Example title\",\n  \"description\": \"Example text\",\n  \"data\": {},\n  \"custom\": {},\n  \"tags\": [\n    \"vip\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates an existing KObject (custom object) based on the unique ID.\n\n### Note\n> This endpoint is subject to \"Object Rate Limiting\", meaning that a single user is limited in how many updates they can make to a single KObject. To learn more, see [Rate limiting](https://developer.kustomer.com/docs/concepts/rate-limits).\n\n### Custom Attributes\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify custom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n**Authorization:** Requires any one of these roles: `org.permission.kobject.update`, `org.permission.kobject.kobject_*.update`; or legacy `org.user.kobject.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-kobject-custom-object-by-id"
       }
      },
      {
       "name": "Delete KObject (custom object) by ID",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/klasses/:name/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "klasses",
          ":name",
          ":id"
         ],
         "variable": [
          {
           "key": "name",
           "value": "orders",
           "description": "Required. Klass name."
          },
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca369",
           "description": "Required. KObject ID."
          }
         ]
        },
        "description": "Deletes a KObject (custom object) based on the unique KObject ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kobject.delete`, `org.permission.kobject.kobject_*.delete`; or legacy `org.user.kobject.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-kobject-custom-object-by-id"
       }
      },
      {
       "name": "Get KObject by external ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/klasses/:name/externalId=externalId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "klasses",
          ":name",
          "externalId=externalId"
         ],
         "query": [
          {
           "key": "getS3DataUrls",
           "value": "true",
           "description": "Optional. Set to `true` to include signed S3 data URLs for KObject attachment fields.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "name",
           "value": "",
           "description": "Required. Name of KObject."
          }
         ]
        },
        "description": "Retrieves a KObject by Klass name and unique external ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kobject.read`, `org.permission.kobject.kobject_*.read`; or legacy `org.user.kobject.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-kobject-by-external-id"
       }
      }
     ]
    },
    {
     "name": "Klasses",
     "item": [
      {
       "name": "Get Klasses",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/klasses",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "klasses"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "name",
           "value": "customer",
           "description": "Optional. Filter by exact or service-specific resource name.",
           "disabled": true
          },
          {
           "key": "status",
           "value": "enabled",
           "description": "Optional. Filter by resource status.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves all [Klasses](https://help.kustomer.com/define-attributes-Skr924HI#Attributes).\n\n## Filter by `status`\n\nYou can filter results based on the `status` of the Klass. Valid values are `enabled`, `existing_only`, and `disabled`. The default value is `enabled`.\n\n**Authorization:** Requires any one of these roles: `org.permission.klass.read`; or legacy `org.user.klass.read`, `org.admin.klass.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-klasses"
       }
      },
      {
       "name": "Create Klass",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/klasses",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "klasses"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"displayName\": \"Example display name\",\n  \"icon\": \"string\",\n  \"color\": \"string\",\n  \"jsonSchema\": null,\n  \"status\": \"enabled\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new [Klass](https://help.kustomer.com/define-attributes-Skr924HI#Attributes) model for your Kustomer organization.\n\n**Authorization:** Requires any one of these roles: `org.permission.klass.create`; or legacy `org.admin.klass.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-klass"
       }
      },
      {
       "name": "Get Klass by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/klasses/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "klasses",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5826a39b0fcc2514008b2a92",
           "description": "Required. Unique Klass ID."
          }
         ]
        },
        "description": "Retrieves a Klass based on the unique Klass ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.klass.read`; or legacy `org.user.klass.read`, `org.admin.klass.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-klass-by-id"
       }
      },
      {
       "name": "Update Klass by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/klasses/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "klasses",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5826a39b0fcc2514008b2a92",
           "description": "Required. Unique Klass ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"displayName\": \"Example display name\",\n  \"icon\": \"string\",\n  \"color\": \"string\",\n  \"jsonSchema\": null,\n  \"klassSchema\": \"task\",\n  \"status\": \"enabled\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates Klass attributes based on the unique Klass ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.klass.update`; or legacy `org.admin.klass.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-klass-by-id"
       }
      },
      {
       "name": "Delete Klass",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/klasses/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "klasses",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5826a39b0fcc2514008b2a92",
           "description": "Required. Unique Klass ID."
          }
         ]
        },
        "description": "Deletes a Klass based on the unique Klass ID.\n\n### Note\n> You cannot delete a Klass if KObjects (custom objects) exist for the Klass in your Kustomer organization.\n\n**Authorization:** Requires any one of these roles: `org.permission.klass.delete`; or legacy `org.admin.klass.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-klass"
       }
      }
     ]
    },
    {
     "name": "Media",
     "item": [
      {
       "name": "Create media",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/media",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "media"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"contentType\": \"application/pdf\",\n  \"contentLength\": 0\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new media upload document. This includes a temporary upload policy to allow a file upload through a `POST` request.\n\n## Media uploads\n\nMedia uploads require a multi-part `POST` request to the URL in the `meta.upload.url` property in the response object:\n* The request must include as standard form keys the key-value pairs located in the `meta.upload.fields` property.\n* The request must include the file as the last key under the name `file`.\n\n## Blocked extensions\n\nThe following file name extensions are blocked and **cannot** be used as attachments:\n\n- .bin\n- .bat\n- .chm\n- .com\n- .cpl\n- .crt\n- .exe\n- .hlp\n- .hta\n- .inf\n- .ins\n- .isp\n- .jse\n- .lnk\n- .mdb\n- .msc\n- .msi\n- .msp\n- .mst\n- .pcd\n- .pif\n- .ps1\n- .reg\n- .scr\n- .sct\n- .shs\n- .vbe\n- .vba\n- .vbs\n- .wsf\n- .wsh\n- .wsl\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/core-resources/create-media"
       }
      },
      {
       "name": "Get media by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/media/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "media",
          ":id"
         ],
         "query": [
          {
           "key": "redirect",
           "value": "true",
           "description": "Optional. Set to `true` to redirect to the signed media URL instead of returning JSON.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Resource ID."
          }
         ]
        },
        "description": "Retrieves a media object that matches the unique ID or an array of media objects (if multiple IDs are given).\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.media.read`, `org.user.setting.read`, `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-media-by-id"
       }
      },
      {
       "name": "Update media by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/media/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "media",
          ":id"
         ],
         "query": [
          {
           "key": "rev",
           "value": "1",
           "description": "Optional. Expected resource revision for optimistic concurrency checks.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Resource ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"redacted\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a media object based on the unique media ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.update`; or legacy `org.user.media.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-media-by-id"
       }
      }
     ]
    },
    {
     "name": "Messages (Bulk)",
     "item": [
      {
       "name": "Bulk create messages",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/messages/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "messages",
          "bulk"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "[\n  {\n    \"externalId\": \"crm-10293\",\n    \"channel\": \"email\",\n    \"app\": \"string\"\n  }\n]",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a bulk batch of messages.\n\n> **`_clientRef` support:** You can include an optional `_clientRef` string on each\n> item for per-item result correlation. See [Bulk create customers](https://developer.kustomer.com/api/core-resources/bulk-create-customers) for full\n> documentation of rules, the async poll flow, and the `results[]` response shape.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.create`; or legacy `org.user.message.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-create-messages"
       }
      },
      {
       "name": "Bulk batch update messages",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/messages/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "messages",
          "bulk"
         ],
         "query": [
          {
           "key": "ids",
           "value": "id1,id2",
           "description": "Optional. Comma-separated list of unique message IDs.",
           "disabled": true
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "[\n  {\n    \"id\": \"65f2c0a1b4e3d2001234abcd\",\n    \"externalId\": \"crm-10293\",\n    \"preview\": \"Example text\"\n  }\n]",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a bulk batch of messages.\n\nUse the `ids` query param to update multiple messages in bulk with the same data.\n\n> **Note:** `_clientRef` is supported when submitting an array-shaped request body,\n> but is **not** supported when using the `?ids=` query param mode. See\n> [Bulk create customers](https://developer.kustomer.com/api/core-resources/bulk-create-customers) for full `_clientRef` documentation.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.update`; or legacy `org.user.message.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-batch-update-messages"
       }
      }
     ]
    },
    {
     "name": "Messages",
     "item": [
      {
       "name": "Redact a message",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/messages/:id/redactions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "messages",
          ":id",
          "redactions"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c97",
           "description": "Required. Message ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"preview\": \"Example text\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Redacts a message.\n\n**Authorization:** Requires any one of these roles: `org.permission.message_redaction.create`; or legacy `org.admin.message.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/redact-a-message"
       }
      },
      {
       "name": "Get messages",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/messages",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "messages"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort direction for results.",
           "disabled": true
          },
          {
           "key": "include",
           "value": "attachments",
           "description": "Optional. List of resources to include in this response. Use a comma to separate resources. Supports the `attachments` resource.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves [messages](https://help.kustomer.com/message-options-H1tSk3QOI) for your Kustomer organization.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.read`; or legacy `org.user.message.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-messages"
       }
      },
      {
       "name": "Create message",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/messages",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "messages"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"externalId\": \"crm-10293\",\n  \"channel\": \"email\",\n  \"preview\": \"Example text\",\n  \"subject\": \"Example title\",\n  \"direction\": \"in\",\n  \"app\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Adds an instance of a message to an existing conversation timeline with a customer. Interactions with a customer that occurred via email, SMS, web or mobile chat, Facebook direct messages or comments, Twitter direct messages or Tweets, voice, Instagram direct messages or WhatsApp messages can be added to the conversation timeline.\n\nDoes not send a message to a customer, only to be used to record the instance of a message. To send a message, first see the [Create a draft by customer endpoint](https://developer.kustomer.com/api/core-resources/create-draft-for-customer).\n\n### Prerequisites\n\nAn existing conversation must be created to add the message. See the [Create conversation](https://developer.kustomer.com/api/core-resources/create-conversation) or [Bulk create conversations](https://developer.kustomer.com/api/core-resources/bulk-create-conversations) or [Create conversation for customer](https://developer.kustomer.com/api/core-resources/create-conversation-for-customer) endpoints.\n\n### Rate limit\nMessages are subject to a rate limit. A single client can create up to 120 messages per minute per customer.\n\nMessages with `importedAt` in their body will not be subject to the rate limit.\n\nA `429 Too Many Requests` response will be returned if the rate limit has been reached for a customer.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.create`; or legacy `org.user.message.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-message"
       }
      },
      {
       "name": "Get message by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/messages/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "messages",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "customer,conversation",
           "description": "Optional. Comma-separated related resources to include when supported by the endpoint.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "57c8d2b01a57ed1400392073",
           "description": "Required. Unique message ID."
          }
         ]
        },
        "description": "Retrieves a single message based on the unique message ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.read`; or legacy `org.user.message.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-message-by-id"
       }
      },
      {
       "name": "Update message by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/messages/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "messages",
          ":id"
         ],
         "query": [
          {
           "key": "replace",
           "value": "true",
           "description": "Optional. Set to `true` to replace the full resource instead of applying patch semantics.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "57c8d2b01a57ed1400392073",
           "description": "Required. Unique message ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"conversation\": \"string\",\n  \"externalId\": \"crm-10293\",\n  \"preview\": \"Example text\",\n  \"subject\": \"Example title\",\n  \"status\": \"sent\",\n  \"custom\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a message based on the unique message ID.\n\n### Note\n> This endpoint is subject to Object Rate Limiting, which limits how many updates single user can make to a single message. To learn more, see [Rate limiting](https://developer.kustomer.com/docs/concepts/rate-limits).\n\n### Authorization\n> The `org.admin` role is required for setting `createdAt`, `createdBy`, `modifiedAt`, and `modifiedBy`.  Otherwise, these attributes are automatically set by the token.\n\n### Custom Attributes\n\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify custom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n**Authorization:** Requires any one of these roles: `org.permission.message.update`; or legacy `org.user.message.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-message-by-id"
       }
      },
      {
       "name": "Update message attributes by ID",
       "request": {
        "method": "PATCH",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/messages/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "messages",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "57c8d2b01a57ed1400392073",
           "description": "Required. Unique message ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"conversation\": \"string\",\n  \"externalId\": \"crm-10293\",\n  \"preview\": \"Example text\",\n  \"subject\": \"Example title\",\n  \"status\": \"sent\",\n  \"custom\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates attributes for a message based on the unique message ID.\n\n### Note\n> This endpoint is subject to Object Rate Limiting, which limits how many updates single user can make to a single message. To learn more, see [Rate limiting](https://developer.kustomer.com/docs/concepts/rate-limits).\n\n### Authorization\n> The `org.admin` role is required for setting `createdAt`, `createdBy`, `modifiedAt`, and `modifiedBy`.  Otherwise, these attributes are automatically set by the token.\n\n### Custom Attributes\n\n[Custom attributes](https://help.kustomer.com/define-attributes-Skr924HI) are optional and allow you to specify custom key-value pairs.\n\nKustomer uses a naming convention for custom attributes to specify the field data type with a name suffix:\n\n#### Naming Suffix\n\n* `Num` *number* or *null*\n* `At` *date-time* or *null*\n* `Str` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Txt` *string* or *null*, length: [ 0 .. 1024 ] characters\n* `Bool` *boolean* or *null*\n* `Url` *string* or *null*, format: *uri*\n\n**Authorization:** Requires any one of these roles: `org.permission.message.update`; or legacy `org.user.message.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-message-attributes-by-id"
       }
      },
      {
       "name": "Get a Message by External ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/messages/externalId=external-123",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "messages",
          "externalId=external-123"
         ],
         "query": [
          {
           "key": "include",
           "value": "customer,conversation",
           "description": "Optional. Comma-separated related resources to include when supported by the endpoint.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a single message using its unique external message ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.read`; or legacy `org.user.message.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-a-message-by-external-id"
       }
      }
     ]
    },
    {
     "name": "Notes (Bulk)",
     "item": [
      {
       "name": "Bulk create notes",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/notes/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notes",
          "bulk"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "[\n  {\n    \"conversation\": \"string\",\n    \"externalId\": \"crm-10293\",\n    \"body\": \"Example text\"\n  }\n]",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a bulk batch of notes.\n\n> **`_clientRef` support:** You can include an optional `_clientRef` string on each\n> item for per-item result correlation. See [Bulk create customers](https://developer.kustomer.com/api/core-resources/bulk-create-customers) for full\n> documentation of rules, the async poll flow, and the `results[]` response shape.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.create`; or legacy `org.user.note.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-create-notes"
       }
      },
      {
       "name": "Bulk batch update notes",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/notes/bulk",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notes",
          "bulk"
         ],
         "query": [
          {
           "key": "ids",
           "value": "id1,id2",
           "description": "Optional. Comma-separated list of unique note IDs.",
           "disabled": true
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "[\n  {\n    \"id\": \"65f2c0a1b4e3d2001234abcd\",\n    \"externalId\": \"crm-10293\",\n    \"body\": \"Example text\"\n  }\n]",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a bulk batch of notes.\n\nUse the `ids` query param to update multiple notes in bulk with the same data.\n\n> **Note:** `_clientRef` is supported when submitting an array-shaped request body,\n> but is **not** supported when using the `?ids=` query param mode. See\n> [Bulk create customers](https://developer.kustomer.com/api/core-resources/bulk-create-customers) for full `_clientRef` documentation.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.update`; or legacy `org.user.note.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/bulk-batch-update-notes"
       }
      }
     ]
    },
    {
     "name": "Notes",
     "item": [
      {
       "name": "Get notes",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/notes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notes"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort direction for results.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves all [notes](https://help.kustomer.com/using-notes-HJvDjNP58) for a Kustomer organization.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.read`; or legacy `org.user.note.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-notes"
       }
      },
      {
       "name": "Create note",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/notes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notes"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"id\": \"65f2c0a1b4e3d2001234abcd\",\n  \"externalId\": \"crm-10293\",\n  \"body\": \"Example text\",\n  \"userMentions\": [\n    {\n      \"user\": \"65f2c0a1b4e3d2001234abcd\",\n      \"team\": \"string\"\n    }\n  ],\n  \"createdAt\": \"2026-03-14T15:09:26.535Z\",\n  \"modifiedAt\": \"2026-03-14T15:09:26.535Z\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a note.\n\n### Rate limit\nNotes are subject to a rate limit. A single client can create up to 120 notes per minute per customer.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.create`; or legacy `org.user.note.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-note"
       }
      },
      {
       "name": "Get note by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/notes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notes",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "customer,conversation",
           "description": "Optional. Comma-separated related resources to include when supported by the endpoint.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "57cf1d65079e780006e34f79",
           "description": "Required. Unique note ID."
          }
         ]
        },
        "description": "Retrieves a note based on the unique note ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.read`; or legacy `org.user.note.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-note-by-id"
       }
      },
      {
       "name": "Update note by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/notes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notes",
          ":id"
         ],
         "query": [
          {
           "key": "replace",
           "value": "true",
           "description": "Optional. Set to `true` to replace the full resource instead of applying patch semantics.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "57cf1d65079e780006e34f79",
           "description": "Required. Unique note ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"conversation\": \"string\",\n  \"externalId\": \"crm-10293\",\n  \"body\": \"Example text\",\n  \"userMentions\": [\n    {\n      \"user\": \"65f2c0a1b4e3d2001234abcd\",\n      \"team\": \"string\"\n    }\n  ],\n  \"deleted\": true,\n  \"attachments\": [\n    {\n      \"_id\": \"65f2c0a1b4e3d2001234abcd\",\n      \"name\": \"example_name\",\n      \"contentType\": \"application/pdf\",\n      \"contentLength\": 0\n    }\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a note based on the unique note ID.\n\n### Note\n> This endpoint is subject to Object Rate Limiting, which limits how many updates single user can make to a single note. To learn more, see [Rate limiting](https://developer.kustomer.com/docs/concepts/rate-limits).\n\n### Authorization\n> The `org.admin` role is required for setting `createdAt`, `createdBy`, `modifiedAt`, and `modifiedBy`.  Otherwise, these attributes are automatically set by the token.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.update`; or legacy `org.user.note.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-note-by-id"
       }
      },
      {
       "name": "Update note attributes by ID",
       "request": {
        "method": "PATCH",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/notes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notes",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "57cf1d65079e780006e34f79",
           "description": "Required. Unique note ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"conversation\": \"string\",\n  \"externalId\": \"crm-10293\",\n  \"body\": \"Example text\",\n  \"userMentions\": [\n    {\n      \"user\": \"65f2c0a1b4e3d2001234abcd\",\n      \"team\": \"string\"\n    }\n  ],\n  \"deleted\": true,\n  \"attachments\": [\n    {\n      \"_id\": \"65f2c0a1b4e3d2001234abcd\",\n      \"name\": \"example_name\",\n      \"contentType\": \"application/pdf\",\n      \"contentLength\": 0\n    }\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates one or more note attributes based on the unique note ID.\n\n### Note\n> This endpoint is subject to Object Rate Limiting, which limits how many updates single user can make to a single note. To learn more, see [Rate limiting](https://developer.kustomer.com/docs/concepts/rate-limits).\n\n### Authorization\n> The `org.admin` role is required for setting `createdAt`, `createdBy`, `modifiedAt`, and `modifiedBy`.  Otherwise, these attributes are automatically set by the token.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.update`; or legacy `org.user.note.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-note-attributes-by-id"
       }
      },
      {
       "name": "Delete note by ID",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/notes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notes",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "57cf1d65079e780006e34f79",
           "description": "Required. Unique note ID."
          }
         ]
        },
        "description": "Deletes a note based on the unique note ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.delete`; or legacy `org.user.note.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-note-by-id"
       }
      }
     ]
    },
    {
     "name": "Comments",
     "item": [
      {
       "name": "Get comments by KObject ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kobjects/:id/comments",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kobjects",
          ":id",
          "comments"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort direction for results by `createdAt`.",
           "disabled": true
          },
          {
           "key": "include",
           "value": "attachments",
           "description": "Optional. Comma-separated related resources to include. Supports `attachments`.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "57ce17d2369f251400fc8e89",
           "description": "Required. Unique KObject ID."
          }
         ]
        },
        "description": "Retrieves comments for a KObject (custom object), such as a Task.\n\nComments are notes attached to KObjects. They are distinct from [Notes](https://developer.kustomer.com/api/core-resources/create-note), which attach to customers and conversations.\n\n**Authorization:** Requires any one of these roles: `org.permission.kobject.read`, `org.permission.kobject.kobject_*.read`; or legacy `org.user.kobject.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-comments-by-kobject-id"
       }
      },
      {
       "name": "Create comment on KObject",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kobjects/:id/comments",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kobjects",
          ":id",
          "comments"
         ],
         "variable": [
          {
           "key": "id",
           "value": "57ce17d2369f251400fc8e89",
           "description": "Required. Unique KObject ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"body\": \"Followed up with the customer about this order.\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a comment on a KObject (custom object), such as a Task.\n\nComments are notes attached to KObjects. They are distinct from [Notes](https://developer.kustomer.com/api/core-resources/create-note), which attach to customers and conversations.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.create`; or legacy `org.user.note.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-comment-on-kobject"
       }
      },
      {
       "name": "Get comment by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/comments/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "comments",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "attachments",
           "description": "Optional. Comma-separated related resources to include. Supports `attachments`.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "57cf1d65079e780006e34f79",
           "description": "Required. Unique comment ID. Supports a comma-separated list of IDs for multi-get."
          }
         ]
        },
        "description": "Retrieves a comment based on the unique comment ID.\n\nYou can also retrieve multiple comments by providing a comma-separated list of IDs.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.read`; or legacy `org.user.note.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-comment-by-id"
       }
      },
      {
       "name": "Update comment by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/comments/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "comments",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "57cf1d65079e780006e34f79",
           "description": "Required. Unique comment ID. Supports a comma-separated list of IDs for multi-get."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"body\": \"Updated follow-up notes for this order.\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a comment based on the unique comment ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.update`; or legacy `org.user.note.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-comment-by-id"
       }
      },
      {
       "name": "Delete comment by ID",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/comments/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "comments",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "57cf1d65079e780006e34f79",
           "description": "Required. Unique comment ID. Supports a comma-separated list of IDs for multi-get."
          }
         ]
        },
        "description": "Deletes a comment based on the unique comment ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.note.delete`; or legacy `org.user.note.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-comment-by-id"
       }
      }
     ]
    },
    {
     "name": "Comments (Attachments)",
     "item": [
      {
       "name": "Get comment attachments",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/comments/:id/attachments",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "comments",
          ":id",
          "attachments"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "57cf1d65079e780006e34f79",
           "description": "Required. Comment ID."
          }
         ]
        },
        "description": "Retrieves all attachments for a comment.\n\n**Authorization:** Requires any one of these roles: `org.permission.attachment.read`; or legacy `org.user.attachment.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-comment-attachments"
       }
      },
      {
       "name": "Delete comment attachments",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/comments/:id/attachments",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "comments",
          ":id",
          "attachments"
         ],
         "variable": [
          {
           "key": "id",
           "value": "57cf1d65079e780006e34f79",
           "description": "Required. Comment ID."
          }
         ]
        },
        "description": "Deletes all attachments for a comment.\n\n**Authorization:** Requires any one of these roles: `org.permission.attachment.delete`; or legacy `org.user.attachment.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-comment-attachments"
       }
      },
      {
       "name": "Get comment attachment",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/comments/:id/attachments/:attachmentId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "comments",
          ":id",
          "attachments",
          ":attachmentId"
         ],
         "query": [
          {
           "key": "redirect",
           "value": "true",
           "description": "Optional. Set to `true` to redirect to the signed attachment URL instead of returning JSON.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "57cf1d65079e780006e34f79",
           "description": "Required. Comment ID."
          },
          {
           "key": "attachmentId",
           "value": "58c766aadd4b90110053bd81",
           "description": "Required. Attachment ID."
          }
         ]
        },
        "description": "Retrieves a comment attachment.\n\n### Pre-signed URL\n\nWhen you request the resource, the response includes a **related** URL in the **links** section. You can use this URL to download the attachment file. This URL is a Pre-Signed URL from S3 and provides access for a limited duration.\n\nSet `redirect=true` to redirect to the signed URL instead of returning JSON. If the attachment has been redacted, a `410 Gone` response is returned when `redirect=true`.\n\n**Authorization:** Requires any one of these roles: `org.permission.attachment.read`; or legacy `org.user.attachment.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-comment-attachment"
       }
      },
      {
       "name": "Delete comment attachment",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/comments/:id/attachments/:attachmentId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "comments",
          ":id",
          "attachments",
          ":attachmentId"
         ],
         "variable": [
          {
           "key": "id",
           "value": "57cf1d65079e780006e34f79",
           "description": "Required. Comment ID."
          },
          {
           "key": "attachmentId",
           "value": "58c766aadd4b90110053bd81",
           "description": "Required. Attachment ID."
          }
         ]
        },
        "description": "Deletes a comment attachment.\n\n**Authorization:** Requires any one of these roles: `org.permission.attachment.delete`; or legacy `org.user.attachment.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-comment-attachment"
       }
      }
     ]
    },
    {
     "name": "Tracking Events",
     "item": [
      {
       "name": "Create tracking event",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/tracking/event",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "tracking",
          "event"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"trackingId\": \"65f2c0a1b4e3d2001234abcd\",\n  \"sessionId\": \"65f2c0a1b4e3d2001234abcd\",\n  \"name\": \"example_name\",\n  \"meta\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new tracking event.\n\n**Authorization:** Requires any one of these roles: `org.tracking`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/core-resources/create-tracking-event"
       }
      },
      {
       "name": "Create tracking identity",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/tracking/identity",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "tracking",
          "identity"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"externalId\": \"crm-10293\",\n  \"email\": \"jane.doe@example.com\",\n  \"phone\": \"+15555550123\",\n  \"tags\": [\n    \"vip\"\n  ],\n  \"custom\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Identifies a user.\n\n**Authorization:** Requires any one of these roles: `org.tracking`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/core-resources/create-tracking-identity"
       }
      },
      {
       "name": "Create tracking identity and track event",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/tracking/identityEvent",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "tracking",
          "identityEvent"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"identity\": {\n    \"name\": \"example_name\",\n    \"externalId\": \"crm-10293\",\n    \"email\": \"jane.doe@example.com\"\n  },\n  \"event\": {\n    \"trackingId\": \"65f2c0a1b4e3d2001234abcd\",\n    \"sessionId\": \"65f2c0a1b4e3d2001234abcd\",\n    \"name\": \"example_name\"\n  }\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Identifies a user and tracks an event with a single API call.\n\n**Authorization:** Requires any one of these roles: `org.tracking`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/core-resources/create-tracking-identity-and-track-event"
       }
      }
     ]
    },
    {
     "name": "Search",
     "item": [
      {
       "name": "Create customer search",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/search",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "search"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "idsOnly",
           "value": "false",
           "description": "Optional. Set to `true` to return only matching IDs from search results.",
           "disabled": true
          },
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Optional. Saved search ID used to execute a stored query before searching.",
           "disabled": true
          },
          {
           "key": "withIntelliAggs",
           "value": "false",
           "description": "Optional. Set to `true` to include intelligent aggregation data in customer search results.",
           "disabled": true
          },
          {
           "key": "trackTotalHits",
           "value": "true",
           "description": "Optional. Controls whether the search request tracks an exact total hit count.",
           "disabled": true
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"searchHash\": \"string\",\n  \"queryContext\": \"string\",\n  \"includeDeleted\": true,\n  \"timeZone\": \"string\",\n  \"and\": {},\n  \"or\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Searches across customer data with criteria based on standard Object data and any custom attribute data for standard Objects, including Message, Conversation, and Company objects.\nStandard object data, custom object data, and conversation time data is limited to objects that have an updatedAt more recent than in the past 2 years. To query for older, archived data for standard and custom objects, see the [Archive Search API](https://developer.kustomer.com/api/core-resources/create-customer-archive-search).\nOlder conversation time data is not available via search.\n\n## Filter on dates\nYou can filter by dates in either a local date `YYYY-MM-DD` format or a UTC date format. If you include a timezone in the query, a local date will be adjusted to account for the included timezone. UTC dates will not be timezone adjusted.\n<br>\n### Example of search criteria with local date\n```json\n{\n    \"and\": [\n        {\n            \"conversation_created_at\": {\n                \"lte\": \"2020-11-19\"\n            }\n        }\n    ],\n    \"queryContext\": \"conversation\",\n    \"timeZone\": \"America/New_York\"\n}\n```\n#### Note\n> The default `GMT` timezone is applied when you exclude a timezone.\n\n### Example of search criteria with UTC date\n```json\n{\n    \"and\": [\n        {\n            \"conversation_created_at\": {\n                \"lte\": \"2020-11-20T16:34:00.000Z\"\n            }\n        }\n    ],\n    \"queryContext\": \"conversation\"\n}\n```\n\n## Filter on standard attributes\nFor a list of available standard attributes, see [Standard attributes JSON schema](https://developer.kustomer.com/docs/concepts/search#standard-attributes-json-schema).\n\n### Example of search criteria with standard attributes\n```json\n[\n  {\"customer_updated_at\": {\"gte\": \"2016-06-24\" }},\n  {\"conversation_status\": {\"equals\": \"done\" }}\n]\n```\n\n## Filter on custom attributes for standard Objects\nYou can query custom attributes on standard Objects with the following syntax:\n`<<standard_object_name>>_custom_<<custom_field_name>>`.\n\n### Example of search criteria with custom attributes\n\n```json\n{ \"customer_custom_myCustomStr\": { \"equals\": \"some value\" }}\n{ \"message_custom_myCustomNum\": { \"gte\": 5 }}\n```\n\n## Filter on custom attributes for custom Objects\nYou can query custom attributes for custom Object with the following syntax: `kobject_custom_<<klass_name>>_<<custom_field_name>>`.\n\n### Examples\n```json\n{ \"kobject_custom_myKlass_myCustomNum\": { \"gte\": 5 }}\n```\n\n## Sort on customer attributes\nYou can sort based on the following customer attributes:\n\n```\ncustomer_name\ncustomer_gender\ncustomer_created_at\ncustomer_updated_at\ncustomer_modified_at\ncustomer_externalId\ncustomer_activity_at\ncustomer_last_seen_at\ncustomer_signed_up_at\ncustomer_lastmessage_preview\ncustomer_progressive_status\ncustomer_done\ncustomer_open\ncustomer_snoozed\ncustomer_last_message_sent_at\ncustomer_last_message_out_sent_at\ncustomer_last_message_unresponded_to_sent_at\ncustomer_last_message_at\n```\n\n### Example of sort with customer attributes\n```\n{\"sort\": [{\"customer_updated_at\": \"asc\"}]}\n{\"sort\": [{\"customer_gender\": \"asc\"}, {\"customer_created_at\": \"asc\"}]}\n```\n\n#### Note\n> Sorting based on other standard Object attributes is unavailable.\n\n## Pagination\nThere is a hard limit of **100** for the maximum number of pages.\n\nThere may be cases where you want to page through more records. For example, let's say you'd like to get an initial snapshot of data and then update the data.\n\nTo work around the pagination limit, you can write a query based on the `updated_at` attribute for a standard Object. You can then use the returned information in following API requests based on the last `updated_at` value from the response.\n\n## Standard attributes JSON Schema\n\n```json\n{\n  \"type\": \"object\",\n  \"properties\": {\n    \"customer_any_text\": {\n      \"type\": \"string\",\n      \"operator\": \"any\"\n    },\n    \"customer_name\": {\n      \"type\": \"string\",\n      \"operator\": \"string\"\n    },\n    \"customer_gender\": {\n      \"type\": \"string\",\n      \"enum\": [\"m\", \"f\"],\n      \"operator\": \"list\"\n    },\n    \"customer_presence\": {\n      \"type\": \"string\",\n      \"enum\": [\"online\", \"offline\", \"idle\"],\n      \"operator\": \"list\"\n    },\n    \"customer_email\": {\n      \"type\": \"string\",\n      \"format\": \"email\",\n      \"operator\": \"string\"\n    },\n    \"customer_shared_email\": {\n      \"type\": \"string\",\n      \"format\": \"email\",\n      \"operator\": \"string\"\n    },\n    \"customer_phone\": {\n      \"type\": \"string\",\n      \"pattern\": \"^\\\\+?[1-9]\\\\d{1,14}$\",\n      \"operator\": \"string\"\n    },\n    \"customer_shared_phone\": {\n      \"type\": \"string\",\n      \"pattern\": \"^\\\\+?[1-9]\\\\d{1,14}$\",\n      \"operator\": \"string\"\n    },\n    \"customer_urls\": {\n      \"type\": \"string\",\n      \"operator\": \"string\"\n    },\n    \"customer_address\": {\n      \"type\": \"string\",\n      \"operator\": \"string\"\n    },\n    \"customer_locale\": {\n      \"type\": \"string\",\n      \"operator\": \"string\"\n    },\n    \"customer_activity_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"customer_last_seen_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"customer_signed_up_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"customer_last_message_sent_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"customer_last_message_out_sent_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"customer_last_message_unresponded_to_sent_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"customer_last_message_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"customer_externalId\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"customer_shared_externalId\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"customer_created_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"customer_updated_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"customer_modified_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"customer_created_by\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"customer_modified_by\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"customer_satisfaction_avg_score\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"customer_satisfaction_avg_rating\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"customer_conversations_count\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"customer_status\": {\n      \"type\": \"string\",\n      \"enum\": [\"snoozed\", \"open\", \"done\"],\n      \"operator\": \"list\"\n    },\n    \"customer_progressive_status\": {\n      \"type\": \"string\",\n      \"enum\": [\"snoozed\", \"open\", \"done\"],\n      \"operator\": \"list\"\n    },\n    \"customer_active_users\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"customer_watchers\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"customer_tags\": {\n      \"type\": \"string\",\n      \"operator\": \"list\"\n    },\n    \"customer_sentiment\": {\n      \"type\": \"string\",\n      \"enum\": [\"happy\", \"unhappy\", \"indifferent\"],\n      \"operator\": \"list\"\n    },\n    \"customer_social_type\": {\n      \"type\": \"string\",\n      \"enum\": [\"facebook\", \"instagram\", \"whatsapp\", \"linkedin\", \"pinterest\", \"twitter\"],\n      \"operator\": \"list\"\n    },\n    \"customer_social_userid\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"customer_social_username\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"customer_shared_social_type\": {\n      \"type\": \"string\",\n      \"enum\": [\"facebook\", \"instagram\", \"whatsapp\", \"linkedin\", \"pinterest\", \"twitter\"],\n      \"operator\": \"list\"\n    },\n    \"customer_shared_social_userid\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"customer_shared_social_username\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"customer_default_lang\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"customer_imported_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"customer_imported\": {\n      \"type\": \"boolean\",\n      \"operator\": \"boolean\"\n    },\n    \"company_any_text\": {\n      \"type\": \"string\",\n      \"operator\": \"any\"\n    },\n    \"company_name\": {\n      \"type\": \"string\",\n      \"operator\": \"string\"\n    },\n    \"company_tags\": {\n      \"type\": \"string\",\n      \"operator\": \"list\"\n    },\n    \"company_default_lang\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"company_imported_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"company_imported\": {\n      \"type\": \"boolean\",\n      \"operator\": \"boolean\"\n    },\n    \"message_any_text\": {\n      \"type\": \"string\",\n      \"operator\": \"any\"\n    },\n    \"message_body\": {\n      \"type\": \"string\",\n      \"operator\": \"text\"\n    },\n    \"message_channel\": {\n      \"type\": \"string\",\n      \"enum\": [\"sms\", \"chat\", \"email\", \"facebook\", \"voice\", \"twitter-dm\", \"twitter-tweet\", \"instagram\", \"whatsapp\"],\n      \"operator\": \"list\"\n    },\n    \"message_size\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"message_direction\": {\n      \"type\": \"string\",\n      \"enum\": [\"in\", \"out\"],\n      \"operator\": \"boolean\"\n    },\n    \"message_sent_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"message_created_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"message_updated_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"message_created_by\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"message_modified_by\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"message_sentiment\": {\n      \"type\": \"string\",\n      \"enum\": [\"happy\", \"unhappy\", \"indifferent\"],\n      \"operator\": \"list\"\n    },\n    \"message_customer_id\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"message_status\": {\n      \"type\": \"string\",\n      \"enum\": [\"sent\", \"received\", \"error\"],\n      \"operator\": \"list\"\n    },\n    \"message_error_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"message_error_title\": {\n      \"type\": \"string\",\n      \"operator\": \"string\"\n    },\n    \"message_external_id\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"message_direction_type\": {\n      \"type\": \"string\",\n      \"enum\": [\"initial-in\", \"initial-out\", \"response-in\", \"response-out\", \"followup-in\", \"followup-out\"],\n      \"operator\": \"list\"\n    },\n    \"message_created_by_teams\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"message_redacted\": {\n      \"type\": \"string\",\n      \"operator\": \"boolean\"\n    },\n    \"message_redacted_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"message_imported_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"message_imported\": {\n      \"type\": \"boolean\",\n      \"operator\": \"boolean\"\n    },\n    \"message_recipients\": {\n      \"type\": \"string\",\n      \"operator\": \"string\"\n    },\n    \"message_sender\": {\n      \"type\": \"string\",\n      \"operator\": \"string\"\n    },\n    \"message_shortcuts\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"message_subject\": {\n      \"type\": \"string\",\n      \"operator\": \"text\"\n    },\n    \"message_source\": {\n      \"type\": \"string\",\n      \"enum\": [\"bulk\"],\n      \"operator\": \"list\"\n    },\n    \"message_attachment_count\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"message_auto\": {\n      \"type\": \"string\",\n      \"operator\": \"boolean\"\n    },\n    \"message_lang\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"note_any_text\": {\n      \"type\": \"string\",\n      \"operator\": \"any\"\n    },\n    \"note_body\": {\n      \"type\": \"string\",\n      \"operator\": \"text\"\n    },\n    \"note_created_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"note_modified_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"note_updated_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"note_created_by\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"note_modified_by\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"note_deleted\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"boolean\"\n    },\n    \"note_user_mentions\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"note_team_mentions\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(?=[A-Fa-f\\\\d]{24}$)(\\\\d+[A-Fa-f]|[A-Fa-f]+\\\\d)\",\n      \"collection\": \"teams\",\n      \"operator\": \"list\"\n    },\n    \"note_attachment_count\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"number\"\n    },\n    \"note_external_id\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"note_customer_id\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"note_conversation_id\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"note_lang\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"note_imported_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"note_imported\": {\n      \"type\": \"boolean\",\n      \"operator\": \"boolean\"\n    },\n    \"conversation_any_text\": {\n      \"type\": \"string\",\n      \"operator\": \"any\"\n    },\n    \"conversation_name\": {\n      \"type\": \"string\",\n      \"operator\": \"string\"\n    },\n    \"conversation_sentiment\": {\n      \"type\": \"string\",\n      \"enum\": [\"happy\", \"unhappy\", \"indifferent\"],\n      \"operator\": \"list\"\n    },\n    \"conversation_status\": {\n      \"type\": \"string\",\n      \"enum\": [\"snoozed\", \"open\", \"done\"],\n      \"operator\": \"list\"\n    },\n    \"conversation_sub_status\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"conversation_created_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_updated_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_modified_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_modified_by\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"conversation_message_count\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"conversation_note_count\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"conversation_satisfaction_survey_id\": {\n      \"type\": \"string\",\n      \"operator\": \"list\"\n    },\n    \"conversation_satisfaction_sent_by\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"conversation_satisfaction_sent_by_teams\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(?=[A-Fa-f\\\\d]{24}$)(\\\\d+[A-Fa-f]|[A-Fa-f]+\\\\d)\",\n      \"collection\": \"teams\",\n      \"operator\": \"list\"\n    },\n    \"conversation_satisfaction_created_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_satisfaction_score\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"conversation_satisfaction_rating\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"conversation_satisfaction_status\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"canceled\",\n        \"scheduled\",\n        \"offered\",\n        \"unresponded\",\n        \"rated\",\n        \"commented\"\n      ],\n      \"operator\": \"list\"\n    },\n    \"conversation_channels\": {\n      \"type\": \"string\",\n      \"enum\": [\"sms\", \"chat\", \"email\", \"facebook\", \"voice\", \"twitter-dm\", \"twitter-tweet\", \"instagram\", \"whatsapp\"],\n      \"operator\": \"list\"\n    },\n    \"conversation_satisfaction\": {\n      \"type\": \"string\",\n      \"operator\": \"string\"\n    },\n    \"conversation_priority\": {\n      \"type\": \"integer\",\n      \"operator\": \"number\",\n      \"minimum\": 1,\n      \"maximum\": 5\n    },\n    \"conversation_tags\": {\n      \"type\": \"string\",\n      \"operator\": \"list\"\n    },\n    \"conversation_assigned_users\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"conversation_assigned_teams\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(?=[A-Fa-f\\\\d]{24}$)(\\\\d+[A-Fa-f]|[A-Fa-f]+\\\\d)\",\n      \"collection\": \"teams\",\n      \"operator\": \"list\"\n    },\n    \"conversation_last_message_sent_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_last_message_out_sent_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_last_message_unresponded_to_sent_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_last_message_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_first_response_sent_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_first_response_time\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"conversation_first_response_created_by\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"conversation_last_response_created_by\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"conversation_last_message_direction\": {\n      \"type\": \"string\",\n      \"enum\": [\"in\", \"out\"],\n      \"operator\": \"list\"\n    },\n    \"conversation_direction\": {\n      \"type\": \"string\",\n      \"enum\": [\"in\", \"out\"],\n      \"operator\": \"list\"\n    },\n    \"conversation_outbound_message_count\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"conversation_customer_id\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"conversation_campaign_id\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"conversation_first_message_in_sent_at\": {\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_first_message_in_direction_type\": {\n      \"type\": \"string\",\n      \"enum\": [\"initial-in\", \"initial-out\", \"response-in\", \"response-out\", \"followup-in\", \"followup-out\"],\n      \"operator\": \"list\"\n    },\n    \"conversation_first_message_in_channel\": {\n      \"type\": \"string\",\n      \"enum\": [\"sms\", \"chat\", \"email\", \"facebook\", \"voice\", \"twitter-dm\", \"twitter-tweet\", \"instagram\", \"whatsapp\"],\n      \"operator\": \"list\"\n    },\n    \"conversation_first_message_out_sent_at\": {\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_first_message_out_direction_type\": {\n      \"type\": \"string\",\n      \"enum\": [\"initial-in\", \"initial-out\", \"response-in\", \"response-out\", \"followup-in\", \"followup-out\"],\n      \"operator\": \"list\"\n    },\n    \"conversation_first_message_out_channel\": {\n      \"type\": \"string\",\n      \"enum\": [\"sms\", \"chat\", \"email\", \"facebook\", \"voice\", \"twitter-dm\", \"twitter-tweet\", \"instagram\", \"whatsapp\"],\n      \"operator\": \"list\"\n    },\n    \"conversation_time_created_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_time_conversation_id\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"conversation_time_created_by_teams\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(?=[A-Fa-f\\\\d]{24}$)(\\\\d+[A-Fa-f]|[A-Fa-f]+\\\\d)\",\n      \"collection\": \"teams\",\n      \"operator\": \"list\"\n    },\n    \"conversation_time_assigned_users\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"conversation_time_assigned_teams\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(?=[A-Fa-f\\\\d]{24}$)(\\\\d+[A-Fa-f]|[A-Fa-f]+\\\\d)\",\n      \"collection\": \"teams\",\n      \"operator\": \"list\"\n    },\n    \"conversation_time_touched\": {\n      \"type\": \"string\",\n      \"operator\": \"boolean\"\n    },\n    \"conversation_time_reopened\": {\n      \"type\": \"string\",\n      \"operator\": \"boolean\"\n    },\n    \"conversation_time_snoozed\": {\n      \"type\": \"string\",\n      \"operator\": \"boolean\"\n    },\n    \"conversation_time_resolved\": {\n      \"type\": \"string\",\n      \"operator\": \"boolean\"\n    },\n    \"conversation_time_message_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_time_message_time\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"conversation_time_messages_sent\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"conversation_time_note_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_time_note_time\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"conversation_time_notes_sent\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"conversation_time_handle_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_time_handle_time\": {\n      \"type\": \"number\",\n      \"operator\": \"number\"\n    },\n    \"conversation_time_channels\": {\n      \"type\": \"string\",\n      \"enum\": [\"sms\", \"chat\", \"email\", \"facebook\", \"voice\", \"twitter-dm\", \"twitter-tweet\", \"instagram\", \"whatsapp\"],\n      \"operator\": \"list\"\n    },\n    \"conversation_default_lang\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"any_text\": {\n      \"type\": \"string\",\n      \"operator\": \"any\"\n    },\n    \"tracking_events\": {\n      \"type\": \"string\",\n      \"operator\": \"number\"\n    },\n    \"conversation_sla_status\": {\n      \"type\": \"string\",\n      \"enum\": [\"done\", \"pending\", \"paused\"],\n      \"operator\": \"list\"\n    },\n    \"conversation_sla_version_id\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"conversation_sla_id\": {\n      \"type\": \"string\",\n      \"operator\": \"list\"\n    },\n    \"conversation_sla_breached\": {\n      \"type\": \"boolean\",\n      \"operator\": \"boolean\"\n    },\n    \"conversation_sla_breach_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_sla_satisfied_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n     \"conversation_sla_breach_metric\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"firstResponse\",\n        \"nextReply\",\n        \"totalCustomerWaitTime\",\n        \"longestUnrespondedMessage\",\n        \"totalConversationOpenTime\"\n      ],\n      \"operator\": \"list\"\n    },\n    \"conversation_first_done_created_by\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"conversation_last_done_created_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_last_done_created_by\": {\n      \"$ref\": \"#/definitions/user\",\n      \"operator\": \"list\"\n    },\n    \"conversation_last_done_created_by_teams\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(?=[A-Fa-f\\\\d]{24}$)(\\\\d+[A-Fa-f]|[A-Fa-f]+\\\\d)\",\n      \"collection\": \"teams\",\n      \"operator\": \"list\"\n    },\n    \"conversation_reply_channel\": {\n      \"type\": \"string\",\n      \"enum\": [\"sms\", \"chat\", \"email\", \"facebook\", \"voice\", \"twitter-dm\", \"twitter-tweet\", \"instagram\", \"whatsapp\"],\n      \"operator\": \"list\"\n    },\n    \"conversation_queue\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(?=[A-Fa-f\\\\d]{24}$)(\\\\d+[A-Fa-f]|[A-Fa-f]+\\\\d)\",\n      \"collection\": \"queues\",\n      \"operator\": \"list\"\n    },\n    \"conversation_external_queue\": {\n      \"type\": \"string\",\n      \"enum\": [\"amazon-connect\"],\n      \"operator\": \"list\"\n    },\n    \"conversation_ended\": {\n      \"type\": \"boolean\",\n      \"operator\": \"boolean\"\n    },\n    \"conversation_ended_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_ended_reason\": {\n      \"type\": \"string\",\n      \"operator\": \"string\"\n    },\n    \"conversation_imported_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_imported\": {\n      \"type\": \"boolean\",\n      \"operator\": \"boolean\"\n    },\n    \"kobject_any_text\": {\n      \"type\": \"string\",\n      \"operator\": \"any\"\n    },\n    \"kobject_created_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"kobject_updated_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"kobject_imported_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"kobject_imported\": {\n      \"type\": \"boolean\",\n      \"operator\": \"boolean\"\n    }\n  },\n  \"definitions\": {\n    \"user\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(?=[A-Fa-f\\\\d]{24}$)(\\\\d+[A-Fa-f]|[A-Fa-f]+\\\\d)\",\n      \"collection\": \"users\"\n    }\n  },\n  \"additionalProperties\": false\n}\n\n```\n\n**Authorization:** Requires any one of these roles: `org.permission.search.create`, `org.permission.search.update`, `org.permission.search_global.create`, `org.permission.search_preview.create`; or legacy `org.user.search.read`, `org.admin.search.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-customer-search"
       }
      },
      {
       "name": "Create customer archive search",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/archive/search",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "archive",
          "search"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "idsOnly",
           "value": "false",
           "description": "Optional. Set to `true` to return only matching IDs from search results.",
           "disabled": true
          },
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Optional. Saved search ID used to execute a stored query before searching.",
           "disabled": true
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"queryContext\": \"string\",\n  \"includeDeleted\": true,\n  \"timeZone\": \"string\",\n  \"and\": {},\n  \"or\": {},\n  \"not\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Searches across all customer data with criteria based on a limited number of attributes on standard objects, including Message, Conversation, and Company objects, and on custom objects. Returns standard objects and custom objects older than 2 years ago that are unavailable in standard searches.\n\n## Filter on dates\nYou can filter by dates in either a local date `YYYY-MM-DD` format or a UTC date format. If you include a timezone in the query, a local date will be adjusted to account for the included timezone. UTC dates will not be timezone adjusted.\n<br>\n### Example of search criteria with local date\n```json\n{\n    \"and\": [\n        {\n            \"conversation_created_at\": {\n                \"lte\": \"2020-11-19\"\n            }\n        }\n    ],\n    \"queryContext\": \"conversation\",\n    \"timeZone\": \"America/New_York\"\n}\n```\n#### Note\n> The default `GMT` timezone is applied when you exclude a timezone.\n\n### Example of search criteria with UTC date\n```json\n{\n    \"and\": [\n        {\n            \"conversation_created_at\": {\n                \"lte\": \"2020-11-20T16:34:00.000Z\"\n            }\n        }\n    ],\n    \"queryContext\": \"conversation\"\n}\n```\n\n## Filtering\nFor a list of available standard attributes, see [Standard attributes JSON schema](https://developer.kustomer.com/docs/concepts/search#standard-attributes-json-schema).\n\n### Example of search criteria with standard attributes\n```json\n[\n  {\"conversation_updated_at\": {\"gte\": \"2016-06-24\" }},\n  {\"conversation_customer_id\": {\"equals\": \"65f49506237963001f01a391\" }}\n]\n```\n## Sort on attributes\nYou can sort based on the following attributes:\n\n```\nconversation_created_at\nconversation_updated_at\nconversation_customer_id\nconversation_deleted\ncustomer_companyId\ncustomer_created_at\ncustomer_updated_at\ncustomer_deleted\nmessage_id\nmessage_created_at\nmessage_updated_at\nkobject_created_at\nkobject_updated_at\n^kobject.*_created_at$\n^kobject.*_updated_at$\ncompany_created_at\ncompany_updated_at\n```\n\n### Example of sort with attributes\n```\n{\"sort\": [{\"conversation_created_at\": \"asc\"}]}\n{\"sort\": [{\"message_id\": \"asc\"}, {\"message_created_at\": \"asc\"}]}\n```\n\n#### Note\n> Sorting based on other standard Object attributes is unavailable.\n\n## Pagination\nThere is a hard limit of **100** for the maximum number of pages.\n\nThere may be cases where you want to page through more records. For example, let's say you'd like to get an initial snapshot of data and then update the data.\n\nTo work around the pagination limit, you can write a query based on the `updated_at` attribute for a standard Object. You can then use the returned information in following API requests based on the last `updated_at` value from the response.\n\n## Filterable attributes JSON Schema\n\n```json\n{\n  \"type\": \"object\",\n  \"properties\": {\n    \"customer_any_text_new\": {\n      \"type\": \"string\",\n      \"operator\": \"any\"\n    },\n    \"customer_id\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"customer_created_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"customer_updated_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"customer_companyId\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"company_created_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"company_updated_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"message_any_text\": {\n      \"type\": \"string\",\n      \"operator\": \"any\"\n    },\n    \"message_created_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"message_updated_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"message_conversation_id\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"conversation_any_text\": {\n      \"type\": \"string\",\n      \"operator\": \"any\"\n    },\n    \"conversation_created_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_updated_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"conversation_customer_id\": {\n      \"type\": \"string\",\n      \"operator\": \"string_notanalyzed\"\n    },\n    \"kobject_any_text\": {\n      \"type\": \"string\",\n      \"operator\": \"any\"\n    },\n    \"kobject_created_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n    \"kobject_updated_at\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"operator\": \"datetime\"\n    },\n  },\n  \"additionalProperties\": false\n}\n\n```\n\n**Authorization:** Requires any one of these roles: `org.permission.search.create`, `org.permission.search.update`, `org.permission.search_global.create`, `org.permission.search_preview.create`; or legacy `org.user.search.read`, `org.admin.search.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-customer-archive-search"
       }
      }
     ]
    },
    {
     "name": "Satisfaction",
     "item": [
      {
       "name": "Get Satisfactions",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/satisfaction",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "satisfaction"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Number of pages to return for results. Default value: 1.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page. Default value: 100.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of satisfaction forms for the organization.\n\n**Authorization:** Requires any one of these roles: `org.permission.satisfaction.read`; or legacy `org.user.satisfaction.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-satisfactions"
       }
      },
      {
       "name": "Get satisfaction response",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/satisfaction-responses/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "satisfaction-responses",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Resource ID."
          }
         ]
        },
        "description": "Retrieves a satisfaction response by ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.satisfaction.read`, `org.permission.satisfaction_response.read`; or legacy `org.user.satisfaction.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-satisfaction-response"
       }
      }
     ]
    },
    {
     "name": "SLAs",
     "item": [
      {
       "name": "Get SLA by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/slas/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "slas",
          ":id"
         ],
         "query": [
          {
           "key": "versions",
           "value": "active",
           "description": "Optional. Option to include information about SLA versions. Use `all` to retrieve information about all versions. Use `active` to retrieve information about the active version only.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5fadc1ba6647f1953ff94916",
           "description": "Required. Unique SLA ID."
          }
         ]
        },
        "description": "Retrieves an [SLA](https://help.kustomer.com/service-level-agreements-SyZ4xWcgf) based on the unique SLA ID.\n\nUse the optional `versions` query param to retrieve information about SLA versions.\n\nIncluded SLA version `metrics` may configure **nextReply** (Next Reply time targets per priority) and optional **basedOnHumanInteraction** on **firstResponse** and **nextReply**. When `basedOnHumanInteraction` is `true`, only human-authored SENT outbound messages satisfy the metric. When omitted or `false`, any customer-visible SENT outbound satisfies it (legacy behavior).\n\n**Authorization:** Requires any one of these roles: `org.permission.sla.read`; or legacy `org.user.sla.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-sla-by-id"
       }
      }
     ]
    },
    {
     "name": "Sub-Statuses",
     "item": [
      {
       "name": "Get sub-statuses",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/sub-statuses?resource=",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "sub-statuses"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Number of pages to return for results. Default value: 1.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page. Default value: 100.",
           "disabled": true
          },
          {
           "key": "resource",
           "value": "",
           "description": "Required. Resource type to filter sub-statuses (conversation or kobject)",
           "disabled": false
          },
          {
           "key": "parentId",
           "value": "",
           "description": "Optional. Filter by parent status ID",
           "disabled": true
          },
          {
           "key": "parentName",
           "value": "",
           "description": "Optional. Filter by parent status name",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of sub-statuses for a specific resource type.\n\n**Authorization:** Requires any one of these roles: `org.permission.kobject.read`, `org.permission.sub_status.read`, `org.permission.conversation.read`; or legacy `org.user.kobject.read`, `org.user.conversation.read`, `org.admin.sub_status.read`, `org.admin.content.sub_status.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-sub-statuses"
       }
      },
      {
       "name": "Create sub-status",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/sub-statuses",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "sub-statuses"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"label\": \"Waiting for Customer\",\n  \"description\": \"Conversation is waiting for customer response\",\n  \"parentStatus\": \"open\",\n  \"resourceType\": \"conversation\",\n  \"default\": false\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new sub-status.\n\n**Authorization:** Requires any one of these roles: `org.permission.sub_status.create`; or legacy `org.admin.content.sub_status.write`, `org.admin.sub_status.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-sub-status"
       }
      },
      {
       "name": "Get sub-status by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/sub-statuses/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "sub-statuses",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Resource ID."
          }
         ]
        },
        "description": "Retrieves a specific sub-status by ID, or multiple sub-statuses by comma-separated IDs.\n\n**Authorization:** Requires any one of these roles: `org.permission.kobject.read`, `org.permission.sub_status.read`, `org.permission.conversation.read`; or legacy `org.user.kobject.read`, `org.user.conversation.read`, `org.admin.sub_status.read`, `org.admin.content.sub_status.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-sub-status-by-id"
       }
      },
      {
       "name": "Update sub-status",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/sub-statuses/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "sub-statuses",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Resource ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"label\": \"Waiting for Customer\",\n  \"description\": \"Conversation is waiting for customer response\",\n  \"default\": false\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates an existing sub-status.\n\n**Authorization:** Requires any one of these roles: `org.permission.sub_status.update`; or legacy `org.admin.content.sub_status.write`, `org.admin.sub_status.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-sub-status"
       }
      },
      {
       "name": "Delete sub-status",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/sub-statuses/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "sub-statuses",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Resource ID."
          }
         ]
        },
        "description": "Deletes a sub-status.\n\n**Authorization:** Requires any one of these roles: `org.permission.sub_status.delete`; or legacy `org.admin.content.sub_status.write`, `org.admin.sub_status.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-sub-status"
       }
      }
     ]
    },
    {
     "name": "Snoozes",
     "item": [
      {
       "name": "Get snoozes",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/snoozes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snoozes"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Number of pages to return for results. Default value: 1.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page. Default value: 100.",
           "disabled": true
          },
          {
           "key": "resource",
           "value": "",
           "description": "Optional. Resource type to filter snoozes (conversation or kobject)",
           "disabled": true
          },
          {
           "key": "klassId",
           "value": "",
           "description": "Optional. Filter by klass ID for kobject snoozes",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of snoozes for a specific resource type.\n\n**Authorization:** Requires any one of these roles: `org.permission.snooze.read`; or legacy `org.user.setting.read`, `org.admin.content.snooze.read`, `org.admin.snooze.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-snoozes"
       }
      },
      {
       "name": "Create snooze",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/snoozes?resource=",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snoozes"
         ],
         "query": [
          {
           "key": "resource",
           "value": "",
           "description": "Required. Resource type for the snooze (conversation or kobject)",
           "disabled": false
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"1 Hour\",\n  \"value\": 3600,\n  \"type\": \"relative\",\n  \"enabled\": true,\n  \"klassId\": \"567229511e4a481f0062f7kl\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new snooze option.\n\n**Authorization:** Requires any one of these roles: `org.permission.snooze.create`; or legacy `org.admin.content.snooze.write`, `org.admin.snooze.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/create-snooze"
       }
      },
      {
       "name": "Get snooze by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/snoozes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snoozes",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Resource ID."
          }
         ]
        },
        "description": "Retrieves a specific snooze by ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.snooze.read`; or legacy `org.user.setting.read`, `org.admin.content.snooze.read`, `org.admin.snooze.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-snooze-by-id"
       }
      },
      {
       "name": "Update snooze",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/snoozes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snoozes",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Resource ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"1 Hour\",\n  \"value\": 3600,\n  \"enabled\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates an existing snooze.\n\n**Authorization:** Requires any one of these roles: `org.permission.snooze.update`; or legacy `org.admin.content.snooze.write`, `org.admin.snooze.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-snooze"
       }
      },
      {
       "name": "Delete snooze",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/snoozes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snoozes",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Resource ID."
          }
         ]
        },
        "description": "Deletes a snooze.\n\n**Authorization:** Requires any one of these roles: `org.permission.snooze.delete`; or legacy `org.admin.content.snooze.write`, `org.admin.snooze.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-snooze"
       }
      },
      {
       "name": "Get snoozes by klass ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/snoozes/klass/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snoozes",
          "klass",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f8efdd5d3de932f344ca368",
           "description": "Required. Klass ID."
          }
         ]
        },
        "description": "Retrieves snoozes for a specific klass (kobject type).\n\n**Authorization:** Requires any one of these roles: `org.permission.snooze.read`; or legacy `org.user.setting.read`, `org.admin.content.snooze.read`, `org.admin.snooze.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-snoozes-by-klass-id"
       }
      }
     ]
    },
    {
     "name": "Spam",
     "item": [
      {
       "name": "Get spam senders",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/spam/senders",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "spam",
          "senders"
         ],
         "query": [
          {
           "key": "customer",
           "value": "5f8efdd5d3de932f344ca367",
           "description": "Optional. Filter spam senders by customer ID.",
           "disabled": true
          },
          {
           "key": "includeDeleted",
           "value": "false",
           "description": "Optional. Set to `true` to include deleted spam senders.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of senders.\n\n**Authorization:** Requires any one of these roles: `org.permission.spam.read`; or legacy `org.admin.spam.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-spam-senders"
       }
      },
      {
       "name": "Upsert spam sender",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/spam/senders",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "spam",
          "senders"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"channel\": \"email\",\n  \"sender\": \"allow@me.com\",\n  \"list\": \"whitelist\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Assigns a spam list status for a new sender, or updates the spam list status for an existing sender.\n\nYou can assign senders to a `list` status: `whitelist` (never considered spam) or `blacklist` (always considered spam).\n\n**Authorization:** Requires any one of these roles: `org.permission.spam.update`; or legacy `org.admin.spam.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/upsert-spam-sender"
       }
      },
      {
       "name": "Get a spam sender by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/spam/senders/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "spam",
          "senders",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f52b303775dbe9e4ed8f9a3",
           "description": "Required. Unique sender ID."
          }
         ]
        },
        "description": "Retrieves a spam sender based on the unique sender ID. Deleted senders are still returned, with `deleted` set to `true`.\n\n**Authorization:** Requires any one of these roles: `org.permission.spam.read`; or legacy `org.admin.spam.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/get-a-spam-sender-by-id"
       }
      },
      {
       "name": "Update a spam sender by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/spam/senders/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "spam",
          "senders",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f52b303775dbe9e4ed8f9a3",
           "description": "Required. Unique sender ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"list\": \"whitelist\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates the spam list status or deleted state of a spam sender based on the unique sender ID. Provide at least one of `list` or `deleted`. Set `deleted` to `false` to restore a deleted sender.\n\nA request that does not change `list` or `deleted` returns the sender unchanged.\n\n**Authorization:** Requires any one of these roles: `org.permission.spam.update`; or legacy `org.admin.spam.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/update-a-spam-sender-by-id"
       }
      },
      {
       "name": "Delete a spam sender",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/spam/senders/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "spam",
          "senders",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f52b303775dbe9e4ed8f9a3",
           "description": "Required. Unique sender ID."
          }
         ]
        },
        "description": "Deletes a spam sender based on the unique sender ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.spam.delete`; or legacy `org.admin.spam.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources/delete-a-spam-sender"
       }
      }
     ]
    }
   ]
  },
  {
   "name": "Core resources v2",
   "description": "Newer v2 endpoints for core CRM data, starting with conversation times.",
   "item": [
    {
     "name": "Conversations (Time)",
     "item": [
      {
       "name": "Get conversation times by conversation (v2)",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v2/conversations/:id/times",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v2",
          "conversations",
          ":id",
          "times"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number for pagination.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "asc",
           "description": "Optional. Sort order by `createdAt`. Use `asc` for ascending (oldest first). Defaults to descending (newest first).",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Unique ID of the conversation."
          }
         ]
        },
        "description": "Retrieves `conversation_time` records for the given conversation captured by the v2 timer. Results are filtered according to the org's AHT (Average Handle Time) settings, including focus-handling rules, excluded conversation statuses, and whether unassigned-agent time is counted.\n\n**Time units:** `handleTime`, `messageTime`, and `noteTime` are in **milliseconds**. This differs from the v1 endpoint (`GET /v1/conversations/{id}/times`), where these values are in seconds.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.read`; or legacy `org.user.conversation.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/core-resources-v2/get-conversation-times-by-conversation-v2"
       }
      }
     ]
    }
   ]
  },
  {
   "name": "Queues and routing",
   "description": "Queues, queue rules, routing statuses, team routing settings, work sessions, work items and live metrics.",
   "item": [
    {
     "name": "Metrics",
     "item": [
      {
       "name": "Queue metrics",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/chat/queues/metrics/:ids",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "chat",
          "queues",
          "metrics",
          ":ids"
         ],
         "query": [
          {
           "key": "rangeFrom",
           "value": "3600",
           "description": "Optional. Time range, in seconds, used for queue metrics analytics.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "ids",
           "value": "5f184e74c61792001af42e49,5f184e74c61792001af42e50",
           "description": "Required. Comma separated list of queue IDs to be included in the response. Limit of 80."
          }
         ]
        },
        "description": "Query for queue metrics by a single or multiple queue IDs.\n\n### Rate limit\nThis endpoint is rate limited as a metrics endpoint.\n\n### Metrics\n1. Latest Wait Time: The time that the latest customer waited on a queue.\n     note: If a requested queue has no activity for a day, it will return a `null` latest wait time.\n2. Latest Wait Time Since Queue Entry or Last Unpause: The time that the latest customer waited on a queue, calculated as the shorter of the following two time spans:\n    * Seconds from queue entry to queue exit\n    * Seconds from last unpause to queue exit\n3. Latest Wait Time Before or After Last Pause: The time that the latest customer waited on a queue, calculated in the following order:\n    * If the conversation was not snoozed, then return total queue time\n    * If item was snoozed and then un-snoozed, return time from unpause to queue exit\n    * If item was snoozed, but exited the queue before being un-snoozed, then return time from queue entry to snooze.\n\n**Authorization:** Requires any one of these roles: `org.permission.queue.read`; or legacy `org.admin`, `org.user`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/queue-metrics"
       }
      }
     ]
    },
    {
     "name": "Queue Rules",
     "item": [
      {
       "name": "Get queue rules",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/queue-rules",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "queue-rules"
         ],
         "query": [
          {
           "key": "enabled",
           "value": "true",
           "description": "Optional. When `true`, returns only enabled queue rules.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a list of queue rules.\n\n**Authorization:** Requires any one of these roles: `org.permission.queue_rule.read`, `org.permission.routing.read`; or legacy `org.admin.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-queue-rules"
       }
      },
      {
       "name": "Create queue rule",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/queue-rules",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "queue-rules"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "null",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new queue rule.\n\n**Authorization:** Requires any one of these roles: `org.permission.queue_rule.create`, `org.permission.routing.create`; or legacy `org.admin.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/create-queue-rule"
       }
      },
      {
       "name": "Get queue rule",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/queue-rules/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "queue-rules",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Queue Rule ID"
          }
         ]
        },
        "description": "Retrieves a queue rule based on its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.queue_rule.read`, `org.permission.routing.read`; or legacy `org.admin.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-queue-rule"
       }
      },
      {
       "name": "Update queue rule",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/queue-rules/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "queue-rules",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Queue Rule ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "null",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a queue rule based on its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.queue_rule.update`, `org.permission.routing.update`; or legacy `org.admin.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/update-queue-rule"
       }
      },
      {
       "name": "Delete queue rule",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/queue-rules/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "queue-rules",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Queue Rule ID"
          }
         ]
        },
        "description": "Deletes a queue rule based on its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.queue_rule.delete`, `org.permission.routing.delete`; or legacy `org.admin.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/delete-queue-rule"
       }
      },
      {
       "name": "Get queue criteria",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/queue-rules-criteria",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "queue-rules-criteria"
         ]
        },
        "description": "Retrieves queue rule criteria.\n\n**Authorization:** Requires any one of these roles: `org.permission.queue_rule.read`, `org.permission.routing.read`; or legacy `org.admin.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-queue-criteria"
       }
      },
      {
       "name": "Update queue rule order",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/queue-rules/order",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "queue-rules",
          "order"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"rules\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates the order of queue rules.\n\n**Authorization:** Requires any one of these roles: `org.permission.queue_rule.update`, `org.permission.routing.update`; or legacy `org.admin.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/update-queue-rule-order"
       }
      }
     ]
    },
    {
     "name": "Queues",
     "item": [
      {
       "name": "Get queues",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/queues",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "queues"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          },
          {
           "key": "system",
           "value": "true",
           "description": "Optional. When `true`, returns system queues.",
           "disabled": true
          },
          {
           "key": "key",
           "value": "default",
           "description": "Optional. Filter queues by key.",
           "disabled": true
          },
          {
           "key": "all",
           "value": "false",
           "description": "Optional. When `true`, includes deleted queues.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of queues.\n\n**Authorization:** Requires any one of these roles: `org.permission.queue.read`, `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-queues"
       }
      },
      {
       "name": "Create queue",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/queues",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "queues"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"key\": \"string\",\n  \"displayName\": \"Example display name\",\n  \"description\": \"Example text\",\n  \"itemSize\": 50,\n  \"priority\": 0\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new queue.\n\n**Authorization:** Requires any one of these roles: `org.permission.routing.create`, `org.permission.queue.create`; or legacy `org.admin.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/create-queue"
       }
      },
      {
       "name": "Get queue",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/queues/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "queues",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Queue ID"
          }
         ]
        },
        "description": "Retrieves a queue by unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.queue.read`, `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-queue"
       }
      },
      {
       "name": "Update queue by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/queues/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "queues",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Queue ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"key\": \"string\",\n  \"displayName\": \"Example display name\",\n  \"description\": \"Example text\",\n  \"itemSize\": 50,\n  \"priority\": 0\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a queue based on the unique queue ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.routing.update`, `org.permission.queue.update`; or legacy `org.admin.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/update-queue-by-id"
       }
      }
     ]
    },
    {
     "name": "Routing User Statuses",
     "item": [
      {
       "name": "Get routing user statuses",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/statuses",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "statuses"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of routing user statuses.\n\n**Authorization:** Requires any one of these roles: `org.permission.routing_status.read`, `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-routing-user-statuses"
       }
      },
      {
       "name": "Create routing user status",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/statuses",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "statuses"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"Jane Doe\",\n  \"description\": \"Example text\",\n  \"externalId\": \"crm-10293\",\n  \"enabled\": true,\n  \"statusType\": \"unavailable\",\n  \"selectable\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new routing user status.\n\n**Authorization:** Requires any one of these roles: `org.permission.routing_status.create`, `org.permission.routing.create`; or legacy `org.admin.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/create-routing-user-status"
       }
      },
      {
       "name": "Get routing user status",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/statuses/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "statuses",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Routing Status ID"
          }
         ]
        },
        "description": "Retrieves a routing status based on its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.routing_status.read`, `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-routing-user-status"
       }
      },
      {
       "name": "Update routing user status",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/statuses/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "statuses",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Status ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"Jane Doe\",\n  \"description\": \"Example text\",\n  \"externalId\": \"crm-10293\",\n  \"enabled\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a routing user status based on its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.routing_status.update`, `org.permission.routing.update`; or legacy `org.admin.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/update-routing-user-status"
       }
      }
     ]
    },
    {
     "name": "Team Routing Settings",
     "item": [
      {
       "name": "Get all team routing settings",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "settings"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of team routing settings.\n\n**Authorization:** Requires any one of these roles: `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-all-team-routing-settings"
       }
      },
      {
       "name": "Get current user's team routing settings",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/users/current/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "users",
          "current",
          "settings"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves all team routing settings for the current user.\n\n**Authorization:** Requires any one of these roles: `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-current-users-team-routing-settings"
       }
      },
      {
       "name": "Get team routing settings",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/settings/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "settings",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Team ID"
          }
         ]
        },
        "description": "Retrieves a team's routing settings by its unique team ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-team-routing-settings"
       }
      },
      {
       "name": "Update team routing settings",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/settings/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "settings",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Team ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"queues\": [\n    \"string\"\n  ],\n  \"externalQueues\": [\n    \"amazon-connect\"\n  ],\n  \"enabled\": true,\n  \"workItemCapacity\": 0,\n  \"capacity\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a team's routing settings by its unique team ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.routing.update`; or legacy `org.admin.team.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/update-team-routing-settings"
       }
      }
     ]
    },
    {
     "name": "Work Items",
     "item": [
      {
       "name": "Get work items",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/work-items",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "work-items"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort direction.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of work items.\n\n**Authorization:** Requires any one of these roles: `org.permission.work_item.read`, `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-work-items"
       }
      },
      {
       "name": "Create work item",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/work-items",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "work-items"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"resource\": {\n    \"id\": \"65f2c0a1b4e3d2001234abcd\",\n    \"type\": \"conversation\",\n    \"direction\": \"in\"\n  },\n  \"channel\": \"string\",\n  \"createdAt\": \"2026-03-14T15:09:26.535Z\",\n  \"queue\": {\n    \"id\": \"65f2c0a1b4e3d2001234abcd\",\n    \"external\": \"amazon-connect\",\n    \"enteredAt\": \"2026-03-14T15:09:26.535Z\"\n  },\n  \"assignedTo\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new work item.\n\n**Authorization:** Requires any one of these roles: `org.permission.routing.create`; or legacy `org.user.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/create-work-item"
       }
      },
      {
       "name": "Get next work item in a queue",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/queues/:id/work-items/next",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "queues",
          ":id",
          "work-items",
          "next"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Queue ID"
          }
         ]
        },
        "description": "Retrieves the next queued work item in a queue.\n\n**Authorization:** Requires any one of these roles: `org.permission.queue.read`, `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-next-work-item-in-a-queue"
       }
      },
      {
       "name": "Get work item",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/work-items/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "work-items",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Work Item ID"
          }
         ]
        },
        "description": "Retrieves a work item based on its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.work_item.read`, `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-work-item"
       }
      },
      {
       "name": "Update work item",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/work-items/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "work-items",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Work Item ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"queue\": null,\n  \"routed\": {\n    \"to\": \"string\",\n    \"at\": \"2026-03-14T15:09:26.535Z\"\n  },\n  \"accepted\": {\n    \"at\": \"2026-03-14T15:09:26.535Z\",\n    \"by\": \"string\",\n    \"workSession\": \"string\"\n  },\n  \"status\": \"assigned\",\n  \"paused\": true,\n  \"rev\": 0\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a work item based on its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.work_item.update`, `org.permission.routing.update`; or legacy `org.user.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/update-work-item"
       }
      },
      {
       "name": "Get work items by conversation",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/conversations/:id/work-items",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "conversations",
          ":id",
          "work-items"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          },
          {
           "key": "status",
           "value": "queued",
           "description": "Optional. Filter work items by status. Supported values are `ivr`, `queued`, `routed`, `assigned`, `wrap-up`, `!wrap-up`, and `completed`.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Conversation ID"
          }
         ]
        },
        "description": "Retrieves a paginated list of work items based on its unique conversation ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-work-items-by-conversation"
       }
      },
      {
       "name": "Get work items in a queue",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/queues/:id/work-items",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "queues",
          ":id",
          "work-items"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort direction.",
           "disabled": true
          },
          {
           "key": "status",
           "value": "queued",
           "description": "Optional. Filter work items by status. Supported values are `ivr`, `queued`, `routed`, `assigned`, `wrap-up`, `!wrap-up`, and `completed`.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Queue ID"
          }
         ]
        },
        "description": "Retrieves a paginated list of work items.\n\n**Authorization:** Requires any one of these roles: `org.permission.queue.read`, `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-work-items-in-a-queue"
       }
      }
     ]
    },
    {
     "name": "Work Sessions",
     "item": [
      {
       "name": "Get work sessions",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/work-sessions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "work-sessions"
         ],
         "query": [
          {
           "key": "user",
           "value": "true",
           "description": "Optional. User work sessions. `true` returns only current users work sessions. `false` returns only all users work sessions.",
           "disabled": true
          },
          {
           "key": "active",
           "value": "true",
           "description": "Optional. Active work sessions. `true` returns only active work sessions. `false` returns all work sessions.",
           "disabled": true
          },
          {
           "key": "statusType",
           "value": "busy",
           "description": "Optional. Status type. Options: `available` for available users, `unavailable` for unavailable users, `busy` for busy users, and `offline` for offline users.",
           "disabled": true
          },
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort direction.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of work sessions.\n\n## Filtering\n\nThis endpoint supports optional filters for user, active status, and status type.\n\n### User (current user querying)\nAdd ```user=(true|false)``` in the query parameters with one of the following options:\n\n- `true` - Return current users work sessions\n- `false` - Return all users work sessions\n\n### Active\nAdd ```active=(true|false)``` in the query parameters with one of the following options:\n\n- `true` - Return current active work sessions\n- `false` - Return all work sessions\n\n### Status Type\nAdd ```statusType=[statusType]``` in the query parameters with one of the following options:\n\n- `available` - Available work sessions\n- `unavailable` - Unavailable work sessions\n- `busy` - Busy work sessions\n\n**Authorization:** Requires any one of these roles: `org.permission.work_session.read`, `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-work-sessions"
       }
      },
      {
       "name": "Get work sessions by queue ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/queues/:id/work-sessions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "queues",
          ":id",
          "work-sessions"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          },
          {
           "key": "routable",
           "value": "true",
           "description": "Optional. When `true`, returns only routable work sessions.",
           "disabled": true
          },
          {
           "key": "statusType",
           "value": "available",
           "description": "Optional. Filter by work session status type. Supported values are `available`, `unavailable`, `busy`, and `offline`.",
           "disabled": true
          },
          {
           "key": "channel",
           "value": "voice",
           "description": "Optional. Filter queue work sessions by channel.",
           "disabled": true
          },
          {
           "key": "app",
           "value": "kustomer",
           "description": "Optional. Filter queue work sessions by app.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Queue ID"
          }
         ]
        },
        "description": "Retrieves a paginated list of work sessions by queue ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.queue.read`, `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-work-sessions-by-queue-id"
       }
      },
      {
       "name": "Get work sessions by user ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/users/:id/work-sessions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "users",
          ":id",
          "work-sessions"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          },
          {
           "key": "statusType",
           "value": "available",
           "description": "Optional. Filter by work session status type. Supported values are `available`, `unavailable`, `busy`, and `offline`.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. User ID"
          }
         ]
        },
        "description": "Retrieves a paginated list of work sessions by user ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-work-sessions-by-user-id"
       }
      }
     ]
    },
    {
     "name": "Work Sessions (by Session ID)",
     "item": [
      {
       "name": "Get work items By work session",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/work-sessions/:id/work-items",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "work-sessions",
          ":id",
          "work-items"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Work Session ID"
          }
         ]
        },
        "description": "Retrieves the list of work items in a work session.\n\n**Authorization:** Requires any one of these roles: `org.permission.work_session.read`, `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-work-items-by-work-session"
       }
      },
      {
       "name": "Get work session by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/work-sessions/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "work-sessions",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Work Session ID"
          }
         ]
        },
        "description": "Retrieves work sessions based on its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.work_session.read`, `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-work-session-by-id"
       }
      },
      {
       "name": "Update work session by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/work-sessions/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "work-sessions",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Work Session ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"status\": \"string\",\n  \"team\": \"string\",\n  \"rev\": 0\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates work session by its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.work_session.update`, `org.permission.routing.update`; or legacy `org.user.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/update-work-session-by-id"
       }
      }
     ]
    },
    {
     "name": "Work Sessions (Current)",
     "item": [
      {
       "name": "Get current work session",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/work-sessions/current",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "work-sessions",
          "current"
         ]
        },
        "description": "Retrieves the current work session.\n\n**Authorization:** Requires any one of these roles: `org.permission.work_session.read`, `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-current-work-session"
       }
      },
      {
       "name": "Update current work session",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/work-sessions/current",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "work-sessions",
          "current"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"status\": \"string\",\n  \"team\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates the current work session.\n\n**Authorization:** Requires any one of these roles: `org.permission.work_session.update`, `org.permission.routing.update`; or legacy `org.user.routing.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/update-current-work-session"
       }
      },
      {
       "name": "Get current work session by user ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/users/:id/work-sessions/current",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "users",
          ":id",
          "work-sessions",
          "current"
         ],
         "query": [
          {
           "key": "statusType",
           "value": "available",
           "description": "Optional. Filter by work session status type. Supported values are `available`, `unavailable`, `busy`, and `offline`.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. User ID"
          }
         ]
        },
        "description": "Retrieves the current work session by user ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-current-work-session-by-user-id"
       }
      },
      {
       "name": "Get work items in current work session",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/routing/work-sessions/current/work-items",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "routing",
          "work-sessions",
          "current",
          "work-items"
         ]
        },
        "description": "Retrieves the list of work items in the current work session.\n\n**Authorization:** Requires any one of these roles: `org.permission.work_session.read`, `org.permission.routing.read`; or legacy `org.user.routing.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/queues-and-routing/get-work-items-in-current-work-session"
       }
      }
     ]
    }
   ]
  },
  {
   "name": "Chat conversations",
   "description": "Server-side chat sessions, messages and handoff with an API token (v2.1).",
   "item": [
    {
     "name": "Chat Conversations",
     "item": [
      {
       "name": "List chat sessions",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v2.1/chat/sessions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v2.1",
          "chat",
          "sessions"
         ],
         "query": [
          {
           "key": "customerId",
           "value": "55d7998f2d3f9f8800099aee",
           "description": "Optional. Kustomer customer ID. Required if `trackingId` is omitted.",
           "disabled": true
          },
          {
           "key": "trackingId",
           "value": "55d7998f2d3f9f8800099aee",
           "description": "Optional. Chat tracking ID. Required if `customerId` is omitted.",
           "disabled": true
          },
          {
           "key": "active",
           "value": "",
           "description": "Optional. When set, only return sessions whose lock/deleted state matches (SDK parity). Active sessions must also have `lastMessageAt`.",
           "disabled": true
          },
          {
           "key": "brandId",
           "value": "55d7998f2d3f9f8800099aee",
           "description": "Optional. Filter sessions by brand.",
           "disabled": true
          },
          {
           "key": "page",
           "value": "",
           "description": "Optional. Page number for pagination.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "",
           "description": "Optional. Page size for pagination.",
           "disabled": true
          }
         ]
        },
        "description": "List chat sessions for a customer and/or tracking id using an API token.\n\nIdentity is supplied via query parameters (`customerId`, `trackingId`),\nnot via a `/c/` tracking JWT. At least one of `customerId` or `trackingId`\nis required (**400** if neither is provided). When both are present,\nsessions matching either identity are returned (SDK-style `$or` union).\n\nOptional `active` and `brandId` match Chat SDK `GET /c/v1/chat/sessions`\nfilter semantics. Results are sorted by `lastMessageAt` descending and\npaginated.\n\nThis is distinct from the private `GET /v1/customers/{customerId}/chat/sessions`\nroute (customer path only; not documented here).\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.read`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/chat/list-chat-sessions"
       }
      },
      {
       "name": "Create a chat session",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v2.1/chat/sessions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v2.1",
          "chat",
          "sessions"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"customerId\": \"55d7998f2d3f9f8800099aee\",\n  \"title\": \"Order help\",\n  \"isInAssistantMode\": false\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Create a linked chat session for a customer using an API token.\n\nIdentity is supplied in the JSON body (`customerId`, optional `trackingId`),\nnot via a `/c/` tracking JWT. Unlike `POST /c/v2.1/chat/sessions`, this route\nalways creates a **linked** session (sobjects conversation).\n\nIf `trackingId` is omitted, the API may reuse the tracking id from the\ncustomer's latest prior chat session that had one. If none is found, the\nsession is still created and `trackingId` may be unset.\n\n### Assistant bootstrap\n\nWhen the request includes **`assistant`**, Kustomer also bootstraps the\nassistant dialog during this create call:\n\n1. Resolves the assistant's opening dialog/node and greeting / opening\n   messages (same logic as customer `assistant/init`).\n2. Persists those outbound greeting messages on the session.\n3. Creates assistant run state on that dialog/node with\n   `progress.status: ready` so a later customer reply (for example via\n   Chat SDK `/c/v2/chat/assistant/messages`) can continue the tree\n   **without** a separate mock inbound kickoff.\n4. May publish the greeting messages on the session's PubNub conversation\n   channel immediately after create.\n\nThe **201** session payload may reflect updated `preview` /\n`lastMessageAt` after greetings are persisted. Bootstrap failures are\n**soft-failed**: they are logged and do **not** change the success\nresponse (session create still returns **201**). Duplicate assistant\nstate (HTTP 409 from Kustomer) is treated as idempotent success.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.create`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/chat/create-a-chat-session"
       }
      },
      {
       "name": "Create a chat session via handoff",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v2.1/chat/handoff",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v2.1",
          "chat",
          "handoff"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"customerId\": \"55d7998f2d3f9f8800099aee\",\n  \"active\": true,\n  \"from\": \"external-bot\",\n  \"externalId\": \"ext-thread-98765\",\n  \"lang\": \"en\",\n  \"messages\": [\n    {\n      \"date\": \"2026-03-18T15:00:00.000Z\",\n      \"direction\": \"in\",\n      \"body\": \"I need help with my order\"\n    },\n    {\n      \"date\": \"2026-03-18T15:00:30.000Z\",\n      \"direction\": \"out\",\n      \"body\": \"Connecting you with an agent\"\n    }\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Import an existing external conversation into Kustomer chat by creating a\nsession and persisting historical messages in one call.\n\nIdentity is supplied in the JSON body (`customerId`, optional `trackingId`), not\nvia a `/c/` tracking JWT. Unlike customer SDK handoff\n(`POST /c/v2.1/chat/handoff`), this API-token route does not require a tracking\nJWT; optional `trackingId` may be supplied on the request (see\n`CreateChatHandoffRequest`).\n\nMessages are validated and sorted by `date`. The array must include at least\none inbound (`direction: in`) and one outbound (`direction: out`) message\n(2–100 messages total). `from` is applied to all outbound messages. Optional\n`externalId` is stored on the session custom attributes for linking back to the\nexternal thread. When `active` is `false`, the session is created closed (and\nCSAT may be offered when enabled for the org).\n\nHistorical messages are inserted without PubNub fan-out during import, then\nmirrored to CRM conversation messages.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.create`, `org.permission.message.create`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/chat/create-a-chat-session-via-handoff"
       }
      },
      {
       "name": "List messages for a chat session",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v2.1/chat/sessions/:id/messages",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v2.1",
          "chat",
          "sessions",
          ":id",
          "messages"
         ],
         "query": [
          {
           "key": "page",
           "value": "",
           "description": "Optional. Page number for pagination.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "",
           "description": "Optional. Page size for pagination.",
           "disabled": true
          },
          {
           "key": "fields",
           "value": "",
           "description": "Optional. Comma-separated message field names to include (e.g. `id,body`). When omitted, the default message view attributes are returned.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "55d7998f2d3f9f8800099aee",
           "description": "Required. Chat session ID."
          }
         ]
        },
        "description": "List chat messages for a session using an API token.\n\nReturns paginated `chat_message` resources for the given session id,\nscoped to the caller's organization. Optional `fields` selects which\nmessage attributes to include. Results are paginated.\n\nDistinct from customer SDK `GET /c/v1/chat/sessions/{id}/messages`\n(tracking JWT). Session metadata alone is available via\n`GET /v2.1/chat/sessions` (ListChatSessions); message bodies require\nthis endpoint.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.read`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/chat/list-messages-for-a-chat-session"
       }
      },
      {
       "name": "Create an inbound chat message",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v2.1/chat/messages",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v2.1",
          "chat",
          "messages"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"customerId\": \"55d7998f2d3f9f8800099aee\",\n  \"session\": \"5679792fbc351e1d007a2993\",\n  \"body\": \"Hello from the customer\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Post a **customer inbound** chat message on an existing session using an API token.\n\n`customerId` is required. Provide `session` with either `body` or `attachments`\n(or both). `customerId` must match the session customer. If the session has a\n`trackingId`, a supplied `trackingId` must match it; if omitted, the session\nvalue is used when present.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.create`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/chat/create-an-inbound-chat-message"
       }
      },
      {
       "name": "Create an inbound assistant chat message",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "x-kustomer-original-client",
          "value": "",
          "description": "Optional. Optional original client identifier (same semantics as other assistant create routes).",
          "disabled": true
         },
         {
          "key": "x-kustomer-original-version",
          "value": "",
          "description": "Optional. Optional original client version (same semantics as other assistant create routes).",
          "disabled": true
         },
         {
          "key": "Origin",
          "value": "",
          "description": "Optional. Request origin. Some `assistantOptions` combinations may return 403 when not permitted for the origin.",
          "disabled": true
         },
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v2.1/chat/assistant/messages",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v2.1",
          "chat",
          "assistant",
          "messages"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"customerId\": \"55d7998f2d3f9f8800099aee\",\n  \"session\": \"5679792fbc351e1d007a2993\",\n  \"body\": \"User message for assistant\",\n  \"assistant\": \"507f191e810c19729de860ea\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Post an **inbound assistant** message (user line in the assistant flow) using\nan API token. Session, customer, and `trackingId` rules match\n`POST /v2.1/chat/messages`.\n\nProvide `session` with either `body` or `attachments`. Optional headers such as\n`x-kustomer-original-client` and `x-kustomer-original-version` are supported like\nother assistant create routes. Some `assistantOptions` combinations may return\n403 depending on `Origin`.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.create`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/chat/create-an-inbound-assistant-chat-message"
       }
      },
      {
       "name": "Create an outbound agent chat message",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v2.1/chat/outbound/messages",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v2.1",
          "chat",
          "outbound",
          "messages"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"customerId\": \"55d7998f2d3f9f8800099aee\",\n  \"from\": \"5679792fbc351e1d007a2994\",\n  \"session\": \"5679792fbc351e1d007a2993\",\n  \"body\": \"Thanks — we are looking into your order.\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Send an **agent outbound** chat message on an existing session using an API token.\n\n`customerId` and `from` (org user id of the sender) are required. Provide\n`session` with either `body` or `attachments`. `trackingId` follows the same\nsession matching rules as inbound message routes.\n\nOptional `auto: true` marks the message as AI/automation-authored so it is\nexcluded from human-interaction FRT. Omitting `auto` is valid and leaves the\nfield unset (backward compatible).\n\n**Authorization:** Requires any one of these roles: `org.permission.message.create`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/chat/create-an-outbound-agent-chat-message"
       }
      },
      {
       "name": "Create an outbound assistant chat message",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v2.1/chat/outbound/assistant/messages",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v2.1",
          "chat",
          "outbound",
          "assistant",
          "messages"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"customerId\": \"55d7998f2d3f9f8800099aee\",\n  \"from\": \"5679792fbc351e1d007a2994\",\n  \"session\": \"5679792fbc351e1d007a2993\",\n  \"body\": \"Here is the answer from the assistant flow.\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Send an **outbound assistant** line using an API token.\n\n`customerId` and `from` (attributed org user) are required. Provide **exactly one** of:\n`session` + `body`, `session` + `meta` (with `meta.template`), or\n`session` + `attachments` (not combinations of those content modes).\n\n**Authorization:** Requires any one of these roles: `org.permission.message.create`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/chat/create-an-outbound-assistant-chat-message"
       }
      },
      {
       "name": "Show or hide agent/AI typing indicator",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v2.1/chat/outbound/typing",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v2.1",
          "chat",
          "outbound",
          "typing"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"customerId\": \"55d7998f2d3f9f8800099aee\",\n  \"from\": \"5679792fbc351e1d007a2994\",\n  \"session\": \"5679792fbc351e1d007a2993\",\n  \"typing\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Emit an ephemeral PubNub typing signal for a chat session using an API token.\n\n- `typing: true` shows a normal agent indicator (`user-typing`), or the AI\n  indicator (`ai-assistant-user-typing`) when `ai: true`.\n- `typing: false` hides the indicator (`user-typing-ended`).\n\nThe API consumer owns the typing lifecycle. Sending an outbound message does\n**not** hide the indicator; call this endpoint with `typing: false` to clear it.\nRefresh long-running typing approximately every three seconds.\n\n`customerId`, `from`, `session`, and `typing` are required. Optional `trackingId`\nfollows the same session matching rules as other v2.1 API-token chat routes.\nNo tracking token is required.\n\n**Authorization:** Requires any one of these roles: `org.permission.message.create`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/chat/show-or-hide-agent-ai-typing-indicator"
       }
      },
      {
       "name": "Update a chat satisfaction response",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v2.1/chat/satisfaction-responses/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v2.1",
          "chat",
          "satisfaction-responses",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "satisfaction",
           "description": "Optional. Set to `satisfaction` to include the satisfaction form in the response.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "55d7998f2d3f9f8800099aee",
           "description": "Required. Satisfaction response ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"customerId\": \"55d7998f2d3f9f8800099aee\",\n  \"rating\": 5,\n  \"submittedAt\": \"2026-07-15T13:30:00.000Z\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Submit or update a customer's CSAT response for chat using an API token.\n\nThe satisfaction response must already exist and belong to `customerId`.\nOptional `trackingId` must match the response's chat session when supplied.\n\nAccepted body shapes (in addition to required `customerId`):\n\n- **Rated:** include `rating` and omit `answers`.\n- **Commented:** include `answers` (with or without `rating`).\n- **Mark read:** include `read: true` (other fields optional).\n\nStatus precedence: a request with `answers` is marked **commented**; a request\nwith a `rating` and no `answers` is marked **rated**.\n\nUse `?include=satisfaction` to include the satisfaction form (with\nrating-appropriate follow-up questions) in the response.\n\nDistinct from CRM satisfaction routes under\n[Core Resources](https://developer.kustomer.com/api).\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.update`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/chat/update-a-chat-satisfaction-response"
       }
      }
     ]
    }
   ]
  },
  {
   "name": "Knowledge base",
   "description": "Knowledge bases, articles, categories, versions and languages, forms, themes, templates, routes and custom domains.",
   "item": [
    {
     "name": "Articles",
     "item": [
      {
       "name": "Get Articles",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "includeLang",
           "value": "en_us",
           "description": "Optional. Include localized language data in the article response.",
           "disabled": true
          },
          {
           "key": "includeBody",
           "value": "true",
           "description": "Optional. Whether to include article version body content.",
           "disabled": true
          }
         ]
        },
        "description": "Get all articles\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-articles"
       }
      },
      {
       "name": "Create an Article",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"title\": \"Example title\",\n  \"slug\": \"string\",\n  \"hash\": \"string\",\n  \"category\": \"string\",\n  \"tags\": [\n    \"vip\"\n  ],\n  \"externalId\": \"crm-10293\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new article.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.create`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/create-an-article"
       }
      },
      {
       "name": "Get Article by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "versions,categories",
           "description": "Optional. Comma-separated related resources to include. Supported values are `versions` and `categories`.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Article ID"
          }
         ]
        },
        "description": "Returns a single Knowledge Base Article matching the ID. Use `include=versions,categories` to include related article versions or categories.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-article-by-id"
       }
      },
      {
       "name": "Update Article",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Article ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"category\": \"string\",\n  \"categories\": [\n    {\n      \"id\": \"65f2c0a1b4e3d2001234abcd\"\n    }\n  ],\n  \"knowledgeBases\": [\n    {\n      \"id\": \"65f2c0a1b4e3d2001234abcd\",\n      \"featured\": true\n    }\n  ],\n  \"tags\": [\n    \"vip\"\n  ],\n  \"externalId\": \"crm-10293\",\n  \"status\": \"unpublished\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates an article.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.update`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/update-article"
       }
      },
      {
       "name": "Search Articles",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles/search",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles",
          "search"
         ],
         "query": [
          {
           "key": "term",
           "value": "new",
           "description": "Optional. Search term to match against article content.",
           "disabled": true
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Optional. Language code for filtering article results.",
           "disabled": true
          },
          {
           "key": "scope",
           "value": "public,internal",
           "description": "Optional. Comma-separated scopes to search. Supported values are `public` and `internal`.",
           "disabled": true
          },
          {
           "key": "index",
           "value": "articles",
           "description": "Optional. Search index override.",
           "disabled": true
          },
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "searchFields",
           "value": "title,htmlBody",
           "description": "Optional. Fields to include in the search.",
           "disabled": true
          },
          {
           "key": "knowledgeBaseId",
           "value": "5e15fa56a07888001927f8e5",
           "description": "Optional. Knowledge Base ID used to scope public article results when it cannot be inferred from the subdomain.",
           "disabled": true
          }
         ]
        },
        "description": "Returns articles matching the query\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/search-articles"
       }
      }
     ]
    },
    {
     "name": "Articles (Public)",
     "item": [
      {
       "name": "Get Articles (Public)",
       "request": {
        "method": "GET",
        "auth": {
         "type": "noauth"
        },
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/p/v3/kb/articles",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "p",
          "v3",
          "kb",
          "articles"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Optional. Language code for filtering article results.",
           "disabled": true
          },
          {
           "key": "knowledgeBaseId",
           "value": "5e15fa56a07888001927f8e5",
           "description": "Optional. Knowledge Base ID used to scope public article results when it cannot be inferred from the subdomain.",
           "disabled": true
          }
         ]
        },
        "description": "Fetch articles for a Knowledge Base through the public-facing KB route. This endpoint resolves the Knowledge Base from the request context and accepts a `knowledgeBaseId` query parameter when the subdomain does not include the org's brand.\n\n**Authorization:** No authentication. Callable without an API key.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-articles-public"
       }
      },
      {
       "name": "Search Articles (Public)",
       "request": {
        "method": "GET",
        "auth": {
         "type": "noauth"
        },
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/p/v3/kb/articles/search",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "p",
          "v3",
          "kb",
          "articles",
          "search"
         ],
         "query": [
          {
           "key": "term",
           "value": "new",
           "description": "Optional. Search term to match against article content.",
           "disabled": true
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Optional. Language code for filtering article results.",
           "disabled": true
          },
          {
           "key": "index",
           "value": "articles",
           "description": "Optional. Search index override.",
           "disabled": true
          },
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "knowledgeBaseId",
           "value": "5e15fa56a07888001927f8e5",
           "description": "Optional. Knowledge Base ID used to scope public article results when it cannot be inferred from the subdomain.",
           "disabled": true
          }
         ]
        },
        "description": "Search for articles in a Knowledge Base through the public-facing KB route. This endpoint resolves the Knowledge Base from the request context and accepts a `knowledgeBaseId` query parameter when the subdomain does not include the org's brand.\n\n**Authorization:** No authentication. Callable without an API key.\n\nReference: https://developer.kustomer.com/api/knowledge-base/search-articles-public"
       }
      }
     ]
    },
    {
     "name": "Articles (Schedules)",
     "item": [
      {
       "name": "Create article schedule",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles/:id/schedules",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles",
          ":id",
          "schedules"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Article ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"publishAt\": \"2026-03-14T15:09:26.535Z\",\n  \"lang\": \"string\",\n  \"tz\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Create a schedule for an article. The schedule is a date in the future when you want the article to be published. An article needs to have a current draft to create a schedule.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.create`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/create-article-schedule"
       }
      },
      {
       "name": "Update Article Schedule",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles/:id/schedules/:type/:lang",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles",
          ":id",
          "schedules",
          ":type",
          ":lang"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Id of article"
          },
          {
           "key": "type",
           "value": "publish",
           "description": "Required. Schedule type. Currently supported value is `publish`."
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Required. Language code for the article version."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"publishAt\": \"2026-03-14T15:09:26.535Z\",\n  \"tz\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates an article publication schedule.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.update`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/update-article-schedule"
       }
      },
      {
       "name": "Delete Article Schedule",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles/:id/schedules/:type/:lang",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles",
          ":id",
          "schedules",
          ":type",
          ":lang"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Id of article"
          },
          {
           "key": "type",
           "value": "publish",
           "description": "Required. Schedule type. Currently supported value is `publish`."
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Required. Language code for the article version."
          }
         ]
        },
        "description": "Delete Article Schedule.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.delete`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/delete-article-schedule"
       }
      }
     ]
    },
    {
     "name": "Articles (Versioning and Languages)",
     "item": [
      {
       "name": "Get Article Versions by Language",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles/:id/versions/:lang",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles",
          ":id",
          "versions",
          ":lang"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "withBody",
           "value": "none",
           "description": "Optional. Use `none` to omit `htmlBody` from article version results.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Article ID"
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Required. Language code for the article version."
          }
         ]
        },
        "description": "Returns all versions of an article for a specific language. Each version includes read-only `relationships.attachments` derived from `htmlBody` `data-media-id` values.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-article-versions-by-language"
       }
      },
      {
       "name": "Create a Version",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles/:id/versions/:lang",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles",
          ":id",
          "versions",
          ":lang"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Article ID"
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Required. Language code for the article version."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"title\": \"Example title\",\n  \"slug\": \"string\",\n  \"tags\": [\n    \"vip\"\n  ],\n  \"advanced\": true,\n  \"htmlBody\": \"string\",\n  \"metaDescription\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a version for the given article in the given language. Response includes read-only `relationships.attachments` derived from `htmlBody` `data-media-id` values.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.create`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/create-a-version"
       }
      },
      {
       "name": "Delete Versions of a Language",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles/:id/versions/:lang",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles",
          ":id",
          "versions",
          ":lang"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Article ID"
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Required. Language code for the article version."
          }
         ]
        },
        "description": "Deletes all versions of that language for given article.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.delete`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/delete-versions-of-a-language"
       }
      },
      {
       "name": "Update a Draft Version",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles/:id/versions/:lang/draft",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles",
          ":id",
          "versions",
          ":lang",
          "draft"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Article ID"
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Required. Language code for the article version."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"publishedAt\": \"2026-03-14T15:09:26.535Z\",\n  \"markOthersOutOfDate\": true,\n  \"title\": \"Example title\",\n  \"slug\": \"string\",\n  \"advanced\": true,\n  \"tags\": [\n    \"vip\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a draft version for the given article in the given language. Response includes read-only `relationships.attachments` derived from `htmlBody` `data-media-id` values. Not a request-body field.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.update`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/update-a-draft-version"
       }
      },
      {
       "name": "Delete a Draft Version",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles/:id/versions/:lang/draft",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles",
          ":id",
          "versions",
          ":lang",
          "draft"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Article ID"
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Required. Language code for the article version."
          }
         ]
        },
        "description": "Deletes the draft version of that language for the given article.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.delete`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/delete-a-draft-version"
       }
      },
      {
       "name": "Update Latest Published Article Version",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles/:id/versions/:lang/latest",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles",
          ":id",
          "versions",
          ":lang",
          "latest"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Article ID"
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Required. Language code for the article version."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"outdated\": true,\n  \"status\": \"unpublished\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates the latest published version for the given article in the given language.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.update`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/update-latest-published-article-version"
       }
      },
      {
       "name": "Get Article Version by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/versions/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "versions",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "article",
           "description": "Optional. Include the related article in the version response. Supported value is `article`.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5de25f4205e621001a90a99d",
           "description": "Required. Article Version ID"
          }
         ]
        },
        "description": "Returns Article Version matching the Version ID. Includes read-only `relationships.attachments` derived from `htmlBody` `data-media-id` values.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-article-version-by-id"
       }
      }
     ]
    },
    {
     "name": "Categories",
     "item": [
      {
       "name": "Get Categories",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/categories",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "categories"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return",
           "disabled": true
          }
         ]
        },
        "description": "Gets all categories.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-categories"
       }
      },
      {
       "name": "Create a Category",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/categories",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "categories"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"parent\": \"string\",\n  \"knowledgeBase\": \"string\",\n  \"langs\": {},\n  \"externalId\": \"crm-10293\",\n  \"hash\": \"string\",\n  \"positions\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new category document.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.create`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/create-a-category"
       }
      },
      {
       "name": "Get Category by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/categories/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "categories",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa56a07888001927f8e6",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Returns category matching the ID\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-category-by-id"
       }
      },
      {
       "name": "Update Category",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/categories/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "categories",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa56a07888001927f8e6",
           "description": "Required. Resource ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"parent\": \"string\",\n  \"langs\": {},\n  \"deleted\": true,\n  \"externalId\": \"crm-10293\",\n  \"positions\": [\n    \"string\"\n  ],\n  \"categoryPositions\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates any requested category (both internal and public).\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.update`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/update-category"
       }
      }
     ]
    },
    {
     "name": "Categories (Internal)",
     "item": [
      {
       "name": "Get Internal Categories",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/internal/categories",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "internal",
          "categories"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          }
         ]
        },
        "description": "Fetches all internal categories.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-internal-categories"
       }
      },
      {
       "name": "Create an Internal Category",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/internal/categories",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "internal",
          "categories"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"parent\": \"string\",\n  \"langs\": {},\n  \"externalId\": \"crm-10293\",\n  \"hash\": \"string\",\n  \"positions\": [\n    \"string\"\n  ],\n  \"icon\": \"https://example.com\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new internal category.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.create`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/create-an-internal-category"
       }
      },
      {
       "name": "Get Internal Category by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/internal/categories/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "internal",
          "categories",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa56a07888001927f8e6",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Returns an internal category matching the ID\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-internal-category-by-id"
       }
      }
     ]
    },
    {
     "name": "Categories (Public)",
     "item": [
      {
       "name": "Get Categories (Public)",
       "request": {
        "method": "GET",
        "auth": {
         "type": "noauth"
        },
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/p/v3/kb/categories",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "p",
          "v3",
          "kb",
          "categories"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "includeRoot",
           "value": "true",
           "description": "Optional. Whether to include the root category in public category results.",
           "disabled": true
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Optional. Language code used to localize the response.",
           "disabled": true
          }
         ]
        },
        "description": "Fetch categories for a Knowledge Base through the public-facing KB route. This endpoint resolves the Knowledge Base from the request context.\n\n**Authorization:** No authentication. Callable without an API key.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-categories-public"
       }
      },
      {
       "name": "Get Category by ID (Public)",
       "request": {
        "method": "GET",
        "auth": {
         "type": "noauth"
        },
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/p/v3/kb/categories/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "p",
          "v3",
          "kb",
          "categories",
          ":id"
         ],
         "query": [
          {
           "key": "includeChildren",
           "value": "true",
           "description": "Optional. Whether to include child categories in the response.",
           "disabled": true
          },
          {
           "key": "childrenLimit",
           "value": "10",
           "description": "Optional. Maximum number of child categories to include.",
           "disabled": true
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Optional. Language code used to localize the response.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa56a07888001927f8e6",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Fetch a category for a Knowledge Base through the public-facing KB route. This endpoint resolves the Knowledge Base from the request context.\n\n**Authorization:** No authentication. Callable without an API key.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-category-by-id-public"
       }
      }
     ]
    },
    {
     "name": "Forms",
     "item": [
      {
       "name": "Get Forms",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/forms",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "forms"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "include",
           "value": "snippets",
           "description": "Optional. Comma-separated related resources to include.",
           "disabled": true
          }
         ]
        },
        "description": "Gets all forms. Use `include=snippets` to include related snippets.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-forms"
       }
      },
      {
       "name": "Create a Form",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/forms",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "forms"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"slug\": \"string\",\n  \"hash\": \"string\",\n  \"body\": \"Example text\",\n  \"published\": true,\n  \"channel\": \"email\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new form document.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.create`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/create-a-form"
       }
      },
      {
       "name": "Get Form by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/forms/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "forms",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "snippets,metadata",
           "description": "Optional. Comma-separated related resources to include. Supported values include `snippets` and `metadata`.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cdb",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Returns form matching the ID\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-form-by-id"
       }
      },
      {
       "name": "Update Form",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/forms/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "forms",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cdb",
           "description": "Required. Resource ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"slug\": \"string\",\n  \"body\": \"Example text\",\n  \"published\": true,\n  \"snippets\": [\n    \"string\"\n  ],\n  \"channel\": \"email\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates requested form.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.update`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/update-form"
       }
      },
      {
       "name": "Delete Form",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/forms/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "forms",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cdb",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Deletes requested form.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.delete`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/delete-form"
       }
      },
      {
       "name": "Get Form by ID (Public)",
       "request": {
        "method": "GET",
        "auth": {
         "type": "noauth"
        },
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/p/v3/kb/forms/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "p",
          "v3",
          "kb",
          "forms",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "snippets,metadata",
           "description": "Optional. Comma-separated related resources to include. Supported values include `snippets` and `metadata`.",
           "disabled": true
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Optional. Language code used to localize the response.",
           "disabled": true
          },
          {
           "key": "preview",
           "value": "true",
           "description": "Optional. When true, allows previewing unpublished public form content.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cdb",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Returns form matching the ID\n\n**Authorization:** No authentication. Callable without an API key.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-form-by-id-public"
       }
      }
     ]
    },
    {
     "name": "Knowledge Bases",
     "item": [
      {
       "name": "Create Knowledge Base",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/knowledge-bases",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "knowledge-bases"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"brand\": \"string\",\n  \"noIndex\": true,\n  \"theme\": \"string\",\n  \"baseUrl\": \"https://example.com\",\n  \"subdomain\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Create a new Knowledge Base resource\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.create`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/create-knowledge-base"
       }
      },
      {
       "name": "Get Knowledge Base by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/knowledge-bases/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "knowledge-bases",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "snippets",
           "description": "Optional. Comma-separated related resources to include.",
           "disabled": true
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Optional. Language code used to localize the response.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa56a07888001927f8e5",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Fetch an individual Knowledge Base resource by its ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-knowledge-base-by-id"
       }
      },
      {
       "name": "Update Knowledge Base",
       "request": {
        "method": "PATCH",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/knowledge-bases/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "knowledge-bases",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Resource ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"noIndex\": true,\n  \"logo\": \"https://example.com\",\n  \"favicon\": \"https://example.com\",\n  \"theme\": \"string\",\n  \"baseUrl\": \"https://example.com\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Update a Knowledge Base resource by ID\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.update`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/update-knowledge-base"
       }
      }
     ]
    },
    {
     "name": "Tags (Knowledge Base)",
     "item": [
      {
       "name": "Get tags",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/tags",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "tags"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "name",
           "value": "Returns",
           "description": "Optional. Prefix filter for tag names.",
           "disabled": true
          }
         ]
        },
        "description": "Returns all Knowledge Base article tags.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-tags"
       }
      },
      {
       "name": "Create tag",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/tags",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "tags"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new Knowledge Base tag for articles.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.create`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/create-tag"
       }
      },
      {
       "name": "Get Tags by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/tags/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "tags",
          ":id"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd9",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Retrieves a Knowledge Base article tag based on the ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-tags-by-id"
       }
      },
      {
       "name": "Update Tag by ID.",
       "request": {
        "method": "PATCH",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/tags/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "tags",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd9",
           "description": "Required. Resource ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a Knowledge Base tag based on the id.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.update`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/update-tag-by-id"
       }
      }
     ]
    },
    {
     "name": "Themes",
     "item": [
      {
       "name": "Get Themes",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/themes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "themes"
         ]
        },
        "description": "Fetches Knowledge Base themes.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-themes"
       }
      },
      {
       "name": "Create a Theme",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/themes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "themes"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"duplicateThemeId\": \"65f2c0a1b4e3d2001234abcd\",\n  \"duplicateTemplateId\": \"65f2c0a1b4e3d2001234abcd\",\n  \"status\": \"draft\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a Knowledge Base theme.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.create`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/create-a-theme"
       }
      },
      {
       "name": "Get Themes by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/themes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "themes",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "snippets",
           "description": "Optional. Comma-separated related resources to include.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Fetches Knowledge Base theme by ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-themes-by-id"
       }
      },
      {
       "name": "Get Active Theme (Public)",
       "request": {
        "method": "GET",
        "auth": {
         "type": "noauth"
        },
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/p/v3/kb/themes/active",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "p",
          "v3",
          "kb",
          "themes",
          "active"
         ],
         "query": [
          {
           "key": "include",
           "value": "snippets",
           "description": "Optional. Comma-separated related resources to include.",
           "disabled": true
          }
         ]
        },
        "description": "Fetches active (that is, published) Knowledge Base theme.\n\n**Authorization:** No authentication. Callable without an API key.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-active-theme-public"
       }
      },
      {
       "name": "Get Theme by ID (Public)",
       "request": {
        "method": "GET",
        "auth": {
         "type": "noauth"
        },
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/p/v3/kb/themes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "p",
          "v3",
          "kb",
          "themes",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "snippets",
           "description": "Optional. Comma-separated related resources to include.",
           "disabled": true
          },
          {
           "key": "status",
           "value": "published",
           "description": "Optional. Theme revision status to fetch.",
           "disabled": true
          },
          {
           "key": "revisionId",
           "value": "6026aba3fcca5f03e5541cd6",
           "description": "Optional. Theme revision ID",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Returns the published revision of theme by default.\n\nOnly one of status or revision Id should be specified at a time. Passing both will prioritize the revision ID.\n\n**Authorization:** No authentication. Callable without an API key.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-theme-by-id-public"
       }
      }
     ]
    },
    {
     "name": "Themes (Drafts and Revisions)",
     "item": [
      {
       "name": "Get Theme Revisions",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/themes/:themeId/revisions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "themes",
          ":themeId",
          "revisions"
         ],
         "variable": [
          {
           "key": "themeId",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Theme ID"
          }
         ]
        },
        "description": "Fetches Knowledge Base theme revisions.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-theme-revisions"
       }
      },
      {
       "name": "Get Theme Revision by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/themes/:themeId/revisions/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "themes",
          ":themeId",
          "revisions",
          ":id"
         ],
         "query": [
          {
           "key": "include",
           "value": "snippets",
           "description": "Optional. Comma-separated related resources to include.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "themeId",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Theme ID"
          },
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd6",
           "description": "Required. Theme revision ID"
          }
         ]
        },
        "description": "Fetches Knowledge Base theme revisions by ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-theme-revision-by-id"
       }
      },
      {
       "name": "Create Theme Draft Revision",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/themes/:themeId/revisions/draft",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "themes",
          ":themeId",
          "revisions",
          "draft"
         ],
         "variable": [
          {
           "key": "themeId",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Theme ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"manifest\": [\n    {\n      \"name\": \"example_name\",\n      \"description\": \"Example text\",\n      \"variables\": {}\n    }\n  ],\n  \"jsxSnippets\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a Knowledge Base theme revision draft.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.create`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/create-theme-draft-revision"
       }
      },
      {
       "name": "Update Theme Draft Revision",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/themes/:themeId/revisions/draft",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "themes",
          ":themeId",
          "revisions",
          "draft"
         ],
         "variable": [
          {
           "key": "themeId",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Theme ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"manifest\": [\n    {\n      \"name\": \"example_name\",\n      \"description\": \"Example text\",\n      \"variables\": {}\n    }\n  ],\n  \"jsxSnippets\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a Knowledge Base theme revision draft.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.update`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/update-theme-draft-revision"
       }
      },
      {
       "name": "Delete Theme Draft Revision",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/themes/:themeId/revisions/draft",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "themes",
          ":themeId",
          "revisions",
          "draft"
         ],
         "variable": [
          {
           "key": "themeId",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Theme ID"
          }
         ]
        },
        "description": "Deletes a Knowledge Base theme revision draft.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.delete`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/delete-theme-draft-revision"
       }
      }
     ]
    },
    {
     "name": "Themes (Theme Files)",
     "item": [
      {
       "name": "Get Theme Files by Revision",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/themes/:themeId/revisions/:revisionId/files",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "themes",
          ":themeId",
          "revisions",
          ":revisionId",
          "files"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "include",
           "value": "snippets",
           "description": "Optional. Comma-separated related resources to include.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "themeId",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Theme ID"
          },
          {
           "key": "revisionId",
           "value": "6026aba3fcca5f03e5541cd6",
           "description": "Required. Theme revision ID"
          }
         ]
        },
        "description": "Retrieves theme files based on the revision ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-theme-files-by-revision"
       }
      },
      {
       "name": "Create Revision Theme File",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/themes/:themeId/revisions/:revisionId/files",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "themes",
          ":themeId",
          "revisions",
          ":revisionId",
          "files"
         ],
         "variable": [
          {
           "key": "themeId",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Theme ID"
          },
          {
           "key": "revisionId",
           "value": "6026aba3fcca5f03e5541cd6",
           "description": "Required. Theme revision ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"type\": \"page\",\n  \"content\": \"string\",\n  \"snippets\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new revision theme file.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.create`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/create-revision-theme-file"
       }
      },
      {
       "name": "Get Theme Files (Public)",
       "request": {
        "method": "GET",
        "auth": {
         "type": "noauth"
        },
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/p/v3/kb/themes/:id/files",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "p",
          "v3",
          "kb",
          "themes",
          ":id",
          "files"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "include",
           "value": "snippets",
           "description": "Optional. Comma-separated related resources to include.",
           "disabled": true
          },
          {
           "key": "status",
           "value": "published",
           "description": "Optional. Theme revision status to fetch.",
           "disabled": true
          },
          {
           "key": "revisionId",
           "value": "6026aba3fcca5f03e5541cd6",
           "description": "Optional. Theme revision ID",
           "disabled": true
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Optional. Language code used to localize the response.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "By default, returns the published revision's theme files. Only one of status or revision Id should be specified at a time. Passing both will prioritize the status.\n\n**Authorization:** No authentication. Callable without an API key.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-theme-files-public"
       }
      },
      {
       "name": "Get Theme File by Revision",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/themes/:themeId/revisions/:revisionId/files/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "themes",
          ":themeId",
          "revisions",
          ":revisionId",
          "files",
          ":id"
         ],
         "variable": [
          {
           "key": "themeId",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Theme ID"
          },
          {
           "key": "revisionId",
           "value": "6026aba3fcca5f03e5541cd6",
           "description": "Required. Theme revision ID"
          },
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd7",
           "description": "Required. Theme file ID"
          }
         ]
        },
        "description": "Fetches theme files based on the revision ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-theme-file-by-revision"
       }
      },
      {
       "name": "Update Revision Theme File",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/themes/:themeId/revisions/:revisionId/files/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "themes",
          ":themeId",
          "revisions",
          ":revisionId",
          "files",
          ":id"
         ],
         "variable": [
          {
           "key": "themeId",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Theme ID"
          },
          {
           "key": "revisionId",
           "value": "6026aba3fcca5f03e5541cd6",
           "description": "Required. Theme revision ID"
          },
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd7",
           "description": "Required. Theme file ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"type\": \"page\",\n  \"content\": \"string\",\n  \"snippets\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates theme files based on the revision ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.update`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/update-revision-theme-file"
       }
      },
      {
       "name": "Delete Revision Theme File",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/themes/:themeId/revisions/:revisionId/files/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "themes",
          ":themeId",
          "revisions",
          ":revisionId",
          "files",
          ":id"
         ],
         "variable": [
          {
           "key": "themeId",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Theme ID"
          },
          {
           "key": "revisionId",
           "value": "6026aba3fcca5f03e5541cd6",
           "description": "Required. Theme revision ID"
          },
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd7",
           "description": "Required. Theme file ID"
          }
         ]
        },
        "description": "Deletes theme files based on the revision ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.delete`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/delete-revision-theme-file"
       }
      }
     ]
    },
    {
     "name": "Templates",
     "item": [
      {
       "name": "Get Templates",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/templates",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "templates"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          }
         ]
        },
        "description": "Fetches Knowledge Base templates.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-templates"
       }
      },
      {
       "name": "Get Templates by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v3/kb/templates/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v3",
          "kb",
          "templates",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cda",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Fetches Knowledge Base templates based on the ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-templates-by-id"
       }
      }
     ]
    },
    {
     "name": "Routes",
     "item": [
      {
       "name": "Get Route by URL (Public)",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/route?url=",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "route"
         ],
         "query": [
          {
           "key": "url",
           "value": "",
           "description": "Required. URL path of article or category.",
           "disabled": false
          }
         ]
        },
        "description": "Returns route matching the URL path of article or category.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-route-by-url-public"
       }
      },
      {
       "name": "Get Routes",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/routes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "routes"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "url",
           "value": "/help/articles/cool-article",
           "description": "Optional. URL to look up or filter routes by.",
           "disabled": true
          }
         ]
        },
        "description": "Returns routes for the org\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-routes"
       }
      },
      {
       "name": "Create a Route",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/routes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "routes"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"url\": \"https://example.com\",\n  \"routableType\": \"article\",\n  \"routableId\": \"65f2c0a1b4e3d2001234abcd\",\n  \"pattern\": \"string\",\n  \"position\": 0\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new route alias to an article or category.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.create`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/create-a-route"
       }
      },
      {
       "name": "Get Routes by Article ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/articles/:id/routes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "articles",
          ":id",
          "routes"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Get all routes for an article.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-routes-by-article-id"
       }
      },
      {
       "name": "Get Routes by Category ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/categories/:id/routes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "categories",
          ":id",
          "routes"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa56a07888001927f8e6",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Get all routes for a category.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-routes-by-category-id"
       }
      },
      {
       "name": "Create a Category Route",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/categories/:id/routes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "categories",
          ":id",
          "routes"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa56a07888001927f8e6",
           "description": "Required. Resource ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"url\": \"https://example.com\",\n  \"pattern\": \"string\",\n  \"position\": 0\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new route alias to a category.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.create`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/create-a-category-route"
       }
      },
      {
       "name": "Get Route by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/routes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "routes",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd8",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Returns route matching the ID\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-route-by-id"
       }
      },
      {
       "name": "Update Route",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/routes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "routes",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd8",
           "description": "Required. Resource ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "null",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates requested route.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.update`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/update-route"
       }
      },
      {
       "name": "Delete Route by ID",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/routes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "routes",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd8",
           "description": "Required. Resource ID"
          }
         ]
        },
        "description": "Deletes route matching the ID\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.delete`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/delete-route-by-id"
       }
      }
     ]
    },
    {
     "name": "Knowledge Bases (Custom Domains)",
     "item": [
      {
       "name": "Get Custom Domain By ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/knowledge-bases/:id/domains/:domainId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "knowledge-bases",
          ":id",
          "domains",
          ":domainId"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa56a07888001927f8e5",
           "description": "Required. Knowledge Base ID"
          },
          {
           "key": "domainId",
           "value": "64a5f4f7d9b6f2001f7c8a11",
           "description": "Required. Domain ID"
          }
         ]
        },
        "description": "Returns the custom domain based on the ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-custom-domain-by-id"
       }
      },
      {
       "name": "Get Custom Domains",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/knowledge-bases/:id/domains",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "knowledge-bases",
          ":id",
          "domains"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "certificateStatus",
           "value": "ISSUED",
           "description": "Optional. Filter domains by certificate status.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa56a07888001927f8e5",
           "description": "Required. Knowledge Base ID"
          }
         ]
        },
        "description": "Returns custom domains.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.read`; or legacy `org.user.content.kb.read`, `org.user.kb.read`, `org.admin.content.kb.read`, `org.admin.kb.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/get-custom-domains"
       }
      },
      {
       "name": "Update Custom Domain",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/knowledge-bases/:id/domain/:domainId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "knowledge-bases",
          ":id",
          "domain",
          ":domainId"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa56a07888001927f8e5",
           "description": "Required. Knowledge Base ID"
          },
          {
           "key": "domainId",
           "value": "64a5f4f7d9b6f2001f7c8a11",
           "description": "Required. Domain ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"domain\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates the domainName, or reissues a certificate in the `VALIDATION_TIMED_OUT` state\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.update`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/update-custom-domain"
       }
      },
      {
       "name": "Delete Custom Domain",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/knowledge-bases/:id/domain/:domainId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "knowledge-bases",
          ":id",
          "domain",
          ":domainId"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa56a07888001927f8e5",
           "description": "Required. Knowledge Base ID"
          },
          {
           "key": "domainId",
           "value": "64a5f4f7d9b6f2001f7c8a11",
           "description": "Required. Domain ID"
          }
         ]
        },
        "description": "Deletes a custom domain.\n\n**Note**: If the domain has been issued, deleting it starts an asynchronous removal process. The domain is marked as `pendingRemoval` until removal is complete.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.delete`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/delete-custom-domain"
       }
      },
      {
       "name": "Create Custom Domain",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kb/knowledge-bases/:id/domain",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kb",
          "knowledge-bases",
          ":id",
          "domain"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa56a07888001927f8e5",
           "description": "Required. Knowledge Base ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"domain\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a custom domain for a Knowledge Base.\n\n**Authorization:** Requires any one of these roles: `org.permission.kb.create`; or legacy `org.admin.content.kb.write`, `org.admin.kb.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/knowledge-base/create-custom-domain"
       }
      }
     ]
    }
   ]
  },
  {
   "name": "Workflows",
   "description": "Create and update workflows, manage workflow variables and inspect process errors.",
   "item": [
    {
     "name": "Workflows",
     "item": [
      {
       "name": "Get workflows",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/workflows",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "workflows"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Number of pages to return for results. Default value: 1.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page. Default value: 100.",
           "disabled": true
          },
          {
           "key": "enabled",
           "value": "true",
           "description": "Optional. Filter by enabled status. Pass `true` to return only enabled workflows, `false` for disabled.",
           "disabled": true
          },
          {
           "key": "eventName",
           "value": "kustomer.conversation.create",
           "description": "Optional. Filter by the workflow trigger event name (e.g. `kustomer.conversation.create`).",
           "disabled": true
          },
          {
           "key": "callable",
           "value": "true",
           "description": "Optional. Filter by callable flag. Pass `true` to return only callable workflows.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves all workflows. Supports pagination and optional filters by `enabled`, `eventName`, and `callable`.\n\n**Authorization:** Requires any one of these roles: `org.permission.workflow.read`; or legacy `org.admin.workflow.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/workflows/get-workflows"
       }
      },
      {
       "name": "Create a workflow",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/workflows",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "workflows"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"replaces\": \"string\",\n  \"description\": \"Example text\",\n  \"meta\": {},\n  \"trigger\": {\n    \"id\": \"65f2c0a1b4e3d2001234abcd\",\n    \"callable\": true,\n    \"schema\": {},\n    \"transitions\": [\n      {\n        \"meta\": {},\n        \"target\": \"string\",\n        \"condition\": {\n          \"op\": \"and\",\n          \"values\": [\n            null\n          ]\n        }\n      }\n    ]\n  },\n  \"enabled\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new workflow.\n\n**Authorization:** Requires any one of these roles: `org.permission.workflow.create`; or legacy `org.admin.workflow.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/workflows/create-a-workflow"
       }
      },
      {
       "name": "Get a workflow based on the ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/workflows/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "workflows",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "57504f6460da071c000dfaee",
           "description": "Required. Unique Workflow ID"
          }
         ]
        },
        "description": "Retrieves a workflow based on the Workflow ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.workflow.read`; or legacy `org.admin.workflow.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/workflows/get-a-workflow-based-on-the-id"
       }
      },
      {
       "name": "Update a workflow based on the ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/workflows/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "workflows",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5b84680f6a3d70001b4c7183",
           "description": "Required. Workflow ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"replaces\": \"string\",\n  \"description\": \"Example text\",\n  \"meta\": {},\n  \"trigger\": {\n    \"id\": \"65f2c0a1b4e3d2001234abcd\",\n    \"callable\": true,\n    \"schema\": {},\n    \"transitions\": [\n      {\n        \"meta\": {},\n        \"target\": \"string\",\n        \"condition\": {\n          \"op\": \"and\",\n          \"values\": [\n            null\n          ]\n        }\n      }\n    ]\n  },\n  \"enabled\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a workflow based on the Workflow ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.workflow.update`; or legacy `org.admin.workflow.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/workflows/update-a-workflow-based-on-the-id"
       }
      }
     ]
    },
    {
     "name": "Workflow Variables",
     "item": [
      {
       "name": "Get all variables for a workflow",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/workflows/:id/variables",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "workflows",
          ":id",
          "variables"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Number of pages to return for results. Default value: 1.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page. Default value: 100.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5b84680f6a3d70001b4c7183",
           "description": "Required. Unique Workflow ID"
          }
         ]
        },
        "description": "Retrieves all variables for a specific workflow based on the Workflow ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.workflow.read`; or legacy `org.admin.workflow.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/workflows/get-all-variables-for-a-workflow"
       }
      },
      {
       "name": "Create a workflow variable for a workflow",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/workflows/:id/variables",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "workflows",
          ":id",
          "variables"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5b84680f6a3d70001b4c7183",
           "description": "Required. Workflow ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"value\": \"string\",\n  \"type\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a workflow variable for a specific workflow based on the Workflow ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.workflow.create`; or legacy `org.admin.workflow.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/workflows/create-a-workflow-variable-for-a-workflow"
       }
      },
      {
       "name": "Get a workflow variable",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/workflow-variables/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "workflow-variables",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5b84680f6a3d70001b4c7183",
           "description": "Required. Workflow Variable ID"
          }
         ]
        },
        "description": "Retrieves a workflow variable based on the Workflow Variable ID.\n\n### Note\n> `maskedValue` attribute represents the last 6 characters of the value of the variable.\n\n**Authorization:** Requires any one of these roles: `org.permission.workflow`; or legacy `org.admin.workflow`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/workflows/get-a-workflow-variable"
       }
      },
      {
       "name": "Update a workflow variable",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/workflow-variables/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "workflow-variables",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5b84680f6a3d70001b4c7183",
           "description": "Required. Workflow Variable ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"value\": \"string\",\n  \"type\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a workflow variable based on the Workflow Variable ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.workflow`; or legacy `org.admin.workflow`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/workflows/update-a-workflow-variable"
       }
      },
      {
       "name": "Delete a workflow variable",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/workflow-variables/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "workflow-variables",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5b84680f6a3d70001b4c7183",
           "description": "Required. Workflow Variable ID"
          }
         ]
        },
        "description": "Deletes a workflow variable based on the Workflow Variable ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.workflow`; or legacy `org.admin.workflow`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/workflows/delete-a-workflow-variable"
       }
      }
     ]
    },
    {
     "name": "Workflow Processes (Errors)",
     "item": [
      {
       "name": "Get processes (errors) by workflow",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/workflows/:id/processes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "workflows",
          ":id",
          "processes"
         ],
         "query": [
          {
           "key": "createdAtFrom",
           "value": "2023-12-14T00:00:00Z",
           "description": "Optional. Date to filter results with a createdAt greater than or equal to date time in ISO 8601 format",
           "disabled": true
          },
          {
           "key": "createdAtTo",
           "value": "2023-12-14T00:00:00Z",
           "description": "Optional. Date to filter results with a createdAt less than date time in ISO 8601 format",
           "disabled": true
          },
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Number of pages to return for results. Default value: 1.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page. Default value: 100.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "desc",
           "description": "Optional. Sort order by `createdAt`. Defaults to `desc` (newest first).",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5b84680f6a3d70001b4c7183",
           "description": "Required. Workflow ID"
          }
         ]
        },
        "description": "Retrieves all of the processes (errors) for a given workflow based on the Workflow ID.\n\n### Workflow process attributes\n\nIn the sample response, you will notice that workflow processes (errors) have the following attributes that can help with troubleshooting an error:\n\n- **Event**: the original event that triggered the workflow. This is a raw internal representation of the data before the data is normalized by the workflow trigger.\n\n- **Error**: a stringified version of the error object that describes what went wrong. In some cases, this will say `System Error – Retrying`. \n\n- **Meta.Context**: contains a stringified version of the workflow context. This includes an `order` array of completed workflow steps and the inputs/outputs at each step.\n\n- **Meta.WorkflowRev**: reflects the revision (`rev`) or version of the workflow that generated the error. This is useful if the workflow has been fixed or has changed since the workflow first generated the error.\n\n**Authorization:** Requires any one of these roles: `org.permission.workflow.read`; or legacy `org.admin.workflow.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/workflows/get-processes-errors-by-workflow"
       }
      }
     ]
    }
   ]
  },
  {
   "name": "Apps platform",
   "description": "Apps, cards, KViews, inbound email/form/web hooks and outbound webhooks with their transactions.",
   "item": [
    {
     "name": "Apps",
     "item": [
      {
       "name": "Get Installed Apps",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/apps",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "apps"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          }
         ]
        },
        "description": "Fetch all installed apps.\n\n**Authorization:** Requires any one of these roles: `org.permission.apps.read`; or legacy `org.user.apps.read`, `org.admin.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-installed-apps"
       }
      },
      {
       "name": "Get Installed Apps (By Specific Version)",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/apps/:appVersion",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "apps",
          ":appVersion"
         ],
         "variable": [
          {
           "key": "appVersion",
           "value": "kustomer-0.1.0",
           "description": "Required. App name & version"
          }
         ]
        },
        "description": "Fetches installed apps by app version.\n\n**Authorization:** Requires any one of these roles: `org.permission.apps.read`; or legacy `org.user.apps.read`, `org.admin.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-installed-apps-by-specific-version"
       }
      },
      {
       "name": "Get Available Apps",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/apps/available",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "apps",
          "available"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          },
          {
           "key": "fields",
           "value": "appDetails,tags,url",
           "description": "Optional. Comma-separated available app fields to include.",
           "disabled": true
          },
          {
           "key": "system",
           "value": "false",
           "description": "Optional. Filter available apps by system-app status.",
           "disabled": true
          }
         ]
        },
        "description": "Fetches all apps available for installation.\n\n**Authorization:** Requires any one of these roles: `org.permission.apps.read`; or legacy `org.user.apps.read`, `org.admin.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-available-apps"
       }
      },
      {
       "name": "Get Available App",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/apps/available/:appVersion",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "apps",
          "available",
          ":appVersion"
         ],
         "variable": [
          {
           "key": "appVersion",
           "value": "kustomer-0.1.0",
           "description": "Required. App name and version."
          }
         ]
        },
        "description": "Fetches all apps available for installation based on the app version.\n\n**Authorization:** Requires any one of these roles: `org.permission.apps.read`; or legacy `org.user.apps.read`, `org.admin.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-available-app"
       }
      }
     ]
    },
    {
     "name": "Cards",
     "item": [
      {
       "name": "Get Cards",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/cards",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "cards"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          },
          {
           "key": "context",
           "value": "conversation",
           "description": "Optional. Filter cards by installation context. Common values include `customer`, `conversation`, `company`, and custom object contexts such as `kobject.order`.",
           "disabled": true
          }
         ]
        },
        "description": "Fetches all installed cards for an organization.\n\n**Note**: Installed cards are the cards that will be displayed for a particular org using\nthe app. They can be displayed on the customer, company, conversation, or kobject\ncontexts.\n\n**Authorization:** Requires any one of these roles: `org.permission.apps.read`; or legacy `org.user.apps.read`, `org.admin.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-cards"
       }
      },
      {
       "name": "Get Card",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/cards/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "cards",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. ID of the Card"
          }
         ]
        },
        "description": "Gets an installed card by ID\n\n**Authorization:** Requires any one of these roles: `org.permission.apps.read`; or legacy `org.user.apps.read`, `org.admin.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-card"
       }
      },
      {
       "name": "Update a Card",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/cards/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "cards",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. ID of the Card"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"contexts\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates card attributes.\n\nValid Context Values are:\n - customer\n - conversation\n - company\n - kobject._yourObjectName_\n\n**Authorization:** Requires any one of these roles: `org.permission.apps.update`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/update-a-card"
       }
      },
      {
       "name": "Delete a Card",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/cards/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "cards",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. ID of the Card"
          }
         ]
        },
        "description": "Deletes a card by ID\n\n**Authorization:** Requires any one of these roles: `org.permission.apps.delete`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/delete-a-card"
       }
      },
      {
       "name": "Create a Card",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/cards/available",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "cards",
          "available"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"app\": \"string\",\n  \"name\": \"example_name\",\n  \"description\": \"Example text\",\n  \"url\": \"https://example.com\",\n  \"contexts\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Adds a custom card to make available for installation.\n\nValid Context Values are:\n - customer\n - conversation\n - company\n - kobject._yourObjectName_\n\n**Authorization:** Requires any one of these roles: `org.permission.apps.create`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/create-a-card"
       }
      },
      {
       "name": "Install a Card",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/cards/available/:id/install",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "cards",
          "available",
          ":id",
          "install"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. ID of Available Card to Install"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"contexts\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Installs a card by ID into specified contexts.\n\nValid Context Values are:\n - customer\n - conversation\n - company\n - kobject._yourObjectName_\n\n**Authorization:** Requires any one of these roles: `org.permission.apps.create`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/install-a-card"
       }
      }
     ]
    },
    {
     "name": "Hooks (Email Hooks)",
     "item": [
      {
       "name": "Get Email Hooks",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/email",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "email"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "99",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          }
         ]
        },
        "description": "Fetches existing email hooks.\n\nAn email hook allows you to pass data into Kustomer by sending HTML email. Creating an email hook will return an email address.\n\nAny email received at that address will be parsed to extract json data. For added security, the email data requires inclusion of\na key.\n\nThe key should be included in the script tag within the html body of the email message along with the script type, i.e. ```<script type=\"application/ld+json\" data-kustomer-key=\"KEY_HERE\">```\n\n This endpoint will return a maximum of 10 pages with 99 entries.\n\n**Authorization:** Requires any one of these roles: `org.permission.hook.read`; or legacy `org.admin.hook.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-email-hooks"
       }
      },
      {
       "name": "Create Email Hook",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/email",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "email"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"title\": \"Example title\",\n  \"description\": \"Example text\",\n  \"eventName\": \"example_event\",\n  \"outputTemplate\": {},\n  \"outputSchema\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates an email hook. Email hooks are unique email addresses that can be Bcc’d in order to trigger a workflow. Kustomer will parse JSON and JSON-LD syntax directly from the HTML markup in your email and make it available to you in a workflow. \n\nEmail hooks are commonly used to update order and shipment details in Kustomer by adding the email hook address in the Bcc field of emails that are already being sent to customers. See the [Inbound Webhook](https://help.kustomer.com/en_us/inbound-webhooks-Bkqc1z3fM#emailhooks) article for more information.\n\nCreating an email hook will return an email address.\n\n**Authorization:** Requires any one of these roles: `org.permission.hook.create`; or legacy `org.admin.hook.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/create-email-hook"
       }
      },
      {
       "name": "Get an Email Hook by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/email/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "email",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. email hook ID"
          }
         ]
        },
        "description": "Fetches an email hook based on the ID.\n\nAn email hook allows you to pass data into Kustomer by sending HTML email. Creating an email hook will return an email address.\n\nAny email received at that address will be parsed to extract json data. For added security, the email data requires inclusion of\na key.\n\nThe key should be included in the script tag within the html body of the email message along with the script type, i.e. ```<script type=\"application/ld+json\" data-kustomer-key=\"KEY_HERE\">```\n\nThis endpoint will return a maximum of 10 pages with 99 entries.\n\n**Authorization:** Requires any one of these roles: `org.permission.hook.read`; or legacy `org.admin.hook.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-an-email-hook-by-id"
       }
      },
      {
       "name": "Update Email Hook",
       "request": {
        "method": "PATCH",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/email/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "email",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Email Hook ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"debug\": true,\n  \"description\": \"Example text\",\n  \"title\": \"Example title\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates an email hook based on the ID.\n\n### Debugging\nSet the debug param to true to enable email hook debugging.  Setting debug to true will enable monitoring of inbound hook transactions for 24 hours.  See <a href=\"#8c09f128-95ab-4e25-9d14-0e583992c7d2\">Get Email Hook Transactions</a> for more details.\n\n**Authorization:** Requires any one of these roles: `org.permission.hook.update`; or legacy `org.admin.hook.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/update-email-hook"
       }
      },
      {
       "name": "Get Email Hook Transactions",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/email/:id/transactions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "email",
          ":id",
          "transactions"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "99",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Email Hook ID"
          }
         ]
        },
        "description": "Accesses recent email hook transactions.\n\n### NOTE\n> Hook transactions will not be accessible unless \"debug\" is set to true via PATCH for the corresponding email hook. Hook transactions are accessible for 24 hours after they come into the system.  See <a href=\"#419b790e-8653-47c2-a854-30ca988d5e1e\">Update Email Hook</a> for more details on enabling debugging for an email hook.\n\n**Authorization:** Requires any one of these roles: `org.permission.hook.read`; or legacy `org.admin.hook.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-email-hook-transactions"
       }
      }
     ]
    },
    {
     "name": "Hooks (Form Hooks)",
     "item": [
      {
       "name": "Get Form Hooks",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/form",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "form"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "99",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          }
         ]
        },
        "description": "Fetches all form hooks.\n\nA form hook allows you to send data to Kustomer by posting to an endpoint.\n\nThis endpoint will return a maximum of 10 pages with 99 entries.\n\n**Authorization:** Requires any one of these roles: `org.permission.hook.read`; or legacy `org.admin.hook.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-form-hooks"
       }
      },
      {
       "name": "Create Form Hook",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/form",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "form"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"title\": \"Example title\",\n  \"description\": \"Example text\",\n  \"eventName\": \"example_event\",\n  \"outputTemplate\": {},\n  \"outputSchema\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a form hook.\n\nCreating a form hook will return a new endpoint.\n\n**Authorization:** Requires any one of these roles: `org.permission.hook.create`; or legacy `org.admin.hook.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/create-form-hook"
       }
      },
      {
       "name": "Get a Form Hook by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/form/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "form",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. form hook ID"
          }
         ]
        },
        "description": "Fetches a form hook based on the ID.\n\nA form hook allows you to send data to Kustomer by posting to an endpoint.\n\nThis endpoint will return a maximum of 10 pages with 99 entries.\n\n**Authorization:** Requires any one of these roles: `org.permission.hook.read`; or legacy `org.admin.hook.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-a-form-hook-by-id"
       }
      },
      {
       "name": "Update Form Hook",
       "request": {
        "method": "PATCH",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/form/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "form",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. form hook ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"debug\": true,\n  \"description\": \"Example text\",\n  \"title\": \"Example title\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a form hook based on the ID.\n\n### Debugging\nSet the debug param to true to enable form hook debugging.  Setting debug to true will enable monitoring of inbound hook transactions for 24 hours.\n\nSee Get Form Hook Transactions for more details.\n\n**Authorization:** Requires any one of these roles: `org.permission.hook.update`; or legacy `org.admin.hook.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/update-form-hook"
       }
      },
      {
       "name": "Create Form Hook Transaction",
       "request": {
        "method": "POST",
        "auth": {
         "type": "noauth"
        },
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/form/:hash",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "form",
          ":hash"
         ],
         "variable": [
          {
           "key": "hash",
           "value": "b6ffcac075151d3ff7ae184643ed9189f90c09e6b838fba81c1c4faa6ce88e3a",
           "description": "Required. *required* form hook hash"
          }
         ]
        },
        "description": "Creates a form hook transaction.\n\nA form hook allows you to send data to Kustomer by posting to the form hook's designated endpoint.\n\nThis endpoint can be generated by creating a form hook with the Kustomer API or within a workflow.\n\nCurrently, form hooks accept Form-Data content, JSON, and XML payloads.\n\nForm hooks do not require any authentication and are best suited for use in public HTML forms or anywhere authenticity of the sender is not important.\n\n### NOTE\n> The size of the request body cannot exceed 400kb. Transactions exceeding this size will fail with a 413 error.\n\n**Authorization:** No authentication. Callable without an API key.\n\nReference: https://developer.kustomer.com/api/apps-platform/create-form-hook-transaction"
       }
      },
      {
       "name": "GET Form Hook Transactions",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/form/:id/transactions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "form",
          ":id",
          "transactions"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "99",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Form Hook ID"
          }
         ]
        },
        "description": "Accesses recent form hook transactions.\n\n### NOTE\n> Hook transactions will not be accessible unless \"debug\" is set to true via PATCH for the corresponding form hook. Hook transactions are accessible for 24 hours after they come into the system.  See <a href=\"#347877ad-a23c-4d6f-9315-bda9d3542f40\">Update Form Hook</a> for more details on enabling debugging for an form hook.\n\n**Authorization:** Requires any one of these roles: `org.permission.hook.read`; or legacy `org.admin.hook.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-form-hook-transactions"
       }
      },
      {
       "name": "Create Form Hook Org Transaction",
       "request": {
        "method": "POST",
        "auth": {
         "type": "noauth"
        },
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/form/:org/:hash",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "form",
          ":org",
          ":hash"
         ],
         "variable": [
          {
           "key": "org",
           "value": "57f29863a1dbf61100e6aa92",
           "description": "Required. Organization ID"
          },
          {
           "key": "hash",
           "value": "b6ffcac075151d3ff7ae184643ed9189f90c09e6b838fba81c1c4faa6ce88e3a",
           "description": "Required. Hash ID"
          }
         ]
        },
        "description": "Creates a form hook transaction for an organization.\n\nA form hook allows you to send data to Kustomer by posting to the form hook's designated endpoint.\n\nThis endpoint can be generated by creating a form hook with the Kustomer API or within a workflow. Currently, form hooks accept Form-Data content, JSON, and XML payloads.\n\nForm hooks do not require any authentication and are best suited for use in public HTML forms or anywhere authenticity of the sender is not important.\n\nThis endpoint should be used over /hooks/form/:hash.\n\nYou can only use recaptcha for forms submitting through this endpoint.\n\n### NOTE\n> The size of the request body cannot exceed 400kb. Transactions exceeding this size will fail with a 413 error.\n\n**Authorization:** No authentication. Callable without an API key.\n\nReference: https://developer.kustomer.com/api/apps-platform/create-form-hook-org-transaction"
       }
      }
     ]
    },
    {
     "name": "Hooks (Web Hooks)",
     "item": [
      {
       "name": "Get Web Hooks",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/web",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "web"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "99",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          }
         ]
        },
        "description": "Fetches web hooks.\n\nA web hook allows you to pass data into Kustomer by posting to a designated endpoint.\n\nThe webhook contains a URL to post data to and a workflow event to process the incoming data.\n\nThis endpoint will return a maximum of 10 pages with 99 entries.\n\n**Authorization:** Requires any one of these roles: `org.permission.hook.read`; or legacy `org.admin.hook.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-web-hooks"
       }
      },
      {
       "name": "Create Web Hook",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/web",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "web"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"title\": \"Example title\",\n  \"description\": \"Example text\",\n  \"eventName\": \"example_event\",\n  \"outputTemplate\": {},\n  \"outputSchema\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a web hook.\n\nTo post to the Web Hook endpoint, you will need to generate an API Token with the `org.hooks` role and submit the post with an `Authorization` header of `Bearer {{token}}`.\n\n**Authorization:** Requires any one of these roles: `org.permission.hook.create`; or legacy `org.admin.hook.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/create-web-hook"
       }
      },
      {
       "name": "Get a Web Hook by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/web/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "web",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. web hook ID"
          }
         ]
        },
        "description": "Fetches a web hook based on the ID.\n\nA web hook allows you to pass data into Kustomer by posting to a designated endpoint. The webhook contains a URL to post data to and a workflow event to process the incoming data.\n\n**Authorization:** Requires any one of these roles: `org.permission.hook.read`; or legacy `org.admin.hook.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-a-web-hook-by-id"
       }
      },
      {
       "name": "Update Web Hook",
       "request": {
        "method": "PATCH",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/web/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "web",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. web hook ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"debug\": true,\n  \"description\": \"Example text\",\n  \"title\": \"Example title\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a web hook based on the ID.\n\n### Debugging\nSet the debug param to true to enable web hook debugging.  Setting debug to true will enable monitoring of inbound hook transactions for 24 hours.  See Get Web Hook Transactions for more details.\n\n**Authorization:** Requires any one of these roles: `org.permission.hook.update`; or legacy `org.admin.hook.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/update-web-hook"
       }
      },
      {
       "name": "Create Web Hook Transaction",
       "request": {
        "method": "POST",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/web/:hash",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "web",
          ":hash"
         ],
         "variable": [
          {
           "key": "hash",
           "value": "b6ffcac075151d3ff7ae184643ed9189f90c09e6b838fba81c1c4faa6ce88e3a",
           "description": "Required. form hook hash"
          }
         ]
        },
        "description": "Creates a web hook transaction.\n\nA web hook allows you to pass data into Kustomer by posting to the web hook's designated endpoint.\n\nThis endpoint can be generated by creating a web hook via the Kustomer API or within a workflow.\n\nCurrently, web hooks accept Form-Data content, JSON, and XML payloads.\n\nPosting to a Kustomer web hook requires authentication. To authenticate the request, you will need to generate a Kustomer API Key with `org.hooks` role and submit the request with an `Authorization` header of `Bearer {{api_key}}`.\n\nWeb hooks are best suited for server-to-server communication where verifying the authenticity of the sender is important.\n\n### NOTE\n> The size of the request body cannot exceed 400kb. Transactions exceeding this size will fail with a 413 error.\n\n**Authorization:** Requires any one of these roles: `org.hooks`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/apps-platform/create-web-hook-transaction"
       }
      },
      {
       "name": "Get Web Hook Transactions",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/hooks/web/:id/transactions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "hooks",
          "web",
          ":id",
          "transactions"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "99",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Web Hook ID"
          }
         ]
        },
        "description": "Access recent web hook transactions.\n\n### NOTE\n> Hook transactions will not be accessible unless \"debug\" is set to true via PATCH for the corresponding form hook. Hook transactions are accessible for 24 hours after they come into the system.  See Update Web Hook for more details on enabling debugging for a web hook.\n\n**Authorization:** Requires any one of these roles: `org.hooks`. The API key or user must hold at least one of them.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-web-hook-transactions"
       }
      }
     ]
    },
    {
     "name": "KViews (Klass Views)",
     "item": [
      {
       "name": "Get KViews",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kviews",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kviews"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          },
          {
           "key": "appDisabled",
           "value": "false",
           "description": "Optional. Filter app-installed resources by app-disabled status.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves all the KViews for a resource.\n\nOptionally, the context can be included to be more specific.\n\nIf the context is included, the KViews will be ordered according to when the KView was added or the order specified in the KView ordering endpoint.\n\n**Authorization:** Requires any one of these roles: `org.permission.kview.read`; or legacy `org.user.kview.read`, `org.admin.kview.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-kviews"
       }
      },
      {
       "name": "Get KViews by Resource",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/kviews/:resource",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kviews",
          ":resource"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of records to return per page.",
           "disabled": true
          },
          {
           "key": "context",
           "value": "smartbar-card",
           "description": "Optional. Filter KViews by display context. Common values include `smartbar-card`, `smartbar-details`, and `expanded-timeline`.",
           "disabled": true
          },
          {
           "key": "enabled",
           "value": "true",
           "description": "Optional. Filter KViews by enabled status.",
           "disabled": true
          },
          {
           "key": "appDisabled",
           "value": "false",
           "description": "Optional. Filter app-installed resources by app-disabled status.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "resource",
           "value": "conversation",
           "description": "Required. The KView resource. Common values include `conversation`, `company`, `customer`, and custom object resources such as `kobject.shopify-order`."
          }
         ]
        },
        "description": "Retrieves all the KViews for a resource.\n\nOptionally, the context can be included to be more specific.\n\nIf the context is included, it will be ordered according to when the KView was added or the order specified in the KView ordering endpoint.\n\n**Authorization:** Requires any one of these roles: `org.permission.kview.read`; or legacy `org.user.kview.read`, `org.admin.kview.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-kviews-by-resource"
       }
      },
      {
       "name": "Update KViews Order",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kviews/:resource/:context/order",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kviews",
          ":resource",
          ":context",
          "order"
         ],
         "variable": [
          {
           "key": "resource",
           "value": "conversation",
           "description": "Required. The KView resource. Common values include `conversation`, `company`, `customer`, and custom object resources such as `kobject.shopify-order`."
          },
          {
           "key": "context",
           "value": "smartbar-card",
           "description": "Required. KView display context. Common values include `smartbar-card`, `smartbar-details`, and `expanded-timeline`."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"kviews\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates the order of the KViews represented in the smartbar and timelinev views.\n\n**Authorization:** Requires any one of these roles: `org.permission.kview.update`; or legacy `org.admin.kview.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/update-kviews-order"
       }
      },
      {
       "name": "Update KView",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/kviews/:resource/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "kviews",
          ":resource",
          ":id"
         ],
         "variable": [
          {
           "key": "resource",
           "value": "conversation",
           "description": "Required. The KView resource. Common values include `conversation`, `company`, `customer`, and custom object resources such as `kobject.shopify-order`."
          },
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. ID of the KView"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"template\": \"string\",\n  \"context\": \"expanded-timeline\",\n  \"meta\": {},\n  \"enabled\": true,\n  \"advanced\": true,\n  \"layout\": [\n    null\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a KView.\n\n**Authorization:** Requires any one of these roles: `org.permission.kview.update`; or legacy `org.admin.kview.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/update-kview"
       }
      }
     ]
    },
    {
     "name": "Outbound Web Hooks (Transactions)",
     "item": [
      {
       "name": "List Transactions",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/outbound-webhooks/transactions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "outbound-webhooks",
          "transactions"
         ]
        },
        "description": "Shows up to 25 most recent delivery attempts of all outbound webhooks\n\n**Authorization:** Requires any one of these roles: `org.outbound_webhooks`, `org.permission.outbound_webhook.read`; or legacy `org.admin.outbound_webhooks`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/list-transactions"
       }
      },
      {
       "name": "List Transactions For Webhook",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/outbound-webhooks/:webhookId/transactions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "outbound-webhooks",
          ":webhookId",
          "transactions"
         ],
         "variable": [
          {
           "key": "webhookId",
           "value": "5f184e74c61792001af42e49",
           "description": "Required."
          }
         ]
        },
        "description": "Shows up to 25 most recent delivery attempts of a specific outbound webhook\n\n**Authorization:** Requires any one of these roles: `org.outbound_webhooks`, `org.permission.outbound_webhook.read`; or legacy `org.admin.outbound_webhooks`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/list-transactions-for-webhook"
       }
      }
     ]
    },
    {
     "name": "Outbound Web Hooks",
     "item": [
      {
       "name": "List Outbound Webhooks",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/outbound-webhooks",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "outbound-webhooks"
         ],
         "query": [
          {
           "key": "appDisabled",
           "value": "false",
           "description": "Optional. Filter app-installed resources by app-disabled status.",
           "disabled": true
          },
          {
           "key": "filter[events]",
           "value": "kustomer.conversation.create",
           "description": "Optional. Additional outbound webhook filters.",
           "disabled": true
          },
          {
           "key": "from",
           "value": "5f3a9a562b3fc60013f5d756",
           "description": "Optional. Return outbound webhooks with IDs greater than this value.",
           "disabled": true
          }
         ]
        },
        "description": "Fetches outbound web hooks.\n\n**Authorization:** Requires any one of these roles: `org.outbound_webhooks`, `org.permission.outbound_webhook.read`; or legacy `org.admin.outbound_webhooks`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/list-outbound-webhooks"
       }
      },
      {
       "name": "Create Outbound Webhook",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/outbound-webhooks",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "outbound-webhooks"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"Conversation Sync\",\n  \"url\": \"https://example.com\",\n  \"events\": [\n    \"kustomer.conversation.create\",\n    \"kustomer.conversation.update\",\n    \"kustomer.message.create\"\n  ],\n  \"headers\": [\n    {\n      \"name\": \"foo\",\n      \"value\": \"bar\"\n    }\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates an outbound web hook.\n\n**Authorization:** Requires any one of these roles: `org.outbound_webhooks`, `org.permission.outbound_webhook.create`; or legacy `org.admin.outbound_webhooks`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/create-outbound-webhook"
       }
      },
      {
       "name": "List Subscribable Events",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/outbound-webhooks/events",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "outbound-webhooks",
          "events"
         ]
        },
        "description": "Returns a list of all events your outbound webhooks can subscribe to\n\n**Authorization:** Requires any one of these roles: `org.outbound_webhooks`, `org.permission.outbound_webhook.read`; or legacy `org.admin.outbound_webhooks`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/list-subscribable-events"
       }
      },
      {
       "name": "Get Outbound Webhook",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/outbound-webhooks/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "outbound-webhooks",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required."
          }
         ]
        },
        "description": "Fetches an outbound web hook based on the ID.\n\n**Authorization:** Requires any one of these roles: `org.outbound_webhooks`, `org.permission.outbound_webhook.read`; or legacy `org.admin.outbound_webhooks`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/get-outbound-webhook"
       }
      },
      {
       "name": "Update Outbound Webhook",
       "request": {
        "method": "PATCH",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/outbound-webhooks/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "outbound-webhooks",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required."
          }
         ]
        },
        "description": "Updates an outbound web hook based on the ID.\n\n**Authorization:** Requires any one of these roles: `org.outbound_webhooks`, `org.permission.outbound_webhook.update`; or legacy `org.admin.outbound_webhooks`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/update-outbound-webhook"
       }
      },
      {
       "name": "Delete Outbound Webhook",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/outbound-webhooks/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "outbound-webhooks",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required."
          }
         ]
        },
        "description": "Deletes an outbound web hook based on the ID.\n\n**Authorization:** Requires any one of these roles: `org.outbound_webhooks`, `org.permission.outbound_webhook.delete`; or legacy `org.admin.outbound_webhooks`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/apps-platform/delete-outbound-webhook"
       }
      }
     ]
    }
   ]
  },
  {
   "name": "Settings and configurations",
   "description": "Chat settings, notifications, search filters, shortcuts, snippets, satisfaction surveys, snoozes and user settings.",
   "item": [
    {
     "name": "Chat Settings",
     "item": [
      {
       "name": "Get chat settings",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/chat/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "chat",
          "settings"
         ]
        },
        "description": "Retrieves the display options for the chat channel.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-chat-settings"
       }
      },
      {
       "name": "Set chat settings",
       "request": {
        "method": "PATCH",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/chat/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "chat",
          "settings"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"teamName\": \"Help Team Name\",\n  \"greeting\": \"We're here to help. Let us know if we can help.\",\n  \"autoreply\": \"Thanks for messaging us! We'll get back to you soon.\",\n  \"teamIconUrl\": null,\n  \"embedIconUrl\": null\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Sets the display options for the chat channel.\n\n**Authorization:** Requires any one of these roles: `org.permission.apps.update`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/set-chat-settings"
       }
      }
     ]
    },
    {
     "name": "Notifications (Logs)",
     "item": [
      {
       "name": "Get notifications logs settings",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/notifications/logs/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notifications",
          "logs",
          "settings"
         ]
        },
        "description": "Fetches settings for notifications logs.\n\n**Authorization:** Requires any one of these roles: `org.permission.setting.read`; or legacy `org.user.setting.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-notifications-logs-settings"
       }
      },
      {
       "name": "Update notifications logs settings",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/notifications/logs/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notifications",
          "logs",
          "settings"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"emails\": [\n    \"jane.doe@example.com\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates settings for notifications logs.\n\n**Authorization:** Requires any one of these roles: `org.permission.setting.update`; or legacy `org.admin.setting.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-notifications-logs-settings"
       }
      }
     ]
    },
    {
     "name": "Notifications (Settings)",
     "item": [
      {
       "name": "Get notification settings for current user",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/notifications/users/current/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notifications",
          "users",
          "current",
          "settings"
         ]
        },
        "description": "Fetches notifications settings for the current user.\n\n**Authorization:** Requires any one of these roles: `org.permission.notification.read`; or legacy `org.user.notification.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-notification-settings-for-current-user"
       }
      },
      {
       "name": "Update notification settings for current user",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/notifications/users/current/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notifications",
          "users",
          "current",
          "settings"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"notify_kustomer_conversation_firstmessagein\": {\n    \"web\": \"always\",\n    \"email\": \"always\"\n  },\n  \"notify_kustomer_conversation_messagein\": {\n    \"web\": \"always\",\n    \"email\": \"always\"\n  },\n  \"notify_kustomer_conversation_assign_message_create\": {\n    \"web\": \"always\",\n    \"email\": \"always\"\n  },\n  \"notify_kustomer_conversation_assign_message_create_by_app\": {\n    \"web\": \"always\",\n    \"email\": \"always\"\n  },\n  \"notify_kustomer_customer_follow_message_create\": {\n    \"web\": \"always\",\n    \"email\": \"always\"\n  },\n  \"notify_kustomer_customer_follow_message_create_by_app\": {\n    \"web\": \"always\",\n    \"email\": \"always\"\n  }\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates notifications settings for the current user.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-notification-settings-for-current-user"
       }
      }
     ]
    },
    {
     "name": "Notifications",
     "item": [
      {
       "name": "Get notifications",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/notifications",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notifications"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves all user in-app notifications.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-notifications"
       }
      },
      {
       "name": "Update notifications",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/notifications",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notifications"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"status\": \"read\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates all user in-app notifications.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-notifications"
       }
      },
      {
       "name": "Delete notifications",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/notifications",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "notifications"
         ]
        },
        "description": "Deletes all user in-app notifications.\n\n**Authorization:** Requires any one of these roles: `org.permission.notification.delete`; or legacy `org.user.notification.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/delete-notifications"
       }
      }
     ]
    },
    {
     "name": "Search Filters",
     "item": [
      {
       "name": "Get all searches",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/searches",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "searches"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "filter",
           "value": "all",
           "description": "Optional. Saved-search visibility filter. Supported values with special handling are `all`, `search`, and `autopilot`; `all` requires org admin privileges and otherwise only searches visible to the current user are returned.",
           "disabled": true
          },
          {
           "key": "sort",
           "value": "autopilot",
           "description": "Optional. Sort strategy for saved searches.",
           "disabled": true
          },
          {
           "key": "count",
           "value": "true",
           "description": "Optional. Whether to include saved search count metadata.",
           "disabled": true
          }
         ]
        },
        "description": "Fetches all existing saved searches.\n\n**Authorization:** Requires any one of these roles: `org.permission.search.read`; or legacy `org.user.search.read`, `org.admin.search.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-all-searches"
       }
      },
      {
       "name": "Create Saved Search",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/searches",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "searches"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"Jane Doe\",\n  \"data\": {\n    \"queryContext\": \"string\",\n    \"and\": {},\n    \"or\": {}\n  },\n  \"icon\": \"string\",\n  \"badgeColor\": \"string\",\n  \"showBadge\": true,\n  \"externalId\": \"crm-10293\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a saved search.\n\n**Authorization:** Requires any one of these roles: `org.permission.search.create`; or legacy `org.admin.search.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/create-saved-search"
       }
      },
      {
       "name": "Get saved search by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/searches/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "searches",
          ":id"
         ],
         "query": [
          {
           "key": "count",
           "value": "true",
           "description": "Optional. Whether to include saved search count metadata.",
           "disabled": true
          },
          {
           "key": "filter",
           "value": "all",
           "description": "Optional. Saved-search visibility filter. Supported values with special handling are `all`, `search`, and `autopilot`; `all` requires org admin privileges and otherwise only searches visible to the current user are returned.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Search filter ID."
          }
         ]
        },
        "description": "Retrieves the definition of an existing saved search based on its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.search.read`; or legacy `org.user.search.read`, `org.admin.search.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-saved-search-by-id"
       }
      },
      {
       "name": "Update search by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/searches/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "searches",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Search filter ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"Jane Doe\",\n  \"data\": {\n    \"queryContext\": \"string\",\n    \"and\": {},\n    \"or\": {}\n  },\n  \"icon\": \"string\",\n  \"badgeColor\": \"string\",\n  \"showBadge\": true,\n  \"externalId\": \"crm-10293\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates the definition of an existing saved search by its ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.search.update`; or legacy `org.admin.search.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-search-by-id"
       }
      },
      {
       "name": "Delete search by ID",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/searches/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "searches",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Required. Search filter ID."
          }
         ]
        },
        "description": "Deletes an existing saved search by its ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.search.delete`; or legacy `org.admin.search.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/delete-search-by-id"
       }
      },
      {
       "name": "Get search positions",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/searches/positions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "searches",
          "positions"
         ],
         "query": [
          {
           "key": "filter",
           "value": "all",
           "description": "Optional. Position visibility filter. `all` returns the full org position tree for org admins; otherwise the handler returns positions for searches visible to the current user.",
           "disabled": true
          }
         ]
        },
        "description": "Fetches the positions of searches and folders for the organization.\n\nWith no query params provided, returns only searches the current user has permission to view and folders that are not empty.\n\nWith ```filter=all``` as a query param, returns all searches and folders that exist in the organization.\n\n#### NOTE\n> ```filter=all``` requires **org.admin** privileges. Without sufficient privileges, only searches and folders the user has permission to view will be returned.\n\n**Authorization:** Requires any one of these roles: `org.permission.search.read`; or legacy `org.user.search.read`, `org.admin.search.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-search-positions"
       }
      },
      {
       "name": "Update search positions",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/searches/positions",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "searches",
          "positions"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"positions\": [\n    {\n      \"type\": \"search\",\n      \"id\": \"65f2c0a1b4e3d2001234abcd\"\n    }\n  ],\n  \"rev\": 0\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates the order in which searches and folders display for the entire organization.\n\nNote that folders cannot be placed into other folders. Folders and searches cannot be removed or added from this endpoint, only reordered.\n\n**Authorization:** Requires any one of these roles: `org.permission.search.update`; or legacy `org.admin.search.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-search-positions"
       }
      },
      {
       "name": "Get schema for searches",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/searches/schema",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "searches",
          "schema"
         ]
        },
        "description": "Fetches schemas for searches.\n\n**Authorization:** Requires any one of these roles: `org.permission.search.read`, `org.permission.analytics_export`, `org.permission.revenue_setting.read`; or legacy `org.user.search.read`, `org.admin.search.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-schema-for-searches"
       }
      }
     ]
    },
    {
     "name": "Search Filters (Folders)",
     "item": [
      {
       "name": "Create search folder",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/searches/folders",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "searches",
          "folders"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"Jane Doe\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new folder for searches.\n\n**Authorization:** Requires any one of these roles: `org.permission.search.create`; or legacy `org.admin.search.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/create-search-folder"
       }
      },
      {
       "name": "Update search folder by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/searches/folders/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "searches",
          "folders",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd6",
           "description": "Required. Search folder ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"Jane Doe\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a searches folder based on the folder ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.search.update`; or legacy `org.admin.search.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-search-folder-by-id"
       }
      },
      {
       "name": "Delete search folder by ID",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/searches/folders/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "searches",
          "folders",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd6",
           "description": "Required. Search folder ID."
          }
         ]
        },
        "description": "Deletes a searches folder based on the folder ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.search.delete`; or legacy `org.admin.search.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/delete-search-folder-by-id"
       }
      }
     ]
    },
    {
     "name": "Search Filters (Pinned)",
     "item": [
      {
       "name": "Get all pinned searches",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/searches/pinned",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "searches",
          "pinned"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          }
         ]
        },
        "description": "Fetches all pinned searches.\n\n**Authorization:** Requires any one of these roles: `org.permission.search_pinned.read`; or legacy `org.user.search.read`, `org.admin.search.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-all-pinned-searches"
       }
      },
      {
       "name": "Pin search",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/searches/pinned",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "searches",
          "pinned"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"search\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a pinned search.\n\n**Authorization:** Requires any one of these roles: `org.permission.search_pinned.create`; or legacy `org.user.search.read`, `org.admin.search.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/pin-search"
       }
      },
      {
       "name": "Delete pinned search by ID",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/customers/searches/pinned/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "customers",
          "searches",
          "pinned",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd7",
           "description": "Required. Pinned search ID."
          }
         ]
        },
        "description": "Deletes a pinned search by its ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.search_pinned.delete`; or legacy `org.user.search.read`, `org.admin.search.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/delete-pinned-search-by-id"
       }
      }
     ]
    },
    {
     "name": "Settings",
     "item": [
      {
       "name": "Get settings",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "settings"
         ],
         "query": [
          {
           "key": "app",
           "value": "kustomer",
           "description": "Optional. Exact setting application identifier to filter by. Values are dynamic and depend on the setting definitions for the org/apps.",
           "disabled": true
          },
          {
           "key": "category",
           "value": "conversation",
           "description": "Optional. Exact setting category to filter by. Values are dynamic and depend on the setting definitions for the selected app.",
           "disabled": true
          },
          {
           "key": "fields",
           "value": "name,value,type",
           "description": "Optional. Comma-separated setting fields to include in the response. Supported fields are `name`, `value`, `app`, `appVersion`, `type`, `description`, `hidden`, `category`, `createdAt`, `modifiedBy`, `modifiedAt`, `updatedAt`, `org`, and `user`; unknown fields are ignored.",
           "disabled": true
          }
         ]
        },
        "description": "Search settings.\n\n**Authorization:** Requires any one of these roles: `org.permission.setting.read`; or legacy `org.user.setting.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-settings"
       }
      },
      {
       "name": "Get user settings",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/users/:id/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users",
          ":id",
          "settings"
         ],
         "query": [
          {
           "key": "app",
           "value": "kustomer",
           "description": "Optional. Exact setting application identifier to filter by. Values are dynamic and depend on the setting definitions for the org/apps.",
           "disabled": true
          },
          {
           "key": "category",
           "value": "conversation",
           "description": "Optional. Exact setting category to filter by. Values are dynamic and depend on the setting definitions for the selected app.",
           "disabled": true
          },
          {
           "key": "fields",
           "value": "name,value,type",
           "description": "Optional. Comma-separated setting fields to include in the response. Supported fields are `name`, `value`, `app`, `appVersion`, `type`, `description`, `hidden`, `category`, `createdAt`, `modifiedBy`, `modifiedAt`, `updatedAt`, `org`, and `user`; unknown fields are ignored.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa45623f88001a8e0bbb",
           "description": "Required. User ID."
          }
         ]
        },
        "description": "Search user settings.\n\n**Authorization:** Requires any one of these roles: `org.permission.setting.read`, `org.permission.user.read`; or legacy `org.admin.setting.read`, `org.admin.user.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-user-settings"
       }
      },
      {
       "name": "Get user settings for current user",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/users/current/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users",
          "current",
          "settings"
         ],
         "query": [
          {
           "key": "app",
           "value": "kustomer",
           "description": "Optional. Exact setting application identifier to filter by. Values are dynamic and depend on the setting definitions for the org/apps.",
           "disabled": true
          },
          {
           "key": "category",
           "value": "conversation",
           "description": "Optional. Exact setting category to filter by. Values are dynamic and depend on the setting definitions for the selected app.",
           "disabled": true
          },
          {
           "key": "fields",
           "value": "name,value,type",
           "description": "Optional. Comma-separated setting fields to include in the response. Supported fields are `name`, `value`, `app`, `appVersion`, `type`, `description`, `hidden`, `category`, `createdAt`, `modifiedBy`, `modifiedAt`, `updatedAt`, `org`, and `user`; unknown fields are ignored.",
           "disabled": true
          }
         ]
        },
        "description": "Search settings for the current user.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-user-settings-for-current-user"
       }
      },
      {
       "name": "Get a setting",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/settings/:app/:category/:name",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "settings",
          ":app",
          ":category",
          ":name"
         ],
         "query": [
          {
           "key": "fields",
           "value": "name,value,type",
           "description": "Optional. Comma-separated setting fields to include in the response. Supported fields are `name`, `value`, `app`, `appVersion`, `type`, `description`, `hidden`, `category`, `createdAt`, `modifiedBy`, `modifiedAt`, `updatedAt`, `org`, and `user`; unknown fields are ignored.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "app",
           "value": "kustomer",
           "description": "Required. Application identifier."
          },
          {
           "key": "category",
           "value": "conversation",
           "description": "Required. Setting category."
          },
          {
           "key": "name",
           "value": "defaultView",
           "description": "Required. Setting key name."
          }
         ]
        },
        "description": "Get single setting.\n\n**Authorization:** Requires any one of these roles: `org.permission.setting.read`; or legacy `org.user.setting.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-a-setting"
       }
      },
      {
       "name": "Update a setting",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/settings/:app/:category/:name",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "settings",
          ":app",
          ":category",
          ":name"
         ],
         "variable": [
          {
           "key": "app",
           "value": "kustomer",
           "description": "Required. Application identifier."
          },
          {
           "key": "category",
           "value": "conversation",
           "description": "Required. Setting category."
          },
          {
           "key": "name",
           "value": "defaultView",
           "description": "Required. Setting key name."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"value\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Update a single setting.\n\n**Authorization:** Requires any one of these roles: `org.permission.setting.update`; or legacy `org.admin.setting.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-a-setting"
       }
      }
     ]
    },
    {
     "name": "Settings (Specific User)",
     "item": [
      {
       "name": "Get specific user setting",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/users/:id/settings/:app/:category/:name",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users",
          ":id",
          "settings",
          ":app",
          ":category",
          ":name"
         ],
         "query": [
          {
           "key": "fields",
           "value": "name,value,type",
           "description": "Optional. Comma-separated setting fields to include in the response. Supported fields are `name`, `value`, `app`, `appVersion`, `type`, `description`, `hidden`, `category`, `createdAt`, `modifiedBy`, `modifiedAt`, `updatedAt`, `org`, and `user`; unknown fields are ignored.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa45623f88001a8e0bbb",
           "description": "Required. User ID."
          },
          {
           "key": "app",
           "value": "kustomer",
           "description": "Required. Application identifier."
          },
          {
           "key": "category",
           "value": "conversation",
           "description": "Required. Setting category."
          },
          {
           "key": "name",
           "value": "defaultView",
           "description": "Required. Setting key name."
          }
         ]
        },
        "description": "Search settings for a specific user.\n\n**Authorization:** Requires any one of these roles: `org.permission.setting.read`, `org.permission.user.read`; or legacy `org.admin.setting.read`, `org.admin.user.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-specific-user-setting"
       }
      },
      {
       "name": "Update specific user setting",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/users/:id/settings/:app/:category/:name",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users",
          ":id",
          "settings",
          ":app",
          ":category",
          ":name"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5e15fa45623f88001a8e0bbb",
           "description": "Required. User ID."
          },
          {
           "key": "app",
           "value": "kustomer",
           "description": "Required. Application identifier."
          },
          {
           "key": "category",
           "value": "conversation",
           "description": "Required. Setting category."
          },
          {
           "key": "name",
           "value": "defaultView",
           "description": "Required. Setting key name."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"value\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Update settings for a specific user.\n\n**Authorization:** Requires any one of these roles: `org.permission.setting.update`, `org.permission.user.update`; or legacy `org.admin.setting.write`, `org.admin.user.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-specific-user-setting"
       }
      },
      {
       "name": "Get specific user setting for current user",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/users/current/settings/:app/:category/:name",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users",
          "current",
          "settings",
          ":app",
          ":category",
          ":name"
         ],
         "query": [
          {
           "key": "fields",
           "value": "name,value,type",
           "description": "Optional. Comma-separated setting fields to include in the response. Supported fields are `name`, `value`, `app`, `appVersion`, `type`, `description`, `hidden`, `category`, `createdAt`, `modifiedBy`, `modifiedAt`, `updatedAt`, `org`, and `user`; unknown fields are ignored.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "app",
           "value": "kustomer",
           "description": "Required. Application identifier."
          },
          {
           "key": "category",
           "value": "conversation",
           "description": "Required. Setting category."
          },
          {
           "key": "name",
           "value": "defaultView",
           "description": "Required. Setting key name."
          }
         ]
        },
        "description": "Searches specific user settings for the current user.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-specific-user-setting-for-current-user"
       }
      },
      {
       "name": "Update specific user setting for current user",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/users/current/settings/:app/:category/:name",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users",
          "current",
          "settings",
          ":app",
          ":category",
          ":name"
         ],
         "variable": [
          {
           "key": "app",
           "value": "kustomer",
           "description": "Required. Application identifier."
          },
          {
           "key": "category",
           "value": "conversation",
           "description": "Required. Setting category."
          },
          {
           "key": "name",
           "value": "defaultView",
           "description": "Required. Setting key name."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"value\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates specific user settings for the current user.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-specific-user-setting-for-current-user"
       }
      }
     ]
    },
    {
     "name": "Shortcuts (Categories)",
     "item": [
      {
       "name": "Get shortcut categories",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/shortcuts/categories",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "shortcuts",
          "categories"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "translate",
           "value": "false",
           "description": "Optional. Set to `false` to return untranslated shortcut content.",
           "disabled": true
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Optional. Language code used to localize the response.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves all shortcut categories.\n\n**Authorization:** Requires any one of these roles: `org.permission.shortcut.read`; or legacy `org.user.content.shortcut.read`, `org.user.shortcut.read`, `org.admin.content.shortcut.read`, `org.admin.shortcut.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-shortcut-categories"
       }
      },
      {
       "name": "Create a shortcut category",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/shortcuts/categories",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "shortcuts",
          "categories"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"parent\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Create a new shortcut category.\n\n**Authorization:** Requires any one of these roles: `org.permission.shortcut.create`; or legacy `org.admin.content.shortcut.write`, `org.admin.shortcut.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/create-a-shortcut-category"
       }
      },
      {
       "name": "Get a shortcut category",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/shortcuts/categories/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "shortcuts",
          "categories",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd9",
           "description": "Required. Shortcut category ID."
          }
         ]
        },
        "description": "Get a shortcut category by ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.shortcut.read`; or legacy `org.user.content.shortcut.read`, `org.user.shortcut.read`, `org.admin.content.shortcut.read`, `org.admin.shortcut.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-a-shortcut-category"
       }
      },
      {
       "name": "Update a shortcut category",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/shortcuts/categories/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "shortcuts",
          "categories",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd9",
           "description": "Required. Shortcut category ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"parent\": \"string\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Update a shortcut category by ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.shortcut.update`; or legacy `org.admin.content.shortcut.write`, `org.admin.shortcut.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-a-shortcut-category"
       }
      },
      {
       "name": "Delete a shortcut category",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/shortcuts/categories/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "shortcuts",
          "categories",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd9",
           "description": "Required. Shortcut category ID."
          }
         ]
        },
        "description": "Delete a shortcut category by ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.shortcut.delete`; or legacy `org.admin.content.shortcut.write`, `org.admin.shortcut.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/delete-a-shortcut-category"
       }
      }
     ]
    },
    {
     "name": "Shortcuts",
     "item": [
      {
       "name": "Get all shortcuts",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/shortcuts",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "shortcuts"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "translate",
           "value": "false",
           "description": "Optional. Set to `false` to return untranslated shortcut content.",
           "disabled": true
          },
          {
           "key": "deleted",
           "value": "false",
           "description": "Optional. Filter shortcuts by deletion state.",
           "disabled": true
          },
          {
           "key": "name",
           "value": "follow up",
           "description": "Optional. Case-insensitive prefix filter for shortcut names. For example, `follow up` matches shortcut names beginning with `follow up`.",
           "disabled": true
          },
          {
           "key": "appCreated",
           "value": "false",
           "description": "Optional. Filter shortcuts by app ownership. `true` returns shortcuts created by apps; `false` returns shortcuts not created by apps.",
           "disabled": true
          },
          {
           "key": "tagId",
           "value": "6026aba3fcca5f03e5541cd5",
           "description": "Optional. Filter shortcuts by exact tag ID.",
           "disabled": true
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Optional. Language code used to localize the response.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves all shortcuts or filter by shortcut name starting with text\n\n**Authorization:** Requires any one of these roles: `org.permission.shortcut.read`; or legacy `org.user.content.shortcut.read`, `org.user.shortcut.read`, `org.admin.content.shortcut.read`, `org.admin.shortcut.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-all-shortcuts"
       }
      },
      {
       "name": "Create a shortcut",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/shortcuts",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "shortcuts"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"parent\": \"string\",\n  \"draft\": {\n    \"text\": \"Example text\",\n    \"template\": \"string\"\n  },\n  \"payload\": {},\n  \"accessTeams\": [\n    \"string\"\n  ],\n  \"accessUsers\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new shortcut.\n\n**Authorization:** Requires any one of these roles: `org.permission.shortcut.create`; or legacy `org.admin.content.shortcut.write`, `org.admin.shortcut.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/create-a-shortcut"
       }
      },
      {
       "name": "Get a shortcut",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/shortcuts/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "shortcuts",
          ":id"
         ],
         "query": [
          {
           "key": "translate",
           "value": "false",
           "description": "Optional. Set to `false` to return untranslated shortcut content.",
           "disabled": true
          },
          {
           "key": "deleted",
           "value": "false",
           "description": "Optional. Filter shortcuts by deletion state.",
           "disabled": true
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Optional. Language code used to localize the response.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd8",
           "description": "Required. Shortcut ID."
          }
         ]
        },
        "description": "Gets a shortcut by ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.shortcut.read`; or legacy `org.user.content.shortcut.read`, `org.user.shortcut.read`, `org.admin.content.shortcut.read`, `org.admin.shortcut.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-a-shortcut"
       }
      },
      {
       "name": "Update a shortcut",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/shortcuts/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "shortcuts",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd8",
           "description": "Required. Shortcut ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"parent\": \"string\",\n  \"draft\": {\n    \"text\": \"Example text\",\n    \"template\": \"string\"\n  },\n  \"payload\": {},\n  \"accessTeams\": [\n    \"string\"\n  ],\n  \"accessUsers\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a shortcut by ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.shortcut.update`; or legacy `org.admin.content.shortcut.write`, `org.admin.shortcut.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-a-shortcut"
       }
      },
      {
       "name": "Delete a shortcut",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/shortcuts/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "shortcuts",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cd8",
           "description": "Required. Shortcut ID."
          }
         ]
        },
        "description": "Deletes a shortcut by ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.shortcut.delete`; or legacy `org.admin.content.shortcut.write`, `org.admin.shortcut.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/delete-a-shortcut"
       }
      }
     ]
    },
    {
     "name": "Snippets",
     "item": [
      {
       "name": "Get snippets",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/snippets",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snippets"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number of results to return.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results to return per page.",
           "disabled": true
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Optional. Language code used to localize the response.",
           "disabled": true
          }
         ]
        },
        "description": "Gets all snippets.\n\n**Authorization:** Requires any one of these roles: `org.permission.snippet.read`; or legacy `org.user.content.snippet.read`, `org.user.snippet.read`, `org.admin.content.snippet.read`, `org.admin.snippet.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-snippets"
       }
      },
      {
       "name": "Create snippet",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/snippets",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snippets"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"category\": \"string\",\n  \"description\": \"Example text\",\n  \"source\": \"string\",\n  \"langs\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new snippet document.\n\n**Authorization:** Requires any one of these roles: `org.permission.snippet.create`; or legacy `org.admin.content.snippet.write`, `org.admin.snippet.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/create-snippet"
       }
      },
      {
       "name": "Get snippet by ID or key",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/snippets/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snippets",
          ":id"
         ],
         "query": [
          {
           "key": "fields",
           "value": "key,name,description",
           "description": "Optional. Comma-separated snippet document fields to project. Common supported fields are `key`, `name`, `description`, `app`, `category`, `source`, `parent`, `createdAt`, `createdBy`, `updatedAt`, `modifiedAt`, `modifiedBy`, `deleted`, `deletedAt`, `deletedBy`, and `langs`. When `lang` is also provided, `langs` is replaced with language-specific fields such as `langs.en_us`.",
           "disabled": true
          },
          {
           "key": "lang",
           "value": "en_us",
           "description": "Optional. Language code used to localize the response.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cda",
           "description": "Required. Snippet ID or key."
          }
         ]
        },
        "description": "Returns the snippet matching the ID or key.\n\n**Authorization:** Requires any one of these roles: `org.permission.snippet.read`; or legacy `org.user.content.snippet.read`, `org.user.snippet.read`, `org.admin.content.snippet.read`, `org.admin.snippet.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-snippet-by-id-or-key"
       }
      },
      {
       "name": "Update snippet",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/snippets/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snippets",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cda",
           "description": "Required. Snippet ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"app\": \"string\",\n  \"category\": \"string\",\n  \"description\": \"Example text\",\n  \"langs\": {},\n  \"deleted\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates the requested snippet.\n\n**Authorization:** Requires any one of these roles: `org.permission.snippet.update`; or legacy `org.admin.content.snippet.write`, `org.admin.snippet.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-snippet"
       }
      },
      {
       "name": "Patch snippet",
       "request": {
        "method": "PATCH",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/snippets/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snippets",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cda",
           "description": "Required. Snippet ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"app\": \"string\",\n  \"category\": \"string\",\n  \"description\": \"Example text\",\n  \"langs\": {}\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Partially updates the requested snippet.\n\n**Authorization:** Requires any one of these roles: `org.permission.snippet.update`; or legacy `org.admin.content.snippet.write`, `org.admin.snippet.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/patch-snippet"
       }
      }
     ]
    },
    {
     "name": "Satisfaction Surveys",
     "item": [
      {
       "name": "Create a satisfaction survey",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/satisfaction",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "satisfaction"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"description\": \"Example text\",\n  \"enabled\": true,\n  \"formType\": \"csat\",\n  \"channel\": \"email\",\n  \"scale\": {\n    \"options\": 2,\n    \"type\": \"string\",\n    \"labelHigh\": \"string\"\n  }\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new satisfaction survey.\n\nEach channel supports up to 30 **enabled** surveys. Disabled surveys do not count toward this limit. Creating a survey with `enabled: true` when the target channel already has 30 enabled surveys returns `422 Unprocessable Entity`.\n\n**Authorization:** Requires any one of these roles: `org.permission.satisfaction.create`; or legacy `org.admin.satisfaction.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/create-a-satisfaction-survey"
       }
      },
      {
       "name": "Update a satisfaction survey",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/satisfaction/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "satisfaction",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5daf7921124be4f2960cb197",
           "description": "Required. Satisfaction survey ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"description\": \"Example text\",\n  \"subjectOverride\": \"string\",\n  \"from\": {\n    \"account\": \"string\",\n    \"app\": \"string\",\n    \"channel\": \"string\"\n  },\n  \"channel\": \"email\",\n  \"enabled\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a satisfaction survey by ID.\n\nEnabling a disabled survey or changing the channel of an enabled survey enforces the 30 enabled-surveys-per-channel limit. Disabled surveys do not count toward this limit. Returns `422 Unprocessable Entity` when the update would exceed channel capacity.\n\nUse criteria in the request body to control the survey's audience rules.\n\nKeep the existing audience rules: omit criteria entirely.\n\n```json\n{\n  \"name\": \"Post-conversation survey\"\n}\n```\n\nClear the existing audience rules: send criteria: null.\n\n```json\n{\n  \"criteria\": null\n}\n```\n\nOr send an empty rule object:\n\n```json\n{\n  \"criteria\": {\n    \"and\": [],\n    \"or\": []\n  }\n}\n```\n\nBoth clearing forms remove the stored audience rules.\n\n**Authorization:** Requires any one of these roles: `org.permission.satisfaction.update`; or legacy `org.admin.satisfaction.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-a-satisfaction-survey"
       }
      },
      {
       "name": "Update satisfaction survey order",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/satisfaction/order",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "satisfaction",
          "order"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"satisfactionForms\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates the display order of satisfaction surveys for the organization.\n\nThe `satisfactionForms` array may contain up to 500 survey IDs and defines the order in which enabled surveys are evaluated for a channel.\n\n**Authorization:** Requires any one of these roles: `org.permission.satisfaction.update`; or legacy `org.admin.satisfaction.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-satisfaction-survey-order"
       }
      }
     ]
    },
    {
     "name": "Snoozes",
     "item": [
      {
       "name": "Get all snoozes",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/snoozes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snoozes"
         ],
         "query": [
          {
           "key": "resource",
           "value": "conversation",
           "description": "Optional. Exact snooze resource type to return. Defaults to `conversation` when omitted.",
           "disabled": true
          },
          {
           "key": "parentId",
           "value": "60254e3ec413ae00571e3c96",
           "description": "Optional. Exact parent resource ID to filter snoozes by.",
           "disabled": true
          },
          {
           "key": "parentName",
           "value": "Support Inbox",
           "description": "Optional. Exact parent resource name to filter snoozes by.",
           "disabled": true
          }
         ]
        },
        "description": "Fetches all snoozes.\n\n**Authorization:** Requires any one of these roles: `org.permission.snooze.read`; or legacy `org.user.setting.read`, `org.admin.content.snooze.read`, `org.admin.snooze.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-all-snoozes"
       }
      },
      {
       "name": "Create a snooze",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/snoozes",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snoozes"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"value\": {},\n  \"type\": \"relative\",\n  \"enabled\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a snooze. The endpoint returns the created snooze in the response body.\n\n**Authorization:** Requires any one of these roles: `org.permission.snooze.create`; or legacy `org.admin.content.snooze.write`, `org.admin.snooze.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/create-a-snooze"
       }
      },
      {
       "name": "Get snooze by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/snoozes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snoozes",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cdb",
           "description": "Required. Snooze ID."
          }
         ]
        },
        "description": "Fetches a snooze based on the ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.snooze.read`; or legacy `org.user.setting.read`, `org.admin.content.snooze.read`, `org.admin.snooze.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/get-snooze-by-id"
       }
      },
      {
       "name": "Update snooze by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/snoozes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snoozes",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cdb",
           "description": "Required. Snooze ID."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "null",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a snooze based on the ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.snooze.update`; or legacy `org.admin.content.snooze.write`, `org.admin.snooze.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/update-snooze-by-id"
       }
      },
      {
       "name": "Delete snooze",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/snoozes/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "snoozes",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "6026aba3fcca5f03e5541cdb",
           "description": "Required. Snooze ID."
          }
         ]
        },
        "description": "Deletes a snooze based on the ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.snooze.delete`; or legacy `org.admin.content.snooze.write`, `org.admin.snooze.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/settings-and-configurations/delete-snooze"
       }
      }
     ]
    }
   ]
  },
  {
   "name": "Access management",
   "description": "Users, teams, role groups, auth tokens (API keys) and authentication settings.",
   "item": [
    {
     "name": "Auth Settings",
     "item": [
      {
       "name": "Get Auth Settings",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/auth/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "auth",
          "settings"
         ]
        },
        "description": "Gets authentication settings for the organization\n\n**Authorization:** Requires any one of these roles: `org.permission.security`; or legacy `org.admin.security`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/get-auth-settings"
       }
      },
      {
       "name": "Update Auth Settings",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/auth/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "auth",
          "settings"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"kustomer\": {\n    \"enabled\": true\n  },\n  \"google\": {\n    \"enabled\": true\n  },\n  \"saml\": {\n    \"idpPublicCerts\": [\n      \"string\"\n    ],\n    \"idpLoginUrl\": \"https://example.com\",\n    \"enabled\": true\n  },\n  \"app\": {\n    \"userSessionExpirationMilliseconds\": 0\n  }\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates authentication settings for the organization\n\n**Authorization:** Requires any one of these roles: `org.permission.security`; or legacy `org.admin.security`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/update-auth-settings"
       }
      },
      {
       "name": "Get Auth Customer Settings",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/auth/customer/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "auth",
          "customer",
          "settings"
         ]
        },
        "description": "Gets customer authentication settings, including a generated secret token.\n\n**Authorization:** Requires any one of these roles: legacy `org.admin.apps`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/get-auth-customer-settings"
       }
      },
      {
       "name": "Get Public Auth Settings",
       "request": {
        "method": "GET",
        "auth": {
         "type": "noauth"
        },
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/p/auth/settings",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "p",
          "auth",
          "settings"
         ]
        },
        "description": "Gets public authentication settings for the organization.\n\n**Authorization:** No authentication. Callable without an API key.\n\nReference: https://developer.kustomer.com/api/access-management/get-public-auth-settings"
       }
      }
     ]
    },
    {
     "name": "Auth Tokens",
     "item": [
      {
       "name": "Get Auth Tokens",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/auth/tokens",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "auth",
          "tokens"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number for pagination. Defaults to 1.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results per page. Defaults to 100.",
           "disabled": true
          },
          {
           "key": "userType",
           "value": "machine",
           "description": "Optional. User type for token filtering.",
           "disabled": true
          },
          {
           "key": "filter",
           "value": "api",
           "description": "Optional. Prefix filter for auth token names.",
           "disabled": true
          }
         ]
        },
        "description": "Returns a paginated list of auth tokens for the current user, or for a requested user type when authorized.\n\n**Authorization:** Requires any one of these roles: `org.permission.security`; or legacy `org.admin.security`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/get-auth-tokens"
       }
      },
      {
       "name": "Create Token",
       "request": {
        "method": "POST",
        "auth": {
         "type": "noauth"
        },
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/auth/tokens",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "auth",
          "tokens"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "null",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Logs in to an organization with domain, email, and password.\n\n#### NOTE\n> **Machine tokens** can be created within the settings section by an administrator for API, tracking, and hook access\n\n**Authorization:** No authentication. Callable without an API key.\n\nReference: https://developer.kustomer.com/api/access-management/create-token"
       }
      },
      {
       "name": "Get Auth Token by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/auth/tokens/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "auth",
          "tokens",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. *required* unique token id"
          }
         ]
        },
        "description": "Gets an authentication token by ID.\n\n**Authorization:** The token itself, or any one of these roles: `org.permission.security`; or legacy `org.admin.security`. A token can always act on itself. Acting on other tokens requires one of these roles. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/get-auth-token-by-id"
       }
      },
      {
       "name": "Delete Auth Token by ID",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/auth/tokens/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "auth",
          "tokens",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Unique token id"
          }
         ]
        },
        "description": "Deletes an authentication token by ID.\n\n**Authorization:** The token itself, or any one of these roles: `org.permission.security`; or legacy `org.admin.security`. A token can always act on itself. Acting on other tokens requires one of these roles. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/delete-auth-token-by-id"
       }
      },
      {
       "name": "Get Current Auth Token",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/auth/tokens/current",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "auth",
          "tokens",
          "current"
         ]
        },
        "description": "Gets the current authentication token data\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/access-management/get-current-auth-token"
       }
      },
      {
       "name": "Delete Current Auth Token",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/auth/tokens/current",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "auth",
          "tokens",
          "current"
         ]
        },
        "description": "Deletes the current authentication token\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/access-management/delete-current-auth-token"
       }
      }
     ]
    },
    {
     "name": "Role Groups",
     "item": [
      {
       "name": "Get Auth Roles",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/auth/roles",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "auth",
          "roles"
         ]
        },
        "description": "Gets available organization roles.\n\n**Authorization:** Requires any one of these roles: `org.permission.auth_role.read`; or legacy `org.user.read`, `org.admin.user.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/get-auth-roles"
       }
      },
      {
       "name": "Get All Role Groups",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/role-groups",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "role-groups"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number for pagination. Defaults to 1.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results per page. Defaults to 100.",
           "disabled": true
          }
         ]
        },
        "description": "Lists the organization's role groups.\n\nThis will include both the system (uneditable) and custom role groups.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/access-management/get-all-role-groups"
       }
      },
      {
       "name": "Create a Role Group",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/role-groups",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "role-groups"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"description\": \"Example text\",\n  \"display\": true,\n  \"roles\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a custom role group.\n\n### Auth Roles\nFor a list of the latest available auth roles, check out the response from the Get Auth Roles API endpoint.\n\n**Authorization:** Requires any one of these roles: `org.permission.role_group.write`; or legacy `org.admin.role_group.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/create-a-role-group"
       }
      },
      {
       "name": "Get A Role Group By ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/role-groups/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "role-groups",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Role Group ID"
          }
         ]
        },
        "description": "Gets a single role group.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/access-management/get-a-role-group-by-id"
       }
      },
      {
       "name": "Update a Role Group",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/role-groups/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "role-groups",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Role Group ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"example_name\",\n  \"description\": \"Example text\",\n  \"display\": true,\n  \"roles\": [\n    \"string\"\n  ],\n  \"meta\": {\n    \"outboundBrandVisibility\": {\n      \"brandIds\": [\n        \"5f184e74c61792001af42e49\"\n      ],\n      \"includeUnassigned\": false\n    }\n  }\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a role group.\n\nUse `meta.outboundBrandVisibility` to limit which email outbound accounts members of the role group can see, by brand. Send `null` to clear the setting back to unconfigured. Clients opt in to the filter with the `applyOutboundBrandVisibility` query parameter on the Get outbound accounts endpoint.\n\n### Auth Roles\nFor a list of the latest available auth roles, check out the response from the Get Auth Roles API endpoint.\n\n**Authorization:** Requires any one of these roles: `org.permission.role_group.update`; or legacy `org.admin.role_group.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/update-a-role-group"
       }
      },
      {
       "name": "Delete a Role Group",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/role-groups/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "role-groups",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Role Group ID"
          }
         ]
        },
        "description": "Deletes a role group by ID\n\n**Authorization:** Requires any one of these roles: `org.permission.role_group.delete`; or legacy `org.admin.role_group.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/delete-a-role-group"
       }
      }
     ]
    },
    {
     "name": "Teams",
     "item": [
      {
       "name": "Get Teams",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/teams",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "teams"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number for pagination. Defaults to 1.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results per page. Defaults to 100.",
           "disabled": true
          },
          {
           "key": "fields",
           "value": "name,members",
           "description": "Optional. Comma-separated team fields to return.",
           "disabled": true
          },
          {
           "key": "deleted",
           "value": "false",
           "description": "Optional. Set to `false` to return only teams that have not been deleted.",
           "disabled": true
          },
          {
           "key": "roleGroups",
           "value": "5afee08eb06db6d51b8cf61e",
           "description": "Optional. Comma-separated role group IDs. Returns teams assigned to any of the role groups.",
           "disabled": true
          }
         ]
        },
        "description": "Gets a paginated list of teams.\n\n**Authorization:** Requires any one of these roles: `org.permission.team.read`; or legacy `org.user.team.read`, `org.admin.team.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/get-teams"
       }
      },
      {
       "name": "Create Team",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/teams",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "teams"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"icon\": \"string\",\n  \"name\": \"example_name\",\n  \"displayName\": \"Example display name\",\n  \"createdAt\": \"2026-03-14T15:09:26.535Z\",\n  \"importedAt\": \"2026-03-14T15:09:26.535Z\",\n  \"externalId\": \"crm-10293\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a Team.\n\n**Authorization:** Requires any one of these roles: `org.permission.team.create`; or legacy `org.admin.team.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/create-team"
       }
      },
      {
       "name": "Get a User's Teams",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/users/:id/teams",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users",
          ":id",
          "teams"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number for pagination. Defaults to 1.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results per page. Defaults to 100.",
           "disabled": true
          },
          {
           "key": "include",
           "value": "role-groups",
           "description": "Optional. Set to `role-groups` to include role group resources for returned teams.",
           "disabled": true
          },
          {
           "key": "fields",
           "value": "name,members",
           "description": "Optional. Comma-separated team fields to return.",
           "disabled": true
          },
          {
           "key": "deleted",
           "value": "false",
           "description": "Optional. Set to `false` to return only teams that have not been deleted.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. User ID"
          }
         ]
        },
        "description": "Gets list of all Teams for a specific user.\n\n**Authorization:** Requires any one of these roles: `org.permission.team.read`; or legacy `org.user.team.read`, `org.admin.team.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/get-a-users-teams"
       }
      },
      {
       "name": "Add Team Member",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/teams/:id/members",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "teams",
          ":id",
          "members"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"members\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Adds a member to a Team.\n\n**Authorization:** Requires any one of these roles: `org.permission.team.update`; or legacy `org.admin.team.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/add-team-member"
       }
      },
      {
       "name": "Remove Team Member",
       "request": {
        "method": "DELETE",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/teams/:id/members",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "teams",
          ":id",
          "members"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"members\": [\n    \"string\"\n  ]\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Deletes a member of a Team.\n\n**Authorization:** Requires any one of these roles: `org.permission.team.update`; or legacy `org.admin.team.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/remove-team-member"
       }
      }
     ]
    },
    {
     "name": "Teams (By ID)",
     "item": [
      {
       "name": "Get Team by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/teams/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "teams",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Team ID"
          }
         ]
        },
        "description": "Gets a Team by ID.\n\n> **Note** To retrieve user records of all members within a team, use the results from the members array and make a subsequent call to [Get User Multi](#endpoint:d4yQXqTBxzzhg96Gk)\n\n**Authorization:** Requires any one of these roles: `org.permission.team.read`; or legacy `org.user.team.read`, `org.admin.team.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/get-team-by-id"
       }
      },
      {
       "name": "Update Team by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/teams/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "teams",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Team ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"icon\": \"string\",\n  \"name\": \"example_name\",\n  \"displayName\": \"Example display name\",\n  \"members\": [\n    \"string\"\n  ],\n  \"createdAt\": \"2026-03-14T15:09:26.535Z\",\n  \"deleted\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a team document by ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.team.update`; or legacy `org.admin.team.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/update-team-by-id"
       }
      },
      {
       "name": "Update Team Attributes",
       "request": {
        "method": "PATCH",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/teams/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "teams",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Team ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"icon\": \"string\",\n  \"name\": \"example_name\",\n  \"displayName\": \"Example display name\",\n  \"members\": [\n    \"string\"\n  ],\n  \"createdAt\": \"2026-03-14T15:09:26.535Z\",\n  \"deleted\": true\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates one or more Team Attribute(s) by ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.team.update`; or legacy `org.admin.team.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/update-team-attributes"
       }
      },
      {
       "name": "Delete Team",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/teams/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "teams",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Team ID"
          }
         ]
        },
        "description": "Deletes a Team by ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.team.delete`; or legacy `org.admin.team.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/delete-team"
       }
      }
     ]
    },
    {
     "name": "Users",
     "item": [
      {
       "name": "Get Users",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/users",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number for pagination. Defaults to 1.",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of results per page. Defaults to 100.",
           "disabled": true
          },
          {
           "key": "pending",
           "value": "true",
           "description": "Optional. Invitation status of user. `true` returns only users with a pending invitation. `false` returns only active users.",
           "disabled": true
          },
          {
           "key": "deleted",
           "value": "false",
           "description": "Optional. Activation status of user. `true` returns only deactivated users. `false` returns only active users.",
           "disabled": true
          },
          {
           "key": "userType",
           "value": "user",
           "description": "Optional. User type. Options: `user` for full users, `machine` for a machine user or API user, and `limited` for collaborator user.",
           "disabled": true
          },
          {
           "key": "email",
           "value": "franz.kafka@kustomer.com",
           "description": "Optional. User email address.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves users within the organization.\n\n## Filtering\n\nThis endpoint supports optional filtering in one of the following ways:\n\n**Note: These filters cannot be combined.**\n\n### Pending (invitation)\nAdd ```pending=(true|false)``` in the query parameters with one of the following options:\n\n- `true` - Return only disabled users\n- `false` - Return only active users\n\n### Deleted (deactivated)\nAdd ```deleted=(true|false)``` in the query parameters with one of the following options:\n\n- `true` - Return only deactivated users\n- `false` - Return only active users\n\n### User Type\nAdd ```userType=[userType]``` in the query parameters with one of the following options:\n\n- `user` - Full user\n- `machine` - Machine user / API user\n- `limited` - Collaborator user\n\n### Email\nAdd ```email=[email]``` in the query parameter to filter for a specific user email address.\n\n**Authorization:** Requires any one of these roles: `org.permission.user.read`; or legacy `org.user.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/get-users"
       }
      },
      {
       "name": "Create / Invite New User",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/users",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"displayName\": \"Jane Doe\",\n  \"avatarUrl\": \"https://example.com\",\n  \"name\": \"Jane Doe\",\n  \"email\": \"jane.doe@example.com\",\n  \"mobile\": \"string\",\n  \"emailSignature\": \"jane.doe@example.com\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates an account for a new user and sends an email invitation to join the organization within Kustomer.\n\n### Note\nThe permissions for the new user cannot exceed those of the user making the request and will be filtered automatically. The default roles for new users are **org.admin** and **org.user**.\n\n**Authorization:** Requires any one of these roles: `org.permission.user.create`; or legacy `org.admin.user`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/create-invite-new-user"
       }
      },
      {
       "name": "Get Current User",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/users/current",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users",
          "current"
         ]
        },
        "description": "Retrieves the current user.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/access-management/get-current-user"
       }
      },
      {
       "name": "Update Current User",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/users/current",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users",
          "current"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"displayName\": \"Jane Doe\",\n  \"avatarUrl\": \"https://example.com\",\n  \"name\": \"Jane Doe\",\n  \"email\": \"jane.doe@example.com\",\n  \"mobile\": \"string\",\n  \"emailSignature\": \"jane.doe@example.com\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates the current user.\n\n**Authorization:** Any API key or signed-in user. No specific role is required; any valid credential works.\n\nReference: https://developer.kustomer.com/api/access-management/update-current-user"
       }
      },
      {
       "name": "Reset User's Password",
       "request": {
        "method": "POST",
        "auth": {
         "type": "noauth"
        },
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/users/passwordreset",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users",
          "passwordreset"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"domain\": \"string\",\n  \"email\": \"jane.doe@example.com\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Requests a password reset.\n\nThis will send an email to the email address specified with a token-based URL for authenticating and setting a new password.\n\n**Authorization:** No authentication. Callable without an API key.\n\nReference: https://developer.kustomer.com/api/access-management/reset-users-password"
       }
      }
     ]
    },
    {
     "name": "Users (By ID)",
     "item": [
      {
       "name": "Get User by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/users/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Unique ID of the User"
          }
         ]
        },
        "description": "Retrieves a user using their unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.user.read`; or legacy `org.user.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/get-user-by-id"
       }
      },
      {
       "name": "Update User by ID",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/users/:id",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users",
          ":id"
         ],
         "variable": [
          {
           "key": "id",
           "value": "5f184e74c61792001af42e49",
           "description": "Required. Unique ID of the user."
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"displayName\": \"Jane Doe\",\n  \"avatarUrl\": \"https://example.com\",\n  \"name\": \"Jane Doe\",\n  \"email\": \"jane.doe@example.com\",\n  \"mobile\": \"string\",\n  \"emailSignature\": \"jane.doe@example.com\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates a specific user by ID.\n\n#### <i class=\"fa fa-warning\"></i> Note\n*To delete a user, set deleted to true. You can restore a user by setting deleted to null.*\n\n**Authorization:** Requires any one of these roles: `org.permission.user.update`; or legacy `org.admin.user`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/update-user-by-id"
       }
      },
      {
       "name": "Get Multiple Users by IDs",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/users/:ids",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "users",
          ":ids"
         ],
         "variable": [
          {
           "key": "ids",
           "value": "582922c07c7f551a00b5b73a,582922c07c7f551a00b5b73b",
           "description": "Required. Comma-separated ObjectIds for the users to retrieve."
          }
         ]
        },
        "description": "Retrieves multiple users in a single request using a list of unique user IDs separated by a comma.\n\n**Authorization:** Requires any one of these roles: `org.permission.user.read`; or legacy `org.user.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/access-management/get-multiple-users-by-ids"
       }
      }
     ]
    }
   ]
  },
  {
   "name": "AI and automations",
   "description": "AI automations, evaluations with test cases and runs, and conversation summaries.",
   "item": [
    {
     "name": "Automations",
     "item": [
      {
       "name": "List AI automations",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/automations",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "automations"
         ],
         "query": [
          {
           "key": "type",
           "value": "customer",
           "description": "Optional. Filter by automation type. Defaults to `customer`.",
           "disabled": true
          },
          {
           "key": "name",
           "value": "Customer Support Agent",
           "description": "Optional. Filter by automation name.",
           "disabled": true
          },
          {
           "key": "triggers",
           "value": "kustomer.conversation.create,kustomer.message.create",
           "description": "Optional. Filter by comma-separated trigger event names.",
           "disabled": true
          },
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number for pagination",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of items per page",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of AI automations (version 0 only).\n\n**Note:** Automations can only be created or modified through the Kustomer application UI.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.read`; or legacy `org.user.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/list-ai-automations"
       }
      },
      {
       "name": "Get AI automation by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/automations/:automationId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "automations",
          ":automationId"
         ],
         "variable": [
          {
           "key": "automationId",
           "value": "507f1f77bcf86cd799439011",
           "description": "Required. Automation ID"
          }
         ]
        },
        "description": "Retrieves a specific AI automation by its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.read`; or legacy `org.user.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/get-ai-automation-by-id"
       }
      }
     ]
    },
    {
     "name": "Evaluations",
     "item": [
      {
       "name": "List evaluations for an automation",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/automations/:automationId/evaluations",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "automations",
          ":automationId",
          "evaluations"
         ],
         "query": [
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number for pagination",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of items per page",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "automationId",
           "value": "507f1f77bcf86cd799439011",
           "description": "Required. Automation ID"
          }
         ]
        },
        "description": "Retrieves a paginated list of evaluations for a specific automation.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.read`; or legacy `org.user.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/list-evaluations-for-an-automation"
       }
      },
      {
       "name": "Create an evaluation",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/evaluations",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "evaluations"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"Q1 2024 Evaluation\",\n  \"automationId\": \"507f1f77bcf86cd799439012\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new evaluation for testing AI automation performance.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.create`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/create-an-evaluation"
       }
      },
      {
       "name": "Get evaluation by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/evaluations/:evaluationId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "evaluations",
          ":evaluationId"
         ],
         "variable": [
          {
           "key": "evaluationId",
           "value": "507f1f77bcf86cd799439011",
           "description": "Required. Evaluation ID"
          }
         ]
        },
        "description": "Retrieves a specific evaluation by its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.read`; or legacy `org.user.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/get-evaluation-by-id"
       }
      },
      {
       "name": "Update an evaluation",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/evaluations/:evaluationId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "evaluations",
          ":evaluationId"
         ],
         "variable": [
          {
           "key": "evaluationId",
           "value": "507f1f77bcf86cd799439011",
           "description": "Required. Evaluation ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"Q1 2024 Evaluation Updated\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates an existing evaluation.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.update`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/update-an-evaluation"
       }
      },
      {
       "name": "Delete an evaluation",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/evaluations/:evaluationId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "evaluations",
          ":evaluationId"
         ],
         "variable": [
          {
           "key": "evaluationId",
           "value": "507f1f77bcf86cd799439011",
           "description": "Required. Evaluation ID"
          }
         ]
        },
        "description": "Deletes an evaluation by its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.delete`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/delete-an-evaluation"
       }
      },
      {
       "name": "Run an evaluation",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/evaluations/:evaluationId/run",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "evaluations",
          ":evaluationId",
          "run"
         ],
         "variable": [
          {
           "key": "evaluationId",
           "value": "507f1f77bcf86cd799439011",
           "description": "Required. Evaluation ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"runsPerTestCase\": 1\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Triggers an evaluation run to test the automation against all test cases.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.create`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/run-an-evaluation"
       }
      }
     ]
    },
    {
     "name": "Evaluation Test Cases",
     "item": [
      {
       "name": "List evaluation test cases",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/evaluation-testcases",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "evaluation-testcases"
         ],
         "query": [
          {
           "key": "evaluationIds",
           "value": "507f1f77bcf86cd799439011,507f1f77bcf86cd799439012",
           "description": "Optional. Filter by evaluation IDs (comma-separated)",
           "disabled": true
          },
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number for pagination",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of items per page",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of evaluation test cases. Can be filtered by evaluation IDs.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.read`; or legacy `org.user.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/list-evaluation-test-cases"
       }
      },
      {
       "name": "Create an evaluation test case",
       "request": {
        "method": "POST",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/evaluation-testcases",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "evaluation-testcases"
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"Refund request scenario\",\n  \"evaluationId\": \"507f1f77bcf86cd799439012\",\n  \"input\": \"I want a refund for my order.\",\n  \"conversationId\": \"507f1f77bcf86cd799439014\",\n  \"resourceId\": \"507f1f77bcf86cd799439013\",\n  \"resourceType\": \"customer\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Creates a new test case for an evaluation.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.create`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/create-an-evaluation-test-case"
       }
      },
      {
       "name": "Get evaluation test case by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/evaluation-testcases/:testCaseId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "evaluation-testcases",
          ":testCaseId"
         ],
         "variable": [
          {
           "key": "testCaseId",
           "value": "507f1f77bcf86cd799439011",
           "description": "Required. Test case ID"
          }
         ]
        },
        "description": "Retrieves a specific evaluation test case by its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.read`; or legacy `org.user.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/get-evaluation-test-case-by-id"
       }
      },
      {
       "name": "Update an evaluation test case",
       "request": {
        "method": "PUT",
        "header": [
         {
          "key": "Content-Type",
          "value": "application/json"
         }
        ],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/evaluation-testcases/:testCaseId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "evaluation-testcases",
          ":testCaseId"
         ],
         "variable": [
          {
           "key": "testCaseId",
           "value": "507f1f77bcf86cd799439011",
           "description": "Required. Test case ID"
          }
         ]
        },
        "body": {
         "mode": "raw",
         "raw": "{\n  \"name\": \"Updated refund scenario\",\n  \"input\": \"I want a refund for my order.\",\n  \"resourceId\": \"507f1f77bcf86cd799439013\",\n  \"resourceType\": \"customer\",\n  \"toolCalls\": [\n    {\n      \"id\": \"507f1f77bcf86cd799439020\",\n      \"name\": \"lookupOrder\",\n      \"toolType\": \"integration\"\n    }\n  ],\n  \"resumeNode\": \"node-2\"\n}",
         "options": {
          "raw": {
           "language": "json"
          }
         }
        },
        "description": "Updates an existing evaluation test case.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.update`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/update-an-evaluation-test-case"
       }
      },
      {
       "name": "Delete an evaluation test case",
       "request": {
        "method": "DELETE",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/evaluation-testcases/:testCaseId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "evaluation-testcases",
          ":testCaseId"
         ],
         "variable": [
          {
           "key": "testCaseId",
           "value": "507f1f77bcf86cd799439011",
           "description": "Required. Test case ID"
          }
         ]
        },
        "description": "Deletes an evaluation test case by its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.delete`; or legacy `org.admin.apps.write`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/delete-an-evaluation-test-case"
       }
      }
     ]
    },
    {
     "name": "Evaluation Runs",
     "item": [
      {
       "name": "List evaluation runs",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/evaluation-runs",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "evaluation-runs"
         ],
         "query": [
          {
           "key": "evaluationIds",
           "value": "507f1f77bcf86cd799439011,507f1f77bcf86cd799439012",
           "description": "Optional. Filter by evaluation IDs (comma-separated)",
           "disabled": true
          },
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number for pagination",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of items per page",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of evaluation runs. Can be filtered by evaluation IDs.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.read`; or legacy `org.user.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/list-evaluation-runs"
       }
      },
      {
       "name": "Get evaluation run by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/evaluation-runs/:runId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "evaluation-runs",
          ":runId"
         ],
         "variable": [
          {
           "key": "runId",
           "value": "507f1f77bcf86cd799439011",
           "description": "Required. Evaluation run ID"
          }
         ]
        },
        "description": "Retrieves a specific evaluation run by its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.read`; or legacy `org.user.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/get-evaluation-run-by-id"
       }
      }
     ]
    },
    {
     "name": "Evaluation Test Case Results",
     "item": [
      {
       "name": "List evaluation test case results",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/evaluation-testcase-results",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "evaluation-testcase-results"
         ],
         "query": [
          {
           "key": "evaluationRunIds",
           "value": "507f1f77bcf86cd799439011,507f1f77bcf86cd799439012",
           "description": "Optional. Filter by evaluation run IDs (comma-separated)",
           "disabled": true
          },
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number for pagination",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of items per page",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves a paginated list of test case results. Can be filtered by evaluation run IDs.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.read`; or legacy `org.user.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/list-evaluation-test-case-results"
       }
      },
      {
       "name": "Get test case result by ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/evaluation-testcase-results/:resultId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "evaluation-testcase-results",
          ":resultId"
         ],
         "variable": [
          {
           "key": "resultId",
           "value": "507f1f77bcf86cd799439011",
           "description": "Required. Test case result ID"
          }
         ]
        },
        "description": "Retrieves a specific test case result by its unique ID.\n\n**Authorization:** Requires any one of these roles: `org.permission.assistant.read`; or legacy `org.user.apps.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/get-test-case-result-by-id"
       }
      }
     ]
    },
    {
     "name": "Summaries",
     "item": [
      {
       "name": "Get AI summary by resource ID",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/summaries/:resourceId",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "summaries",
          ":resourceId"
         ],
         "query": [
          {
           "key": "lang",
           "value": "fr",
           "description": "Optional. Target language code for translation (e.g. `fr`, `es`, `de`). When provided, the summary text is translated to the specified language. Falls back to the canonical summary if translation fails.",
           "disabled": true
          }
         ],
         "variable": [
          {
           "key": "resourceId",
           "value": "507f1f77bcf86cd799439011",
           "description": "Required. The ID of the resource (conversation, customer, or custom object) to retrieve the summary for"
          }
         ]
        },
        "description": "Retrieves the AI-generated summary for a specific resource (conversation, customer, or custom object) by its ID.\n\nSummaries are automatically generated and updated based on the resource's content. For more information, see [AI-generated summaries](https://help.kustomer.com/en_us/ai-generated-summaries-HkklW4Rkl) in the Kustomer Help Center.\n\n**Note:** Either the AI Copilot or AI Summaries feature must be enabled in your subscription to use this endpoint. Requests return 403 Forbidden when neither feature is enabled.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.read`, `org.permission.customer.read`; or legacy `org.user.conversation.read`, `org.user.customer.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/get-ai-summary-by-resource-id"
       }
      },
      {
       "name": "Batch get AI summaries by resource IDs",
       "request": {
        "method": "GET",
        "header": [],
        "url": {
         "raw": "{{baseUrl}}/v1/ai/summaries/batch",
         "host": [
          "{{baseUrl}}"
         ],
         "path": [
          "v1",
          "ai",
          "summaries",
          "batch"
         ],
         "query": [
          {
           "key": "resourceIds",
           "value": "507f1f77bcf86cd799439011,507f1f77bcf86cd799439012",
           "description": "Optional. Comma-separated list of resource IDs to fetch summaries for. Each ID must be a 24-character hex string. Maximum of 100 IDs per request. If omitted, the response contains an empty data array.",
           "disabled": true
          },
          {
           "key": "page",
           "value": "1",
           "description": "Optional. Page number for pagination",
           "disabled": true
          },
          {
           "key": "pageSize",
           "value": "100",
           "description": "Optional. Number of items per page",
           "disabled": true
          },
          {
           "key": "lang",
           "value": "fr",
           "description": "Optional. Target language code for translation (e.g. `fr`, `es`, `de`). When provided, summary text is translated to the specified language. Falls back to canonical summary text if translation fails.",
           "disabled": true
          }
         ]
        },
        "description": "Retrieves AI-generated summaries for multiple resources in a single request. Returns only summaries that exist; missing resource IDs are silently omitted.\n\nThis endpoint is useful for efficiently fetching summaries for a list of conversations, customers, or custom objects without making individual requests for each resource.\n\nSummaries are automatically generated and updated based on each resource's content. For more information, see [AI-generated summaries](https://help.kustomer.com/en_us/ai-generated-summaries-HkklW4Rkl) in the Kustomer Help Center.\n\n**Note:** Either the AI Copilot or AI Summaries feature must be enabled in your subscription to use this endpoint. Requests return 403 Forbidden when neither feature is enabled.\n\n**Authorization:** Requires any one of these roles: `org.permission.conversation.read`, `org.permission.customer.read`; or legacy `org.user.conversation.read`, `org.user.customer.read`. The API key or user must hold at least one of them. Legacy roles predate permission sets and still work.\n\nReference: https://developer.kustomer.com/api/ai/batch-get-ai-summaries-by-resource-ids"
       }
      }
     ]
    }
   ]
  }
 ]
}
