> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reflecto.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

Send your first Reflecto notification in under a minute.

## 1. Get a token

1. Open the Reflecto Android app.
2. Tap **Settings → API Tokens**.
3. Your **Default** token is created automatically on first install. Tap
   **Reveal** (biometric-gated) and copy the `rfk_live_…` value.

The plaintext token is shown **once**. Reflecto stores only a SHA-256 hash on
the server — if you lose the value, revoke the token and create a new one.

## 2. Send a notification

<CodeGroup>
  ```bash curl theme={null}
  curl -H "Authorization: Bearer rfk_live_aB3xQ7mN9pK2vR5tY8uW4sZ1cE6dF0gH" \
       -d "Backup completed successfully" \
       https://api.reflecto.dev/v1/send
  ```

  ```bash curl (JSON) theme={null}
  curl -H "Authorization: Bearer rfk_live_aB3xQ7mN9pK2vR5tY8uW4sZ1cE6dF0gH" \
       -H "Content-Type: application/json" \
       -d '{"title":"Backup","message":"Backup completed successfully","priority":"default"}' \
       https://api.reflecto.dev/v1/send
  ```

  ```javascript Node.js theme={null}
  const res = await fetch("https://api.reflecto.dev/v1/send", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.REFLECTO_TOKEN}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      title: "Backup",
      message: "Backup completed successfully",
      priority: "default",
    }),
  });
  console.log(await res.json());
  ```

  ```python Python theme={null}
  import os, requests

  requests.post(
      "https://api.reflecto.dev/v1/send",
      headers={"Authorization": f"Bearer {os.environ['REFLECTO_TOKEN']}"},
      json={
          "title": "Backup",
          "message": "Backup completed successfully",
          "priority": "default",
      },
  ).raise_for_status()
  ```
</CodeGroup>

A successful call returns:

```json theme={null}
{
  "id": "msg_abc123def456",
  "delivered_to": [
    { "device_id": "did_phone_uuid", "type": "android" },
    { "device_id": "did_chrome_uuid", "type": "extension" }
  ],
  "warnings": []
}
```

Within three seconds you should see the notification on your phone (system
tray, "via Default") and on every paired extension.

## 3. Target a specific device

```bash theme={null}
curl -H "Authorization: Bearer $REFLECTO_TOKEN" \
     -d "device=phone&message=phone only" \
     https://api.reflecto.dev/v1/send
```

Built-in selectors: `all` (default), `mobile`/`phone`, `desktop`. You can
also use any custom label you assigned during pairing, or a comma-separated
list. Unknown labels become warnings, not errors.

## Next steps

* [Authentication](/guides/authentication) — token lifecycle, rotation, revoke.
* [Rate limits](/guides/rate-limits) — burst, monthly, per-receiver caps.
* [Errors](/guides/errors) — every status code and stable error code.
