# ScanFood API Docs

> Read-only HTTP API for transactions, shops and members recorded by ScanFood POS.

import { CardGrid, LinkCard } from '@astrojs/starlight/components';

The ScanFood API is a read-only HTTP interface to the data your shops already
record: shops, closed transactions and loyalty members. Authenticate with one
API key, poll on your own schedule, and keep your accounting, reporting or CRM
systems in step with the point of sale.

<CardGrid>
  <LinkCard title="Quickstart" description="First authenticated call in five minutes." href="/get-started/quickstart/" />
  <LinkCard title="Authentication" description="API keys, what each key can see, and how to rotate one." href="/get-started/authentication/" />
  <LinkCard title="Pagination & sync" description="Walk the cursor, then keep a local copy up to date." href="/get-started/pagination-and-sync/" />
  <LinkCard title="API reference" description="Every endpoint, generated from the spec." href="/api/" />
</CardGrid>

Three things worth knowing before you write any code:

- **Server to server only.** Keys must never reach a browser or a mobile app,
  and requests from a browser are refused. See [Authentication](/get-started/authentication/).
- **Filter on the calendar date, group by the business date.** A bill paid at
  01:00 may belong to yesterday's takings. See [Time zone & business date](/get-started/timezone-and-business-date/).
- **Read is all there is.** Every endpoint is a `GET`; nothing you send can
  change what the POS recorded. See [Introduction](/get-started/introduction/).
