# Core resources API

> Customers, companies, conversations, messages, notes, drafts, KObjects, Klasses, search, bulk operations and more.

Source: https://developer.kustomer.com/api/core-resources

Server: `https://api.kustomerapp.com/v1` · 171 operations

This category describes endpoints related to your Kustomer CRM data. This includes standard objects (like Companies, Customers, Conversations, Message and Custom Objects), custom attributes, tracking events, and more.

For more information on the object model, see [Data Model Overview](https://support.kustomer.com/data-model-overview-SyIS1S3zM) in the Kustomer Help Center.

#### NOTE
>If your Kustomer organization is using sensitive attributes, values for sensitive attributes may be masked in API responses for standard objects if the API token making the request does not have Read Sensitive permissions for the sensitive attributes.
For more information on sensitive attributes and masking, see [Data Masking](https://help.kustomer.com/en_us/data-masking-admin-overview-S1ezaXhgc) in the Kustomer Help Center.

## Audit Logs

The audit log is a read-only history of what happened in your Kustomer org, such as who changed a conversation, who signed in, and what a routing or business rule did. Each entry records the event, the object it touched, who or what did it, and the fields that changed.

- [Query events associated with your organization](https://developer.kustomer.com/api/core-resources/query-events-associated-with-your-organization.md): `GET /v1/audit-logs`

## Attachments

An attachment is a file, such as an image, PDF or recording, attached to a message, note, draft, forward or custom object comment. Kustomer stores a record describing the file, and you upload or download the bytes through short-lived signed URLs.

- [Create attachment](https://developer.kustomer.com/api/core-resources/create-attachment.md): `POST /v1/attachments`
- [Get attachments by ID [Outbound Only]](https://developer.kustomer.com/api/core-resources/get-attachments-by-id-outbound-only.md): `GET /v1/attachments/{id}`
- [Update or upsert attachment](https://developer.kustomer.com/api/core-resources/update-or-upsert-attachment.md): `PUT /v1/attachments/{id}`
- [Get attachment by message ID and attachment ID (inbound or outbound)](https://developer.kustomer.com/api/core-resources/get-attachment-by-message-id-and-attachment-id-inbound-or-outbound.md): `GET /v1/messages/{message_id}/attachments/{id}`

## Brands

A brand represents one of the companies, products or storefronts you support from a single Kustomer org. Brands let each one have its own name and icon, chat widget settings, knowledge base and email addresses.

- [Get brands](https://developer.kustomer.com/api/core-resources/get-brands.md): `GET /v1/brands`
- [Create brand](https://developer.kustomer.com/api/core-resources/create-brand.md): `POST /v1/brands`
- [Get default brand](https://developer.kustomer.com/api/core-resources/get-default-brand.md): `GET /v1/brands/default`
- [List brand address mappings](https://developer.kustomer.com/api/core-resources/list-brand-address-mappings.md): `GET /v1/brandAddresses`
- [Create brand address mapping](https://developer.kustomer.com/api/core-resources/create-brand-address-mapping.md): `POST /v1/brandAddresses`
- [Update brand address mapping](https://developer.kustomer.com/api/core-resources/update-brand-address-mapping.md): `PATCH /v1/brandAddresses/{id}`
- [Delete brand address mapping by id](https://developer.kustomer.com/api/core-resources/delete-brand-address-mapping-by-id.md): `DELETE /v1/brandAddresses/{id}`
- [Delete all mappings for an address](https://developer.kustomer.com/api/core-resources/delete-all-mappings-for-an-address.md): `DELETE /v1/brandAddresses/address/{address}`
- [Delete all mappings for a brand](https://developer.kustomer.com/api/core-resources/delete-all-mappings-for-a-brand.md): `DELETE /v1/brandAddresses/brand/{brandId}`
- [Get brand by ID](https://developer.kustomer.com/api/core-resources/get-brand-by-id.md): `GET /v1/brands/{id}`
- [Update brand](https://developer.kustomer.com/api/core-resources/update-brand.md): `PATCH /v1/brands/{id}`

## Business Schedules

A business schedule defines your support team's working hours for each day of the week in one time zone, plus holidays when you're closed. Kustomer uses it to measure time in business hours, for SLAs, reporting, chat availability and workflow conditions.

- [Get all business schedules](https://developer.kustomer.com/api/core-resources/get-all-business-schedules.md): `GET /v1/schedules`
- [Create a business schedule](https://developer.kustomer.com/api/core-resources/create-a-business-schedule.md): `POST /v1/schedules`
- [Get default business schedule](https://developer.kustomer.com/api/core-resources/get-default-business-schedule.md): `GET /v1/schedules/default`
- [Get business schedule by ID](https://developer.kustomer.com/api/core-resources/get-business-schedule-by-id.md): `GET /v1/schedules/{id}`
- [Update business schedule by ID](https://developer.kustomer.com/api/core-resources/update-business-schedule-by-id.md): `PUT /v1/schedules/{id}`
- [Delete a business schedule by ID](https://developer.kustomer.com/api/core-resources/delete-a-business-schedule-by-id.md): `DELETE /v1/schedules/{id}`

## Bulk Operations

A bulk operation is the background job Kustomer creates when you create, update or delete many records in one bulk request. You poll it to see when the job finishes, then read its batches to find out which records succeeded and which failed.

- [Get bulk operation by ID](https://developer.kustomer.com/api/core-resources/get-bulk-operation-by-id.md): `GET /v1/bulk/{id}`
- [Get bulk operation batches](https://developer.kustomer.com/api/core-resources/get-bulk-operation-batches.md): `GET /v1/bulk/{id}/batches`

## Companies

A company is an organization that your customers belong to, such as a business account. It holds the organization's contact details, tags and custom attributes, can own custom objects, and can sit in a parent-child hierarchy with other companies.

- [Get companies](https://developer.kustomer.com/api/core-resources/get-companies.md): `GET /v1/companies`
- [Create company](https://developer.kustomer.com/api/core-resources/create-company.md): `POST /v1/companies`
- [Get company by ID](https://developer.kustomer.com/api/core-resources/get-company-by-id.md): `GET /v1/companies/{id}`
- [Update company attributes](https://developer.kustomer.com/api/core-resources/update-company-attributes.md): `PUT /v1/companies/{id}`
- [Find company KObjects (custom Objects)](https://developer.kustomer.com/api/core-resources/find-company-kobjects-custom-objects.md): `GET /v1/companies/{id}/klasses/{name}`

## Companies (Bulk)

A company is an organization that your customers belong to, such as a business account. It holds the organization's contact details, tags and custom attributes, can own custom objects, and can sit in a parent-child hierarchy with other companies.

- [Bulk create companies](https://developer.kustomer.com/api/core-resources/bulk-create-companies.md): `POST /v1/companies/bulk`
- [Bulk batch update companies](https://developer.kustomer.com/api/core-resources/bulk-batch-update-companies.md): `PUT /v1/companies/bulk`

## Companies (Hierarchy)

A company is an organization that your customers belong to, such as a business account. It holds the organization's contact details, tags and custom attributes, can own custom objects, and can sit in a parent-child hierarchy with other companies.

- [Create a company hierarchy edge](https://developer.kustomer.com/api/core-resources/create-a-company-hierarchy-edge.md): `POST /v1/kedge`
- [Get a company hierarchy node](https://developer.kustomer.com/api/core-resources/get-a-company-hierarchy-node.md): `GET /v1/kedge/{id}`
- [Delete a company hierarchy edge](https://developer.kustomer.com/api/core-resources/delete-a-company-hierarchy-edge.md): `DELETE /v1/kedge/{id}`
- [Get a company's direct parent edge](https://developer.kustomer.com/api/core-resources/get-a-companys-direct-parent-edge.md): `GET /v1/kedge/{id}/parent`
- [Set a company's parent](https://developer.kustomer.com/api/core-resources/set-a-companys-parent.md): `POST /v1/kedge/{id}/parent`
- [Remove a company's parent](https://developer.kustomer.com/api/core-resources/remove-a-companys-parent.md): `DELETE /v1/kedge/{id}/parent`

## Conversations

A conversation is one support thread with one customer, such as an email exchange, a chat session or a phone call. It holds the work state agents manage, including status, assignment, priority and tags, and contains the thread's messages and notes.

- [Get conversations](https://developer.kustomer.com/api/core-resources/get-conversations.md): `GET /v1/conversations`
- [Create conversation](https://developer.kustomer.com/api/core-resources/create-conversation.md): `POST /v1/conversations`
- [Get conversation by ID](https://developer.kustomer.com/api/core-resources/get-conversation-by-id.md): `GET /v1/conversations/{id}`
- [Update conversation](https://developer.kustomer.com/api/core-resources/update-conversation.md): `PUT /v1/conversations/{id}`
- [Update conversation attributes](https://developer.kustomer.com/api/core-resources/update-conversation-attributes.md): `PATCH /v1/conversations/{id}`
- [Delete conversation](https://developer.kustomer.com/api/core-resources/delete-conversation.md): `DELETE /v1/conversations/{id}`
- [Get conversation by external ID](https://developer.kustomer.com/api/core-resources/get-conversation-by-external-id.md): `GET /v1/conversations/externalId={externalId}`
- [Get conversation attachments](https://developer.kustomer.com/api/core-resources/get-conversation-attachments.md): `GET /v1/conversations/{id}/attachments`
- [Get conversation events](https://developer.kustomer.com/api/core-resources/get-conversation-events.md): `GET /v1/conversations/{id}/events`

## Conversations (Bulk)

A conversation is one support thread with one customer, such as an email exchange, a chat session or a phone call. It holds the work state agents manage, including status, assignment, priority and tags, and contains the thread's messages and notes.

- [Bulk create conversations](https://developer.kustomer.com/api/core-resources/bulk-create-conversations.md): `POST /v1/conversations/bulk`
- [Bulk batch update conversations](https://developer.kustomer.com/api/core-resources/bulk-batch-update-conversations.md): `PUT /v1/conversations/bulk`
- [Bulk delete conversations](https://developer.kustomer.com/api/core-resources/bulk-delete-conversations.md): `DELETE /v1/conversations/bulk`

## Conversations (Messages)

A message is one communication between your team and a customer, such as an email, a chat line, a text, a call or a social post, recorded inside a conversation. Creating one through the API records it on the timeline; it does not deliver anything.

- [Get messages by conversation](https://developer.kustomer.com/api/core-resources/get-messages-by-conversation.md): `GET /v1/conversations/{id}/messages`
- [Create message from conversation](https://developer.kustomer.com/api/core-resources/create-message-from-conversation.md): `POST /v1/conversations/{id}/messages`

## Conversations (Tags)

A conversation is one support thread with one customer, such as an email exchange, a chat session or a phone call. It holds the work state agents manage, including status, assignment, priority and tags, and contains the thread's messages and notes.

- [Append tags to conversation](https://developer.kustomer.com/api/core-resources/append-tags-to-conversation.md): `POST /v1/conversations/{id}/tags`
- [Remove tags from conversation](https://developer.kustomer.com/api/core-resources/remove-tags-from-conversation.md): `DELETE /v1/conversations/{id}/tags`

## Conversations (Forwards)

A forward sends a copy of an entire conversation by email to someone outside it, such as a vendor, a warehouse or another department. It starts as a draft and is sent when you give it a send time.

- [Get all forwards by conversation](https://developer.kustomer.com/api/core-resources/get-all-forwards-by-conversation.md): `GET /v1/conversations/{id}/forwards`
- [Create forward by conversation](https://developer.kustomer.com/api/core-resources/create-forward-by-conversation.md): `POST /v1/conversations/{id}/forwards`

## Conversations (Time)

Conversation time records how long agents actively spent working on a conversation in Kustomer. Each record is one handle session, and the records together are the source for handle time reporting.

- [Get conversation times by conversation](https://developer.kustomer.com/api/core-resources/get-conversation-times-by-conversation.md): `GET /v1/conversations/{id}/times`
- [Get conversation time by ids](https://developer.kustomer.com/api/core-resources/get-conversation-time-by-ids.md): `GET /v1/conversations/times/{ids}`

## Conversations (Notes)

A note is an internal comment that your team leaves on a conversation. Customers never see notes; agents use them to hand off context, record what they checked, and @mention teammates.

- [Get notes by conversation](https://developer.kustomer.com/api/core-resources/get-notes-by-conversation.md): `GET /v1/conversations/{id}/notes`

## Notes (Conversations)

A note is an internal comment that your team leaves on a conversation. Customers never see notes; agents use them to hand off context, record what they checked, and @mention teammates.

- [Create note within conversation](https://developer.kustomer.com/api/core-resources/create-note-within-conversation.md): `POST /v1/conversations/{id}/notes`

## Customers (Bulk)

A customer is one person your team supports. Every conversation, message, note and custom object about that person hangs off their customer record, and agents see it all on a single timeline.

- [Bulk create customers](https://developer.kustomer.com/api/core-resources/bulk-create-customers.md): `POST /v1/customers/bulk`
- [Bulk batch update customers](https://developer.kustomer.com/api/core-resources/bulk-batch-update-customers.md): `PUT /v1/customers/bulk`
- [Bulk delete customers](https://developer.kustomer.com/api/core-resources/bulk-delete-customers.md): `DELETE /v1/customers/bulk`

## Customers (Conversations)

A conversation is one support thread with one customer, such as an email exchange, a chat session or a phone call. It holds the work state agents manage, including status, assignment, priority and tags, and contains the thread's messages and notes.

- [Get conversations by customer](https://developer.kustomer.com/api/core-resources/get-conversations-by-customer.md): `GET /v1/customers/{id}/conversations`
- [Create conversation for customer](https://developer.kustomer.com/api/core-resources/create-conversation-for-customer.md): `POST /v1/customers/{id}/conversations`

## Customers (Drafts)

A draft is an outbound message that hasn't been sent yet. Unlike creating a message, sending a draft makes Kustomer deliver it to the customer through a connected channel such as email, SMS, chat or WhatsApp.

- [Get all drafts for customer](https://developer.kustomer.com/api/core-resources/get-all-drafts-for-customer.md): `GET /v1/customers/{id}/drafts`
- [Create draft for customer](https://developer.kustomer.com/api/core-resources/create-draft-for-customer.md): `POST /v1/customers/{id}/drafts`

## Customers (Events)

Tracking events record what a person does in your website or app, such as viewing a page or starting a checkout, grouped into sessions on the customer's event history. Identity calls tie an anonymous visitor to a Kustomer customer.

- [Get customer event](https://developer.kustomer.com/api/core-resources/get-customer-event.md): `GET /v1/customers/{customerId}/events/{id}`
- [Get all events by customer for session](https://developer.kustomer.com/api/core-resources/get-all-events-by-customer-for-session.md): `GET /v1/customers/{customerId}/sessions/{sessionId}/events`
- [Get all customer events (deprecated)](https://developer.kustomer.com/api/core-resources/get-all-customer-events-deprecated.md): `GET /v1/customers/{id}/events` (deprecated)
- [Get all customer sessions](https://developer.kustomer.com/api/core-resources/get-all-customer-sessions.md): `GET /v1/customers/{id}/sessions`

## Customers (KObjects)

A KObject is one record of a custom type that you define, such as a single order, booking or device. It belongs to a customer or company, shows up on their timeline, and can be searched and used in workflows like built-in data.

- [Find customer KObjects (custom Objects)](https://developer.kustomer.com/api/core-resources/find-customer-kobjects-custom-objects.md): `GET /v1/customers/{id}/klasses/{name}`
- [Create customer KObject (custom Object)](https://developer.kustomer.com/api/core-resources/create-customer-kobject-custom-object.md): `POST /v1/customers/{id}/klasses/{name}`

## Customers (Merges)

A customer is one person your team supports. Every conversation, message, note and custom object about that person hangs off their customer record, and agents see it all on a single timeline.

- [Create customer merge](https://developer.kustomer.com/api/core-resources/create-customer-merge.md): `POST /v1/customers/merges`
- [Get customer merge](https://developer.kustomer.com/api/core-resources/get-customer-merge.md): `GET /v1/customers/merges/{id}`
- [Get customer merges by customer ID](https://developer.kustomer.com/api/core-resources/get-customer-merges-by-customer-id.md): `GET /v1/customers/{id}/merges`

## Customers (Messages)

A message is one communication between your team and a customer, such as an email, a chat line, a text, a call or a social post, recorded inside a conversation. Creating one through the API records it on the timeline; it does not deliver anything.

- [Get messages by customer ID](https://developer.kustomer.com/api/core-resources/get-messages-by-customer-id.md): `GET /v1/customers/{id}/messages`
- [Create message by customer ID](https://developer.kustomer.com/api/core-resources/create-message-by-customer-id.md): `POST /v1/customers/{id}/messages`

## Customers (Notes)

A note is an internal comment that your team leaves on a conversation. Customers never see notes; agents use them to hand off context, record what they checked, and @mention teammates.

- [Get notes by customer ID](https://developer.kustomer.com/api/core-resources/get-notes-by-customer-id.md): `GET /v1/customers/{id}/notes`

## Customers (Unmasking Windows)

An unmasking window temporarily reveals a customer's sensitive data. While it is open, attributes marked sensitive on the customer and on their conversations, messages and custom objects are returned unmasked instead of hidden.

- [Create unmasking window by customer ID](https://developer.kustomer.com/api/core-resources/create-unmasking-window-by-customer-id.md): `POST /v1/customers/{id}/unmasking-windows`
- [Deletes unmasking window by customer ID](https://developer.kustomer.com/api/core-resources/deletes-unmasking-window-by-customer-id.md): `DELETE /v1/customers/{id}/unmasking-windows`

## Customers

A customer is one person your team supports. Every conversation, message, note and custom object about that person hangs off their customer record, and agents see it all on a single timeline.

- [Get customers](https://developer.kustomer.com/api/core-resources/get-customers.md): `GET /v1/customers`
- [Create customer](https://developer.kustomer.com/api/core-resources/create-customer.md): `POST /v1/customers`
- [Get customer by ID](https://developer.kustomer.com/api/core-resources/get-customer-by-id.md): `GET /v1/customers/{id}`
- [Update customer](https://developer.kustomer.com/api/core-resources/update-customer.md): `PUT /v1/customers/{id}`
- [Update customer attributes](https://developer.kustomer.com/api/core-resources/update-customer-attributes.md): `PATCH /v1/customers/{id}`
- [Delete customer](https://developer.kustomer.com/api/core-resources/delete-customer.md): `DELETE /v1/customers/{id}`
- [Get customer by email](https://developer.kustomer.com/api/core-resources/get-customer-by-email.md): `GET /v1/customers/email={email}`
- [Get customer by external ID](https://developer.kustomer.com/api/core-resources/get-customer-by-external-id.md): `GET /v1/customers/externalId={externalId}`
- [Get customer by phone number](https://developer.kustomer.com/api/core-resources/get-customer-by-phone-number.md): `GET /v1/customers/phone={phone}`

## Custom Attributes

Custom attributes are your own fields on Kustomer objects, such as a loyalty tier on a customer or an order number on a conversation. Their metadata tells Kustomer each field's label, type, allowed values and sensitivity.

- [Get custom attribute metadata](https://developer.kustomer.com/api/core-resources/get-custom-attribute-metadata.md): `GET /v1/metadata/{resource}`
- [Update custom attribute metadata](https://developer.kustomer.com/api/core-resources/update-custom-attribute-metadata.md): `PUT /v1/metadata/{resource}`

## Drafts (Attachments)

An attachment is a file, such as an image, PDF or recording, attached to a message, note, draft, forward or custom object comment. Kustomer stores a record describing the file, and you upload or download the bytes through short-lived signed URLs.

- [Get draft attachments](https://developer.kustomer.com/api/core-resources/get-draft-attachments.md): `GET /v1/drafts/{id}/attachments`
- [Create draft attachment](https://developer.kustomer.com/api/core-resources/create-draft-attachment.md): `POST /v1/drafts/{id}/attachments`
- [Get draft attachment](https://developer.kustomer.com/api/core-resources/get-draft-attachment.md): `GET /v1/drafts/{id}/attachments/{attachmentId}`
- [Delete draft attachment](https://developer.kustomer.com/api/core-resources/delete-draft-attachment.md): `DELETE /v1/drafts/{id}/attachments/{attachmentId}`

## Drafts

A draft is an outbound message that hasn't been sent yet. Unlike creating a message, sending a draft makes Kustomer deliver it to the customer through a connected channel such as email, SMS, chat or WhatsApp.

- [Get draft forward by ID](https://developer.kustomer.com/api/core-resources/get-draft-forward-by-id.md): `GET /v1/forwards/{id}`
- [Update draft forward](https://developer.kustomer.com/api/core-resources/update-draft-forward.md): `PUT /v1/forwards/{id}`
- [Get outbound accounts](https://developer.kustomer.com/api/core-resources/get-outbound-accounts.md): `GET /v1/outboundAccounts`
- [Update draft](https://developer.kustomer.com/api/core-resources/update-draft.md): `PUT /v1/drafts/{id}`
- [Delete draft](https://developer.kustomer.com/api/core-resources/delete-draft.md): `DELETE /v1/drafts/{id}`

## Forwards (Attachments)

An attachment is a file, such as an image, PDF or recording, attached to a message, note, draft, forward or custom object comment. Kustomer stores a record describing the file, and you upload or download the bytes through short-lived signed URLs.

- [Get forward attachments](https://developer.kustomer.com/api/core-resources/get-forward-attachments.md): `GET /v1/forwards/{id}/attachments`
- [Create forward attachment](https://developer.kustomer.com/api/core-resources/create-forward-attachment.md): `POST /v1/forwards/{id}/attachments`
- [Get forward attachment](https://developer.kustomer.com/api/core-resources/get-forward-attachment.md): `GET /v1/forwards/{id}/attachments/{attachmentId}`
- [Delete Forward Attachment](https://developer.kustomer.com/api/core-resources/delete-forward-attachment.md): `DELETE /v1/forwards/{id}/attachments/{attachmentId}`

## KObjects (Custom Objects) (Bulk)

A KObject is one record of a custom type that you define, such as a single order, booking or device. It belongs to a customer or company, shows up on their timeline, and can be searched and used in workflows like built-in data.

- [Bulk create KObjects (custom objects)](https://developer.kustomer.com/api/core-resources/bulk-create-kobjects-custom-objects.md): `POST /v1/klasses/{name}/bulk`
- [Bulk batch update KObjects (custom objects)](https://developer.kustomer.com/api/core-resources/bulk-batch-update-kobjects-custom-objects.md): `PUT /v1/klasses/{name}/bulk`
- [Bulk delete KObjects (custom objects)](https://developer.kustomer.com/api/core-resources/bulk-delete-kobjects-custom-objects.md): `DELETE /v1/klasses/{name}/bulk`

## KObjects (Custom Objects)

A KObject is one record of a custom type that you define, such as a single order, booking or device. It belongs to a customer or company, shows up on their timeline, and can be searched and used in workflows like built-in data.

- [Get KObjects (custom objects)](https://developer.kustomer.com/api/core-resources/get-kobjects-custom-objects.md): `GET /v1/klasses/{name}`
- [Create KObject](https://developer.kustomer.com/api/core-resources/create-kobject.md): `POST /v1/klasses/{name}`
- [Get KObject (custom object) by ID](https://developer.kustomer.com/api/core-resources/get-kobject-custom-object-by-id.md): `GET /v1/klasses/{name}/{id}`
- [Update KObject (custom object) by ID](https://developer.kustomer.com/api/core-resources/update-kobject-custom-object-by-id.md): `PUT /v1/klasses/{name}/{id}`
- [Delete KObject (custom object) by ID](https://developer.kustomer.com/api/core-resources/delete-kobject-custom-object-by-id.md): `DELETE /v1/klasses/{name}/{id}`
- [Get KObject by external ID](https://developer.kustomer.com/api/core-resources/get-kobject-by-external-id.md): `GET /v1/klasses/{name}/externalId={externalId}`

## Klasses

A Klass is a custom object type that you define, such as "Order" or "Subscription", with its own name, icon, color and attributes. Each record of that type is a KObject.

- [Get Klasses](https://developer.kustomer.com/api/core-resources/get-klasses.md): `GET /v1/klasses`
- [Create Klass](https://developer.kustomer.com/api/core-resources/create-klass.md): `POST /v1/klasses`
- [Get Klass by ID](https://developer.kustomer.com/api/core-resources/get-klass-by-id.md): `GET /v1/klasses/{id}`
- [Update Klass by ID](https://developer.kustomer.com/api/core-resources/update-klass-by-id.md): `PUT /v1/klasses/{id}`
- [Delete Klass](https://developer.kustomer.com/api/core-resources/delete-klass.md): `DELETE /v1/klasses/{id}`

## Media

Media are files your org stores in Kustomer for content rather than for a conversation, such as images embedded in knowledge base articles. You create a media record, upload the file to the temporary URL it returns, then reference the media ID where the file is used.

- [Create media](https://developer.kustomer.com/api/core-resources/create-media.md): `POST /v1/media`
- [Get media by ID](https://developer.kustomer.com/api/core-resources/get-media-by-id.md): `GET /v1/media/{id}`
- [Update media by ID](https://developer.kustomer.com/api/core-resources/update-media-by-id.md): `PUT /v1/media/{id}`

## Messages (Bulk)

A message is one communication between your team and a customer, such as an email, a chat line, a text, a call or a social post, recorded inside a conversation. Creating one through the API records it on the timeline; it does not deliver anything.

- [Bulk create messages](https://developer.kustomer.com/api/core-resources/bulk-create-messages.md): `POST /v1/messages/bulk`
- [Bulk batch update messages](https://developer.kustomer.com/api/core-resources/bulk-batch-update-messages.md): `PUT /v1/messages/bulk`

## Messages

A message is one communication between your team and a customer, such as an email, a chat line, a text, a call or a social post, recorded inside a conversation. Creating one through the API records it on the timeline; it does not deliver anything.

- [Redact a message](https://developer.kustomer.com/api/core-resources/redact-a-message.md): `POST /v1/messages/{id}/redactions`
- [Get messages](https://developer.kustomer.com/api/core-resources/get-messages.md): `GET /v1/messages`
- [Create message](https://developer.kustomer.com/api/core-resources/create-message.md): `POST /v1/messages`
- [Get message by ID](https://developer.kustomer.com/api/core-resources/get-message-by-id.md): `GET /v1/messages/{id}`
- [Update message by ID](https://developer.kustomer.com/api/core-resources/update-message-by-id.md): `PUT /v1/messages/{id}`
- [Update message attributes by ID](https://developer.kustomer.com/api/core-resources/update-message-attributes-by-id.md): `PATCH /v1/messages/{id}`
- [Get a Message by External ID](https://developer.kustomer.com/api/core-resources/get-a-message-by-external-id.md): `GET /v1/messages/externalId={externalId}`

## Notes (Bulk)

A note is an internal comment that your team leaves on a conversation. Customers never see notes; agents use them to hand off context, record what they checked, and @mention teammates.

- [Bulk create notes](https://developer.kustomer.com/api/core-resources/bulk-create-notes.md): `POST /v1/notes/bulk`
- [Bulk batch update notes](https://developer.kustomer.com/api/core-resources/bulk-batch-update-notes.md): `PUT /v1/notes/bulk`

## Notes

A note is an internal comment that your team leaves on a conversation. Customers never see notes; agents use them to hand off context, record what they checked, and @mention teammates.

- [Get notes](https://developer.kustomer.com/api/core-resources/get-notes.md): `GET /v1/notes`
- [Create note](https://developer.kustomer.com/api/core-resources/create-note.md): `POST /v1/notes`
- [Get note by ID](https://developer.kustomer.com/api/core-resources/get-note-by-id.md): `GET /v1/notes/{id}`
- [Update note by ID](https://developer.kustomer.com/api/core-resources/update-note-by-id.md): `PUT /v1/notes/{id}`
- [Update note attributes by ID](https://developer.kustomer.com/api/core-resources/update-note-attributes-by-id.md): `PATCH /v1/notes/{id}`
- [Delete note by ID](https://developer.kustomer.com/api/core-resources/delete-note-by-id.md): `DELETE /v1/notes/{id}`

## Comments

A comment is a short internal note that agents leave on a custom object record, such as a task. Customers never see comments; they are for discussion among your team, with optional mentions and attachments.

- [Get comments by KObject ID](https://developer.kustomer.com/api/core-resources/get-comments-by-kobject-id.md): `GET /v1/kobjects/{id}/comments`
- [Create comment on KObject](https://developer.kustomer.com/api/core-resources/create-comment-on-kobject.md): `POST /v1/kobjects/{id}/comments`
- [Get comment by ID](https://developer.kustomer.com/api/core-resources/get-comment-by-id.md): `GET /v1/comments/{id}`
- [Update comment by ID](https://developer.kustomer.com/api/core-resources/update-comment-by-id.md): `PUT /v1/comments/{id}`
- [Delete comment by ID](https://developer.kustomer.com/api/core-resources/delete-comment-by-id.md): `DELETE /v1/comments/{id}`

## Comments (Attachments)

An attachment is a file, such as an image, PDF or recording, attached to a message, note, draft, forward or custom object comment. Kustomer stores a record describing the file, and you upload or download the bytes through short-lived signed URLs.

- [Get comment attachments](https://developer.kustomer.com/api/core-resources/get-comment-attachments.md): `GET /v1/comments/{id}/attachments`
- [Delete comment attachments](https://developer.kustomer.com/api/core-resources/delete-comment-attachments.md): `DELETE /v1/comments/{id}/attachments`
- [Get comment attachment](https://developer.kustomer.com/api/core-resources/get-comment-attachment.md): `GET /v1/comments/{id}/attachments/{attachmentId}`
- [Delete comment attachment](https://developer.kustomer.com/api/core-resources/delete-comment-attachment.md): `DELETE /v1/comments/{id}/attachments/{attachmentId}`

## Tracking Events

Tracking events record what a person does in your website or app, such as viewing a page or starting a checkout, grouped into sessions on the customer's event history. Identity calls tie an anonymous visitor to a Kustomer customer.

- [Create tracking event](https://developer.kustomer.com/api/core-resources/create-tracking-event.md): `POST /v1/tracking/event`
- [Create tracking identity](https://developer.kustomer.com/api/core-resources/create-tracking-identity.md): `POST /v1/tracking/identity`
- [Create tracking identity and track event](https://developer.kustomer.com/api/core-resources/create-tracking-identity-and-track-event.md): `POST /v1/tracking/identityEvent`

## Search

Search finds customers, conversations, messages, companies, notes, custom objects and other records that match a set of criteria, the same way saved searches do in the agent desktop.

- [Create customer search](https://developer.kustomer.com/api/core-resources/create-customer-search.md): `POST /v1/customers/search`
- [Create customer archive search](https://developer.kustomer.com/api/core-resources/create-customer-archive-search.md): `POST /v1/customers/archive/search`

## Satisfaction

Satisfaction surveys (CSAT) ask customers to rate their experience after a conversation. A survey defines the question, rating scale, channel and audience; each time one is sent, Kustomer creates a satisfaction response that tracks delivery and stores the customer's rating and comments.

- [Get Satisfactions](https://developer.kustomer.com/api/core-resources/get-satisfactions.md): `GET /v1/satisfaction`
- [Get satisfaction response](https://developer.kustomer.com/api/core-resources/get-satisfaction-response.md): `GET /v1/satisfaction-responses/{id}`

## SLAs

An SLA (service level agreement) is a response-time policy, such as "reply to urgent emails within one hour". Kustomer matches each conversation to one SLA and tracks deadlines for it, so agents can see what's about to breach and managers can report on what did.

- [Get SLA by ID](https://developer.kustomer.com/api/core-resources/get-sla-by-id.md): `GET /v1/slas/{id}`

## Sub-Statuses

A sub-status adds detail inside one of the three main statuses, open, snoozed or done, such as "Waiting on warehouse" under snoozed or "Resolved by refund" under done. Admins define them, and agents pick one when they change a conversation's or custom object's status.

- [Get sub-statuses](https://developer.kustomer.com/api/core-resources/get-sub-statuses.md): `GET /v1/sub-statuses`
- [Create sub-status](https://developer.kustomer.com/api/core-resources/create-sub-status.md): `POST /v1/sub-statuses`
- [Get sub-status by ID](https://developer.kustomer.com/api/core-resources/get-sub-status-by-id.md): `GET /v1/sub-statuses/{id}`
- [Update sub-status](https://developer.kustomer.com/api/core-resources/update-sub-status.md): `PUT /v1/sub-statuses/{id}`
- [Delete sub-status](https://developer.kustomer.com/api/core-resources/delete-sub-status.md): `DELETE /v1/sub-statuses/{id}`

## Snoozes

Snooze options are the preset choices, such as "2 Hours" or "Tomorrow", that agents pick from when they snooze a conversation or custom object. Each option says how to work out the wake-up time; snoozing hides the item until then and reopens it when the time comes.

- [Get snoozes](https://developer.kustomer.com/api/core-resources/get-snoozes.md): `GET /v1/snoozes`
- [Create snooze](https://developer.kustomer.com/api/core-resources/create-snooze.md): `POST /v1/snoozes`
- [Get snooze by ID](https://developer.kustomer.com/api/core-resources/get-snooze-by-id.md): `GET /v1/snoozes/{id}`
- [Update snooze](https://developer.kustomer.com/api/core-resources/update-snooze.md): `PUT /v1/snoozes/{id}`
- [Delete snooze](https://developer.kustomer.com/api/core-resources/delete-snooze.md): `DELETE /v1/snoozes/{id}`
- [Get snoozes by klass ID](https://developer.kustomer.com/api/core-resources/get-snoozes-by-klass-id.md): `GET /v1/snoozes/klass/{id}`

## Spam

Spam senders are your org's allow and block lists for inbound email. Each entry is one email address marked `whitelist` (never treated as spam) or `blacklist` (always treated as spam), and it overrides Kustomer's automatic spam detection for that sender.

- [Get spam senders](https://developer.kustomer.com/api/core-resources/get-spam-senders.md): `GET /v1/spam/senders`
- [Upsert spam sender](https://developer.kustomer.com/api/core-resources/upsert-spam-sender.md): `PUT /v1/spam/senders`
- [Get a spam sender by ID](https://developer.kustomer.com/api/core-resources/get-a-spam-sender-by-id.md): `GET /v1/spam/senders/{id}`
- [Update a spam sender by ID](https://developer.kustomer.com/api/core-resources/update-a-spam-sender-by-id.md): `PUT /v1/spam/senders/{id}`
- [Delete a spam sender](https://developer.kustomer.com/api/core-resources/delete-a-spam-sender.md): `DELETE /v1/spam/senders/{id}`
