---
summary: From zero to a connected client in five steps.
title: Quickstart
path: quickstart
status: published
---

# Quickstart

Five steps take you from an empty realm to a connected client. You need a Scuttle API token or a console login, and a role of at least *operator* on a realm. The examples use tenant `acme` and realm `shop`.

## 1. Set up the API call

```bash
export SCUTTLE=https://scuttle.scailabs.ai/api/v1
export TOKEN=sct_...            # an API token from the console
alias sc='curl -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json"'
```

## 2. Pick a cluster

```bash
sc $SCUTTLE/clusters
```

Each entry has an `id` such as `nlwest-std` and the `endpoint` you will connect to.

## 3. Create a database

```bash
sc -X POST $SCUTTLE/tenants/acme/realms/shop/databases \
   -d '{"name": "orders", "cluster": "nlwest-std"}'
```

Changes are asynchronous: the answer is `202 Accepted` with an `operation`. Poll `GET $SCUTTLE/operations/<id>` until `state` is `succeeded`. The database is called `acme_shop_orders` on the server.

## 4. Create an account

```bash
sc -X POST $SCUTTLE/tenants/acme/realms/shop/accounts -d '{
  "name": "app", "cluster": "nlwest-std",
  "grants": [{"scope": "database", "database": "orders", "profile": "readwrite"}]
}'
```

The response contains the generated `password`. **It is shown once.** Scuttle does not store it; if you lose it, rotate it.

## 5. Connect

```bash
mariadb --host=db.nlwest-std.scuttle.scailabs.ai --port=3306 \
        --ssl-verify-server-cert --user=acme_shop_app -p acme_shop_orders
```

TLS is mandatory and the certificate verifies against your system trust store. `GET .../databases/orders` returns ready-made connection strings for JDBC, Node, Python, Go and .NET.
