# Introduction

URL: /docs/introduction

What Elara One is, how a store and its keys fit together, and where to start building.

Elara One is commerce, CRM, automation and customer conversations in one platform. A store has one admin, one customer record and one REST API behind it. You build the storefront your way, in your framework and on your hosting, and call the API for everything the shop and the CRM know.

## What you can build [#what-you-can-build]

- **A storefront.** Catalogue, search, cart and checkout with Stripe or PayPal on the store's own accounts. Stock is locked while an order is placed, promotions and tax are calculated by the API, and customers can have accounts.
- **Lead capture for a service business.** Forms with spam protection that open a lead in the CRM, send email notifications and start automation flows.
- **Integrations.** The Merchant API reads and writes CRM contacts, companies, tasks and notes, manages orders, forms, flows and CMS pages, and signed webhooks tell your systems when CRM records change.

## How it fits together [#how-it-fits-together]

```text
 Shopper's browser ──▶ Your storefront server ──▶ https://api.elaraone.app/api/v1
                        (Next.js, Nuxt, Astro…)     X-Tenant-Key + X-Tenant-Secret
                                                           │
                                     Store admin ◀─────────┘  one database per store
```

- **A store** is one business on Elara One. Each store has its own database, its own admin at `{slug}.admin.elaraone.app` and its own keys.
- **The store key** (`X-Tenant-Key`, starting `pk_live_`) identifies the store on every call. It is public: it is safe in a browser.
- **The server secret** (`X-Tenant-Secret`) proves a call comes from your server. It never goes to a browser.
- **Bearer tokens** sign in a customer (from `POST /v1/auth/login`) or a merchant integration (a Merchant API key with scoped abilities).

Read [Stores and keys](/docs/concepts/stores-and-keys) for the full model, and [Authentication](/docs/authentication) for every header.

## Conventions [#conventions]

| | |
|---|---|
| Base URL | `https://api.elaraone.app/api/v1` |
| Format | JSON in and out. Successful responses wrap their payload in `data`. |
| Money | Integer minor units: `{ "amount": 1299, "currency": "GBP", "formatted": "£12.99" }`. See [Money](/docs/concepts/money). |
| Times | ISO 8601, in UTC. |
| Errors | `{ "error": { "code", "message", "details" } }` with a stable `code`. See [Errors](/docs/concepts/errors). |
| Retries | Send an `Idempotency-Key` on writes. See [Idempotency keys](/docs/concepts/idempotency). |

## Start here [#start-here]

<Cards>
  <Card title="Quickstart" href="/docs/quickstart" description="List products, create a cart, add a line and check out, in about five minutes." />
  <Card title="Authentication" href="/docs/authentication" description="The store key, the server secret, registered websites and bearer tokens." />
  <Card title="Choosing a starter" href="/docs/starters" description="Next.js, Nuxt or Astro + Alpine: what each starter gives you." />
  <Card title="API reference" href="/docs/api" description="Every Storefront and Merchant API endpoint, with request and response schemas." />
</Cards>

## For AI tools [#for-ai-tools]

Every page in these docs has a Markdown copy at its URL plus `.md`, for example [`/docs/quickstart.md`](/docs/quickstart.md). [`/llms.txt`](/llms.txt) lists every page, and [`/llms-full.txt`](/llms-full.txt) has the whole of the docs in one file. Use **Copy page** at the top of any page to paste it into an assistant.
