Get a user's public activity feed
The public activity feed on a profile (#1693): six kinds of public act, ordered newest first. Accepts a UUID or a profile_slug; auth-optional.
campaign_launched (the campaign passed approval), achievement_earned (a badge, read through the same public projection the profile badge strip uses), commented, donated, update_posted and endorsed (declared, or their referral link for that campaign recorded a visit — the definition the Endorsed-by dialog and the profile chip already use).
Each row inherits the visibility of the thing it reports: a refunded or charged-back gift, a hidden or retracted comment, a withdrawn update, a soft-deleted campaign and a revoked award are all simply absent. Anonymous gifts never appear, for anyone, including the profile's owner. A campaign that is unlisted, private, paused, draft or deleted is never named. A profile with show_donations_on_profile off keeps every row type except donated.
All money is INTEGER CENTS, never dollars. amount_cents on a donated row is what the giver paid — the donation plus the platform tip — which is the same figure the profile's Impact stat sums, so the two cannot disagree.
Paging is a KEYSET cursor, not an offset: pass the nextCursor from the previous page back as cursor. A cursor this endpoint did not issue is a 400. nextCursor is null on the last page.
Parameters
Path Parameters
A user UUID or a profile_slug.
Query Parameters
Filter chip. giving is donated; fundraising is campaign_launched and update_posted; community is commented, achievement_earned and endorsed. An unrecognised value falls back to all. The summary block is NOT filtered — it is the strip above the chips and always counts every type.
"all""giving""fundraising""community""all"15020The opaque nextCursor from the previous page. Omit for page 1.
Responses
A page of the feed. A private profile answers 200 with an empty items array to everybody but its owner, rather than 404 — the page renders and the section is simply empty.