member role.
Listing reports omits the heavy
content document to keep payloads light. Fetch a single report to get its full content.Report fields
List Reports
GET /reports
List every report for the selected team, newest edit first. Returns { reports } with content omitted from each row.
List Templates
GET /reports/templates
Return the visible prebuilt report templates (managed by SnowSEO admins). Each template exposes slug, name, description, icon, accent, and content, ordered by sort order.
Get a Report
GET /reports/{id}
Fetch one report including its full content document. Returns 404 if the report doesn’t belong to the team.
Create a Report
POST /reports
Create a report from a name and an initial document. Body fields:
Responds
201 with { report } (full detail).
Update a Report
PATCH /reports/{id}
Update a report’s name, content, and/or templateSlug — this is the debounced-autosave target. At least one of the three fields must be present, otherwise 400. Returns the updated { report }.
Delete a Report
DELETE /reports/{id}
Delete a report. Returns { success: true }, or 404 if not found for the team.
