GET /api/v1/public/campaigns/{campaign_id}/ — id-first resolver (+ workspace).
campaign_id
No response body
GET campaign report — nested (/workspaces/{ws}/campaigns/{id}/report/) + flat.
GET /api/v1/public/workspaces/{workspace_id}/campaigns/ — report-worthy by default.
workspace_id