API reference
/v1/users routes
List, read and delete the users of your app with a secret key.
These routes use a secret key: Authorization: Bearer fc_sk_live_xxx. They only see users of the app that owns the key, and they never return face descriptors.
The user object
{
"id": "usr_...",
"email": "ada@example.com",
"name": "Ada",
"created_at": "2026-10-14T12:00:00.000Z",
"last_sign_in_at": "2026-10-14T12:30:00.000Z"
}last_sign_in_at is null if the user has not signed in since enrolling.
List users
GET /v1/users?limit=50&cursor=...
| Query | Description |
|---|---|
limit | 1 to 100. Default 50. |
cursor | The next_cursor from the previous page. |
curl "https://api.facecard.dev/v1/users?limit=50" \
-H "Authorization: Bearer fc_sk_live_xxx"{
"users": [ { "id": "usr_...", "email": "ada@example.com", "name": "Ada", "created_at": "...", "last_sign_in_at": null } ],
"next_cursor": "<jwt>"
}next_cursor is null on the last page. Users are ordered by creation time.
Get a user
GET /v1/users/{id} returns one user object.
curl https://api.facecard.dev/v1/users/usr_123 \
-H "Authorization: Bearer fc_sk_live_xxx"Delete a user
DELETE /v1/users/{id} deletes the user, every face template, the consent record and challenge rows. A tombstone auth event without personal data is kept. Returns 204 No Content.
curl -X DELETE https://api.facecard.dev/v1/users/usr_123 \
-H "Authorization: Bearer fc_sk_live_xxx"Use this to honor a deletion request from one of your users. See Security and privacy.
Errors
| Status | Code | When |
|---|---|---|
| 400 | invalid_request | Bad limit or cursor. |
| 401 | unauthorized | Missing or invalid secret key. |
| 403 | origin_not_allowed | The request carries a browser Origin that is not on the allow list. |
| 404 | not_found | No such user in this app. |
| 429 | rate_limited | More than 600 requests a minute for this key. |