Skip to main content
POST
Get page content performance report

Authorizations

X-API-Key
string
header
required

Writesonic API key

Headers

x-project-id
string<uuid>
required

Project ID for tenant scoping

X-Workspace-Id
string<uuid> | null

Overrides the key's workspace

Body

application/json
report_type
enum<string>
required

report_type: Which per-page report to return. One of: seo_performance, keywords, ai_citations, geo_visibility, lifecycle_status, ai_citations_prompts, ai_citations_platforms, ai_citations_topics, ai_activity, ai_search_funnel, seo_funnel, marketing_traffic, serp_intelligence, search_referrals, content_signals, activity_log, target_keywords, metadata.

Available options:
seo_performance,
keywords,
ai_citations,
geo_visibility,
lifecycle_status,
ai_citations_prompts,
ai_citations_platforms,
ai_citations_topics,
ai_activity,
ai_search_funnel,
seo_funnel,
marketing_traffic,
serp_intelligence,
search_referrals,
content_signals,
activity_log,
target_keywords,
metadata
page_id
string<uuid>
required

The content-intelligence page to report on. Resolve it via get_ci_dashboard view=pages, search= — the page is never referred to by id in natural language.

market_id
string<uuid> | null

Market from get_ci_dashboard view=countries. Required for keywords, serp_intelligence, target_keywords and seo_funnel.

curr_start
string<date> | null

Current window start date - pairs with curr_end/prev_start/prev_end: provide all four or omit all four (defaults to trailing 30 days), else 422. Each range needs start<end, equal current/prior length, and prev_end<=curr_start.

curr_end
string<date> | null

Current window end date - see curr_start.

prev_start
string<date> | null

Comparison window start date - see curr_start.

prev_end
string<date> | null

Comparison window end date - see curr_start.

keyword_intent
enum<string>[] | null

Keyword-intent filter.

The /pages keyword_intent filter: classifies a page by whether its primary target keyword contains any of the project's brand aliases. Modelled on statuses (multi-select; both-or-none selected = no filter). An intent signal, not a traffic signal.

Available options:
branded,
non_branded
page
integer
default:1

Page number for paginated reports.

Required range: x >= 1
size
integer
default:50

Page size for paginated reports.

Required range: 1 <= x <= 100
sort
string | null

Sort for AI-citations tab reports as ':

' (dir=asc|desc); valid keys are per-tab.

search
string | null

Substring filter for AI-citations tab reports (prompt/platform/topic) and the keywords report.

Maximum string length: 200
category
enum<string>
default:all

Category filter for the activity_log report.

Available options:
all,
changes,
impact,
alerts
cursor
string | null

Opaque pagination cursor for the activity_log report.

Response

Successful Response