> ## Documentation Index
> Fetch the complete documentation index at: https://docs.embedreach.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Define the shape of your data before you send it

A **schema definition** describes your data as it exists in your system — a JSON Schema for your customers, transactions, locations, or any custom record type. These endpoints let you create, read, update, and list those definitions. Defining a schema is self-service; you don't need to wait on Reach to do it for you.

<Note>
  **New to this? Read the concepts first — they'll save you a redesign.** Schema definitions are one half of a two-part model, and the shape you choose here determines what your tenants can segment and message on later.

  * [How Reach models your data](/data-sharing/data-model) — the three canonical concepts (contact, transaction, location), and the definition-vs-mapping distinction.
  * [Custom Schemas](/data-sharing/custom-schemas) — the JSON Schema format, `$ref` references between schemas, categories, and PII annotations.
  * [Data Sync Setup](/onboarding/data-sync-setup) — how defining schemas fits into onboarding.
</Note>

A definition on its own is just a shape Reach stores. To turn it into a contact, transaction, or location, pair it with a [Schema Mapping](/api-reference/endpoint/get-partner-schema-mappings).

<Warning>
  Validation is strict, and it protects existing data: you can always **add** fields, but **removing, renaming, or retyping** a field that resources already use is restricted, and fields that live tenant segments or merge fields depend on are protected. Iterate freely before go-live; be deliberate after.
</Warning>
