GET /v1/activity returns the workspace's activity, the same log the dashboard's Activity page shows: posts published and scheduled, comments and messages, accounts connected, team changes, API keys and webhooks, billing and sign-ins. Each entry says what happened and who did it. It needs a key with the read scope.
curl "https://api.reelspan.com/v1/activity?limit=20&type=posts" \
-H "Authorization: Bearer $REELSPAN_API_KEY"import { Reelspan } from 'reelspan';
const reelspan = new Reelspan();
const page = await reelspan.request('GET', '/v1/activity', { query: { limit: 20, type: 'posts' } });from reelspan import Reelspan
reelspan = Reelspan()
page = reelspan.request("GET", "/v1/activity", query={"limit": 20, "type": "posts"})Parameters
| Parameter | What it does | |
|---|---|---|
limit |
Optional | How many entries, 1 to 200. Default 50. |
before |
Optional | An entry id (the next_cursor of the previous page): only older entries. |
profile |
Optional | Only activity about this profile, by username. |
type |
Optional | One kind: posts, comments, accounts, team, developers, billing or security. |
The response
{
"success": true,
"activity": [
{
"id": "48211",
"at": "2026-11-12T09:41:07.000Z",
"action": "post.created",
"type": "posts",
"platform": "instagram",
"profile": "my-brand",
"actor": { "kind": "key", "id": "key_7Hq2…", "name": "API key “Zapier”" },
"target": { "type": "request", "id": "9b1f6c2e8a3d4f50b7e1c9a2d6f3e8b1" },
"metadata": { "kind": "video", "platforms": ["instagram"], "profile": "my-brand" }
}
],
"next_cursor": "48211"
}actor.kindismemberfor a team member signed in to the dashboard,keyfor an API key, andsystemfor something Reelspan did on its own, like publishing a scheduled post.typegroupsactioninto the kinds you can filter by; anything else isother.next_cursoris set while there may be more: send it asbeforefor the next page. It isnullon the last page.
A key limited to some profiles sees only the activity of those profiles. Asking for another profile gets 403 PROFILE_FORBIDDEN.