Emails API

Pull your captured emails programmatically. Create a key under Dashboard → API Keys — the full key (cpt_…) is shown once at creation. A key only ever returns its owner's leads.

List emails

GET /api/v1/emails
Authorization: Bearer cpt_...

Query parameters (all optional):

| Parameter | Meaning | | --- | --- | | site | Filter to one site by slug; omit for all of your sites | | since | ISO date — only signups on/after this moment | | limit | Page size (default 100) | | offset | Pagination offset |

Example:

curl -H "Authorization: Bearer cpt_..." \
  "https://your-captive-host/api/v1/emails?site=lake-cabin&since=2026-01-01&limit=100"

Response:

{
  "data": [
    {
      "email": "guest@example.com",
      "clientMac": "aa:bb:cc:dd:ee:ff",
      "ssid": "Lake Cabin Guest",
      "authorized": true,
      "createdAt": "2026-07-05T20:14:03.000Z",
      "siteSlug": "lake-cabin",
      "siteName": "Lake Cabin"
    }
  ],
  "total": 1,
  "limit": 100,
  "offset": 0
}

siteName is a snapshot — leads from a deleted site keep their provenance.

CSV export

Every emails view in the dashboard (per-site and account-wide) has a CSV export button; no API key needed, it uses your signed-in session.

Pushing instead of pulling

If you'd rather have signups delivered to you the moment they happen, use webhooks.