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.