Skip to content

Records

Browse and manage indexed records. All endpoints require the appropriate records:* permission.

Terminal window
# All examples assume $TOKEN is an API key (hv_...)
AUTH="Authorization: Bearer $TOKEN"
GET /admin/records

Paginated list of records in a collection, ordered by indexed_at descending.

ParamTypeRequiredDescription
collectionstringyesCollection NSID to list records from
limitnumbernoMax results per page (default 20, max 100)
cursorstringnoPagination cursor from a previous response
Terminal window
curl "http://127.0.0.1:3000/admin/records?collection=xyz.statusphere.status&limit=10" -H "$AUTH"

Response: 200 OK

{
"records": [
{
"uri": "at://did:plc:abc/xyz.statusphere.status/3k...",
"did": "did:plc:abc",
"collection": "xyz.statusphere.status",
"rkey": "3k...",
"cid": "bafyrei...",
"indexed_at": "2025-01-01T00:00:00Z",
"record": { "...": "..." },
"labels": []
}
],
"cursor": "20"
}

cursor is omitted when there are no more results.

GET /admin/records/collections

Returns the list of collection NSIDs from registered record-type lexicons. This is a fast lookup (no record counting).

Terminal window
curl http://127.0.0.1:3000/admin/records/collections -H "$AUTH"

Response: 200 OK

{
"collections": [
"xyz.statusphere.status",
"app.bsky.feed.post"
]
}
DELETE /admin/records

Delete a single record by AT URI.

ParamTypeRequiredDescription
uristringyesAT URI of the record to delete
Terminal window
curl -X DELETE "http://127.0.0.1:3000/admin/records?uri=at://did:plc:abc/xyz.statusphere.status/3k..." -H "$AUTH"

Response: 204 No Content

Returns 404 if the record is not found.

DELETE /admin/records/collection

Delete all indexed records for a given collection. Requires both records:delete and records:delete-collection permissions.

ParamTypeRequiredDescription
collectionstringyesCollection NSID to delete from
Terminal window
curl -X DELETE "http://127.0.0.1:3000/admin/records/collection?collection=xyz.statusphere.status" -H "$AUTH"

Response: 200 OK

{
"deleted": 42
}