PageOptimized's API is an MCP server. One endpoint, one login, 43 tools. Any MCP-capable client — Claude, Claude Code, Codex, Cursor — can call your project's data and run work against it, with the same permissions your account has in the app.
https://app.pageoptimized.com/mcp
There is no API key to manage. The first connection sends you through the normal PageOptimized login, you approve the scopes, and the client holds the grant from then on.
Connecting
Claude Code — user scope makes it available in every repository:
claude mcp add --transport http --scope user pageoptimized https://app.pageoptimized.com/mcp
Claude Desktop — Settings → Connectors → Add custom connector, paste the URL above.
Anything else that speaks MCP — point it at the same URL over HTTP transport. The server implements OAuth 2.0 with dynamic client registration, so a compliant client needs no manual setup beyond the endpoint.
In the app, AI & MCP has a copyable endpoint and the current setup steps.
What it costs
Exactly what the same work costs in the app, on the same credit balance — the tools call the same services the buttons do. Free actions stay free over the API: listing what you already have, reading a saved result, searching help articles. Paid research is paid whichever door it comes through.
Every call is attributed in Billing → Usage the same way, so API spend is never a mystery line.
Every tool
Your account and projects
| Tool | What it does |
|---|---|
whoami | Who you are, and which project is in context |
list_projects | Every project in the workspace |
create_project | Create one |
Keywords
| Tool | What it does |
|---|---|
research_keywords | Bulk keyword research from seeds |
get_keyword_metrics | Volume, difficulty, CPC for specific keywords |
check_keyword_coverage | Whether the project already covers a keyword |
list_saved_keywords | The saved keyword list |
save_keywords | Save keywords to the project |
update_saved_keyword_planning | Set planning fields on a saved keyword |
Rankings and SERPs
| Tool | What it does |
|---|---|
get_serp_results | A live Google SERP |
get_ranked_keywords | Everything a domain ranks for |
find_serp_competitors | Domains competing on the same terms |
get_rank_tracker | Tracked positions and history |
add_rank_tracking_keywords | Add keywords to tracking |
Search Console
| Tool | What it does |
|---|---|
get_search_console_performance | Clicks, impressions, CTR, position |
inspect_urls | Index status for specific URLs |
Analytics
Search Console covers organic search and nothing else. Anything about direct, referral, social, engagement, conversions or revenue comes from here.
| Tool | What it does |
|---|---|
get_ga4_pages | Landing-page sessions, engagement, conversions and revenue, split by channel |
get_analytics_audience | Who is arriving and how the mix has shifted — share change, and what each segment is worth |
get_analytics_audience is the one that answers "traffic is up and revenue is
flat". It compares two periods by each segment's share of sessions rather
than its session count, because when the whole site grows every segment grows —
and it names the segments that gained ground while producing no key events at
all. It also reports when Google Signals is off or Google withheld rows, so an
empty demographic split is never read back as an audience with nobody in it.
Priorities and work
| Tool | What it does |
|---|---|
get_project_insights | The ranked diagnoses feed — what changed, how severe, and the evidence |
get_work_queue | Outstanding work with its state, including what regressed after being marked done |
get_content_changes | What changed on monitored pages, with risk level and date |
get_project_timeline | Dated markers — published pages, keyword changes, notes |
get_activity_log | What has been done on the project, by whom, with evidence |
get_site_speed | Core Web Vitals from the latest audit, slowest first |
Diagnosis — the ones that answer why
| Tool | What it does |
|---|---|
diagnose_traffic_drop | Splits a drop into ranking loss, demand loss, CTR loss, or pages lost |
diagnose_content_decay | Which pages are decaying, and whether a refresh would help |
diagnose_cannibalization | Which pages compete, and the cause — anchors, duplicate intent, or a split |
These join several sources rather than reading one. Prefer them over assembling the answer from raw tools.
Site audit
| Tool | What it does |
|---|---|
run_site_audit | Start a crawl |
get_audit_status | Progress of a run |
get_audit_issues | Issues found, with affected URLs |
get_audit_pages | Per-page crawl results |
Backlinks and outreach
| Tool | What it does |
|---|---|
get_backlinks_overview | Profile summary for a domain |
get_backlinks_profile | The links themselves |
scan_prospect_content | What a site publishes that matches your keywords — free |
assess_link_prospect | Whether a link from a site is worth having |
list_backlink_outreach_prospects | The outreach queue |
create_backlink_outreach_prospect | Add a prospect |
create_backlink_outreach_from_backlinks | Turn found links into prospects |
update_backlink_outreach_prospect | Change status or notes |
AI visibility
| Tool | What it does |
|---|---|
get_brand_overview | How AI engines describe and cite the brand |
draft_brand_record | Read your own site and propose a brand record — returns a draft, saves nothing |
list_tracked_prompts | Prompts under monitoring |
add_tracked_prompts | Add prompts to track |
Competitors and market
| Tool | What it does |
|---|---|
get_domain_overview | Traffic, keywords and authority for any domain |
get_domain_keyword_suggestions | Keyword opportunities against a domain |
Local
| Tool | What it does |
|---|---|
search_local_businesses | Business listings |
get_local_serp_results | Map-pack and local results |
get_google_business_questions | Questions on a Google Business profile |
Content workflow
| Tool | What it does |
|---|---|
list_content_tasks | The content queue |
create_content_task | Add a task |
update_content_task | Move or edit one |
Help
| Tool | What it does |
|---|---|
search_help_articles | These guides, in full. Free. |
What the API will not do
Send anything. No email, no posting, no outreach delivery. It will draft; a person sends.
Escape your permissions. A tool call is scoped to the project you approved and the capabilities your account holds. Read-only members cannot write through the API.
Spend without recording it. Every paid call lands in the usage ledger attributed to its feature.
If you want a reporting connector instead
MCP is built for AI clients. If what you need is your PageOptimized data inside Looker Studio, Sheets or a BI tool, that is a different shape of integration — tell us on Help & Support what you are connecting to, because which one we build first is decided by what people ask for.