# Core concepts

> The data model, request and response format, and platform limits that every Kustomer integration builds on.

Source: https://developer.kustomer.com/docs/concepts

Every Kustomer API, from the REST endpoints to webhooks, workflows and apps, works with the same records and follows the same conventions. Read these pages once and the rest of the platform is predictable.

## Data model

Kustomer organizes everything around the **customer**. Conversations, messages, notes and custom objects all hang off a customer and appear on their timeline.

- [Data model overview](https://developer.kustomer.com/docs/concepts/data-model): How customers, companies, conversations, messages, notes, custom objects, users and teams relate.
- [Conversations and messages](https://developer.kustomer.com/docs/concepts/conversations-and-messages): Status, assignment and lifecycle; message channels, direction and threading.
- [Custom objects (KObjects)](https://developer.kustomer.com/docs/concepts/custom-objects): Model orders, bookings and devices from your systems and attach them to timelines.
- [Custom attributes](https://developer.kustomer.com/docs/concepts/custom-attributes): Typed fields on standard and custom objects, named with type suffixes like `Str` and `Num`.

## API conventions

- [Request and response format](https://developer.kustomer.com/docs/concepts/json-api-format): The `data` envelope, relationships, includes and lists.
- [Pagination](https://developer.kustomer.com/docs/concepts/pagination): `page` and `pageSize`, and why you should follow `links.next`.
- [Search](https://developer.kustomer.com/docs/concepts/search): Filters, operators, dates and sorting across every object.
- [Rate limits](https://developer.kustomer.com/docs/concepts/rate-limits): The org-wide per-minute budget and the `x-ratelimit-*` headers.
- [Errors](https://developer.kustomer.com/docs/concepts/errors): Status codes, error shapes, and which errors to retry.
- [Versioning](https://developer.kustomer.com/docs/concepts/versioning): How the API is versioned and how deprecations are announced.

## The short version

If you only remember five things:

1. **Requests go to your org's host**, `https://<org>.api.kustomerapp.com`, with `Authorization: Bearer <API key>`. See [regions and base URLs](https://developer.kustomer.com/docs/get-started/regions-and-base-urls).
2. **Responses wrap records in `data`**, with fields under `attributes` and links to other records under `relationships`. See [request and response format](https://developer.kustomer.com/docs/concepts/json-api-format).
3. **Lists are paged.** Follow `links.next` until it's `null` instead of computing page numbers. See [pagination](https://developer.kustomer.com/docs/concepts/pagination).
4. **The request budget is shared by the whole org**, across every API key and app. Read the `x-ratelimit-*` headers and back off on `429`. See [rate limits](https://developer.kustomer.com/docs/concepts/rate-limits).
5. **Every change emits an event** such as `kustomer.conversation.update`, which you can receive with [webhooks](https://developer.kustomer.com/docs/events) or act on in [workflows](https://developer.kustomer.com/docs/workflows).
