{"openapi":"3.1.0","info":{"title":"seogeoaeo.ai API","version":"1.0.0","summary":"Make your website SEO, AEO & GEO ready","description":"Run seogeoaeo.ai SEO, AEO, and GEO tools from code or an AI agent. Authenticate with `Authorization: Bearer <api key>`; create keys at https://seogeoaeo.ai/api-keys. Runs spend workspace credits and are refunded when they fail on the platform side. The same tools are available over MCP at https://seogeoaeo.ai/api/mcp.","contact":{"name":"seogeoaeo.ai","url":"https://seogeoaeo.ai/agents"}},"externalDocs":{"description":"Agent setup guide","url":"https://seogeoaeo.ai/agents"},"servers":[{"url":"https://seogeoaeo.ai/api/v1"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Catalog","description":"Tool discovery. No key needed."},{"name":"SEO","description":"Technical checks, on-page analysis, keywords, and Core Web Vitals."},{"name":"AEO","description":"Structured data, entity markup, and answer formatting. Content checks also support answer readiness."},{"name":"GEO","description":"AI access, content signals, sampled brand mentions and citations. Optional agent utilities are separate from search requirements."},{"name":"Assessments","description":"Whole-site checks with 0 to 100 scores and progress since the last one."},{"name":"Runs","description":"Stored runs in the workspace. Each workspace keeps its latest 1,000 runs."},{"name":"Credits","description":"Workspace credit balance."}],"paths":{"/tools":{"get":{"operationId":"list_tools","tags":["Catalog"],"summary":"List tools","security":[],"responses":{"200":{"description":"Every public tool with its price and input schema.","content":{"application/json":{"schema":{"type":"object","properties":{"tools":{"type":"array","items":{"$ref":"#/components/schemas/Tool"}}}}}}}}}},"/tools/{slug}":{"get":{"operationId":"get_tool","tags":["Catalog"],"summary":"Get a tool","security":[],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","enum":["competitor-finder","domain-overview","backlink-finder","competitor-keywords","keyword-gap","keyword-research","keyword-metrics","competitor-google-ads","meta-ad-finder","linkedin-ad-finder","ai-citation-finder","ai-question-finder","indexing-checker","robots-checker","redirects-headers-checker","on-page-seo-checker","schema-checker","ai-agent-readiness","xml-sitemap-validator","http-status-bulk-checker","broken-internal-link-finder","open-graph-checker","readability-analyzer","keyword-ideas","keyword-clusterer","keyword-deduplicator","schema-markup-generator","organization-entity-markup-builder","faq-schema-builder","breadcrumb-schema-builder","llms-txt-generator","core-web-vitals-snapshot","page-size-checker","hreflang-checker","favicon-checker","citability-analyzer","indexnow-checker","mobile-parity-checker","content-freshness-checker","author-eeat-checker","product-schema-checker","local-business-checker","image-seo-checker","orphan-page-finder","ai-bot-log-analyzer","question-finder","ai-crawler-view","brand-entity-checker","fanout-coverage-checker","ai-answer-visibility","brand-narrative-check"]}}],"responses":{"200":{"description":"The tool.","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"$ref":"#/components/schemas/Tool"}}}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/tools/competitor-finder/runs":{"post":{"operationId":"run_competitor_finder","tags":["SEO"],"summary":"Competitor Finder","description":"See which sites compete with yours in Google, so you know whose keywords to study. Find the websites that rank in Google for the same keywords as yours, sorted into close competitors and large general sites by how much of their traffic overlaps. Costs 38 credits per run. Docs: https://seogeoaeo.ai/tools/competitor-finder","x-credits":38,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"market":{"type":"string","enum":["us","gb","ca","au","ie","in","sg","nz","za","de","fr","es","it","nl","se","pl","br","mx","jp","ae"],"description":"Market code for localized results."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://www.copy.ai","market":"us"},{"url":"https://www.argos.co.uk","market":"gb"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://www.copy.ai","market":"us"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/domain-overview/runs":{"post":{"operationId":"run_domain_overview","tags":["SEO"],"summary":"Domain Overview","description":"Size up any website, yours or a competitor's, by its Google rankings and its links before you decide what to copy or beat. See how many keywords a website ranks for in Google, how many visits that brings, what those visits would cost in ads, and how many sites link to it. Costs 50 credits per run. Docs: https://seogeoaeo.ai/tools/domain-overview","x-credits":50,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"market":{"type":"string","enum":["us","gb","ca","au","ie","in","sg","nz","za","de","fr","es","it","nl","se","pl","br","mx","jp","ae"],"description":"Market code for localized results."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://www.hubspot.com","market":"us"},{"url":"https://www.argos.co.uk","market":"gb"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://www.hubspot.com","market":"us"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/backlink-finder/runs":{"post":{"operationId":"run_backlink_finder","tags":["SEO"],"summary":"Backlink Finder","description":"See which sites link to a competitor, or to you, so you know who to ask for a link and which links are worth matching. List the strongest sites that link to a website, with how strong each is and whether it looks spammy, and the link texts they use. Costs 70 credits per run. Docs: https://seogeoaeo.ai/tools/backlink-finder","x-credits":70,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://www.hubspot.com"},{"url":"https://backlinko.com"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://www.hubspot.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/competitor-keywords/runs":{"post":{"operationId":"run_competitor_keywords","tags":["SEO"],"summary":"Competitor Keywords","description":"See what a competitor ranks for in Google, then pick blog topics and ad keywords from it. List the Google keywords a competitor's site ranks for, with search volume, difficulty and cost per click, sorted into blog topics and keywords worth bidding on. Costs 35 credits per run. Docs: https://seogeoaeo.ai/tools/competitor-keywords","x-credits":35,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"market":{"type":"string","enum":["us","gb","ca","au","ie","in","sg","nz","za","de","fr","es","it","nl","se","pl","br","mx","jp","ae"],"description":"Market code for localized results."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://www.hubspot.com","market":"us"},{"url":"https://www.argos.co.uk","market":"gb"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://www.hubspot.com","market":"us"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/keyword-gap/runs":{"post":{"operationId":"run_keyword_gap","tags":["SEO"],"summary":"Keyword Gap","description":"See the keywords a competitor wins in Google that your site misses, then pick blog topics and ad keywords from them. List the Google keywords a competitor ranks for on the first two pages that your site does not rank for, sorted into blog topics and keywords worth bidding on. Costs 85 credits per run. Docs: https://seogeoaeo.ai/tools/keyword-gap","x-credits":85,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"competitor":{"type":"string","minLength":1,"maxLength":2048},"market":{"type":"string","enum":["us","gb","ca","au","ie","in","sg","nz","za","de","fr","es","it","nl","se","pl","br","mx","jp","ae"],"description":"Market code for localized results."}},"required":["url","competitor"],"additionalProperties":false,"examples":[{"url":"https://www.usageatlas.com","competitor":"https://www.hubspot.com","market":"us"},{"url":"https://www.example.co.uk","competitor":"https://www.argos.co.uk","market":"gb"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://www.usageatlas.com","competitor":"https://www.hubspot.com","market":"us"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/keyword-research/runs":{"post":{"operationId":"run_keyword_research","tags":["SEO"],"summary":"Keyword Research","description":"Turn one keyword or topic into a list of related Google searches with the data to choose blog topics and ad keywords. Find the Google searches related to a keyword, with monthly searches, difficulty, cost per click and trend, sorted into easy wins, blog topics and keywords worth bidding on. Costs 34 credits per run. Docs: https://seogeoaeo.ai/tools/keyword-research","x-credits":34,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"keyword":{"type":"string","minLength":2,"maxLength":80},"market":{"type":"string","enum":["us","gb","ca","au","ie","in","sg","nz","za","de","fr","es","it","nl","se","pl","br","mx","jp","ae"],"description":"Market code for localized results."}},"required":["keyword"],"additionalProperties":false,"examples":[{"keyword":"standing desk","market":"us"},{"keyword":"wedding photographer","market":"gb"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"keyword":"standing desk","market":"us"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/keyword-metrics/runs":{"post":{"operationId":"run_keyword_metrics","tags":["SEO"],"summary":"Keyword Metrics","description":"Rank a keyword list you already have by search volume, difficulty and ad cost, so you know which to write about or bid on first. Paste a list of keywords and get each one's monthly Google searches, difficulty, cost per click and yearly trend, sorted into easy wins, blog topics and keywords worth bidding on. Costs 33 credits per run. Docs: https://seogeoaeo.ai/tools/keyword-metrics","x-credits":33,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"keywords":{"type":"string","minLength":1,"maxLength":20000,"description":"Newline-separated keyword list."},"market":{"type":"string","enum":["us","gb","ca","au","ie","in","sg","nz","za","de","fr","es","it","nl","se","pl","br","mx","jp","ae"],"description":"Market code for localized results."}},"required":["keywords"],"additionalProperties":false,"examples":[{"keywords":"standing desk\nergonomic chair\nmonitor arm\nbest desk lamp","market":"us"},{"keywords":"wedding photographer\nelopement photography\nengagement photos","market":"gb"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"keywords":"standing desk\nergonomic chair\nmonitor arm\nbest desk lamp","market":"us"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/competitor-google-ads/runs":{"post":{"operationId":"run_competitor_google_ads","tags":["SEO"],"summary":"Competitor Google Ads","description":"See what a competitor says in its Google ads, and which ads it keeps paying for, so you can write stronger ones. Enter a competitor's website to see the Google ads it runs: how many, in which formats, how long each has been showing, and the headlines and descriptions of its longest-running text ads. Costs 15 credits per run. Docs: https://seogeoaeo.ai/tools/competitor-google-ads","x-credits":15,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"market":{"type":"string","enum":["all","us","gb","ca","au","ie","in","sg","nz","za","de","fr","es","it","nl","se","pl","br","mx","jp","ae"],"description":"Market code for localized results."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://www.semrush.com","market":"all"},{"url":"https://www.argos.co.uk","market":"gb"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://www.semrush.com","market":"all"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/meta-ad-finder/runs":{"post":{"operationId":"run_meta_ad_finder","tags":["SEO"],"summary":"Meta Ad Finder","description":"See the Facebook and Instagram ads your competitors keep running, and the wording and offers behind them. Find the Facebook and Instagram ads a competitor is running right now, or every active ad that mentions a keyword: the wording, call to action, landing page, start date and where each ad shows. Costs 5 credits per run. Docs: https://seogeoaeo.ai/tools/meta-ad-finder","x-credits":5,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":120,"description":"Search query or seed keyword."},"mode":{"type":"string","enum":["page","keyword"]},"market":{"type":"string","enum":["all","us","gb","ca","au","ie","in","sg","nz","za","de","fr","es","it","nl","se","pl","br","mx","jp","ae"],"description":"Market code for localized results."}},"required":["query"],"additionalProperties":false,"examples":[{"query":"Semrush","mode":"page","market":"all"},{"query":"standing desk","mode":"keyword","market":"us"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"query":"Semrush","mode":"page","market":"all"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/linkedin-ad-finder/runs":{"post":{"operationId":"run_linkedin_ad_finder","tags":["SEO"],"summary":"LinkedIn Ad Finder","description":"See what a company says in its LinkedIn ads, which ones it keeps running, and which ad types it relies on. Enter a company name to see the ads it runs on LinkedIn: the ad types, headlines and descriptions, when each started and stopped, and the impressions range LinkedIn publishes for it. Costs 5 credits per run. Docs: https://seogeoaeo.ai/tools/linkedin-ad-finder","x-credits":5,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"company":{"type":"string","minLength":1,"maxLength":120},"market":{"type":"string","enum":["all","us","gb","ca","au","ie","in","sg","nz","za","de","fr","es","it","nl","se","pl","br","mx","jp","ae"],"description":"Market code for localized results."}},"required":["company"],"additionalProperties":false,"examples":[{"company":"Semrush","market":"all"},{"company":"HubSpot","market":"us"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"company":"Semrush","market":"all"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/ai-citation-finder/runs":{"post":{"operationId":"run_ai_citation_finder","tags":["GEO"],"summary":"AI Citation Finder","description":"Find the pages AI answers quote, so you know what to write, what to keep current, and which sites to get mentioned on. See which pages Google's AI Overviews and ChatGPT cite for a topic, or how often they cite a website, with the sites cited most and the searches behind the answers. Costs 160 credits per run. Docs: https://seogeoaeo.ai/tools/ai-citation-finder","x-credits":160,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"mode":{"type":"string","enum":["topic","site"]},"query":{"type":"string","minLength":2,"maxLength":2048,"description":"A topic such as standing desk when mode is topic, or a website such as hubspot.com when mode is site."},"platform":{"type":"string","enum":["all","google","chat_gpt"]},"market":{"type":"string","enum":["all","us","gb","ca","au","ie","in","sg","nz","za","de","fr","es","it","nl","se","pl","br","mx","jp","ae"],"description":"Market code for localized results."}},"required":["query"],"additionalProperties":false,"examples":[{"mode":"topic","query":"standing desk","platform":"all","market":"us"},{"mode":"site","query":"https://backlinko.com","platform":"all","market":"us"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"mode":"topic","query":"standing desk","platform":"all","market":"us"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/ai-question-finder/runs":{"post":{"operationId":"run_ai_question_finder","tags":["GEO"],"summary":"AI Question Finder","description":"Find the questions AI answers respond to, so you know what to write and which pages the answers lean on. List the questions people ask Google's AI Overviews or ChatGPT about a topic, or that cite a website, with the searches behind each, the start of the answer and the sources it lists. Costs 160 credits per run. Docs: https://seogeoaeo.ai/tools/ai-question-finder","x-credits":160,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"mode":{"type":"string","enum":["topic","site"]},"query":{"type":"string","minLength":2,"maxLength":2048,"description":"A topic such as standing desk when mode is topic, or a website such as hubspot.com when mode is site."},"platform":{"type":"string","enum":["google","chat_gpt"]},"market":{"type":"string","enum":["all","us","gb","ca","au","ie","in","sg","nz","za","de","fr","es","it","nl","se","pl","br","mx","jp","ae"],"description":"Market code for localized results."}},"required":["query"],"additionalProperties":false,"examples":[{"mode":"topic","query":"standing desk","platform":"google","market":"us"},{"mode":"site","query":"https://backlinko.com","platform":"chat_gpt","market":"us"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"mode":"topic","query":"standing desk","platform":"google","market":"us"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/indexing-checker/runs":{"post":{"operationId":"run_indexing_checker","tags":["SEO"],"summary":"Indexing & Canonical Checker","description":"See whether Google and Bing may crawl, index and quote a page in search and AI answers, which signal blocks it, and the exact tag or header to change. Check whether a URL can be crawled, indexed and quoted: status, robots.txt, meta robots, X-Robots-Tag, the canonical and its target, and snippet controls for Google and Bing. Costs 8 credits per run. Docs: https://seogeoaeo.ai/tools/indexing-checker","x-credits":8,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com"},{"url":"https://www.github.com"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/robots-checker/runs":{"post":{"operationId":"run_robots_checker","tags":["SEO"],"summary":"Robots.txt & AI Crawler Checker","description":"See every robots.txt rule that blocks search or AI crawlers, the rule that matches a given path, and the exact line to change. Audit a site's robots.txt, test whether a crawler may fetch a path, and see which search and AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended and more) are allowed. Costs 10 credits per run. Docs: https://seogeoaeo.ai/tools/robots-checker","x-credits":10,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"path":{"type":"string","maxLength":2048,"description":"URL path to test, such as /blog/post. Defaults to /."},"userAgent":{"type":"string","maxLength":200,"description":"Crawler user-agent token, such as Googlebot or GPTBot. Defaults to *."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com"},{"url":"https://github.com/search","userAgent":"Googlebot"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/redirects-headers-checker/runs":{"post":{"operationId":"run_redirects_headers_checker","tags":["SEO"],"summary":"Redirects, Headers & Host Checker","description":"See every redirect hop, duplicate host version and response header that costs crawl budget or blocks indexing, with the server rule to change. Follow a URL's redirect chain, check that http, https, www and bare hosts all end at one URL, and find response headers that hurt crawling, indexing or previews. Costs 10 credits per run. Docs: https://seogeoaeo.ai/tools/redirects-headers-checker","x-credits":10,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com"},{"url":"http://www.github.com"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/on-page-seo-checker/runs":{"post":{"operationId":"run_on_page_seo_checker","tags":["SEO"],"summary":"On-Page SEO Checker","description":"See the title, description and heading changes a page needs, how its snippet clips in search, and which query words it is missing. Check a page’s title, meta description, search snippet and H1–H6 outline. Add a target query to grade how well the title, H1, URL and body cover it. Costs 8 credits per run. Docs: https://seogeoaeo.ai/tools/on-page-seo-checker","x-credits":8,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"query":{"type":"string","maxLength":200,"description":"Search query or seed keyword."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com"},{"url":"https://github.com/features/actions","query":"ci cd pipeline"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/schema-checker/runs":{"post":{"operationId":"run_schema_checker","tags":["AEO"],"summary":"Schema Markup Checker","description":"See which JSON-LD blocks fail to parse, which required and recommended properties are missing, and which types the page is missing. Validate a page’s JSON-LD against Google’s rich result rules and see which schema.org types the page should add. Paste JSON-LD to check markup before it ships; pasted markup is checked instead of the live page. Costs 8 credits per run. Docs: https://seogeoaeo.ai/tools/schema-checker","x-credits":8,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"jsonld":{"type":"string","maxLength":50000,"description":"Raw JSON-LD to check instead of fetching url."}},"additionalProperties":false,"examples":[{"url":"https://www.wikipedia.org"},{"jsonld":"{\"@context\":\"https://schema.org\",\"@type\":\"SoftwareApplication\",\"name\":\"seogeoaeo.ai\",\"url\":\"https://seogeoaeo.ai\"}"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://www.wikipedia.org"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/ai-agent-readiness/runs":{"post":{"operationId":"run_ai_agent_readiness","tags":["GEO"],"summary":"AI Agent Readiness Checker","description":"Check whether AI browsers and agents can read and use a site, with each page attribute, llms.txt line or discovery file to fix. Check whether AI agents and browsers can read and use a site: llms.txt syntax and links, Lighthouse’s Agentic Browsing checks, WebMCP form coverage, Markdown responses for Accept: text/markdown, and MCP or A2A agent cards. Paste an llms.txt draft to validate it before it ships. Costs 10 credits per run. Docs: https://seogeoaeo.ai/tools/ai-agent-readiness","x-credits":10,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"llmsTxt":{"type":"string","maxLength":50000}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://developer.chrome.com"},{"url":"https://docs.anthropic.com"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://developer.chrome.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/xml-sitemap-validator/runs":{"post":{"operationId":"run_xml_sitemap_validator","tags":["SEO"],"summary":"XML Sitemap Validator","description":"See whether search engines can read your sitemap, how many entries it has, and which URLs or dates are wrong. Validate a sitemap or sitemap index against the sitemaps.org protocol and Google's limits: well-formed XML, namespace, size, entry count, URL scope, and lastmod. Costs 10 credits per run. Docs: https://seogeoaeo.ai/tools/xml-sitemap-validator","x-credits":10,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://www.sitemaps.org/sitemap.xml"},{"url":"https://wordpress.org/sitemap.xml"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://www.sitemaps.org/sitemap.xml"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/http-status-bulk-checker/runs":{"post":{"operationId":"run_http_status_bulk_checker","tags":["SEO"],"summary":"HTTP Status Bulk Checker","description":"See status, redirect target, and timing for this URL list. Page bodies are not fetched. Check HTTP status, redirect target, and latency for a pasted URL list without storing bodies. Costs 20 credits per run. Docs: https://seogeoaeo.ai/tools/http-status-bulk-checker","x-credits":20,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"urls":{"type":"string","minLength":1,"maxLength":20000,"description":"Newline-separated list of public http(s) URLs."}},"required":["urls"],"additionalProperties":false,"examples":[{"urls":"https://example.com\nhttps://www.example.com"},{"urls":"https://example.com/this-page-should-404"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"urls":"https://example.com\nhttps://www.example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/broken-internal-link-finder/runs":{"post":{"operationId":"run_broken_internal_link_finder","tags":["SEO"],"summary":"Broken Internal Link Finder","description":"Find links on one page that lead to broken pages on the same site. Find same-host links on one page and check up to 30 of them for 4xx/5xx failures, main-content links before navigation. Costs 15 credits per run. Docs: https://seogeoaeo.ai/tools/broken-internal-link-finder","x-credits":15,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com"},{"url":"https://react.dev"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/open-graph-checker/runs":{"post":{"operationId":"run_open_graph_checker","tags":["SEO"],"summary":"Open Graph & Social Card Checker","description":"See the preview LinkedIn, Facebook, Slack and X build, with image size, format and dimension checks against each platform’s limits. Check the og: and twitter: tags behind a page’s link preview, download the share image, and preview the card. Costs 5 credits per run. Docs: https://seogeoaeo.ai/tools/open-graph-checker","x-credits":5,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com"},{"url":"https://github.com"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/readability-analyzer/runs":{"post":{"operationId":"run_readability_analyzer","tags":["SEO"],"summary":"Readability Analyzer","description":"See reading level, long-sentence issues, and the sentences most worth rewriting. Check reading level, long sentences, and rewrite targets for a page or pasted copy. Costs 5 credits per run. Docs: https://seogeoaeo.ai/tools/readability-analyzer","x-credits":5,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"text":{"type":"string","maxLength":20000,"description":"Pasted content to check instead of fetching url."}},"additionalProperties":false,"examples":[{"url":"https://example.com"},{"text":"The cat sat on the mat. The sun is hot today. We can go to the park and see the dogs."}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/keyword-ideas/runs":{"post":{"operationId":"run_keyword_ideas","tags":["SEO"],"summary":"Keyword Ideas","description":"See the keyword suggestions Google shows for a seed in your market. Expand a seed query into live Google autocomplete suggestions, with shared terms and question-shaped ideas. Costs 15 credits per run. Docs: https://seogeoaeo.ai/tools/keyword-ideas","x-credits":15,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":200,"description":"Search query or seed keyword."},"market":{"type":"string","enum":["us","gb","ca","au","ie","in","sg","nz","za","de","fr","es","it","nl","se","pl","br","mx","jp","ae"],"description":"Market code for localized results."}},"required":["query"],"additionalProperties":false,"examples":[{"query":"running shoes","market":"us"},{"query":"how to reset a smoke alarm","market":"us"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"query":"running shoes","market":"us"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/keyword-clusterer/runs":{"post":{"operationId":"run_keyword_clusterer","tags":["SEO"],"summary":"Keyword Clusterer","description":"Group a keyword list into topic clusters, with a suggested parent page path for each group. Group a keyword list into token-overlap clusters with a suggested parent page. Costs 3 credits per run. Docs: https://seogeoaeo.ai/tools/keyword-clusterer","x-credits":3,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"keywords":{"type":"string","minLength":1,"maxLength":20000,"description":"Newline-separated keyword list."}},"required":["keywords"],"additionalProperties":false,"examples":[{"keywords":"running shoes\nbest running shoes\ntrail running shoes\nrunning shoes for beginners\ndress shoes\nemail marketing"},{"keywords":"email marketing\nemail marketing tools\nbest email marketing"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"keywords":"running shoes\nbest running shoes\ntrail running shoes\nrunning shoes for beginners\ndress shoes\nemail marketing"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/keyword-deduplicator/runs":{"post":{"operationId":"run_keyword_deduplicator","tags":["SEO"],"summary":"Keyword Deduplicator","description":"See unique keywords after normalization, plus merged duplicates and conflicting spellings. Normalize a keyword list, merge exact duplicates, and flag hyphen or plural variants. Costs 3 credits per run. Docs: https://seogeoaeo.ai/tools/keyword-deduplicator","x-credits":3,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"keywords":{"type":"string","minLength":1,"maxLength":20000,"description":"Newline-separated keyword list."}},"required":["keywords"],"additionalProperties":false,"examples":[{"keywords":"Blue Widgets\nblue widgets\nblue-widget"},{"keywords":"blue widgets\ngreen widgets\norange hats"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"keywords":"Blue Widgets\nblue widgets\nblue-widget"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/schema-markup-generator/runs":{"post":{"operationId":"run_schema_markup_generator","tags":["AEO"],"summary":"Schema Markup Generator","description":"Get valid JSON-LD for a documented type from the fields you supply. Nothing is fetched. Build JSON-LD from a schema type and fields, then preview it against the validator rules. Costs 3 credits per run. Docs: https://seogeoaeo.ai/tools/schema-markup-generator","x-credits":3,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"type":{"type":"string","minLength":1},"name":{"type":"string","maxLength":500},"headline":{"type":"string","maxLength":500},"url":{"type":"string","maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"description":{"type":"string","maxLength":2000},"image":{"type":"string","maxLength":2048},"author":{"type":"string","maxLength":500},"datePublished":{"type":"string","maxLength":40},"publisher":{"type":"string","maxLength":500},"dateModified":{"type":"string","maxLength":40},"logo":{"type":"string","maxLength":2048},"telephone":{"type":"string","maxLength":40},"price":{"type":"string","maxLength":40},"priceCurrency":{"type":"string","maxLength":8},"ratingValue":{"type":"string","maxLength":10},"ratingCount":{"type":"string","maxLength":12},"applicationCategory":{"type":"string","maxLength":100},"operatingSystem":{"type":"string","maxLength":200},"startDate":{"type":"string","maxLength":40},"endDate":{"type":"string","maxLength":40},"location":{"type":"string","maxLength":500},"streetAddress":{"type":"string","maxLength":500},"addressLocality":{"type":"string","maxLength":200},"addressRegion":{"type":"string","maxLength":200},"postalCode":{"type":"string","maxLength":40},"addressCountry":{"type":"string","maxLength":80},"thumbnailUrl":{"type":"string","maxLength":2048},"uploadDate":{"type":"string","maxLength":40},"faqs":{"type":"string","maxLength":10000,"description":"One question per line, written as `Question | Answer`."},"breadcrumbs":{"type":"string","maxLength":10000,"description":"One crumb per line from the root, written as `Name | URL`."},"steps":{"type":"string","maxLength":10000,"description":"One step per line."},"ingredients":{"type":"string","maxLength":10000,"description":"One ingredient per line."}},"required":["type"],"additionalProperties":false,"examples":[{"type":"SoftwareApplication","name":"Example App","url":"https://example.com/app","applicationCategory":"BusinessApplication","operatingSystem":"Web","price":"0","priceCurrency":"USD"},{"type":"Product","name":"Blue widget","price":"9.00","priceCurrency":"USD"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"type":"SoftwareApplication","name":"Example App","url":"https://example.com/app","applicationCategory":"BusinessApplication","operatingSystem":"Web","price":"0","priceCurrency":"USD"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/organization-entity-markup-builder/runs":{"post":{"operationId":"run_organization_entity_markup_builder","tags":["AEO"],"summary":"Organization Entity Markup Builder","description":"Get Organization JSON-LD from the details you supply. Nothing is fetched. Build Organization JSON-LD from entity details, then preview it against the validator rules. Costs 3 credits per run. Docs: https://seogeoaeo.ai/tools/organization-entity-markup-builder","x-credits":3,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":500},"legalName":{"type":"string","maxLength":500},"alternateName":{"type":"string","maxLength":500},"url":{"type":"string","maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"logo":{"type":"string","maxLength":2048},"description":{"type":"string","maxLength":2000},"email":{"type":"string","maxLength":200},"telephone":{"type":"string","maxLength":80},"sameAs":{"type":"string","maxLength":10000,"description":"Newline-separated profile URLs for the entity."},"foundingDate":{"type":"string","maxLength":40},"taxID":{"type":"string","maxLength":80},"vatID":{"type":"string","maxLength":80},"streetAddress":{"type":"string","maxLength":500},"addressLocality":{"type":"string","maxLength":200},"addressRegion":{"type":"string","maxLength":200},"postalCode":{"type":"string","maxLength":40},"addressCountry":{"type":"string","maxLength":80},"contactType":{"type":"string","maxLength":200}},"required":["name"],"additionalProperties":false,"examples":[{"name":"Example Inc.","url":"https://example.com"},{"name":"Example Inc.","url":"https://example.com","streetAddress":"1 Example Street","addressLocality":"Example City","addressCountry":"US","sameAs":"https://twitter.com/example\nhttps://linkedin.com/company/example"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"name":"Example Inc.","url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/faq-schema-builder/runs":{"post":{"operationId":"run_faq_schema_builder","tags":["AEO"],"summary":"FAQ Schema Builder","description":"Get FAQPage JSON-LD from the questions you supply. Nothing is fetched. Build FAQPage JSON-LD from questions and answers, with a note on Google FAQ rich-result limits. Costs 3 credits per run. Docs: https://seogeoaeo.ai/tools/faq-schema-builder","x-credits":3,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"faqs":{"type":"string","minLength":1,"maxLength":10000,"description":"One question per line, written as `Question | Answer`."},"name":{"type":"string","maxLength":500},"url":{"type":"string","maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["faqs"],"additionalProperties":false,"examples":[{"faqs":"What is SEO? | Search engine optimization.\nWhat is JSON-LD? | A JSON syntax for linked data."}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"faqs":"What is SEO? | Search engine optimization.\nWhat is JSON-LD? | A JSON syntax for linked data."}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/breadcrumb-schema-builder/runs":{"post":{"operationId":"run_breadcrumb_schema_builder","tags":["AEO"],"summary":"Breadcrumb Schema Builder","description":"Get BreadcrumbList JSON-LD from a trail or a page URL path. Nothing is fetched. Build BreadcrumbList JSON-LD from a trail or a page URL path. Nothing is fetched. Costs 3 credits per run. Docs: https://seogeoaeo.ai/tools/breadcrumb-schema-builder","x-credits":3,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"breadcrumbs":{"type":"string","maxLength":10000,"description":"One crumb per line from the root, written as `Name | URL`."},"url":{"type":"string","maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"additionalProperties":false,"examples":[{"breadcrumbs":"Home | https://example.com/\nDocs | https://example.com/docs"},{"url":"https://example.com/docs/tools"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"breadcrumbs":"Home | https://example.com/\nDocs | https://example.com/docs"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/llms-txt-generator/runs":{"post":{"operationId":"run_llms_txt_generator","tags":["GEO"],"summary":"llms.txt Generator","description":"Get a draft llms.txt built only from pages this run could fetch, ready to edit and publish. Draft an llms.txt from a fetched homepage using only verified public URLs. Costs 15 credits per run. Docs: https://seogeoaeo.ai/tools/llms-txt-generator","x-credits":15,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"site":{"type":"string","maxLength":200,"description":"Site name to use in the generated file. Defaults to the page title."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/core-web-vitals-snapshot/runs":{"post":{"operationId":"run_core_web_vitals_snapshot","tags":["SEO"],"summary":"Core Web Vitals Snapshot","description":"Review field measurements and lab diagnostics separately for one public URL, with clear gaps when data is unavailable. Read real-user Core Web Vitals when field data is available, plus a Lighthouse lab snapshot and its largest opportunities. Costs 20 credits per run. Docs: https://seogeoaeo.ai/tools/core-web-vitals-snapshot","x-credits":20,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"strategy":{"type":"string","enum":["mobile","desktop"],"description":"PageSpeed Insights device strategy. Defaults to mobile."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com","strategy":"mobile"},{"url":"https://example.com","strategy":"desktop"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com","strategy":"mobile"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/page-size-checker/runs":{"post":{"operationId":"run_page_size_checker","tags":["SEO"],"summary":"Page Size & 2 MB Limit Checker","description":"Know whether Googlebot sees the whole page, and exactly which links, JSON-LD and text fall past the 2 MB cutoff when it does not. Measure a page's HTML against Googlebot's 2 MB fetch limit and show what inflates it: inline scripts, styles, base64 images and DOM size. Costs 5 credits per run. Docs: https://seogeoaeo.ai/tools/page-size-checker","x-credits":5,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com"},{"url":"https://en.wikipedia.org/wiki/United_States"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/hreflang-checker/runs":{"post":{"operationId":"run_hreflang_checker","tags":["SEO"],"summary":"Hreflang Checker","description":"Find the invalid codes, missing return links, noindex and canonical conflicts that make Google ignore your language versions. Validate a page’s hreflang codes, self-reference and x-default, then fetch each language version to confirm it loads, is indexable and links back. Costs 10 credits per run. Docs: https://seogeoaeo.ai/tools/hreflang-checker","x-credits":10,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://www.airbnb.com"},{"url":"https://developer.mozilla.org/en-US/"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://www.airbnb.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/favicon-checker/runs":{"post":{"operationId":"run_favicon_checker","tags":["SEO"],"summary":"Favicon & Site Name Checker","description":"Check whether your favicon and site name meet the requirements Google uses to show them in search results. Check the favicon and site name Google shows above your search results: the icon is declared on the home page, loads, is square, 48 px or larger and crawlable, and WebSite structured data names the site. Also checks apple-touch-icon and manifest icons. Costs 5 credits per run. Docs: https://seogeoaeo.ai/tools/favicon-checker","x-credits":5,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com"},{"url":"https://github.com"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/citability-analyzer/runs":{"post":{"operationId":"run_citability_analyzer","tags":["GEO"],"summary":"Citability Analyzer","description":"Find passages that may need clearer answers or context, with suggestions to review before editing. Review sections with English-language heuristics for clear answers, context and supporting evidence. The score is an editorial aid, not an engine ranking or citation probability. Costs 5 credits per run. Docs: https://seogeoaeo.ai/tools/citability-analyzer","x-credits":5,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://developers.google.com/search/docs/fundamentals/seo-starter-guide"},{"url":"https://example.com"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://developers.google.com/search/docs/fundamentals/seo-starter-guide"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/indexnow-checker/runs":{"post":{"operationId":"run_indexnow_checker","tags":["SEO"],"summary":"IndexNow Checker & Submitter","description":"Notify participating engines about changed URLs and see whether the submission was accepted. Crawling and indexing timing are not guaranteed. Verify your IndexNow key file and submit up to 100 changed URLs to Bing, Yandex, Naver and Seznam in one request. Without a key, get a new one and the file to serve. Costs 5 credits per run. Docs: https://seogeoaeo.ai/tools/indexnow-checker","x-credits":5,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"key":{"type":"string","pattern":"^[a-zA-Z0-9-]{8,128}$","description":"IndexNow key to verify, 8 to 128 letters, digits or dashes. When omitted, a new key and its file are generated."},"keyLocation":{"type":"string","maxLength":2048,"description":"URL of the IndexNow key file on the same host, when it is not at /<key>.txt."},"urls":{"type":"string","maxLength":20000,"description":"Newline-separated list of public http(s) URLs."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com"},{"url":"https://example.com","key":"5c0a3fe0a7a54a4fb8b2d9e8a6f1c2d3","urls":"https://example.com/new-post"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/mobile-parity-checker/runs":{"post":{"operationId":"run_mobile_parity_checker","tags":["SEO"],"summary":"Mobile Parity Checker","description":"Find content, links and markup missing from the mobile version of a page, which is the version Google indexes. Fetch a page as a phone and as a desktop and compare what Google's mobile-first indexing sees: content, headings, structured data, title, description, robots, canonical, links, images, hreflang and the viewport. Costs 5 credits per run. Docs: https://seogeoaeo.ai/tools/mobile-parity-checker","x-credits":5,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com"},{"url":"https://developers.google.com/search/docs/crawling-indexing/mobile/mobile-sites-mobile-first-indexing"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/content-freshness-checker/runs":{"post":{"operationId":"run_content_freshness_checker","tags":["AEO"],"summary":"Content Freshness Checker","description":"Find missing or conflicting date signals and review whether dated claims need a substantive update. Inspect dates in JSON-LD, meta tags, microdata, time elements and visible labels for conflicts or impossible values. Older dates and title years are prompts for editorial review. Costs 5 credits per run. Docs: https://seogeoaeo.ai/tools/content-freshness-checker","x-credits":5,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://developers.google.com/search/blog/2023/08/howto-faq-changes"},{"url":"https://example.com"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://developers.google.com/search/blog/2023/08/howto-faq-changes"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/author-eeat-checker/runs":{"post":{"operationId":"run_author_eeat_checker","tags":["AEO"],"summary":"Author & E-E-A-T Checker","description":"Check whether a page clearly shows who wrote it and who stands behind it, in visible text and markup. Check the authorship and trust signals behind E-E-A-T: a visible byline, Article author markup with a clean name, url and sameAs, an author page that loads with a real bio and Person markup, a publisher, and About and Contact links. Costs 8 credits per run. Docs: https://seogeoaeo.ai/tools/author-eeat-checker","x-credits":8,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://developers.google.com/search/blog/2023/08/howto-faq-changes"},{"url":"https://www.theverge.com/tech"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://developers.google.com/search/blog/2023/08/howto-faq-changes"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/product-schema-checker/runs":{"post":{"operationId":"run_product_schema_checker","tags":["SEO"],"summary":"Product Schema Checker","description":"Find the Product markup fields missing or wrong for Google's price, availability and rating rich results. Check a product page's Product markup (JSON-LD or microdata) against Google's product snippet and merchant listing requirements: price format, ISO currency, availability, GTIN check digit, brand, shipping, return policy, ratings, and whether the marked-up price appears on the page. Costs 5 credits per run. Docs: https://seogeoaeo.ai/tools/product-schema-checker","x-credits":5,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://www.allbirds.com/products/mens-tree-runners"},{"url":"https://example.com/products/widget"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://www.allbirds.com/products/mens-tree-runners"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/local-business-checker/runs":{"post":{"operationId":"run_local_business_checker","tags":["SEO"],"summary":"Local Business Checker","description":"Check that your LocalBusiness markup is complete and that its address and phone match what the page shows. Check a location or contact page's LocalBusiness markup against Google's local business guide (specific type, full address, phone, coordinates, opening hours, listing profiles) and confirm the marked-up address and phone also appear on the page. Costs 5 credits per run. Docs: https://seogeoaeo.ai/tools/local-business-checker","x-credits":5,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com/contact"},{"url":"https://example.com/locations/downtown"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com/contact"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/image-seo-checker/runs":{"post":{"operationId":"run_image_seo_checker","tags":["SEO"],"summary":"Image SEO Checker","description":"Find images missing alt text or dimensions, broken image files, and heavy or oversized images slowing the page down. Check every image on a page for alt text, width and height, lazy-loading of the main image, srcset and sizes, and script-only loading. The first 12 image files are downloaded to catch broken links, JPEG or PNG files that could be WebP or AVIF, heavy files and images far larger than they are shown. Costs 10 credits per run. Docs: https://seogeoaeo.ai/tools/image-seo-checker","x-credits":10,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://web.dev/articles/browser-level-image-lazy-loading"},{"url":"https://example.com/products/trail-shoe"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://web.dev/articles/browser-level-image-lazy-loading"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/orphan-page-finder/runs":{"post":{"operationId":"run_orphan_page_finder","tags":["SEO"],"summary":"Orphan Page Finder","description":"Find pages nothing links to, pages buried too deep, and sitemap entries that fail, within one 150-page crawl. Crawl up to 150 pages from your homepage the way Googlebot follows links, read your XML sitemap, and compare the two. Find sitemap pages nothing links to, indexable pages missing from the sitemap, pages four or more clicks deep, broken internal links and sitemap URLs that redirect, fail or are noindex. Costs 20 credits per run. Docs: https://seogeoaeo.ai/tools/orphan-page-finder","x-credits":20,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com"},{"url":"https://example.com/blog/"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/ai-bot-log-analyzer/runs":{"post":{"operationId":"run_ai_bot_log_analyzer","tags":["GEO"],"summary":"AI Bot Log Analyzer","description":"See what GPTBot, ClaudeBot, PerplexityBot and ChatGPT-User actually fetch from your site, and catch impostors. Paste your server or CDN access log to see which AI crawlers and assistants visit, which pages they read, which requests your server refused or broke, and which visits used a crawler's name from an IP its operator does not publish. Costs 8 credits per run. Docs: https://seogeoaeo.ai/tools/ai-bot-log-analyzer","x-credits":8,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"log":{"type":"string","minLength":1,"maxLength":750000,"description":"Raw web server access log lines (combined, common, W3C or JSON lines), at most 750,000 characters."}},"required":["log"],"additionalProperties":false,"examples":[{"log":"20.171.207.2 - - [28/Sep/2026:10:15:32 +0000] \"GET /pricing HTTP/1.1\" 200 5120 \"-\" \"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)\""}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"log":"20.171.207.2 - - [28/Sep/2026:10:15:32 +0000] \"GET /pricing HTTP/1.1\" 200 5120 \"-\" \"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)\""}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/question-finder/runs":{"post":{"operationId":"run_question_finder","tags":["AEO"],"summary":"Question Finder","description":"See the questions Google shows for a topic and which ones your page leaves unanswered. Collect questions from Google's autocomplete suggestions, grouped by intent, and check which ones a page already answers. Costs 15 credits per run. Docs: https://seogeoaeo.ai/tools/question-finder","x-credits":15,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":120,"description":"Search query or seed keyword."},"market":{"type":"string","enum":["us","gb","ca","au","ie","in","sg","nz","za","de","fr","es","it","nl","se","pl","br","mx","jp","ae"],"description":"Market code for localized results."},"url":{"type":"string","maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["query"],"additionalProperties":false,"examples":[{"query":"smoke alarm chirping","market":"us"},{"query":"sourdough starter","market":"gb","url":"https://example.com/sourdough-starter"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"query":"smoke alarm chirping","market":"us"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/ai-crawler-view/runs":{"post":{"operationId":"run_ai_crawler_view","tags":["GEO"],"summary":"AI Crawler View","description":"Find the content AI crawlers miss because it loads with JavaScript. See a page the way GPTBot, ClaudeBot and PerplexityBot see it. The raw HTML is compared with the page rendered in a headless browser, to find content, headings, prices, structured data, links and metadata that only appear after JavaScript runs. Costs 8 credits per run. Docs: https://seogeoaeo.ai/tools/ai-crawler-view","x-credits":8,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://example.com"},{"url":"https://excalidraw.com/"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/brand-entity-checker/runs":{"post":{"operationId":"run_brand_entity_checker","tags":["GEO"],"summary":"Brand Entity Checker","description":"Check whether your brand name, logo, Organization markup and profiles consistently tie your brand to your site. Check the signals search and AI engines use to recognize your brand as one entity: the same name across Organization and WebSite markup, og:site_name, the manifest and llms.txt; Organization markup with url, a logo that loads and sameAs profiles that exist; and a Wikidata item that lists your site. Costs 8 credits per run. Docs: https://seogeoaeo.ai/tools/brand-entity-checker","x-credits":8,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"brand":{"type":"string","minLength":1,"maxLength":120,"description":"Brand name as people write it, such as Linear. Read from the home page when omitted."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://stripe.com"},{"url":"https://linear.app","brand":"Linear"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://stripe.com"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/fanout-coverage-checker/runs":{"post":{"operationId":"run_fanout_coverage_checker","tags":["GEO"],"summary":"Fan-out Coverage Checker","description":"Find the related searches AI engines run behind a query that your page does not answer yet. See the searches AI engines run behind a query and which of them your page answers. ChatGPT is asked the query with web search on and reports its searches; a model adds likely related, comparative, recent and implicit searches; and each search is judged against your page's sections by meaning. Costs 95 credits per run. Docs: https://seogeoaeo.ai/tools/fanout-coverage-checker","x-credits":95,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":200,"description":"Search query or seed keyword."},"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."}},"required":["query","url"],"additionalProperties":false,"examples":[{"query":"is sourdough bread healthier than white bread","url":"https://www.healthline.com/nutrition/sourdough-bread"},{"query":"best project management tool for small teams","url":"https://example.com"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"query":"is sourdough bread healthier than white bread","url":"https://www.healthline.com/nutrition/sourdough-bread"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/ai-answer-visibility/runs":{"post":{"operationId":"run_ai_answer_visibility","tags":["GEO"],"summary":"AI Answer Visibility","description":"Sample ChatGPT, Perplexity and Gemini answers to one question and see whether they mention or cite your brand, and who they name instead. Ask ChatGPT, Perplexity and Gemini the question your customers ask, with web search on, and see whether each answer names your brand, where it ranks among the brands named, whether it cites your site, and which brands and sites it recommends instead. Costs 120 credits per run. Docs: https://seogeoaeo.ai/tools/ai-answer-visibility","x-credits":120,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"prompt":{"type":"string","minLength":2,"maxLength":300,"description":"The question customers ask an AI assistant, such as What is the best CRM for a small team?"},"brand":{"type":"string","minLength":1,"maxLength":120,"description":"Brand name as people write it, such as Linear. Read from the home page when omitted."}},"required":["url","prompt"],"additionalProperties":false,"examples":[{"url":"https://www.hubspot.com","prompt":"What is the best CRM for a 5-person startup?"},{"url":"https://stripe.com","prompt":"Which payment processor is best for a SaaS business?","brand":"Stripe"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://www.hubspot.com","prompt":"What is the best CRM for a 5-person startup?"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/tools/brand-narrative-check/runs":{"post":{"operationId":"run_brand_narrative_check","tags":["GEO"],"summary":"Brand Narrative Check","description":"See what ChatGPT, Perplexity and Gemini tell people about your brand, with quoted evidence for potential discrepancies. Ask ChatGPT, Perplexity and Gemini what your brand is, with web search on. See recognition, descriptions, tone, strengths, weaknesses, alternatives, cited sources, and potential discrepancies to review against your home page. Costs 150 credits per run. Docs: https://seogeoaeo.ai/tools/brand-narrative-check","x-credits":150,"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL. Private, local, and non-web addresses are rejected."},"brand":{"type":"string","minLength":1,"maxLength":120,"description":"Brand name as people write it, such as Linear. Read from the home page when omitted."}},"required":["url"],"additionalProperties":false,"examples":[{"url":"https://linear.app"},{"url":"https://stripe.com","brand":"Stripe"}]},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://linear.app"}}}}},"responses":{"200":{"description":"Finished run.","content":{"application/json":{"schema":{"type":"object","required":["run"],"properties":{"run":{"$ref":"#/components/schemas/Run"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/assessments":{"get":{"operationId":"list_assessments","tags":["Assessments"],"summary":"List recent assessments","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}}],"responses":{"200":{"description":"Newest first.","content":{"application/json":{"schema":{"type":"object","properties":{"assessments":{"type":"array","items":{"$ref":"#/components/schemas/AssessmentSummary"}}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}},"post":{"operationId":"run_assessment","tags":["Assessments"],"summary":"Assess a website","description":"Checks a website in one call and scores SEO readiness, AEO readiness and AI access from 0 to 100, with the PageSpeed Insights bands: 90 to 100 good, 50 to 89 needs work, 0 to 49 poor. It runs the selected check groups on the URL and up to two more pages on the same site, and combines their fixes into one list ordered by priority. Each assessment is compared with the previous one of the same URL. progress.percentFixed is the share of the earlier issues that are now fixed, next to counts of fixed, still present and new issues. The default checks cost 67 credits for one page and 47 for each extra page. Each check is charged on its own and refunded if it fails. One call runs checks for 40 seconds, or as long as its slowest selected check: about two minutes for performance and three and a half for AI brand descriptions. Allow a client timeout of four minutes. When status is in_progress, continue with the same id to run the rest.","parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"$ref":"#/components/schemas/AssessmentInput"},"compareTo":{"type":"string","description":"Compare with this assessment instead of the previous one of the same URL."},"idempotencyKey":{"$ref":"#/components/schemas/IdempotencyKey"},"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}},"example":{"input":{"url":"https://example.com/","pages":["https://example.com/pricing"]}}}}},"responses":{"200":{"description":"The assessment after this call.","content":{"application/json":{"schema":{"type":"object","required":["assessment"],"properties":{"assessment":{"$ref":"#/components/schemas/Assessment"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/assessments/{id}":{"get":{"operationId":"get_assessment","tags":["Assessments"],"summary":"Get an assessment","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The assessment after this call.","content":{"application/json":{"schema":{"type":"object","required":["assessment"],"properties":{"assessment":{"$ref":"#/components/schemas/Assessment"}}}}}},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/assessments/{id}/continue":{"post":{"operationId":"continue_assessment","tags":["Assessments"],"summary":"Continue an assessment","description":"Runs the checks that are still pending or failed, for 40 seconds, or as long as the slowest remaining check. Only those checks are charged.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"maxCredits":{"$ref":"#/components/schemas/MaxCredits"}}}}}},"responses":{"200":{"description":"The assessment after this call.","content":{"application/json":{"schema":{"type":"object","required":["assessment"],"properties":{"assessment":{"$ref":"#/components/schemas/Assessment"}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/runs":{"get":{"operationId":"list_runs","tags":["Runs"],"summary":"List recent runs","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"Newest first.","content":{"application/json":{"schema":{"type":"object","properties":{"runs":{"type":"array","items":{"$ref":"#/components/schemas/RunSummary"}}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/runs/{id}":{"get":{"operationId":"get_run","tags":["Runs"],"summary":"Get a run","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The stored run.","content":{"application/json":{"schema":{"type":"object","properties":{"run":{"$ref":"#/components/schemas/StoredRun"}}}}}},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/credits":{"get":{"operationId":"get_credits","tags":["Credits"],"summary":"Get the credit balance","responses":{"200":{"description":"Current balance.","content":{"application/json":{"schema":{"type":"object","properties":{"balance":{"$ref":"#/components/schemas/CreditBalance"}}}}}},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key from https://seogeoaeo.ai/api-keys. Keys start with sga_."}},"parameters":{"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":false,"description":"Alternative to the idempotencyKey body field.","schema":{"$ref":"#/components/schemas/IdempotencyKey"}}},"responses":{"Error":{"description":"Error envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"IdempotencyKey":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,200}$","description":"Reuse on retries so the same run is returned instead of charged again. A key only matches a run of the same tool and input, and only while that run is among the workspace's latest 1,000."},"MaxCredits":{"type":"integer","minimum":0,"description":"Refuse the run with max_credits_exceeded if it costs more than this."},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","examples":["invalid_request","unauthorized","insufficient_credits","max_credits_exceeded","not_found","run_in_progress","payload_too_large","rate_limited","tool_failed","unavailable","internal_error"]},"message":{"type":"string"},"retryAfter":{"type":"integer","description":"Seconds to wait before retrying (429)."},"runId":{"type":"string","description":"The run still in progress (409 run_in_progress)."},"replacement":{"type":"string","description":"The tool that replaced a merged tool; run it instead (404 not_found)."}}}}},"Tool":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"category":{"type":"string","enum":["seo","aeo","geo"]},"description":{"type":"string"},"promise":{"type":"string"},"credits":{"type":"integer"},"priceVersion":{"type":"string"},"version":{"type":"string"},"nonGoals":{"type":"array","items":{"type":"string"}},"docsUrl":{"type":"string","format":"uri"},"inputSchema":{"type":"object"}}},"ImprovementTip":{"type":"object","required":["id","priority","title","action","why","detail","affected"],"properties":{"id":{"type":"string","description":"Names one kind of change and stays the same across runs, so a fixed tip is recognized by its absence."},"priority":{"type":"string","enum":["high","medium","low"]},"title":{"type":"string"},"action":{"type":"string","description":"The change to make."},"why":{"type":"string"},"detail":{"type":"string","description":"What the tool observed."},"affected":{"type":"array","items":{"type":"string"},"description":"URLs, headers, or items the change applies to."},"fixIn":{"type":"string","enum":["dns","external"],"description":"Set when the change is made outside the site's code: in DNS, or in another service."}}},"ImprovementTips":{"type":["object","null"],"description":"What to change to improve the result. Null when the run failed or its result is no longer available.","required":["status","summary","tips","unchecked","rerunVerifies","verify"],"properties":{"status":{"type":"string","enum":["changes","clean","incomplete"],"description":"incomplete when any part of the analysis could not run, changes when there are tips, clean when the tool checked everything and found nothing to change."},"summary":{"type":"string","description":"Plain-text checklist of every tip, ordered by priority."},"tips":{"type":"array","items":{"$ref":"#/components/schemas/ImprovementTip"}},"unchecked":{"type":"array","description":"Parts of the analysis that could not run. While not empty, the result cannot show that the site is clean.","items":{"type":"object","required":["id","title","detail","action"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string","description":"What went wrong."},"action":{"type":"string","description":"What to do before trusting the result."}}}},"rerunVerifies":{"type":"boolean","description":"True when running the tool again with the same input shows whether the changes worked. False when the tips come from the input, so the same input returns them again."},"verify":{"type":"string","description":"How to confirm the changes worked."}}},"Run":{"type":"object","properties":{"id":{"type":"string"},"toolId":{"type":"string"},"slug":{"type":"string"},"toolVersion":{"type":"string"},"status":{"type":"string","enum":["succeeded","failed"]},"creditsCharged":{"type":"integer"},"priceVersion":{"type":"string"},"input":{"type":"object"},"result":{"description":"Tool-specific result. Most tools include a findings array."},"improvementTips":{"$ref":"#/components/schemas/ImprovementTips"},"errorClass":{"type":["string","null"]},"errorMessage":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"startedAt":{"type":["string","null"],"format":"date-time"},"finishedAt":{"type":["string","null"],"format":"date-time"}}},"RunSummary":{"type":"object","description":"A stored run without its result. Fetch /runs/{id} for the result.","properties":{"id":{"type":"string"},"toolId":{"type":"string"},"slug":{"type":"string"},"toolVersion":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled"]},"creditsCharged":{"type":"integer"},"priceVersion":{"type":"string"},"errorClass":{"type":["string","null"]},"errorMessage":{"type":["string","null"]},"inputSummary":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"startedAt":{"type":["string","null"],"format":"date-time"},"finishedAt":{"type":["string","null"],"format":"date-time"}}},"StoredRun":{"type":"object","properties":{"id":{"type":"string"},"toolId":{"type":"string"},"slug":{"type":"string"},"toolVersion":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled"]},"creditsCharged":{"type":"integer"},"priceVersion":{"type":"string"},"errorClass":{"type":["string","null"]},"errorMessage":{"type":["string","null"]},"inputSummary":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"startedAt":{"type":["string","null"],"format":"date-time"},"finishedAt":{"type":["string","null"],"format":"date-time"},"result":{},"improvementTips":{"$ref":"#/components/schemas/ImprovementTips"}}},"AssessmentInput":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The website to assess, usually its home page."},"pages":{"type":"array","items":{"type":"string"},"maxItems":2,"description":"Up to two more key pages."},"checks":{"type":"array","items":{"type":"string","enum":["technical","onPage","schema","content","images","rendering","performance","structure","brand","narrative"]},"minItems":1,"description":"Default: technical, onPage, schema, content. technical: Indexing, canonicals, robots, redirects and host consistency. onPage: Titles, descriptions and headings on each selected page. schema: JSON-LD validity and relevant schema types. content: Readability, answer structure, dates and authorship signals. images: Image text, dimensions and accessibility on each page. rendering: Rendered content, mobile parity and HTML size. performance: Core Web Vitals field data when available and lab diagnostics. structure: A separate crawl of up to 150 pages for links and sitemap coverage. brand: Visible brand names, organization markup and entity references. narrative: Ask three AI engines how they describe your brand. Separately priced."},"questions":{"type":"array","items":{"type":"string"},"maxItems":3,"description":"Buyer questions to ask AI engines with the answers check."},"brand":{"type":"string","description":"The brand name to look for in AI answers."}}},"AssessmentSummary":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"reportUrl":{"type":"string","format":"uri"},"createdAt":{"type":"string","format":"date-time"},"overall":{"type":"object","description":"Null until a check of this kind finishes.","properties":{"score":{"type":["integer","null"],"minimum":0,"maximum":100},"band":{"type":["string","null"],"enum":["good","average","poor",null]}}},"issues":{"type":["integer","null"]},"finished":{"type":["boolean","null"]}}},"Assessment":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"reportUrl":{"type":"string","format":"uri","description":"The report in the browser."},"createdAt":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["in_progress","finished"],"description":"in_progress while checks are pending, running or failed. Continue it to run them."},"checks":{"type":"object","properties":{"total":{"type":"integer"},"complete":{"type":"integer"},"incomplete":{"type":"integer"},"failed":{"type":"integer"},"waiting":{"type":"integer"}}},"credits":{"type":"object","properties":{"charged":{"type":"integer"},"toFinish":{"type":"integer","description":"Price of the checks still to run."}}},"scores":{"type":"object","description":"0 to 100 with the PageSpeed Insights bands: good 90 to 100, average 50 to 89, poor 0 to 49.","properties":{"overall":{"type":"object","description":"Null until a check of this kind finishes.","properties":{"score":{"type":["integer","null"],"minimum":0,"maximum":100},"band":{"type":["string","null"],"enum":["good","average","poor",null]}}},"areas":{"type":"array","items":{"type":"object","properties":{"area":{"type":"string","enum":["technical","content","aiAccess"]},"label":{"type":"string"},"score":{"type":["integer","null"],"minimum":0,"maximum":100},"band":{"type":["string","null"],"enum":["good","average","poor",null]},"checksScored":{"type":"integer"},"checks":{"type":"integer"}}}},"issues":{"type":"integer","description":"One per fix and affected page or item."},"fixes":{"type":"integer","description":"Distinct fixes."}}},"progress":{"type":["object","null"],"description":"Change since the previous assessment of the same URL. Null for the first one.","properties":{"comparedWith":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"overall":{"type":"object","description":"Null until a check of this kind finishes.","properties":{"score":{"type":["integer","null"],"minimum":0,"maximum":100},"band":{"type":["string","null"],"enum":["good","average","poor",null]}}},"issues":{"type":"integer"}}},"percentFixed":{"type":["integer","null"],"description":"Fixed issues as a share of the earlier issues that were checked again."},"fixed":{"type":"integer"},"stillPresent":{"type":"integer"},"new":{"type":"integer"},"notComparable":{"type":"integer","description":"Earlier issues whose check changed or did not finish, so they were not compared."},"changedChecks":{"type":"integer","description":"Checks whose tool was updated since then."},"newIssues":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"affected":{"type":"array","items":{"type":"string"}}}}}}},"improvementTips":{"$ref":"#/components/schemas/ImprovementTips","description":"Every fix across the checks. A partly fixed tip has fixedSinceLastAssessment."},"failedChecks":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":["string","null"]},"error":{"type":["string","null"]}}}},"aiAnswers":{"type":["object","null"],"description":"Sampled AI answers. Null when the answers check was not selected.","properties":{"asked":{"type":"integer"},"answered":{"type":"integer"},"named":{"type":"integer"},"cited":{"type":"integer"}}},"notes":{"type":"array","items":{"type":"string"},"description":"Checks this call could not start, and why."},"next":{"type":"string","description":"What to do next."}}},"CreditBalance":{"type":"object","properties":{"monthly":{"type":"integer","description":"Monthly plan credits left this cycle."},"purchased":{"type":"integer","description":"Top-up credits held by the workspace."},"locked":{"type":"integer","description":"Top-up credits that unlock when a paid plan is active."},"total":{"type":"integer","description":"Credits a run can spend now."},"planActive":{"type":"boolean"}}}}}}