{"endpoint":"https://app.indexzero.site/mcp","transport":"streamable-http","version":"1.0.0","toolCount":54,"authentication":{"oauth2":{"authorizationServerMetadata":"https://app.indexzero.site/.well-known/oauth-authorization-server","protectedResourceMetadata":"https://app.indexzero.site/.well-known/oauth-protected-resource","scopes":[{"name":"mcp","description":"Call IndexZero MCP tools on behalf of the authorizing workspace. Required on every grant; a token without it authenticates but reaches no tools.","required":true},{"name":"offline_access","description":"Issue a refresh token so a long-running agent keeps working after the access token expires.","required":false}]},"apiKey":{"in":"header","name":"x-api-key","prefix":"iz_"}},"tools":[{"name":"whoami","title":"Who am I","description":"Identity and credit balance for the connected IndexZero workspace. Call this first when you need to know whether the workspace can afford a batch of research, or which plan's limits apply.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"userEmail":{"type":"string"},"organizationId":{"type":"string"},"plan":{"type":"string"},"creditsRemaining":{"type":"number"},"monthlyCredits":{"type":"number"},"topupCredits":{"type":"number"},"periodEnd":{"type":"string"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["userEmail","organizationId","plan","creditsRemaining","monthlyCredits","topupCredits","periodEnd"]},"costsCredits":false,"readOnly":true},{"name":"get_product_info","title":"IndexZero product info","description":"Facts about IndexZero itself, generated from the live plan catalog and tool registry: each plan's price, monthly credits and limits; which plan unlocks scheduled rank tracking, AI visibility and SAM; top-up packs; which tools are free and which spend credits; and the free web tools. FREE. Call it for any question about IndexZero's plans, pricing, limits or tools instead of answering from memory.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"topic":{"description":"'plans' for prices, monthly credits, limits and which plan unlocks what; 'credits' for top-ups and which tools are free or paid; 'tools' for the MCP tool list by group; 'free_tools' for the no-account web tools. Omit for everything.","type":"string","enum":["plans","credits","tools","free_tools"]}}},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"topic":{"anyOf":[{"type":"string","enum":["plans","credits","tools","free_tools"]},{"type":"null"}]},"plans":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"features":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"credits":{"type":"object","properties":{},"additionalProperties":{}},"tools":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"freeTools":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}}},"required":["topic"]},"costsCredits":false,"readOnly":true},{"name":"list_projects","title":"List projects","description":"List the workspace's projects. Every other tool needs a projectId from here. A project pins a domain and a market (location + language), which most tools fall back to when you don't pass one.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projects":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["projects","rowCount"]},"costsCredits":false,"readOnly":true},{"name":"create_project","title":"Create project","description":"Create a project. Free of charge. Subject to the workspace's plan limit on active projects — the call fails with an upgrade message if that's reached.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80,"description":"Display name for the project."},"domain":{"description":"Bare domain the project tracks, e.g. 'example.com'. Required before audits, rank tracking, or own-site backlinks will work.","type":"string","maxLength":255},"locationCode":{"description":"DataForSEO location code. Defaults to 2840 (United States).","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"languageCode":{"description":"ISO language code. Defaults to 'en'.","type":"string","minLength":2,"maxLength":10}},"required":["name"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"project":{"type":"object","properties":{},"additionalProperties":{}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["project"]},"costsCredits":false,"readOnly":false},{"name":"get_project_context","title":"Get project context","description":"What this workspace already knows about a project: what the business does, who it sells to, the current goal, competitors, key pages, and what research has already been paid for. FREE. Call this before interviewing the user or buying research — it is how you avoid asking a question that has already been answered or paying twice for the same data. Sections nobody has filled in are named explicitly so you can tell 'none' from 'not recorded yet'.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"includeResearchLog":{"description":"Include the log of research already run on this project, going back 90 days. Default true.","type":"boolean"}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"digest":{"type":"string"},"sections":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"emptySections":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"missingRequired":{"type":"array","items":{"type":"string"}},"competitors":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"keyPages":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"research":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["digest","sections","emptySections","missingRequired","competitors","keyPages","research"]},"costsCredits":false,"readOnly":true},{"name":"update_project_context","title":"Update project context","description":"Record what you have learned about a project so the next session, and every other surface, starts informed. FREE. Write durable facts, not conversation: what the business does, who it sells to, competitors worth watching, pages that matter. After paid research, log it with op 'log_research' so nobody buys it again. Sections are replaced wholesale, so include everything worth keeping, not only the new part.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"patches":{"minItems":1,"maxItems":50,"type":"array","items":{"oneOf":[{"type":"object","properties":{"op":{"type":"string","const":"set_section"},"key":{"type":"string","minLength":1,"maxLength":80,"description":"A context section. Typed keys: business, audience, goal, positioning, voice, constraints, history. Anything that does not fit takes the form \"custom:<slug>\", e.g. \"custom:seasonality\"."},"title":{"description":"Display title. Custom sections only; typed keys ignore it.","type":"string","maxLength":80},"content":{"type":"string","maxLength":4000,"description":"Markdown. Replaces the section; include everything to keep."}},"required":["op","key","content"]},{"type":"object","properties":{"op":{"type":"string","const":"remove_section"},"key":{"type":"string","minLength":1,"maxLength":80}},"required":["op","key"]},{"type":"object","properties":{"op":{"type":"string","const":"add_competitor"},"domain":{"type":"string","minLength":3,"maxLength":255},"name":{"type":"string","maxLength":120},"notes":{"description":"Why they matter, e.g. 'wins every comparison query'.","type":"string","maxLength":500}},"required":["op","domain"]},{"type":"object","properties":{"op":{"type":"string","const":"remove_competitor"},"domain":{"type":"string","minLength":3,"maxLength":255}},"required":["op","domain"]},{"type":"object","properties":{"op":{"type":"string","const":"add_key_page"},"url":{"type":"string","minLength":1,"maxLength":2048},"label":{"type":"string","maxLength":120},"notes":{"type":"string","maxLength":500}},"required":["op","url"]},{"type":"object","properties":{"op":{"type":"string","const":"remove_key_page"},"url":{"type":"string","minLength":1,"maxLength":2048}},"required":["op","url"]},{"type":"object","properties":{"op":{"type":"string","const":"log_research"},"topic":{"type":"string","minLength":1,"maxLength":200,"description":"Stable identifier for what was looked at, e.g. 'ranked_keywords:example.com' or 'audit:example.com'. Reuse the same string so a later call can tell it has been done."},"summary":{"type":"string","maxLength":500,"description":"One line on what was found, enough to avoid rerunning it."},"credits":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["op","topic","summary"]}]},"description":"Applied in order. Send several at once."}},"required":["projectId","patches"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"digest":{"type":"string"},"applied":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["digest","applied"]},"costsCredits":false,"readOnly":false},{"name":"save_report","title":"Save report","description":"Store a complete HTML document as a report on a project. FREE. This is how a finding outlives the conversation it was found in: the user gets a page they can reopen, print, and choose to publish as a public link. Send a whole document, from <html> to </html>, with styles inline and no external requests — scripts and network access are blocked when it is served. Pass reportId to update an existing report; titles are unique within a project.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"title":{"type":"string","minLength":1,"maxLength":120,"description":"Unique within the project. What the report is about."},"html":{"type":"string","minLength":1,"description":"A complete HTML document. Limit 500 KB of UTF-8; inlined images are what usually breaches it."},"summary":{"description":"One or two sentences, shown in the list and on the link.","type":"string","maxLength":400},"reportId":{"description":"Update this report instead of creating one.","type":"string"},"skill":{"description":"Which skill produced it, e.g. 'seo-audit'.","type":"string","maxLength":80}},"required":["projectId","title","html"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reportId":{"type":"string"},"title":{"type":"string"},"created":{"type":"boolean"},"htmlBytes":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["reportId","title","created","htmlBytes"]},"costsCredits":false,"readOnly":false},{"name":"list_reports","title":"List reports","description":"Reports already saved on a project, newest first. FREE, metadata only. Call this before save_report so you update the right report instead of colliding with its title.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reports":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"totalCount":{"type":"number"},"remaining":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["reports","totalCount","remaining"]},"costsCredits":false,"readOnly":true},{"name":"get_report","title":"Get report","description":"One report's details. FREE. By default this returns metadata only; pass includeHtml to get the document back, which you should do only when you are about to rewrite it, because a full report is large enough to crowd out the rest of your context.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"reportId":{"type":"string","minLength":1},"includeHtml":{"description":"Return the whole document. Default false.","type":"boolean"}},"required":["projectId","reportId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"report":{"type":"object","properties":{},"additionalProperties":{}},"html":{"type":"string"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["report"]},"costsCredits":false,"readOnly":true},{"name":"delete_report","title":"Delete report","description":"Permanently delete a report. FREE. There is no version history and no undo, and any public link to it stops working immediately, so confirm with the user first.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"reportId":{"type":"string","minLength":1}},"required":["projectId","reportId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reportId":{"type":"string"},"deleted":{"type":"boolean"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["reportId","deleted"]},"costsCredits":false,"readOnly":false},{"name":"research_keywords","title":"Research keywords","description":"Expand seed keywords into related keywords with search volume, difficulty, CPC, competition, and intent. Costs credits (roughly 30-100 per seed, varying by source). In countries served from Google Ads data, difficulty and intent are unavailable.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"seeds":{"minItems":1,"maxItems":5,"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"description":"1-5 seed keywords, researched together in one call. Bulk-friendly — prefer one call with several seeds over several single-seed calls."},"locationCode":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"DataForSEO location code (2840 = United States). Defaults to the project's market."},"languageCode":{"type":"string","minLength":2,"maxLength":10,"description":"ISO language code, e.g. 'en'. Defaults to the project's market."},"limit":{"description":"Max rows to return (1-500). Defaults to 150.","type":"integer","minimum":1,"maximum":500},"includeClickstreamData":{"description":"Refine volumes with clickstream data, which splits Google Ads' grouped close variants (plurals, misspellings). DOUBLES the credit cost. Default false. No effect in countries served from Google Ads data.","type":"boolean"}},"required":["projectId","seeds"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"keywords":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"provider":{"type":"string"},"sourcesUsed":{"type":"array","items":{"type":"string"}},"totalCostUsd":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["keywords","rowCount","provider","sourcesUsed","totalCostUsd"]},"costsCredits":true,"readOnly":false},{"name":"get_keyword_metrics","title":"Get keyword metrics","description":"Look up volume, difficulty, CPC, and competition for an exact list of keywords, with no expansion. Use this to score a list you already have; use research_keywords to discover new ones. Costs credits per batch.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"keywords":{"minItems":1,"maxItems":700,"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"description":"Exact keywords to look up. Unlike research_keywords this does not expand — it returns metrics for precisely these terms. Batch up to 700 in one call."},"locationCode":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"DataForSEO location code (2840 = United States). Defaults to the project's market."},"languageCode":{"type":"string","minLength":2,"maxLength":10,"description":"ISO language code, e.g. 'en'. Defaults to the project's market."}},"required":["projectId","keywords"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"keywords":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"costUsd":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["keywords","rowCount","costUsd"]},"costsCredits":true,"readOnly":false},{"name":"save_keywords","title":"Save keywords","description":"Add keywords to the project's saved list, where the user can tag and track them in the dashboard. Free — no provider call. Duplicates in the same market are ignored.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"keywords":{"minItems":1,"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"description":"Keywords to save to the project's list."},"locationCode":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"DataForSEO location code (2840 = United States). Defaults to the project's market."},"languageCode":{"type":"string","minLength":2,"maxLength":10,"description":"ISO language code, e.g. 'en'. Defaults to the project's market."}},"required":["projectId","keywords"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"saved":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["saved"]},"costsCredits":false,"readOnly":false},{"name":"list_saved_keywords","title":"List saved keywords","description":"The project's saved keywords with their cached metrics. Free — reads stored data, makes no provider call, so metrics are as fresh as the last research or refresh.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"search":{"description":"Substring filter on the keyword text.","type":"string","maxLength":200}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"keywords":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["keywords","rowCount"]},"costsCredits":false,"readOnly":true},{"name":"get_domain_overview","title":"Domain overview","description":"A domain's organic footprint: estimated traffic, ranking keyword count, traffic value, and how its rankings spread across position buckets. The fastest way to size up a competitor. Costs credits.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"domain":{"description":"Domain to analyse. Defaults to the project's own domain — pass a competitor's to compare.","type":"string","minLength":3,"maxLength":255},"locationCode":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"DataForSEO location code (2840 = United States). Defaults to the project's market."},"languageCode":{"type":"string","minLength":2,"maxLength":10,"description":"ISO language code, e.g. 'en'. Defaults to the project's market."}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"overview":{"type":"object","properties":{},"additionalProperties":{}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["overview"]},"costsCredits":true,"readOnly":false},{"name":"get_ranked_keywords","title":"Ranked keywords","description":"Every keyword a domain already ranks for, with its position, search volume, and the ranking URL. Use it to find a competitor's winners or your own near-misses. Costs credits.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"domain":{"description":"Domain to analyse. Defaults to the project's own domain — pass a competitor's to compare.","type":"string","minLength":3,"maxLength":255},"locationCode":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"DataForSEO location code (2840 = United States). Defaults to the project's market."},"languageCode":{"type":"string","minLength":2,"maxLength":10,"description":"ISO language code, e.g. 'en'. Defaults to the project's market."},"limit":{"description":"Max rows to return (1-1000). Defaults to 100.","type":"integer","minimum":1,"maximum":1000}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"totalCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["rows","rowCount","totalCount"]},"costsCredits":true,"readOnly":false},{"name":"get_domain_top_pages","title":"Domain top pages","description":"The pages driving a domain's organic traffic, ranked by estimated traffic. Shows what content actually works for a competitor. Costs credits.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"domain":{"description":"Domain to analyse. Defaults to the project's own domain — pass a competitor's to compare.","type":"string","minLength":3,"maxLength":255},"locationCode":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"DataForSEO location code (2840 = United States). Defaults to the project's market."},"languageCode":{"type":"string","minLength":2,"maxLength":10,"description":"ISO language code, e.g. 'en'. Defaults to the project's market."},"limit":{"description":"Max rows to return (1-1000). Defaults to 100.","type":"integer","minimum":1,"maximum":1000}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"totalCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["rows","rowCount","totalCount"]},"costsCredits":true,"readOnly":false},{"name":"find_serp_competitors","title":"Find SERP competitors","description":"Domains that rank alongside you across a set of keywords, with how many they intersect on and their average position. Identifies real search competitors rather than assumed business ones. Costs credits.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"keywords":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"description":"Keywords to find shared competitors for. More keywords give a sharper picture of who you actually compete with."},"locationCode":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"DataForSEO location code (2840 = United States). Defaults to the project's market."},"languageCode":{"type":"string","minLength":2,"maxLength":10,"description":"ISO language code, e.g. 'en'. Defaults to the project's market."},"limit":{"description":"Max rows to return (1-200). Defaults to 50.","type":"integer","minimum":1,"maximum":200}},"required":["projectId","keywords"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["rows","rowCount"]},"costsCredits":true,"readOnly":false},{"name":"get_backlinks_overview","title":"Backlinks overview","description":"Summary of a domain's backlink profile: total backlinks, referring domains, rank, and broken links. Monthly new and lost counts are not included; they come from the backlink history in the dashboard. Includes a free Ahrefs domain rating when available. Costs credits.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"domain":{"description":"Domain to analyse. Defaults to the project's own domain — pass a competitor's to compare.","type":"string","minLength":3,"maxLength":255}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"overview":{"type":"object","properties":{},"additionalProperties":{}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["overview"]},"costsCredits":true,"readOnly":false},{"name":"get_backlinks_profile","title":"Backlinks profile","description":"The rows behind the backlink summary — individual links, referring domains, or your most-linked pages. Use get_backlinks_overview first for totals, then this to inspect. Costs credits.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"domain":{"description":"Domain to analyse. Defaults to the project's own domain — pass a competitor's to compare.","type":"string","minLength":3,"maxLength":255},"limit":{"description":"Max rows to return (1-1000). Defaults to 100.","type":"integer","minimum":1,"maximum":1000},"view":{"description":"Which slice of the profile to return. 'backlinks' = individual links, 'referring_domains' = linking sites, 'top_pages' = your most-linked pages. Defaults to 'backlinks'.","type":"string","enum":["backlinks","referring_domains","top_pages"]}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"totalCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"view":{"type":"string"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["rows","rowCount","totalCount","view"]},"costsCredits":true,"readOnly":false},{"name":"search_local_businesses","title":"Search local businesses","description":"Google Business listings near a coordinate, by name or category: title, address, rating, review count. Use for local competitor research and citation checks. Costs credits.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"title":{"description":"Business name to search for. Provide this or `categories`.","type":"string","maxLength":200},"categories":{"description":"Google Business categories, e.g. ['plumber']. Provide this or `title`.","maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":100}},"locationCoordinate":{"type":"string","minLength":3,"maxLength":64,"description":"Search origin as 'latitude,longitude,zoom', e.g. '30.2672,-97.7431,13'. Local results are position-dependent, so this is required — there is no sensible default."},"limit":{"description":"Max rows to return (1-100). Defaults to 20.","type":"integer","minimum":1,"maximum":100}},"required":["projectId","locationCoordinate"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["rows","rowCount"]},"costsCredits":true,"readOnly":false},{"name":"get_local_serp_results","title":"Local SERP results","description":"Google Maps or Local Finder rankings for a keyword at a coordinate — who occupies the local pack there. Costs credits.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"keyword":{"type":"string","minLength":1,"maxLength":200,"description":"Search term."},"locationCoordinate":{"type":"string","minLength":3,"maxLength":64,"description":"Search origin as 'latitude,longitude,zoom', e.g. '30.2672,-97.7431,13'. Local results are position-dependent, so this is required — there is no sensible default."},"languageCode":{"description":"ISO language code. Defaults to the project's language.","type":"string","minLength":2,"maxLength":10},"searchType":{"description":"'maps' = the Google Maps result set, 'local_finder' = the expanded local pack. Defaults to 'maps'.","type":"string","enum":["maps","local_finder"]},"depth":{"description":"Max rows to return (1-100). Defaults to 20.","type":"integer","minimum":1,"maximum":100}},"required":["projectId","keyword","locationCoordinate"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["rows","rowCount"]},"costsCredits":true,"readOnly":false},{"name":"get_google_business_questions","title":"Google Business Q&A","description":"Questions and answers posted on a Google Business Profile. A direct read on what customers actually ask — good raw material for FAQ and content work. Costs credits.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"keyword":{"type":"string","minLength":1,"maxLength":200,"description":"Business name or search term to pull Q&A for."},"locationCoordinate":{"type":"string","minLength":3,"maxLength":64,"description":"Search origin as 'latitude,longitude,zoom', e.g. '30.2672,-97.7431,13'. Local results are position-dependent, so this is required — there is no sensible default."},"languageCode":{"description":"ISO language code. Defaults to the project's language.","type":"string","minLength":2,"maxLength":10},"depth":{"description":"Max rows to return (1-100). Defaults to 20.","type":"integer","minimum":1,"maximum":100}},"required":["projectId","keyword","locationCoordinate"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["rows","rowCount"]},"costsCredits":true,"readOnly":false},{"name":"create_rank_tracker","title":"Create rank tracker","description":"Create a rank tracker for a set of keywords. Free to create; every check it runs later spends credits. Call estimate_rank_tracker_cost first and tell the user the number before committing them to a schedule.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"domain":{"description":"Domain to track. Defaults to the project's own domain.","type":"string","minLength":3,"maxLength":255},"keywords":{"minItems":1,"maxItems":1000,"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"description":"Keywords to track (up to 1000)."},"locationCode":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"DataForSEO location code (2840 = United States). Defaults to the project's market."},"languageCode":{"type":"string","minLength":2,"maxLength":10,"description":"ISO language code, e.g. 'en'. Defaults to the project's market."},"devices":{"description":"Which devices to check. 'both' doubles the cost. Default 'both'.","type":"string","enum":["both","desktop","mobile"]},"serpDepth":{"description":"How deep to read the SERP (10, 20, 50, 100). Deeper costs more. Default 100.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"scheduleInterval":{"type":"string","enum":["daily","weekly","monthly","manual"],"description":"How often positions are checked automatically. 'manual' never self-runs and is the only option on the free plan; the others require a paid plan."},"locationName":{"description":"City-level location for local tracking, as Google's canonical name, e.g. 'Austin,Texas,United States'. An unrecognised name is rejected before any credits are spent, with the closest canonical matches in the error. Omit for national tracking.","type":"string","maxLength":255}},"required":["projectId","keywords"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"config":{"type":"object","properties":{},"additionalProperties":{}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["config"]},"costsCredits":false,"readOnly":false},{"name":"get_rank_tracker","title":"Get rank tracker","description":"List the project's trackers, or inspect one: its settings, tracked keywords, latest positions, and recent runs. Free — reads stored snapshots, makes no provider call.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"configId":{"description":"Tracker to inspect. Omit to list every tracker on the project.","type":"string","minLength":1}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"configs":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"config":{"type":"object","properties":{},"additionalProperties":{}},"keywords":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"positions":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"runs":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}}},"costsCredits":false,"readOnly":true},{"name":"estimate_rank_tracker_cost","title":"Estimate rank check cost","description":"What one check of this tracker will cost in credits, and roughly how long it will take. Free. Call this before run_rank_tracker and report the number to the user — a large tracker can cost thousands of credits per run.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"configId":{"type":"string","minLength":1,"description":"Tracker id, from get_rank_tracker or create_rank_tracker."},"trigger":{"description":"'manual' prices a live check (faster, ~3x the cost); 'scheduled' prices a queued one. Defaults to 'manual'.","type":"string","enum":["manual","scheduled"]}},"required":["projectId","configId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"keywordCount":{"type":"number"},"checks":{"type":"number"},"costCredits":{"type":"number"},"costUsd":{"type":"number"},"estimatedSeconds":{"type":"number"},"method":{"type":"string"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["keywordCount","checks","costCredits","costUsd","estimatedSeconds","method"]},"costsCredits":false,"readOnly":true},{"name":"add_rank_tracking_keywords","title":"Add tracked keywords","description":"Add keywords to an existing tracker. Free to add, but raises the cost of every future check — re-run estimate_rank_tracker_cost afterwards.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"configId":{"type":"string","minLength":1,"description":"Tracker id, from get_rank_tracker or create_rank_tracker."},"keywords":{"minItems":1,"maxItems":1000,"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"description":"Keywords to add."}},"required":["projectId","configId","keywords"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"added":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["added"]},"costsCredits":false,"readOnly":false},{"name":"remove_rank_tracking_keywords","title":"Remove tracked keywords","description":"Stop tracking keywords. Their position history is kept, so removing and re-adding a keyword does not lose past data.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"configId":{"type":"string","minLength":1,"description":"Tracker id, from get_rank_tracker or create_rank_tracker."},"keywordIds":{"minItems":1,"maxItems":1000,"type":"array","items":{"type":"string"},"description":"Tracked-keyword ids (from get_rank_tracker), not the keyword text."}},"required":["projectId","configId","keywordIds"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"removed":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["removed"]},"costsCredits":false,"readOnly":false},{"name":"run_rank_tracker","title":"Run rank check","description":"Trigger an immediate live position check. Costs credits, often a lot. Always call estimate_rank_tracker_cost first and confirm with the user. Returns immediately with a run id; poll get_rank_tracker for results.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"configId":{"type":"string","minLength":1,"description":"Tracker id, from get_rank_tracker or create_rank_tracker."},"maxCostCredits":{"description":"Refuse to run if the estimate exceeds this many credits. A cheap safety belt when running a tracker you didn't create.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["projectId","configId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runId":{"type":"string"},"estimatedCredits":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["runId","estimatedCredits"]},"costsCredits":true,"readOnly":false},{"name":"run_site_audit","title":"Run site audit","description":"Start a crawl of the project's site, checking 27 technical and on-page issue types. ASYNCHRONOUS — returns an auditId immediately; the crawl takes minutes. Poll get_audit_status until it reports 'completed', then read get_audit_issues. Costs credits for the Lighthouse sample only: at most 10 representative pages on mobile and desktop. The crawl itself is free, and an audit with Lighthouse off spends nothing.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"startUrl":{"description":"Where to start crawling. Defaults to the project's domain, and must be on that domain or one of its subdomains. The crawl stays on the same origin.","type":"string","maxLength":2048},"maxPages":{"description":"Page budget (10-10000). Clamped down to the workspace plan's cap rather than rejected. Defaults to 50.","type":"integer","minimum":10,"maximum":10000},"lighthouse":{"description":"Also run Lighthouse on a 10-page sample (mobile + desktop). Adds cost and time. Default true.","type":"boolean"}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"auditId":{"type":"string"},"maxPages":{"type":"number"},"clampedByPlan":{"type":"boolean"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["auditId","maxPages","clampedByPlan"]},"costsCredits":true,"readOnly":false},{"name":"get_audit_status","title":"Get audit status","description":"Progress of a crawl: phase, pages crawled, issue count, and whether it finished. Free. Poll this after run_site_audit — do not report on issues until status is 'completed', or the numbers are partial.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"auditId":{"description":"Audit to check. Omit for the project's most recent audit.","type":"string","minLength":1}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"audit":{"type":"object","properties":{},"additionalProperties":{}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["audit"]},"costsCredits":false,"readOnly":true},{"name":"get_audit_issues","title":"Get audit issues","description":"The issues a completed audit found, with the URL and detail for each. Free — reads stored results. Filter by severity to triage: 'critical' first. Each issue type has a known fix; ask the user before changing their site.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"auditId":{"description":"Defaults to the latest audit.","type":"string","minLength":1},"severity":{"description":"Only return issues at this severity.","type":"string","enum":["critical","warning","info"]},"issueType":{"description":"Only return this one issue type.","type":"string","enum":["blocked-page","server-error","broken-internal-link","missing-title","broken-page","duplicate-title","duplicate-meta-description","duplicate-content","missing-meta-description","missing-h1","multiple-h1","redirect-chain","redirect-loop","canonical-conflict","thin-content","images-missing-alt","orphan-page","no-outgoing-links","title-too-long","title-too-short","meta-description-too-long","meta-description-too-short","heading-order-skip","slow-response","noindex-page","canonicalized-page","deep-page"]},"limit":{"description":"Max issues to return. Defaults to 200.","type":"integer","minimum":1,"maximum":1000}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"issues":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"bySeverity":{"type":"object","properties":{},"additionalProperties":{}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["issues","rowCount","bySeverity"]},"costsCredits":false,"readOnly":true},{"name":"get_audit_pages","title":"Get audit pages","description":"The pages a crawl visited, with status code, title, meta description, word count, and load time. Free. Use it to see what was actually reachable, and to spot thin or untitled pages.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"auditId":{"description":"Defaults to the latest audit.","type":"string","minLength":1},"limit":{"description":"Max pages to return. Defaults to 100.","type":"integer","minimum":1,"maximum":1000}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"pages":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["pages","rowCount"]},"costsCredits":false,"readOnly":true},{"name":"get_search_console_performance","title":"Search Console performance","description":"The project's real Google Search performance: clicks, impressions, CTR, and average position, broken down by query, page, and date, with the previous period for comparison. FREE — this is the user's own measured data, not an estimate. Requires a connected Search Console property.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"dateRange":{"description":"Preset window. Defaults to the last 28 days.","type":"string","enum":["last_7_days","last_28_days","last_3_months","last_6_months","last_12_months","last_16_months"]},"startDate":{"description":"Explicit start date (YYYY-MM-DD). Overrides dateRange.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"description":"Explicit end date (YYYY-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"type":{"description":"Search surface: web, image, video, news, discover. Default web.","type":"string","enum":["web","image","video","news","googleNews","discover"]}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"siteUrl":{"type":"string"},"totals":{"type":"object","properties":{},"additionalProperties":{}},"byQuery":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"byPage":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"byDate":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["siteUrl","totals","byQuery","byPage","byDate"]},"costsCredits":false,"readOnly":true},{"name":"get_striking_distance","title":"Striking distance keywords","description":"Queries where the site already ranks in positions 5-20 — the ones closest to page-one traffic, with the page currently ranking for each. FREE. The highest-leverage report here: these need a nudge, not new content.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"dateRange":{"description":"Preset window. Defaults to the last 28 days.","type":"string","enum":["last_7_days","last_28_days","last_3_months","last_6_months","last_12_months","last_16_months"]},"startDate":{"description":"Explicit start date (YYYY-MM-DD). Overrides dateRange.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"description":"Explicit end date (YYYY-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"type":{"description":"Search surface: web, image, video, news, discover. Default web.","type":"string","enum":["web","image","video","news","googleNews","discover"]}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"siteUrl":{"type":"string"},"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["siteUrl","rows","rowCount"]},"costsCredits":false,"readOnly":true},{"name":"inspect_urls","title":"Inspect URLs","description":"Google's own index status for specific URLs: whether they're indexed, when last crawled, canonical, mobile usability, and rich-result status. FREE. Use it to confirm whether a page Google *can* see is actually in the index.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"urls":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":2048},"description":"URLs to inspect (max 10). Must be on the connected property."}},"required":["projectId","urls"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["results","rowCount"]},"costsCredits":false,"readOnly":true},{"name":"get_analytics_overview","title":"Analytics overview","description":"Is traffic going up or down? Top-line GA4 numbers for the project (sessions, active users, engaged sessions, engagement rate, key events, transactions, revenue) compared with the previous period of the same length, plus a daily or weekly trend. Start here for any 'how is the site doing' question. Organic Search by default; channel 'all' covers every channel. FREE: reads the project's own Google Analytics 4 data.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"days":{"description":"Trailing window in days, ending yesterday in the property's timezone. Defaults to 28. Ignored when startDate and endDate are given.","type":"integer","minimum":1,"maximum":365},"startDate":{"description":"Inclusive start date (YYYY-MM-DD). Give endDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"description":"Inclusive end date (YYYY-MM-DD). Give startDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"channel":{"description":"'organic_search' keeps only sessions from Organic Search; 'all' includes every channel. Defaults to organic_search.","type":"string","enum":["organic_search","all"]},"trend":{"description":"Granularity of the trend series. Defaults to daily; weekly reads better over long windows.","type":"string","enum":["daily","weekly"]}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"property":{"type":"object","properties":{},"additionalProperties":{}},"channel":{"type":"string","enum":["organic_search","all"]},"range":{"type":"object","properties":{},"additionalProperties":{}},"previousRange":{"type":"object","properties":{},"additionalProperties":{}},"totals":{"type":"object","properties":{},"additionalProperties":{}},"previousTotals":{"type":"object","properties":{},"additionalProperties":{}},"trendGranularity":{"type":"string","enum":["daily","weekly"]},"trend":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["property","channel","range","previousRange","totals","previousTotals","trendGranularity","trend"]},"costsCredits":false,"readOnly":true},{"name":"get_analytics_landing_pages","title":"Analytics landing pages","description":"Which pages visits start on, and whether those visits engage and convert: sessions, active users, engagement rate, key events, session key event rate, transactions and revenue per landing page. Use it for 'which pages bring in organic traffic' or 'which entry pages convert'. Organic Search by default. FREE: reads the project's own Google Analytics 4 data.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"days":{"description":"Trailing window in days, ending yesterday in the property's timezone. Defaults to 28. Ignored when startDate and endDate are given.","type":"integer","minimum":1,"maximum":365},"startDate":{"description":"Inclusive start date (YYYY-MM-DD). Give endDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"description":"Inclusive end date (YYYY-MM-DD). Give startDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"channel":{"description":"'organic_search' keeps only sessions from Organic Search; 'all' includes every channel. Defaults to organic_search.","type":"string","enum":["organic_search","all"]},"limit":{"description":"Rows to return, up to 500. Defaults to 100.","type":"integer","minimum":1,"maximum":500},"offset":{"description":"Rows to skip, to fetch the next page. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"property":{"type":"object","properties":{},"additionalProperties":{}},"range":{"type":"object","properties":{},"additionalProperties":{}},"channel":{"type":"string","enum":["organic_search","all"]},"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"totalRows":{"type":"number"},"nextOffset":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["property","range","channel","rows","rowCount","totalRows","nextOffset"]},"costsCredits":false,"readOnly":true},{"name":"get_analytics_top_pages","title":"Analytics top pages","description":"The most viewed pages: page views, active users, total engagement time and key events per page path. Counts every view, not only the first page of a visit; use get_analytics_landing_pages for where visits start. Organic Search by default. FREE: reads the project's own Google Analytics 4 data.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"days":{"description":"Trailing window in days, ending yesterday in the property's timezone. Defaults to 28. Ignored when startDate and endDate are given.","type":"integer","minimum":1,"maximum":365},"startDate":{"description":"Inclusive start date (YYYY-MM-DD). Give endDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"description":"Inclusive end date (YYYY-MM-DD). Give startDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"channel":{"description":"'organic_search' keeps only sessions from Organic Search; 'all' includes every channel. Defaults to organic_search.","type":"string","enum":["organic_search","all"]},"limit":{"description":"Rows to return, up to 500. Defaults to 100.","type":"integer","minimum":1,"maximum":500},"offset":{"description":"Rows to skip, to fetch the next page. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"property":{"type":"object","properties":{},"additionalProperties":{}},"range":{"type":"object","properties":{},"additionalProperties":{}},"channel":{"type":"string","enum":["organic_search","all"]},"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"totalRows":{"type":"number"},"nextOffset":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["property","range","channel","rows","rowCount","totalRows","nextOffset"]},"costsCredits":false,"readOnly":true},{"name":"get_analytics_traffic_sources","title":"Analytics traffic sources","description":"Where visitors come from: sessions, users, engagement, key events, transactions and revenue by default channel group (Organic Search, Direct, Referral, Paid Search and so on), by source and medium (google / organic, newsletter / email), or by campaign. Use it for 'how much of my traffic is organic' or 'which referrers matter'. All channels by default. FREE: reads the project's own Google Analytics 4 data.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"days":{"description":"Trailing window in days, ending yesterday in the property's timezone. Defaults to 28. Ignored when startDate and endDate are given.","type":"integer","minimum":1,"maximum":365},"startDate":{"description":"Inclusive start date (YYYY-MM-DD). Give endDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"description":"Inclusive end date (YYYY-MM-DD). Give startDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"breakdown":{"description":"How to group sessions: channel_group, source_medium, or campaign. Defaults to channel_group.","type":"string","enum":["channel_group","source_medium","campaign"]},"channel":{"description":"'organic_search' keeps only sessions from Organic Search; 'all' includes every channel. Defaults to all.","type":"string","enum":["organic_search","all"]},"limit":{"description":"Rows to return, up to 500. Defaults to 100.","type":"integer","minimum":1,"maximum":500},"offset":{"description":"Rows to skip, to fetch the next page. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"property":{"type":"object","properties":{},"additionalProperties":{}},"range":{"type":"object","properties":{},"additionalProperties":{}},"channel":{"type":"string","enum":["organic_search","all"]},"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"totalRows":{"type":"number"},"nextOffset":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["property","range","channel","rows","rowCount","totalRows","nextOffset"]},"costsCredits":false,"readOnly":true},{"name":"get_analytics_conversions","title":"Analytics conversions","description":"Conversions: each GA4 key event with how many times it fired and how many users triggered it, optionally split by landing page to show which pages drive them. Use it for 'what converts' or 'which pages produce sign-ups'. Only events marked as key events in GA4 appear. Organic Search by default. FREE: reads the project's own Google Analytics 4 data.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"days":{"description":"Trailing window in days, ending yesterday in the property's timezone. Defaults to 28. Ignored when startDate and endDate are given.","type":"integer","minimum":1,"maximum":365},"startDate":{"description":"Inclusive start date (YYYY-MM-DD). Give endDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"description":"Inclusive end date (YYYY-MM-DD). Give startDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"breakdown":{"description":"'event' gives one row per key event; 'event_and_landing_page' splits each event by the page the visit started on. Defaults to event.","type":"string","enum":["event","event_and_landing_page"]},"channel":{"description":"'organic_search' keeps only sessions from Organic Search; 'all' includes every channel. Defaults to organic_search.","type":"string","enum":["organic_search","all"]},"limit":{"description":"Rows to return, up to 500. Defaults to 100.","type":"integer","minimum":1,"maximum":500},"offset":{"description":"Rows to skip, to fetch the next page. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"property":{"type":"object","properties":{},"additionalProperties":{}},"range":{"type":"object","properties":{},"additionalProperties":{}},"channel":{"type":"string","enum":["organic_search","all"]},"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"totalRows":{"type":"number"},"nextOffset":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["property","range","channel","rows","rowCount","totalRows","nextOffset"]},"costsCredits":false,"readOnly":true},{"name":"get_analytics_ecommerce","title":"Analytics ecommerce","description":"Store performance: items viewed, added to cart, purchased, and item revenue per product, or transactions and purchase revenue per landing page. Use it for 'which products sell' or 'which pages drive revenue'. Needs GA4 ecommerce events. Organic Search by default. FREE: reads the project's own Google Analytics 4 data.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"days":{"description":"Trailing window in days, ending yesterday in the property's timezone. Defaults to 28. Ignored when startDate and endDate are given.","type":"integer","minimum":1,"maximum":365},"startDate":{"description":"Inclusive start date (YYYY-MM-DD). Give endDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"description":"Inclusive end date (YYYY-MM-DD). Give startDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"breakdown":{"description":"'item' gives one row per product; 'landing_page' gives transactions and revenue per entry page. Defaults to item.","type":"string","enum":["item","landing_page"]},"onlyWithTransactions":{"description":"With breakdown 'landing_page', drop pages that produced no transactions. Defaults to false.","type":"boolean"},"channel":{"description":"'organic_search' keeps only sessions from Organic Search; 'all' includes every channel. Defaults to organic_search.","type":"string","enum":["organic_search","all"]},"limit":{"description":"Rows to return, up to 500. Defaults to 100.","type":"integer","minimum":1,"maximum":500},"offset":{"description":"Rows to skip, to fetch the next page. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"property":{"type":"object","properties":{},"additionalProperties":{}},"range":{"type":"object","properties":{},"additionalProperties":{}},"channel":{"type":"string","enum":["organic_search","all"]},"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"totalRows":{"type":"number"},"nextOffset":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["property","range","channel","rows","rowCount","totalRows","nextOffset"]},"costsCredits":false,"readOnly":true},{"name":"get_analytics_site_search","title":"Analytics site search","description":"What visitors type into the site's own search box: search count, users, sessions and engagement per term. A content-gap signal, since a term people search for on the site is a page they expected to find. Covers all channels. Needs GA4 site search measurement (the view_search_results event). FREE: reads the project's own Google Analytics 4 data.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"days":{"description":"Trailing window in days, ending yesterday in the property's timezone. Defaults to 28. Ignored when startDate and endDate are given.","type":"integer","minimum":1,"maximum":365},"startDate":{"description":"Inclusive start date (YYYY-MM-DD). Give endDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"description":"Inclusive end date (YYYY-MM-DD). Give startDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"limit":{"description":"Rows to return, up to 500. Defaults to 100.","type":"integer","minimum":1,"maximum":500},"offset":{"description":"Rows to skip, to fetch the next page. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"property":{"type":"object","properties":{},"additionalProperties":{}},"range":{"type":"object","properties":{},"additionalProperties":{}},"channel":{"type":"string","enum":["organic_search","all"]},"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"totalRows":{"type":"number"},"nextOffset":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["property","range","channel","rows","rowCount","totalRows","nextOffset"]},"costsCredits":false,"readOnly":true},{"name":"get_analytics_audience","title":"Analytics audience","description":"Who visits, split by device category (desktop, mobile, tablet), by country, or new versus returning: active users, sessions, engagement rate and key events for each. Use it for 'how much of my traffic is mobile' or 'which countries visit'. Organic Search by default. FREE: reads the project's own Google Analytics 4 data.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"days":{"description":"Trailing window in days, ending yesterday in the property's timezone. Defaults to 28. Ignored when startDate and endDate are given.","type":"integer","minimum":1,"maximum":365},"startDate":{"description":"Inclusive start date (YYYY-MM-DD). Give endDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"description":"Inclusive end date (YYYY-MM-DD). Give startDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"breakdown":{"description":"Split by device, country, or new_vs_returning. Defaults to device.","type":"string","enum":["device","country","new_vs_returning"]},"channel":{"description":"'organic_search' keeps only sessions from Organic Search; 'all' includes every channel. Defaults to organic_search.","type":"string","enum":["organic_search","all"]},"limit":{"description":"Rows to return, up to 500. Defaults to 100.","type":"integer","minimum":1,"maximum":500},"offset":{"description":"Rows to skip, to fetch the next page. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"property":{"type":"object","properties":{},"additionalProperties":{}},"range":{"type":"object","properties":{},"additionalProperties":{}},"channel":{"type":"string","enum":["organic_search","all"]},"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"totalRows":{"type":"number"},"nextOffset":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["property","range","channel","rows","rowCount","totalRows","nextOffset"]},"costsCredits":false,"readOnly":true},{"name":"get_analytics_measurement_health","title":"Analytics measurement health","description":"Whether the project's GA4 property is set up well enough to trust its reports: a web data stream exists, key events are defined, and organic sessions were recorded in the last 28 days. Run it when another analytics tool returns empty or implausible numbers, before concluding the site has no traffic. FREE: reads the project's own Google Analytics 4 configuration.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"checks":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["checks"]},"costsCredits":false,"readOnly":true},{"name":"get_analytics_report","title":"Google Analytics report","description":"Run any GA4 report kind with every option the named analytics tools split out: landing_pages, page_performance, key_events, traffic_acquisition, ecommerce_performance, site_search or audience_breakdown, with their breakdowns, a per-day page split, and paging. Prefer the named get_analytics_* tools, which pick sensible defaults; use this one when you need a combination they do not expose. FREE: reads the project's own Google Analytics 4 data.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"days":{"description":"Trailing window in days, ending yesterday in the property's timezone. Defaults to 28. Ignored when startDate and endDate are given.","type":"integer","minimum":1,"maximum":365},"startDate":{"description":"Inclusive start date (YYYY-MM-DD). Give endDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"description":"Inclusive end date (YYYY-MM-DD). Give startDate as well.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"kind":{"type":"string","enum":["landing_pages","page_performance","key_events","traffic_acquisition","ecommerce_performance","site_search","audience_breakdown"],"description":"Which report to run. 'landing_pages' and 'page_performance' answer 'which pages work'; 'traffic_acquisition' compares channels; 'key_events' and 'ecommerce_performance' cover conversions."},"channel":{"description":"'organic_search' keeps only sessions from Organic Search; 'all' includes every channel. Defaults to organic_search.","type":"string","enum":["organic_search","all"]},"includeDate":{"description":"page_performance only: add a date column, one row per page per day.","type":"boolean"},"breakdown":{"description":"key_events only. Defaults to event.","type":"string","enum":["event","event_and_landing_page"]},"acquisitionBreakdown":{"description":"traffic_acquisition only. Defaults to channel_group.","type":"string","enum":["channel_group","source_medium","campaign"]},"ecommerceBreakdown":{"description":"ecommerce_performance only. Defaults to item.","type":"string","enum":["item","landing_page"]},"ecommerceOnlyWithTransactions":{"description":"ecommerce_performance with landing_page only: drop pages with no transactions.","type":"boolean"},"audienceBreakdown":{"description":"audience_breakdown only. Defaults to device.","type":"string","enum":["device","country","new_vs_returning"]},"limit":{"description":"Rows to return, up to 500. Defaults to 100.","type":"integer","minimum":1,"maximum":500},"offset":{"description":"Rows to skip, to fetch the next page. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["projectId","kind"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"property":{"type":"object","properties":{},"additionalProperties":{}},"range":{"type":"object","properties":{},"additionalProperties":{}},"channel":{"type":"string","enum":["organic_search","all"]},"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"totalRows":{"type":"number"},"nextOffset":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["property","range","channel","rows","rowCount","totalRows","nextOffset"]},"costsCredits":false,"readOnly":true},{"name":"get_search_opportunities","title":"Search opportunities","description":"Joins Search Console against Analytics to find pages that attract search traffic but under-convert, and queries with impressions that aren't landing clicks. FREE. Requires both integrations connected.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"days":{"description":"Trailing window in days. Defaults to 28.","type":"integer","minimum":1,"maximum":365}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["rows","rowCount"]},"costsCredits":false,"readOnly":true},{"name":"get_posthog_overview","title":"PostHog overview","description":"Sessions, visitors, pageviews, bounce rate, and average session duration for a window, with the previous equal-length window for comparison and a daily trend. FREE. Requires a connected PostHog project.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"channel":{"description":"Restrict to sessions PostHog attributes to organic search, or include every channel. Defaults to organic_search.","type":"string","enum":["organic_search","all"]},"days":{"description":"Trailing window in days. Defaults to 28.","type":"integer","minimum":1,"maximum":365},"startDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"totals":{"type":"object","properties":{},"additionalProperties":{}},"previousTotals":{"type":"object","properties":{},"additionalProperties":{}},"trend":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["totals","previousTotals","trend"]},"costsCredits":false,"readOnly":true},{"name":"get_posthog_report","title":"PostHog report","description":"Run one of the project's PostHog reports — entry pages, top pages, exit pages, traffic acquisition, events, conversions, or audience — as HogQL over the sessions and events tables. FREE (the user's own data). The PostHog counterpart to get_analytics_report; use whichever the project has connected.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"kind":{"type":"string","enum":["entry_pages","top_pages","exit_pages","traffic_acquisition","events","conversions","audience"],"description":"entry_pages (landing pages by session), top_pages (by pageview), exit_pages, traffic_acquisition, events, conversions, audience."},"channel":{"description":"Restrict to sessions PostHog attributes to organic search, or include every channel. Defaults to organic_search.","type":"string","enum":["organic_search","all"]},"acquisitionBreakdown":{"description":"For traffic_acquisition. Defaults to channel.","type":"string","enum":["channel","referring_domain","utm_source","utm_medium","utm_campaign"]},"audienceBreakdown":{"description":"For audience. Defaults to device_type.","type":"string","enum":["device_type","country","browser","os"]},"eventName":{"description":"Required by the conversions report: the PostHog event that counts as a conversion, e.g. 'signup_completed'. Use the events report first to find real event names.","type":"string","minLength":1,"maxLength":200},"pathPrefix":{"description":"Restrict to paths starting with this prefix, e.g. '/blog'.","type":"string","maxLength":200},"host":{"description":"Restrict to one hostname, e.g. 'example.com'. Useful when the PostHog project has also received localhost or staging traffic. Defaults to every host.","type":"string","maxLength":253},"limit":{"description":"Max rows. Defaults to 100.","type":"integer","minimum":1,"maximum":500},"days":{"description":"Trailing window in days. Defaults to 28.","type":"integer","minimum":1,"maximum":365},"startDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["projectId","kind"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"project":{"type":"object","properties":{},"additionalProperties":{}},"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["project","rows","rowCount"]},"costsCredits":false,"readOnly":true},{"name":"get_posthog_search_opportunities","title":"Search opportunities (PostHog)","description":"Joins Search Console against PostHog to find pages that attract search traffic but under-convert, and queries with impressions that aren't landing clicks. FREE. Requires Search Console and PostHog both connected. The PostHog counterpart to get_search_opportunities.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"eventName":{"description":"The conversion event. With it, under-performance means 'ranks but never converts'; without it, the report falls back to bounce rate.","type":"string","minLength":1,"maxLength":200},"days":{"description":"Trailing window in days. Defaults to 28.","type":"integer","minimum":1,"maximum":365}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"rowCount":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["rows","rowCount"]},"costsCredits":false,"readOnly":true},{"name":"get_brand_visibility","title":"Brand visibility in AI answers","description":"How often a brand is mentioned by ChatGPT and in Google's AI Overviews, its share of voice against named competitors, and which sources those answers cite. Costs credits. Requires a paid plan.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"query":{"type":"string","minLength":2,"maxLength":200,"description":"Brand, product, or domain to measure. Usually the project's own."},"competitors":{"description":"Up to 9 competitors to compare against. Supplying these is what turns raw mention counts into a share-of-voice number.","maxItems":9,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"locationCode":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"DataForSEO location code (2840 = United States). Defaults to the project's market."},"languageCode":{"type":"string","minLength":2,"maxLength":10,"description":"ISO language code, e.g. 'en'. Defaults to the project's market."}},"required":["projectId","query"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runId":{"anyOf":[{"type":"string"},{"type":"null"}]},"result":{"type":"object","properties":{},"additionalProperties":{}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["runId","result"]},"costsCredits":true,"readOnly":false},{"name":"run_ai_prompt","title":"Run a prompt across AI models","description":"Ask the same prompt of ChatGPT, Claude, Gemini, and Perplexity at once, and get each answer with its citations. Shows what an assistant actually tells someone asking about your category. Costs credits per model. Requires a paid plan.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"prompt":{"type":"string","minLength":3,"maxLength":4000,"description":"The prompt to ask, exactly as a user would type it."},"models":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"string","enum":["chat_gpt","claude","gemini","perplexity"]},"description":"Which assistants to ask. Running several side by side is the point — they disagree, and the disagreement is the finding."},"highlightBrand":{"description":"Brand to flag wherever it appears in the answers.","type":"string","maxLength":200},"webSearch":{"description":"Let the models search the web before answering. Default true — closer to how real users hit them.","type":"boolean"},"webSearchCountryCode":{"description":"Two-letter country code to localise the models' web search.","type":"string","minLength":2,"maxLength":2}},"required":["projectId","prompt","models"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runId":{"anyOf":[{"type":"string"},{"type":"null"}]},"result":{"type":"object","properties":{},"additionalProperties":{}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["runId","result"]},"costsCredits":true,"readOnly":false},{"name":"list_ai_visibility_runs","title":"List saved AI visibility runs","description":"Brand visibility lookups and prompt runs already paid for on a project, newest first. FREE. Check this before get_brand_visibility or run_ai_prompt: if the same question was asked recently, reopen it with get_ai_visibility_run instead of paying again.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"kind":{"description":"Only brand lookups, or only prompt runs. Default both.","type":"string","enum":["brand_lookup","prompt_explorer"]},"limit":{"type":"integer","minimum":1,"maximum":50},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["projectId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runs":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"totalCount":{"type":"number"},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["runs","totalCount"]},"costsCredits":false,"readOnly":true},{"name":"get_ai_visibility_run","title":"Open a saved AI visibility run","description":"One saved brand visibility lookup or prompt run: what was asked and the full result, exactly as it was when it was bought. FREE: reads the saved result and never calls a provider. The result carries its own fetchedAt; if it is too old for the question at hand, run the paid tool again.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"description":"IndexZero project id. Get one from list_projects. Scopes the call and attributes credit spend."},"runId":{"type":"string","minLength":1}},"required":["projectId","runId"]},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"run":{"type":"object","properties":{},"additionalProperties":{}},"result":{"type":"object","properties":{},"additionalProperties":{}},"meta":{"type":"object","properties":{"url":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runId":{"type":"string"},"creditsCharged":{"type":"number"},"creditsRemaining":{"type":"number"}},"additionalProperties":{}}},"required":["run","result"]},"costsCredits":false,"readOnly":true}]}