List Instance Activity Log
GET/api/integrations/17track/instances/:instance/activity
Paginated activity log entries for one 17TRACK integration instance: entries about the instance itself (connect, settings update, disconnect) and entries recorded for it by background work (registration, polling, webhooks, backfill, quota alerts). Entries from background work have a null causer; actions a user triggered carry that user.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Filters (filter[...]):
event_type— comma-separated event namescauser_id— comma-separated user IDssearch— contains match on descriptiondescription,event— text filters; the bare key is an exact match, andfilter[<field>.<operator>]takes any ofcontains,does_not_contain,is,is_not,is_one_of,is_not_one_of,starts_with,does_not_start_with,ends_with,does_not_end_with,is_empty,is_not_emptycreated_at— date filter,filter[created_at.<operator>]withis,is_not,before,after,on_or_before,on_or_after,between,is_empty,is_not_empty,today,yesterday,past_week,past_month,past_year,past_days,days_ago, .... Dates areY-m-din the account timezone;betweentakes two comma-separated dates.
filter_groups accepts a base64-encoded JSON filter tree for AND/OR combinations: {"conjunction": "and", "children": [{"type": "condition", "condition": {"column": "<field>.<operator>", "operator": "<operator>", "value": "..."}}, {"type": "group", "group": {"conjunction": "or", "children": [...]}}]}. When it is present it takes precedence over the flat filter[...] parameters.
Unknown filter names are rejected with 400 Bad Request.
Allowed sorts: created_at, event, id (default: -created_at, -id).
Event names recorded by the 17TRACK integration:
connected,updated(withproperties.changed_keys),disconnected— instance lifecycleregister_completed,register_failed,register_rate_limited— registering tracking numbers with 17TRACKpoll_completed,poll_rate_limited,poll_quota_exceeded— scheduled or manual syncsstop_completed,stop_failed— stopping tracking for finished shipmentsmanual_push_triggered,manual_refresh_triggered— Push Pending Tracking Numbers / Pull Tracking Updatesretrack_completed,carrier_changed,tracking_renumbered— per-tracking correctionsbackfill_started,backfill_completed— historical backfillwebhook_processed,webhook_failed— inbound webhooksquota_exceeded,quota_threshold_alerted,stalled_shipments_alerted— alerts
Responses:
200 OK— paginated activity rows400 Bad Request— a filter name that is not allowed404 Not Found— instance id does not exist
Authentication: Bearer token (Personal Access Token).
Request
Responses
- 200
- 401
- 403
- 404
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.