Skip to content

List activity log entries

GET
/api/activity-logs

Returns a paginated, account-scoped activity log covering both system-generated events (subscription created/paused, order placed, billing failed, etc.) and custom entries written by integrations via POST /api/activity-logs.

Filtering by loggable type and ID

Each row is attached to a “loggable” — the subscription or order the event describes. To narrow the feed to a single resource, pass exactly one of:

  • subscription_id — returns only rows where loggable_type = "subscription" and loggable_id matches the given subscription UUID.
  • order_id — returns only rows where loggable_type = "order" and loggable_id matches the given order UUID.

The two filters are mutually exclusive; if both are supplied, order_id takes precedence. When neither is supplied, the response includes both subscription and order rows.

The returned loggable_type and loggable_id fields on each row identify the source entity, and the convenience fields subscription_id/subscription_number and order_id/order_number are populated for the corresponding row type so clients can render links without a second lookup.

Filtering by integration / custom actions

Custom entries written by integrations through POST /api/activity-logs are stored with actor_type = "api" and an action name prefixed integration_ (e.g. integration_shipment_dispatched). To filter the feed to integration activity:

  • actor_type=api — every row written through the public log endpoint.
  • action=integration_shipment_dispatched — a single custom action.
  • action=integration_shipment_dispatched,integration_label_printed — comma-separated list of action names; matched as IN (...).

The set of distinct integration_* action names recorded for the account is available via GET /api/activity-logs/integration-actions and is suitable for populating a filter dropdown.

Other filters

  • actor_type=customer|admin|api|system — actor category. system also includes webhook-triggered events and rows with no actor recorded.
  • actor_name — when actor_type=admin, restricts to a specific staff member by name. Distinct names are available via GET /api/activity-logs/actors.
  • start_date / end_date (required) — yyyy-MM-dd date range interpreted in the account’s timezone.
  • page / limit — pagination (limit capped at 100, default 25).
order_id
string

Narrow to a single order. Equivalent to loggable_type=order AND loggable_id=<uuid>. Takes precedence over subscription_id if both are supplied.

subscription_id
string

Narrow to a single subscription. Equivalent to loggable_type=subscription AND loggable_id=<uuid>. Mutually exclusive with order_id.

actor_name
string

When combined with actor_type=admin, restricts to a specific staff member by display name. Ignored for other actor types.

actor_type
string
Allowed values: customer admin api system

Filter by actor category. api returns every entry written by an integration through POST /api/activity-logs. system also includes webhook-triggered events and rows with no actor recorded.

action
string

Filter by action name. Accepts a single action (e.g. subscription_paused) or a comma-separated list. Use the integration_* prefix to match custom entries logged via POST /api/activity-logs.

limit
number

Page size (1-100). Defaults to 25.

page
number

1-indexed page number. Defaults to 1.

end_date
required
string

Inclusive end of the date range, formatted yyyy-MM-dd. Interpreted in the account timezone.

start_date
required
string

Inclusive start of the date range, formatted yyyy-MM-dd. Interpreted in the account timezone.

Paginated list of activity log entries.

object
data
Array<object>
object
id
string format: uuid
action

Action name. System-generated actions use snake_case domain verbs (e.g. subscription_paused); integration entries are prefixed integration_.

string
description
string
nullable
changes

Optional field-level diff captured when the entry was written.

object
key
additional properties
any
metadata

Free-form metadata stored alongside the entry.

object
key
additional properties
any
actor_type

Category of the actor that triggered the entry. api indicates the entry was written by an integration via POST /api/activity-logs.

string
nullable
actor_name
string
nullable
loggable_type

Type of entity the entry is attached to.

string
Allowed values: subscription order
loggable_id

UUID of the subscription or order the entry is attached to.

string format: uuid
subscription_id
string format: uuid
nullable
subscription_number
string
nullable
order_id
string format: uuid
nullable
order_number
string
nullable
customer_name
string
nullable
customer_email
string
nullable
profile_id
string format: uuid
nullable
created_at
string format: date-time
metadata
object
total
integer
per_page
integer
current_page
integer
last_page
integer