List account audit events

Return recent audit events for the authenticated account. The response keeps the raw endpoint/method fields for forensics, but also includes API-composed summary, category, action, resourceLabel, and changes fields so clients do not have to interpret route names or request bodies. By default this endpoint also merges dedicated DNS history events from dns_audit_events, which provide concrete before/after DNS record and nameserver changes. Use hideGet=true when the user wants changes rather than read-only page loads.

Account & Access Account

Authentication

Required API scope: audit:read

Use Authorization: Bearer <token> for API keys. Dashboard sessions may also use hostup_session.

Context

Query Parameters

limit integer · min: 1 · max: 100

Page size from 1 to 100.

cursor string

Cursor returned by the previous page.

startAt string

Inclusive ISO-8601 lower bound. Defaults to the last 12 hours.

endAt string

Inclusive ISO-8601 upper bound.

hideGet boolean

Hide read-only GET events.

includeStats boolean

Include account-level audit counters for the selected window.

includeDnsEvents boolean

Include dedicated DNS history events with before/after DNS values. Defaults to true.

Headers

Accept Example
Content-Type Example

Responses

200 Paginated audit events.
data array<object> required
data[].id string required
data[].occurredAt string required
data[].method string required
data[].endpoint string required
data[].path string required
data[].ipAddress stringnull
data[].userAgent stringnull
data[].statusCode integernull
data[].success boolean required
data[].durationMs integernull
data[].errorMessage stringnull
data[].authMethod stringnull
data[].resourcesAccessed array<string> required
data[].severity string required
data[].tags array<string> required
data[].eventSource string · enum required
request_audit
dns_history
data[].actorType stringnull · enum
customer
staff
system
api
smartcopy
data[].actorId stringnull
data[].requestId stringnull
data[].category string · enum required
dns
domain
security
billing
api
account
data[].action string required
data[].summary string required
data[].resourceLabel stringnull
data[].changes array<object> required
data[].changes[].label string required
data[].changes[].before stringnull required
data[].changes[].after stringnull required
total integer required
hasMore boolean required
nextCursor stringnull required
stats object
400 Invalid request. The response body is an RFC 7807 Problem Details document.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on `detail`.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when `code` is `invalid_request`.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
401 Unauthorized. Authentication is required.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on `detail`.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when `code` is `invalid_request`.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
403 Forbidden. The caller lacks a required scope or does not own the resource.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on `detail`.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when `code` is `invalid_request`.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
404 Not found. The resource does not exist or is not owned by the caller.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on `detail`.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when `code` is `invalid_request`.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
429 Rate limited. Retry after the limit resets. 429 responses include `Retry-After` seconds plus `X-RateLimit-*` headers.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on `detail`.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when `code` is `invalid_request`.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
500 Internal error. Retry later or contact support if the issue persists.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on `detail`.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when `code` is `invalid_request`.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
GET https://cloud.hostup.se/api/v2/audit-log
For AI assistants
View as Markdown
cURL
curl -X GET "https://cloud.hostup.se/api/v2/audit-log" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Response
{
  "data": [
    {
      "id": "b95de54b-2d8d-45f1-96b9-2d2e5a3c02fb",
      "occurredAt": "2026-05-19T09:55:00.000Z",
      "method": "PUT",
      "endpoint": "/api/v2/dns-zones/zone_01hxa3b4c5d6e7f8g9h0j1k2m3/records/drr_01hxa3b4c5d6e7f8g9h0j1k2m4",
      "path": "/api/v2/dns-zones/zone_01hxa3b4c5d6e7f8g9h0j1k2m3/records/drr_01hxa3b4c5d6e7f8g9h0j1k2m4",
      "ipAddress": "203.0.113.25",
      "userAgent": "Mozilla/5.0",
      "statusCode": 200,
      "success": true,
      "durationMs": 214,
      "errorMessage": null,
      "authMethod": "session",
      "resourcesAccessed": [
        "v2_dns_zone:zone_01hxa3b4c5d6e7f8g9h0j1k2m3:record_update"
      ],
      "severity": "info",
      "tags": [
        "v2_dns_record_update"
      ],
      "eventSource": "request_audit",
      "actorType": null,
      "actorId": null,
      "requestId": null,
      "category": "dns",
      "action": "dns_record_update",
      "summary": "Changed DNS record A @ -> 203.0.113.10.",
      "resourceLabel": "drr_01hxa3b4c5d6e7f8g9h0j1k2m4",
      "changes": [
        {
          "label": "Example Label",
          "before": null,
          "after": "203.0.113.10"
        }
      ]
    }
  ],
  "total": 1,
  "hasMore": false,
  "nextCursor": null
}