API reference
Audit log
Who changed what in your organization and your customers', newest first.
Every change made through the dashboard or the API is recorded with the user who made it. Entries never contain secrets or passwords. Staff don't see billing entries.
Endpoints
The audit log entry object
One recorded change.
Attributes
iduuidRequiredUnique identifier.
actionstringRequirede.g. "user.update_role", "organization.create_child".
actor_labelstringRequiredWho acted, as shown in the audit log: the user's name (or email), "System" / "System (<reason>)", or "Password reset link". A snapshot taken when the entry was written; never contains secrets.
actor_organization_iduuid· nullableThe acting user's organization; null for system actions.
actor_user_iduuid· nullableThe user who acted; null for system actions.
customer_iduuid· nullableinserted_attimestampRequiredmetadataobjectRequiredChanged attribute names (never values of sensitive fields).
reseller_iduuid· nullableresource_typestringRequiredShort name of the target resource, e.g. "user".
target_idstring· nullablePrimary key of the target record.
{
"type": "audit_log_entry",
"id": "5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8",
"attributes": {
"action": "device.activate",
"actor_label": "Ada Lovelace",
"actor_organization_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13",
"actor_user_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13",
"customer_id": "c41e9a03-6b2f-4d8e-a571-0f3b9c2d7e14",
"inserted_at": "2026-10-12T14:03:21Z",
"metadata": {},
"reseller_id": "a7d35c90-2e14-4f6b-8c03-5b9e1d4a2f67",
"resource_type": "device",
"target_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13"
}
}Endpoints
List audit log entries
/api/json/audit_log_entriesEntries in your scope, newest first. Filter by action, resource_type, actor_user_id and inserted_at.
- Who
- Resellers and Customers
- Roles
- Owner, Admin, Staff
Query parameters
filter[<field>]objectNarrows the list:
filter[status]=active, or with an operator:filter[inserted_at][greater_than_or_equal]=2026-10-01T00:00:00Z. Operators:in,is_nil,greater_than,greater_than_or_equal,less_than,less_than_or_equal.One of
actionactor_labelactor_organization_idactor_user_idcustomer_ididinserted_atmetadatareseller_idresource_typetarget_idsortstringA field to sort by; prefix it with
-for descending, e.g.sort=-inserted_at. Separate several with commas.page[limit]integerPage size: 50 by default, at most 200.
page[after]stringThe cursor from
links.nextof the previous page.page[offset]works too.page[count]booleantrueadds the total number of matches inmeta.page.total.
curl https://api.houndsat.com/api/json/audit_log_entries \
-H "Authorization: Bearer $HOUNDSAT_TOKEN"{
"data": [
{
"type": "audit_log_entry",
"id": "5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8",
"attributes": {
"action": "device.activate",
"actor_label": "Ada Lovelace",
"actor_organization_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13",
"actor_user_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13",
"customer_id": "c41e9a03-6b2f-4d8e-a571-0f3b9c2d7e14",
"inserted_at": "2026-10-12T14:03:21Z",
"metadata": {},
"reseller_id": "a7d35c90-2e14-4f6b-8c03-5b9e1d4a2f67",
"resource_type": "device",
"target_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13"
}
}
],
"links": {
"next": "/api/json/audit_log_entries?page[after]=g2wAAAABbQAAACQ1ZjBj…"
}
}Get an audit log entry
/api/json/audit_log_entries/{id}One entry in your scope.
- Who
- Resellers and Customers
- Roles
- Owner, Admin, Staff
Path parameters
iduuidRequiredThe record's id.
curl https://api.houndsat.com/api/json/audit_log_entries/5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8 \
-H "Authorization: Bearer $HOUNDSAT_TOKEN"{
"data": {
"type": "audit_log_entry",
"id": "5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8",
"attributes": {
"action": "device.activate",
"actor_label": "Ada Lovelace",
"actor_organization_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13",
"actor_user_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13",
"customer_id": "c41e9a03-6b2f-4d8e-a571-0f3b9c2d7e14",
"inserted_at": "2026-10-12T14:03:21Z",
"metadata": {},
"reseller_id": "a7d35c90-2e14-4f6b-8c03-5b9e1d4a2f67",
"resource_type": "device",
"target_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13"
}
}
}