An aria is a group of canaries. These API docs are a reference for integrators connecting the Kanary platform to their applications, dashboards, and services. With the Aria API you can create, terminate, update, and analyze large groups of Kanary accounts. The first version of this API is a simple interface exposing the most fundamental services for scanning and removing personal data risks. More updates and configurations coming soon. If you have suggestions, don’t hesitate to reach out.
Production base URL: https://my.kanary.com/api/v1/
Issue an API key in the admin dashboard and send it as Authorization: Bearer <api_key> on every request. Partner API paths in this repo are relative to the base URL above unless noted.
This repository contains documentation only. Partner credentials are set up through the admin dashboard. Contact hello@kanary.com to get started with a free admin account.
| Guide | Description |
|---|---|
| Admin dashboard | Web UI: API access, tokens, Stripe billing, usage (seats, scans, removals) |
| Authentication | Dashboard API keys, bearer usage, expiration, payment & activation |
| Product API | Product catalog at /api/v1/products/ |
| Partner API | Partner metadata, seat inventory, and the on-demand credit pool |
| Purchases | Buy subscription seats and unassigned on-demand credits |
| Account API | Account directory: create, list, invite, and delete |
| Members | Profile fields, products, subscriptions, and scan history |
| Scan credits | On-demand credits assigned to a member |
| Scan API | On-demand scans by account or member (tier=core\|advanced\|trial) |
| Exposure API | List, retrieve, update, and manually report exposures |
| Site API | Site catalog (read-only: list and retrieve) |
| Threat score | Profile threat scores. Beta access only |
Sign in at the admin dashboard with an admin account to request API access, manage billing, and issue API keys. See Authentication for how to use keys on API requests.
GET /api/v1/GET /api/v1/products/ (Product API)GET /api/v1/seats/; buy seats when available is 0: POST /api/v1/seats/ (Purchase seats). For on-demand scans, buy unassigned credits with POST /api/v1/credits/ (Purchase credits)POST /api/v1/accounts/ with a product_id (see Account API)GET /api/v1/accounts/, GET /api/v1/summary/GET /api/v1/accounts/{account_id}/members/; full PII: GET /api/v1/members/{member_id}/. The member is created with the accountPOST /api/v1/scan/ with tier (core, advanced, or trial) and account or member ids (Scan API)GET /api/v1/members/{member_id}/exposures/ (Exposure API). Webhooks coming soon.List endpoints that can return large collections use limit and offset.
| Param | Default | Max | Description |
|---|---|---|---|
limit |
100 |
250 |
Maximum items to return |
offset |
0 |
— | Starting index into the full result set |
Each paginated response includes:
| Field | Type | Description |
|---|---|---|
count |
integer | Total items across all pages (not just the current page) |
next |
string | null | Absolute URL for the next page, or null on the last page |
previous |
string | null | Absolute URL for the previous page, or null on the first page |
Every paginated list puts the current page in results, plus count, next, and previous. Some routes add read-only context beside that envelope (for example member_id on member sub-lists, last_updated_at on the site catalog). Partner metadata is on GET /api/v1/.
{
"count": 482,
"next": "https://my.kanary.com/api/v1/accounts/?limit=100&offset=100",
"previous": null,
"results": []
}
Follow the next URL until it is null (do not hand-roll page numbers). Omit limit and offset to use defaults. Invalid limit or offset returns 400 Bad Request.
API scope
next until it is null.