1. Docs
  2. API Reference
  3. Download the scoped activity feed as CSV

Download the scoped activity feed as CSV

GET/portal/v1/accounts/{accountSlug}/applications/{appSlug}/environments/{envSlug}/workspace/activity/export

The activity feed as a CSV download (activity-YYYY-MM-DD.csv), with the same activity.view requirement, visibility scope, action allowlist and filters as the paged feed. cursor and limit are ignored. Columns are Timestamp, Event, Performed by, Person and Location, and the file holds at most 5000 rows. The X-Export-Truncated header says whether rows were cut off, and X-Export-Row-Limit gives the cap.

Authentication

Bearer TokenAuthorization

JWT access token. Never send alongside X-API-Key: a request carrying both is refused.

Path Parameters

accountSlugstring Required

The Account's slug. An unknown one answers 404.

appSlugstring Required

The Application's slug within the Account.

envSlugstring Required

The Environment's slug within the Application.

Query Parameters

limitnumber Optional

Events per page (1-100, default 25)

range 1–100

cursorstring Optional

Opaque base64url cursor from the previous response's `pagination.next_cursor`. Omit for the first page.

qstring Optional

Free-text match against the people named on an event — who acted and who it was done to. One field rather than separate actor and subject filters: an operational administrator asks what happened with a person, not which side of the event they were on.

max length 200

actionstring Optional

Filter to a single action key. Only keys on the Workspace activity allowlist match; anything else returns nothing rather than reaching into the wider audit log.

node_idstring Optional

Filter to events recorded at one hierarchy node. Still intersected with the caller's accessible subtree, so naming a node outside their scope returns nothing.

fromstring · date-time Optional

Lower bound (inclusive).

tostring · date-time Optional

Upper bound (inclusive).

Responses

text/csv

string (binary)

application/json

  • errorApiErrorBodyDto*

application/json

  • errorApiErrorBodyDto*

application/json

  • errorApiErrorBodyDto*

application/json

  • errorApiErrorBodyDto*
Request
curl -X GET "https://auth.canopy-io.com/portal/v1/accounts/value/applications/value/environments/value/workspace/activity/export?limit=0&cursor=value&q=value&action=value&node_id=value&from=value&to=value" \
  -H "Authorization: Bearer $CANOPY_TOKEN"
Response
Content-Type: text/csv
Related endpoints
GETResolve the caller's operational authority in the Environment
GETList identities within the caller's operational scope
GETList an identity's responsibilities within the caller's scope
GETList the identity roles the caller may grant
GETList the hierarchy locations the caller may assign at
GETList the hierarchy nodes the caller can see in this Environment
GETList identity invitations within the caller's scope
POSTInvite an identity into a location with a role
GETList scoped operational activity within the caller's scope
GETHow long activity history is kept for this Account
POSTResend a scoped invitation
DELETERevoke a scoped invitation
POSTGrant an identity a role at a hierarchy node
PATCHMove or re-role an existing assignment
DELETERemove an identity's role assignment
Was this page helpful?

Tell us how we can improve this guide.