---
title: Quickstart
description: Get an API key and make your first request in a few minutes.
---

# Quickstart

> **Not a developer?** You can build on this API without writing code
> yourself: see [Use with an AI assistant](/docs/ai/).

## 1. Create an API key

Create your key from your Dokaa profile: **My account → API keys → Create a
key**. Pick a name, and optionally restrict the key to a group or a
selection of your shops; by default it covers every shop of your Dokaa
account.

The key is shown when it is created and can be viewed again later from the
same page. Treat it like a password: server-side only, never in a browser or
a mobile app.

## 2. Make your first request

All requests are made over HTTPS against the v1 base URL, with your key in the
`Authorization` header:

```bash
curl "https://api.dokaa.app/v1/shops" \
  -H "Authorization: Bearer dk_live_..."
```

```json
{
  "data": [
    {
      "id": "64d5ef28b1098a0012efc123",
      "name": "Pizza Marcel",
      "slug": "pizza-marcel",
      "google_connected": true,
      "average_rating": 4.6
    }
  ],
  "pagination": {
    "next_cursor": null,
    "has_more": false
  }
}
```

`GET /shops` lists every shop your key can access. The `id` values are what
you pass as `shop_id` everywhere else.

## 3. Fetch some reviews

```bash
curl "https://api.dokaa.app/v1/reviews?shop_id=64d5ef28b1098a0012efc123&from=2026-01-01" \
  -H "Authorization: Bearer dk_live_..."
```

Most endpoints follow this pattern: optional `shop_id` to focus on one shop
(omit it to query all your shops at once), `from`/`to` date bounds, and
cursor pagination on lists. The competitor and keyword tracking endpoints
are single-shop: `shop_id` is required there. See
[Conventions](/docs/conventions/).

## 4. Go further

- Browse the [API reference](/docs/api/shops/listshops/) for every endpoint,
  parameter and response schema.
- Use the `/summary` and `/analytics/*` endpoints when you want server-side
  aggregates (counts, averages, distributions) instead of raw rows.
