> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.lettbestilt.no/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.lettbestilt.no/_mcp/server.

# Introduction

LettBestilt runs online ordering for restaurants in Norway. This API is for agencies and developers who build restaurant websites: you design and host the site, and LettBestilt runs everything behind the order button.

| You build                                | LettBestilt runs                                              |
| ---------------------------------------- | ------------------------------------------------------------- |
| The website, its design and content      | Menus, prices, opening hours and delivery zones               |
| The menu pages, cart and checkout UI     | Price calculation, coupons and promotions                     |
| The order confirmation and tracking page | Payment through SagaPay's hosted page, or cash                |
| Your own integrations, through webhooks  | The kitchen screen, tickets, customer emails and reservations |

The restaurant manages its menu, sold-out items, opening hours and rush mode in its LettBestilt dashboard. Your site reads the changes through the API, so you never hard-code menu data.

## What you can build

* **Menu pages** with categories, variants, add-ons, combo deals, allergens and the restaurant's own branding.
* **Checkout** for pickup and delivery, paid online (card, Vipps and the other methods the restaurant has on SagaPay) or in cash.
* **Order tracking** on your own site, with status and ready time.
* **Table reservations**: available times and reservation requests that the restaurant approves.
* **Coupons, automatic promotions and newsletter signup.**
* **Webhooks** to your own systems when orders and reservations change.

## The basics

Every request goes to one base URL:

```
https://www.lettbestilt.no/api/v1
```

> **Warning**
>
> Always use `www.lettbestilt.no`. The bare domain redirects to `www`, and the redirect drops the `Authorization` header.

Each restaurant is identified by its **slug**, which is also its LettBestilt subdomain: `pizzaroma` for `pizzaroma.lettbestilt.no`. Most endpoints take it as `?slug=pizzaroma`.

Calls from your server use the restaurant's **API key**. Calls from the browser are allowed from the restaurant's **verified domains**. See [Authentication](/authentication).

## What you get from LettBestilt

Per restaurant you build for, LettBestilt sets up:

* an API key
* the domains your site runs on, verified for browser calls and payment return URLs
* webhook subscriptions to your endpoints, if you want them

To start building on LettBestilt, [become a partner](https://www.lettbestilt.no/bli-partner).

## Next steps

#### [Quickstart](/quickstart)

Make your first calls: restaurant, menu and preparation time.

#### [Build an ordering flow](/build-an-ordering-flow)

From menu to cart, payment and order tracking.

#### [Table reservations](/reservations)

Show available times and send reservation requests.

#### [Webhooks](/webhooks)

Get signed events when orders and reservations change.

#### [Go-live checklist](/go-live)

Everything to check before real customers order.

#### [API reference](/api-reference)

Every endpoint and webhook, with schemas and examples.