# Introduction

import ProTip from '../../../../snippets/pro-tip.mdx';
import VersionBadge from '/snippets/VersionBadge.tsx';

Welcome to **[[companyName]]**'s Core Platform docs - the main REST API and dashboard behind everything else in this Kitchen Sink example. You're currently reading <VersionBadge label="2026-01" tone="latest" /> docs; the <VersionBadge label="2025-09" tone="deprecated" /> version is still around for anyone mid-migration, under the version switcher up top.

If you have any trouble, reach out at [[supportEmail]] - that address, like the version badges above, comes from a real writedocs component/variable, not hardcoded text.

<Callout type="note">
  This page exists purely to exercise components - the "product" being documented isn't real. Every code sample, endpoint, and metric below is illustrative.
</Callout>

## Four kinds of callouts

<Callout type="note">
  A **note** - background information that's useful but not critical.
</Callout>

<Callout type="tip">
  A **tip** - a suggestion that makes something easier or faster.
</Callout>

<Callout type="warning">
  A **warning** - something that could cause a problem if ignored.
</Callout>

<Callout type="danger">
  A **danger** callout - reserved for destructive or irreversible actions.
</Callout>

## Where to go next

<CardGroup cols={2}>
  <Card title="Quickstart" icon="🚀" href="/docs/core/2026-01/guides/quickstart/">
    Get an API key and make your first request in under five minutes.
  </Card>
  <Card title="Authentication" icon="🔑" href="/docs/core/2026-01/guides/auth/">
    How API keys, scopes, and token expiry work.
  </Card>
  <Card title="Rate limits" icon="⏱" href="/docs/core/2026-01/guides/rate-limits/">
    Per-tier request limits and the headers that report them.
  </Card>
  <Card title="OpenAPI reference" icon="🔌" href="/petapi/widgets/get-widgets/">
    A fully generated API reference, straight from an OpenAPI spec.
  </Card>
</CardGroup>

## How a request flows through the platform

```mermaid
graph TD
  A[Client request] --> B{API Gateway}
  B -->|valid key| C[Rate limiter]
  B -->|invalid key| D[401 response]
  C -->|under limit| E[Core service]
  C -->|over limit| F[429 response]
  E --> G[(Database)]
  E --> H[Response]
```

Flowcharts, sequence diagrams, and state diagrams all render the same way - fence the block as `mermaid` instead of a language name, and it follows the site's light/dark toggle automatically.

## The math behind rate limiting

The token bucket algorithm backing our rate limiter refills at a constant rate $r$ tokens per second, up to a burst capacity $b$. A request is allowed when the current token count $t$ satisfies $t \geq 1$:

$$
t_{n} = \min(b,\ t_{n-1} + r \cdot \Delta t)
$$

See [Rate limits](/docs/core/2026-01/guides/rate-limits/) for the actual per-tier numbers.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Is this a real API?">
    No - every endpoint, response shape, and metric in this fixture is illustrative, meant only to exercise writedocs' own components and features.
  </Accordion>
  <Accordion title="Where's the OpenAPI-generated reference?">
    Under the **OpenAPI Demo** tab, next to **Guides** and **API Reference** above - it's generated entirely from `openapi.yaml` at build time, not hand-written like the Resources/Errors pages under **API Reference**.
  </Accordion>
  <Accordion title="Why are there two different API reference styles?">
    To show both are possible in the same site: **API Reference** is ordinary hand-written pages organized into dropdowns; **OpenAPI Demo** is auto-generated, one page per operation, straight from a spec file.
  </Accordion>
</AccordionGroup>

<ProTip subject="snippets" />