Documentation

API Reference

Workflow POST endpoints are usually async-first. Utility and system endpoints such as /extract , /webhooks/endpoints , and /webhooks/deliveries/{id}/retry are synchronous. Use ?sync=true on supported endpoints to open a short inline processing window. If a result is not ready yet, the API returns 202 with a job payload you can poll.

Most queued workflow endpoints return a standard async envelope with poll_url, events_url, and retry_after_seconds. The main exception is /audit/local/batch, which returns an array of queued job IDs instead of one pollable job envelope.

Use this page when the contract question is already clear

API reference is the right place once you know the runtime path and the workflow job. If you still need to prove category fit, workflow shape, or the first successful request, take one of the shorter routes below first.

Async Flow

Queue work with any async endpoint, then use the returned poll_url, events_url, and retry_after_seconds fields from the queued payload. You can also poll /jobs/{id} or stream /jobs/{id}/events.

Deterministic Geo

Geo-targeted endpoints accept human-friendly location and optional location_code. If both are provided, location_code wins.

Local Audit Input

domain on /audit/local can be a business name or a domain.

Agent Workflow Block

Core workflow endpoints include agent_workflow with a decision, confidence, recommended actions, evidence, limitations, and next calls for downstream agents.

Request Attribution

Optional x-project-id and x-workflow-id headers are stored on usage logs and async jobs. The official SDK, OpenClaw plugin, and MCP surfaces can set these defaults once for you. Polling /jobs/{id} returns the same context back.

Core Workflows

POST/audit/local

Run a local listing audit (AEO starter) for one business/location and return listing readiness plus an agent_workflow action plan.

Parameters

NameTypeDescription
domain *stringBusiness name or domain (e.g. Cool Creek Family Dental or example.com)
location *stringFull address or city + state/zip
language stringISO code (default: en)

Example

curl -X POST https://www.agentseo.dev/api/v1/audit/local?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"domain":"plumber-nyc.com", "location":"Manhattan, NY"}'
POST/audit/local/batch

Queue multiple local audits at once. Utility endpoint for agencies and agent batches. Returns a 202 response with success, message, and a jobs array of queued job IDs.

Parameters

NameTypeDescription
items *arrayList of audit objects (max 10)

Example

curl -X POST https://www.agentseo.dev/api/v1/audit/local/batch \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"items": [{"domain":"a.com","location":"NY"}, {"domain":"b.com","location":"LA"}]}'
POST/content/gap

Identify missing topics and return an agent_workflow plus a compact content_brief for what to publish or refresh next.

Parameters

NameTypeDescription
url *stringYour target URL
keyword *stringMain target keyword
location stringTarget location (default: US)
location_code integerOptional search location code for deterministic geo-targeting
language stringISO code (default: en)
scrape_depth enumh1, h2, or h3 (default: h3)

Example

curl -X POST https://www.agentseo.dev/api/v1/content/gap?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url":"https://mysite.com/blog/seo", "keyword":"seo tips", "location":"Austin, TX", "location_code":1026201}'
POST/content/refresh-brief

Turn an existing URL and keyword into an implementation-ready refresh brief with gap evidence, sections to add, title/H1 guidance, internal-link tasks, schema recommendations, validation checklist, agent_workflow, and markdown_summary. Requests cost 12 credits.

Parameters

NameTypeDescription
url *stringExisting page URL to refresh
keyword *stringMain target keyword
location stringTarget location (default: United States)
location_code integerOptional search location code for deterministic geo-targeting
language stringISO code (default: en)
scrape_depth enumh1, h2, or h3 (default: h3)
current_rank integerKnown current rank for priority shaping
refresh_goal stringrecover_rankings, improve_conversions, win_featured_snippet, improve_ai_visibility, or expand_topic_depth

Example

curl -X POST https://www.agentseo.dev/api/v1/content/refresh-brief?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url":"https://mysite.com/blog/seo", "keyword":"seo tips", "location":"United States", "current_rank":12, "refresh_goal":"expand_topic_depth"}'
POST/content/serp-outline

Turn a live SERP into a writer- and agent-ready page outline with title options, H2 sections, questions to answer, schema recommendations, validation checklist, agent_workflow, and markdown_summary. Requests cost 4 credits.

Parameters

NameTypeDescription
keyword *stringMain target keyword
target stringOptional target brand, domain, or product to route the outline toward
location stringTarget location (default: United States)
location_code integerOptional search location code for deterministic geo-targeting
language stringISO code (default: en)
device enumdesktop or mobile (default: desktop)
outline_depth enumbrief, standard, or detailed (default: standard)
include_title_options booleanReturn title options with the outline (default: true)

Example

curl -X POST https://www.agentseo.dev/api/v1/content/serp-outline?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keyword":"seo api", "target":"AgentSEO", "location":"United States", "outline_depth":"standard"}'
POST/content/brief

Turn a live SERP into a production-ready content brief with audience, meta, SERP expectations, competitor patterns, differentiators, proof requirements, conversion plan, QA checklist, optional outline, agent_workflow, and markdown_summary. Requests cost 6 credits.

Parameters

NameTypeDescription
keyword *stringMain target keyword
target stringOptional target brand, domain, or product
audience stringOptional audience description for writer guidance
location stringTarget location (default: United States)
language stringISO code (default: en)
device enumdesktop or mobile (default: desktop)
brand_voice enumneutral, expert, friendly, bold, or technical (default: expert)
page_type enumauto, blog_post, landing_page, comparison_page, guide, or tool_page
brief_depth enumstandard or detailed (default: standard)
include_serp_outline booleanInclude the structured SERP outline in the response (default: true)

Example

curl -X POST https://www.agentseo.dev/api/v1/content/brief?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keyword":"seo api", "target":"AgentSEO", "audience":"technical marketers", "location":"United States", "brief_depth":"standard"}'
POST/content/draft-qa

Validate a draft URL or markdown against live SERP expectations before publishing. Returns publish_readiness_score, readiness, missing SERP expectations, weak sections, proof gaps, title/meta issues, schema recommendations, editor tasks, agent_workflow, and markdown_summary. Requests cost 8 credits.

Parameters

NameTypeDescription
keyword *stringMain target keyword
draft_url stringDraft or staged page URL to scrape
draft_markdown stringDraft markdown when a URL is not available. Either draft_url or draft_markdown is required.
target stringOptional target brand, domain, or product
location stringTarget location (default: United States)
language stringISO code (default: en)
device enumdesktop or mobile (default: desktop)
qa_depth enumstandard or strict (default: standard)

Example

curl -X POST https://www.agentseo.dev/api/v1/content/draft-qa?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keyword":"seo api", "target":"AgentSEO", "location":"United States", "draft_markdown":"# SEO API Guide\n\nThis draft explains what an SEO API is and how marketers use SERP data before publishing."}'
POST/content/schema-plan

Plan JSON-LD schema for a URL or markdown page without a paid provider call. Returns recommended schema types, JSON-LD draft, required fields checklist, missing page evidence, FAQ candidates, implementation notes, validation checklist, agent_workflow, and markdown_summary. Requests cost 3 credits.

Parameters

NameTypeDescription
url stringPage URL to scrape. Either url or page_markdown is required.
page_markdown stringPage markdown when a URL is not available.
page_type enumauto, article, blog_post, landing_page, product, software, local_business, faq, or how_to
keyword stringOptional target keyword for context
target stringOptional target brand, domain, or product
include_jsonld booleanInclude JSON-LD draft blocks (default: true)

Example

curl -X POST https://www.agentseo.dev/api/v1/content/schema-plan?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keyword":"seo api", "target":"AgentSEO", "page_type":"software", "include_jsonld":true, "page_markdown":"# SEO API Platform\n\nAgentSEO is a software platform for marketers that need structured SEO workflows."}'
POST/content/title-meta

Generate SEO title and meta description options for a URL or markdown page. Returns title options, meta description options, current signal checks, snippet risks, implementation checklist, agent_workflow, and markdown_summary. Requests cost 2 credits and do not call a paid SERP provider.

Parameters

NameTypeDescription
keyword *stringPrimary target keyword or query
url stringPage URL to scrape. Either url or page_markdown is required.
page_markdown stringPage markdown when a URL is not available.
target stringOptional target brand, domain, or product
page_type enumauto, blog_post, landing_page, product, software, local_business, comparison_page, or guide
current_title stringOptional current title element to audit
current_meta_description stringOptional current meta description to audit

Example

curl -X POST https://www.agentseo.dev/api/v1/content/title-meta?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keyword":"seo api", "target":"AgentSEO", "page_type":"software", "page_markdown":"# SEO API Platform\n\nAgentSEO helps marketers create content briefs, QA drafts, prepare schema, improve internal links, and optimize metadata before publishing useful SEO pages."}'
POST/content/keyword-map

Map supplied keywords to supplied pages before drafting or refreshing content. Returns primary URL recommendations, weak matches, missing-page opportunities, cannibalization risks, implementation checklist, agent_workflow, and markdown_summary. Requests cost 2 credits and do not call a paid SERP provider.

Parameters

NameTypeDescription
keywords *arrayKeyword list to map. Maximum 250 keywords.
pages *arrayCandidate pages with url, title, optional description, headings, current_keywords, and page_type.
target stringOptional target brand, domain, or product
max_mappings integerMaximum keyword mappings to return (default: 250)

Example

curl -X POST https://www.agentseo.dev/api/v1/content/keyword-map?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"target":"AgentSEO","keywords":["seo api","seo api pricing","best seo api"],"pages":[{"url":"https://www.agentseo.dev/docs/api-reference","title":"AgentSEO API Reference","description":"Reference documentation for AgentSEO endpoints.","current_keywords":["seo api","agentseo api"],"page_type":"docs"},{"url":"https://www.agentseo.dev/pricing","title":"AgentSEO Pricing","description":"Pricing for AgentSEO plans.","current_keywords":["seo api pricing"],"page_type":"landing_page"}]}'
POST/content/technical-qa

Run pre-publish technical SEO QA for a URL, HTML page, or markdown draft. Returns indexability, metadata, canonical, heading, structured-data, internal-link, image-alt, readiness-score, publish checklist, agent_workflow, and markdown_summary checks. Requests cost 2 credits and do not call a paid SERP provider.

Parameters

NameTypeDescription
url stringLive page URL to fetch and inspect. Provide url, html, or markdown.
html stringRaw HTML for unpublished or staging pages.
markdown stringMarkdown draft when HTML is not available.
keyword stringOptional target keyword for title alignment checks.
expected_canonical stringExpected canonical URL. Mismatches are treated as high severity.
page_type enumauto, article, blog_post, landing_page, product, software, local_business, comparison_page, guide, or docs

Example

curl -X POST https://www.agentseo.dev/api/v1/content/technical-qa?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keyword":"seo api", "target":"AgentSEO", "expected_canonical":"https://www.agentseo.dev/docs/api-reference", "page_type":"software", "html":"<html><head><title>SEO API Platform for Technical Marketers | AgentSEO</title><meta name=\"description\" content=\"Review an SEO API platform before publishing with metadata, canonical, schema, headings, and internal-link checks.\"><link rel=\"canonical\" href=\"https://www.agentseo.dev/docs/api-reference\"><meta name=\"robots\" content=\"index,follow\"></head><body><h1>SEO API Platform</h1><h2>Publishing workflow</h2><p>AgentSEO helps marketers validate pages before publishing useful SEO pages.</p><a href=\"https://www.agentseo.dev/docs\">Docs</a></body></html>"}'
POST/content/action-plan

Turn supplied SEO opportunities, refresh candidates, technical fixes, and link tasks into a capacity-aware content calendar. Returns scheduled actions, weekly buckets, risk register, agent_workflow, and markdown_summary. Requests cost 2 credits and do not call a paid SERP provider.

Parameters

NameTypeDescription
items *arrayOpportunity items to schedule. Each item needs a title; keyword, url, priority, impact_score, effort, status, and dependencies improve planning.
target stringOptional target brand, domain, or product.
goal enumtraffic_growth, lead_generation, refresh_decay, launch_support, or authority_building.
horizon_days integerPlanning horizon from 7 to 90 days. Default: 30.
weekly_capacity integerMaximum effort points to schedule per week. Default: 5.
team arrayOptional assignee names for round-robin ownership.

Example

curl -X POST https://www.agentseo.dev/api/v1/content/action-plan?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"target":"AgentSEO","goal":"traffic_growth","horizon_days":30,"weekly_capacity":3,"team":["Editor","Dan"],"items":[{"title":"Refresh SEO API docs","keyword":"seo api","url":"https://www.agentseo.dev/docs/api-reference","opportunity_type":"refresh","buyer_stage":"consideration","priority":"critical","impact_score":92,"effort":"medium","status":"ready","dependencies":[]},{"title":"Publish best SEO API comparison","keyword":"best seo api","opportunity_type":"new_content","buyer_stage":"decision","priority":"high","impact_score":80,"effort":"medium","status":"idea","dependencies":["SERP outline"]}]}'
POST/site/sitemap-audit

Audit sitemap coverage, sitemap-only orphan candidates, important URLs, canonical/indexability noise, and internal-link gaps. Returns findings, severity counts, implementation checklist, agent_workflow, and markdown_summary. Requests cost 2 credits and do not call a paid search API.

Parameters

NameTypeDescription
sitemap_url stringSitemap URL to fetch. Provide sitemap_url or sitemap_xml.
sitemap_xml stringRaw sitemap XML. Useful for staging sites, pasted exports, or tests.
important_urls arrayHigh-priority URLs that should usually be in the sitemap and internally linked.
crawl_urls arrayOptional crawl/CMS/Search Console URL export with url, status_code, indexable, canonical_url, inbound_internal_links, clicks, and impressions.
internal_links arrayOptional internal-link export with source_url, target_url, and anchor.
max_sitemap_children integerWhen sitemap_url is a sitemap index, fetch up to this many child sitemaps. Default: 3, max: 10.

Example

curl -X POST https://www.agentseo.dev/api/v1/site/sitemap-audit?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"target":"AgentSEO","sitemap_xml":"<?xml version=\"1.0\" encoding=\"UTF-8\"?><urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\"><url><loc>https://www.agentseo.dev/docs/api-reference</loc><lastmod>2026-07-16</lastmod></url><url><loc>https://www.agentseo.dev/old-page</loc></url></urlset>","max_sitemap_children":0,"important_urls":["https://www.agentseo.dev/docs/api-reference","https://www.agentseo.dev/pricing"],"crawl_urls":[{"url":"https://www.agentseo.dev/docs/api-reference","status_code":200,"indexable":true,"inbound_internal_links":4},{"url":"https://www.agentseo.dev/old-page","status_code":404,"indexable":false,"inbound_internal_links":0},{"url":"https://www.agentseo.dev/pricing","status_code":200,"indexable":true,"inbound_internal_links":2}],"internal_links":[{"source_url":"https://www.agentseo.dev/docs","target_url":"https://www.agentseo.dev/docs/api-reference","anchor":"API reference"}]}'
POST/serp/volatility

Compare supplied SERP snapshots to detect rank movement, top-domain churn, SERP feature changes, winners, losers, and target visibility movement. Returns volatility score, interpretation, agent_workflow, and markdown_summary. Requests cost 2 credits and do not call a paid search API.

Parameters

NameTypeDescription
keyword *stringKeyword or query being monitored.
snapshots *arrayAt least two SERP snapshots. Each snapshot needs checked_at and ranked results with position and url.
target_domains arrayDomains to track for visibility movement.
location stringSearch location label. Default: United States.
device enumdesktop or mobile. Default: desktop.
sensitivity enumlow, medium, or high. Higher sensitivity flags smaller changes.

Example

curl -X POST https://www.agentseo.dev/api/v1/serp/volatility?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keyword":"seo api","target":"AgentSEO","location":"United States","device":"desktop","sensitivity":"medium","target_domains":["agentseo.dev"],"snapshots":[{"checked_at":"2026-07-10","serp_features":["featured_snippet"],"results":[{"position":1,"url":"https://www.agentseo.dev/docs/api-reference","domain":"agentseo.dev"},{"position":2,"url":"https://example-a.com/seo-api","domain":"example-a.com"},{"position":3,"url":"https://example-b.com/seo-api","domain":"example-b.com"}]},{"checked_at":"2026-07-16","serp_features":["ai_overview","people_also_ask"],"results":[{"position":1,"url":"https://example-c.com/seo-api","domain":"example-c.com"},{"position":2,"url":"https://example-d.com/seo-api","domain":"example-d.com"},{"position":7,"url":"https://www.agentseo.dev/docs/api-reference","domain":"agentseo.dev"}]}]}'
POST/page/cro-qa

Audit an SEO landing page for conversion readiness. Returns value-proposition, CTA, proof, objection-handling, friction, CTA alternatives, agent_workflow, and markdown_summary. Requests cost 2 credits and do not call a paid search API.

Parameters

NameTypeDescription
url stringLive page URL to fetch and inspect. Provide url, html, or markdown.
html stringRaw HTML for an unpublished or staging page.
markdown stringMarkdown page draft when HTML is not available.
conversion_goal enumsignup, trial, demo, purchase, contact_sales, subscribe, download, or learn_more.
page_type enumauto, homepage, landing_page, pricing, feature, blog_post, product, comparison_page, or docs.
keyword stringTarget keyword used to check hero/intent alignment.

Example

curl -X POST https://www.agentseo.dev/api/v1/page/cro-qa?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"target":"AgentSEO","keyword":"seo api","page_type":"landing_page","conversion_goal":"trial","traffic_source":"organic","audience":"technical marketers","markdown":"# SEO API for marketers\n\nStart free trial and run your first SEO workflow. AgentSEO helps technical marketers plan, QA, and ship SEO work with clear API outputs.\n\n## Why teams use it\n\nTrusted by marketers who need customer proof, pricing clarity, security details, implementation guidance, and support before they commit.\n\n[Start Free Trial](https://www.agentseo.dev/pricing)\n\n## FAQ\n\nPricing is transparent, setup is simple, and support is available when you need help."}'
POST/content/cannibalization

Detect pages that may be competing for the same keyword intent and recommend safe fixes. Returns page signals, conflicts, clusters, preferred URLs, remediation steps, agent_workflow, and markdown_summary. Requests cost 2 credits and do not call a paid SERP provider.

Parameters

NameTypeDescription
pages *arrayAt least two pages with url and title. Add primary_keyword, target_keywords, ranking_queries, page_type, canonical_url, indexable, clicks, impressions, avg_position, and backlinks for better recommendations.
target stringOptional target brand, domain, or product.
focus_keywords arrayOptional keywords to emphasize when matching page overlap.
sensitivity enumconservative, balanced, or aggressive. Default: balanced.

Example

curl -X POST https://www.agentseo.dev/api/v1/content/cannibalization?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"target":"AgentSEO","sensitivity":"balanced","focus_keywords":["seo api","best seo api"],"pages":[{"url":"https://www.agentseo.dev/docs/api-reference","title":"SEO API Reference","primary_keyword":"seo api","target_keywords":["seo api"],"ranking_queries":["seo api"],"page_type":"docs","clicks":80,"impressions":1200,"avg_position":6,"backlinks":12},{"url":"https://www.agentseo.dev/blog/seo-api-guide","title":"SEO API Guide for Marketers","primary_keyword":"seo api","target_keywords":["seo api","best seo api"],"ranking_queries":["seo api"],"page_type":"guide","clicks":10,"impressions":700,"avg_position":18,"backlinks":1}]}'
POST/ai-visibility/prompt-set

Build a stable AI visibility prompt set mapped to platforms, competitors, owned assets, citations, and weekly action routing. Returns prompt buckets, measurement schema, coverage, agent_workflow, and markdown_summary. Requests cost 2 credits and do not run live LLM queries or call a paid search API.

Parameters

NameTypeDescription
target *stringBrand, product, or domain being monitored.
category *stringMarket/category for the prompt set, for example SEO API.
topics *arrayTopic themes that should appear in category, implementation, citation, and asset-gap prompts.
platforms arraychatgpt, perplexity, google_ai, gemini, copilot, or claude.
owned_assets arrayOwned URLs with title, page_type, and topics. Used to map prompts back to pages the team can improve.
competitors arrayCompetitors to include in comparison prompts.
prompt_count integerNumber of prompts to return, 6-50. Default: 20.

Example

curl -X POST https://www.agentseo.dev/api/v1/ai-visibility/prompt-set?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"target":"AgentSEO","category":"SEO API","audience":"technical marketers","platforms":["chatgpt","perplexity","google_ai"],"competitors":["Semrush API","Ahrefs API"],"topics":["AI visibility monitoring","content QA","SEO workflow automation"],"product_terms":["content brief API","technical QA API"],"personas":["growth marketer","SEO agency owner"],"owned_assets":[{"url":"https://www.agentseo.dev/docs/api-reference","title":"AgentSEO API Reference","page_type":"docs","topics":["content QA","technical QA API","content brief API"]},{"url":"https://www.agentseo.dev/blog/how-to-measure-ai-visibility","title":"How to measure AI visibility","page_type":"blog_post","topics":["AI visibility monitoring"]}],"prompt_count":12,"cadence":"weekly"}'
POST/content/competitor-gap-matrix

Compare supplied own and competitor pages to find missing topics, weak coverage, format gaps, and buyer-stage gaps. Returns prioritized opportunities, a page-type-by-stage matrix, suggested titles, next endpoints, agent_workflow, and markdown_summary. Requests cost 3 credits and do not call a paid SERP provider.

Parameters

NameTypeDescription
competitors *arrayCompetitor objects with domain and pages. Each page needs url and title; keywords, ranking_queries, page_type, buyer_stage, traffic, volume, rank, and backlinks improve scoring.
own_pages arrayYour supplied pages for coverage comparison.
focus_topics arrayTopics to boost when scoring opportunities.
max_opportunities integerMaximum opportunities to return. Default: 30, max: 100.

Example

curl -X POST https://www.agentseo.dev/api/v1/content/competitor-gap-matrix?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"target":"AgentSEO","focus_topics":["seo api templates"],"own_pages":[{"url":"https://www.agentseo.dev/docs/api-reference","title":"AgentSEO API Reference","keywords":["seo api"],"page_type":"docs","buyer_stage":"implementation"}],"competitors":[{"domain":"competitor.example","pages":[{"url":"https://competitor.example/templates/seo-api-template","title":"SEO API Template Library","keywords":["seo api templates","seo workflow template"],"ranking_queries":["seo api templates"],"page_type":"template","buyer_stage":"implementation","estimated_traffic":500,"search_volume":900,"avg_position":4,"backlinks":8}]}],"max_opportunities":10}'
POST/content/programmatic-template

Plan safe programmatic SEO templates before building pages at scale. Returns readiness score, scale risk, launch decision, template sections, uniqueness rules, indexation gates, internal-link architecture, schema recommendations, launch plan, agent_workflow, and markdown_summary. Requests cost 2 credits and do not call a paid search API.

Parameters

NameTypeDescription
keyword_pattern *stringRepeating keyword pattern, for example AgentSEO [integration] integration.
url_pattern *stringRepeating URL pattern, for example /integrations/[integration]/.
data_sources *arrayData sources with name, type, freshness, and fields. First-party/product data produces safer scale recommendations than generic public data.
variables *arrayTemplate variables such as integration, city, category, product, persona, or term.
playbook enumtemplates, curation, conversions, comparisons, examples, locations, personas, integrations, glossary, translations, directory, profiles, or custom.
unique_fields arrayFields that create page-specific value and reduce thin-content risk.
sample_records arrayExample records from the data model for scoring template completeness.
publishing_cadence enumpilot, weekly_batch, monthly_batch, or bulk_import.

Example

curl -X POST https://www.agentseo.dev/api/v1/content/programmatic-template?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"target":"AgentSEO","playbook":"integrations","page_goal":"trial_signup","keyword_pattern":"AgentSEO [integration] integration","url_pattern":"/integrations/[integration]/","audience":"technical marketers","page_count_estimate":80,"data_sources":[{"name":"Product integration catalog","type":"first_party","freshness":"weekly","fields":["integration","setup_steps","use_cases","supported_triggers","pricing_note","limitations","sync_direction","auth_type"]}],"variables":["integration"],"unique_fields":["setup_steps","use_cases","supported_triggers","pricing_note","limitations","sync_direction","auth_type"],"sample_records":[{"integration":"Slack","setup_steps":"Connect workspace and choose alerts","use_cases":"Send SEO QA reports to channels","supported_triggers":"job.completed","pricing_note":"Available on Pro","sync_direction":"outbound alerts","auth_type":"OAuth"}],"competitors":["zapier.com","make.com"],"conversion_cta":"Start free trial","publishing_cadence":"pilot","include_schema":true,"include_internal_linking":true}'
POST/ai-overview/extract

Check whether a query is triggering an AI Overview and return both ai_overview_detected and overview_status, plus a sampled candidate audit, optional target-domain coverage, and an agent_workflow brief.

Parameters

NameTypeDescription
keyword *stringSearch query
location stringGeographic location
location_code integerOptional search location code for deterministic geo-targeting
language stringISO code (default: en)
target_domain stringOptional domain to check against the sampled candidate set (e.g. linkdoctor.io)

Example

curl -X POST https://www.agentseo.dev/api/v1/ai-overview/extract?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keyword":"how to fix a leak", "location":"Austin, TX", "location_code":1026201, "target_domain":"example.com"}'
POST/rank/track

Queue a rank tracking job for a specific keyword/URL and return an agent_workflow once the check completes.

Parameters

NameTypeDescription
keyword *stringTarget keyword
url *stringTarget URL
location stringLocation string
location_code integerOptional search location code for deterministic geo-targeting

Example

curl -X POST https://www.agentseo.dev/api/v1/rank/track?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keyword":"seo api", "url":"https://www.agentseo.dev", "location":"Austin, TX", "location_code":1026201}'
GET/rank/track

Get rank history for a keyword/URL pair, including agent_workflow summary for the current state.

Parameters

NameTypeDescription
keyword *stringTarget keyword
url *stringTarget URL

Example

curl "https://www.agentseo.dev/api/v1/rank/track?keyword=seo%20api&url=https%3A%2F%2Fwww.agentseo.dev" \
  -H "x-api-key: sk_live_..."
POST/local-visibility/track

Track local pack visibility across multiple keywords and locations and return an agent_workflow summary.

Parameters

NameTypeDescription
domain *stringTarget domain
keywords *arrayList of keywords (max 5)
locations *arrayList of locations (max 3)
location_codes arrayOptional search location codes aligned by index with locations
language stringISO code (default: en)

Example

curl -X POST https://www.agentseo.dev/api/v1/local-visibility/track?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"domain":"example.com", "keywords":["pizza"], "locations":["Austin, TX"], "location_codes":[1026201]}'
POST/opportunities/find

Find ranked-keyword opportunities for a domain or URL and return agent-ready priorities, evidence, recommended actions, next API calls, and a markdown summary. Base requests cost 3 credits; SERP competitor enrichment adds 2 credits; domain competitor discovery adds 2 credits.

Parameters

NameTypeDescription
target *stringDomain, subdomain, or URL to analyze (e.g. example.com or https://example.com/blog)
location stringTarget location (default: United States)
location_code integerOptional search location code for deterministic geo-targeting
language stringISO code (default: en)
keyword_limit integerHow many ranked keywords to inspect (10-250, default: 100)
limit integerHow many opportunities to return (1-25, default: 10)
seed_keywords arrayOptional keywords for SERP competitor enrichment; if omitted, AgentSEO can auto-select ranked keywords
include_serp_competitors booleanAdd SERP competitor domains for the selected keyword set (+2 credits)
include_competitor_discovery booleanAdd domain-level competitor gaps and overlap metrics (+2 credits)

Example

curl -X POST https://www.agentseo.dev/api/v1/opportunities/find?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"target":"example.com", "location":"United States", "keyword_limit":10, "limit":3, "include_serp_competitors":true, "include_competitor_discovery":true}'
POST/opportunities/brief

Turn one selected keyword/page opportunity into an implementation-ready brief with SERP intent, sections to add, questions to answer, schema recommendations, validation checklist, agent_workflow, and markdown_summary. Base requests cost 10 credits; competitor outline scraping adds 2 credits.

Parameters

NameTypeDescription
keyword *stringKeyword to analyze and brief
target stringTarget domain, brand, or site being optimized
page_url stringExisting page URL to inspect for current headings
location stringTarget location (default: United States)
location_code integerOptional search location code for deterministic geo-targeting
language stringISO code (default: en)
opportunity_type stringOptional hint such as quick_win, content_refresh, ai_overview_opportunity, featured_snippet_opportunity, commercial_intent_opportunity, lost_keyword_recovery, or competitor_gap
current_rank integerKnown current rank for priority shaping
include_competitor_outlines booleanScrape headings from top SERP competitors for outline context (+2 credits, default: true)

Example

curl -X POST https://www.agentseo.dev/api/v1/opportunities/brief?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keyword":"seo api", "target":"example.com", "page_url":"https://example.com/seo-api", "location":"United States", "opportunity_type":"commercial_intent_opportunity", "current_rank":8, "include_competitor_outlines":false}'

Supporting Primitives

POST/extract

Extract clean content (markdown/text/html) from any URL. Returns page metadata, structural headings, and agent_support for follow-up workflow selection.

Parameters

NameTypeDescription
url *stringTarget URL
format enummarkdown, text, html (default: markdown)
include_images booleanInclude image extraction (default: false)

Example

curl -X POST https://www.agentseo.dev/api/v1/extract \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url":"https://tcrn.ch/example"}'
POST/analyze/serp

Analyze SERP features (Local Pack, AI Overview, Shopping) for a keyword. Returns serp_opportunity so agents can infer intent, competition, and the right content format.

Parameters

NameTypeDescription
keyword *stringTarget keyword
location stringTarget location (default: US)
location_code integerOptional search location code for deterministic geo-targeting
device enumdesktop or mobile (default: desktop)
language stringISO code (default: en)

Example

curl -X POST https://www.agentseo.dev/api/v1/analyze/serp?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keyword":"plumbers near me", "location":"Austin, TX", "location_code":1026201, "device":"mobile"}'

Experimental Workflows

POST/llm-mentions/track

Track prompt-set visibility for a brand across sampled discovery surfaces. Returns mention_audit plus agent_workflow so agents can identify weak queries and decide whether to act or keep monitoring.

Parameters

NameTypeDescription
brand *stringBrand name
queries *arrayList of queries to test
platform enumreddit, twitter, all (default: all)
limit_per_query integerMax results per query (1-20, default: 8)

Example

curl -X POST https://www.agentseo.dev/api/v1/llm-mentions/track \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"brand":"AgentSEO", "queries":["best seo agents"]}'
POST/content-decay/detect

Identify content that is losing ranking momentum over time. Returns decay_audit plus agent_workflow so agents can judge urgency, likely cause, and the right next investigation.

Parameters

NameTypeDescription
url *stringPage URL to check
keyword *stringMain keyword
lookback_days integerDays to analyze (3-180, default: 30)
threshold numberDecay threshold % (default: 3)

Example

curl -X POST https://www.agentseo.dev/api/v1/content-decay/detect?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/blog/old-post", "keyword":"legacy keyword"}'
POST/keyword-cluster/build

Group keywords into intent-led clusters and return cluster_plan plus agent_workflow so agents can map cluster targets to the right page types before publishing.

Parameters

NameTypeDescription
keywords *arrayList of keywords (max 200)

Example

curl -X POST https://www.agentseo.dev/api/v1/keyword-cluster/build?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keywords":["best shoes", "running shoes", "cheap sneakers"]}'
POST/keyword-ideas/suggest

Expand one seed keyword into prioritized long-tail keyword ideas with search volume, CPC, competition, buyer stage, recommended page type, agent_workflow, and markdown_summary. Requests cost 4 credits and use one paid keyword suggestions request with SERP enrichment disabled.

Parameters

NameTypeDescription
keyword *stringSeed keyword or topic
location stringSearch market (default: United States)
location_code integerOptional provider location code. Wins over location when provided.
language stringLanguage code or name (default: en)
limit integerNumber of ideas to return (5-100, default: 25)
min_search_volume integerMinimum monthly search volume filter (default: 0)

Example

curl -X POST https://www.agentseo.dev/api/v1/keyword-ideas/suggest?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keyword":"seo api", "location":"United States", "language":"en", "limit":25, "min_search_volume":10}'
POST/keyword-metrics/overview

Score a supplied keyword list with search volume, CPC, competition, difficulty, buyer stage, recommended page type, opportunity score, agent_workflow, and markdown_summary. Requests cost 5 credits per 25 keywords, minimum 5, with SERP and clickstream enrichment disabled.

Parameters

NameTypeDescription
keywords *arrayKeyword list to score. Maximum 100 keywords.
location stringSearch market (default: United States)
location_code integerOptional provider location code. Wins over location when provided.
language stringLanguage code or name (default: en)
min_search_volume integerMinimum monthly search volume filter (default: 0)
sort_by enumpriority, search_volume, cpc, or difficulty (default: priority)

Example

curl -X POST https://www.agentseo.dev/api/v1/keyword-metrics/overview?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keywords":["seo api","best seo api","seo api pricing"], "location":"United States", "language":"en", "min_search_volume":10, "sort_by":"priority"}'
POST/domain/ranked-keywords

Find ranked keywords for a domain, subdomain, or URL and prioritize refresh opportunities with rank, page URL, search metrics, SERP features, movement, opportunity type, agent_workflow, and markdown_summary. Requests cost 5 credits per 100 requested rows, minimum 5, with clickstream enrichment disabled.

Parameters

NameTypeDescription
target *stringDomain, subdomain, or page URL to inspect.
location stringSearch market (default: United States)
location_code integerOptional provider location code. Wins over location when provided.
language stringLanguage code or name (default: en)
limit integerRows to request (10-250, default: 50)
min_search_volume integerMinimum monthly search volume filter (default: 0)
max_rank integerMaximum ranking position to include (1-100, default: 100)
sort_by enumopportunity, estimated_traffic, rank, search_volume, or cpc (default: opportunity)
include_lost booleanInclude lost rankings when available (default: false)

Example

curl -X POST https://www.agentseo.dev/api/v1/domain/ranked-keywords?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"target":"agentseo.dev", "location":"United States", "language":"en", "limit":25, "min_search_volume":10, "max_rank":50, "sort_by":"opportunity"}'
POST/domain/relevant-pages

Find organic traffic-carrying pages for a domain and route them into protect, refresh, expand, recover, or review actions with page metrics, opportunity score, agent_workflow, and markdown_summary. Requests cost 5 credits per 100 requested pages, minimum 5, with clickstream enrichment disabled.

Parameters

NameTypeDescription
target *stringDomain to inspect, without protocol or www when possible.
location stringSearch market (default: United States)
location_code integerOptional provider location code. Wins over location when provided.
language stringLanguage code or name (default: en)
limit integerPages to request (10-250, default: 50)
min_traffic integerMinimum estimated organic traffic filter (default: 0)
historical_serp_mode enumlive, lost, or all (default: live)
sort_by enumestimated_traffic, keyword_count, top3, or opportunity (default: estimated_traffic)

Example

curl -X POST https://www.agentseo.dev/api/v1/domain/relevant-pages?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"target":"agentseo.dev", "location":"United States", "language":"en", "limit":25, "min_traffic":0, "historical_serp_mode":"live", "sort_by":"estimated_traffic"}'
POST/domain/competitors

Discover search competitors for a domain and prioritize shared keyword overlap, traffic gaps, threat level, next actions, agent_workflow, and markdown_summary. Requests cost 5 credits per 100 requested competitors, minimum 5, with clickstream enrichment disabled.

Parameters

NameTypeDescription
target *stringDomain or URL to inspect. URLs are normalized to the domain.
location stringSearch market (default: United States)
location_code integerOptional provider location code. Wins over location when provided.
language stringLanguage code or name (default: en)
limit integerCompetitors to request (5-250, default: 25)
min_intersections integerMinimum shared keyword count filter (default: 0)
max_rank_group integerMaximum rank bucket considered for overlap (1-100, default: 20)
sort_by enumthreat, overlap, competitor_traffic, or traffic_gap (default: threat)

Example

curl -X POST https://www.agentseo.dev/api/v1/domain/competitors?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
              -d '{"target":"agentseo.dev", "location":"United States", "language":"en", "limit":25, "min_intersections":0, "max_rank_group":20, "sort_by":"threat"}'
POST/domain/intersection

Compare two domains at keyword level and prioritize shared deficits, current advantages, and target1-exclusive opportunities with rank gaps, traffic gaps, agent_workflow, and markdown_summary. Requests cost 5 credits per 100 requested keywords, minimum 5, with clickstream and extra SERP enrichment disabled.

Parameters

NameTypeDescription
target1 *stringFirst domain or URL. In shared mode this is the domain being compared against target2.
target2 *stringSecond domain or URL, usually the competitor selected from /domain/competitors.
location stringSearch market (default: United States)
location_code integerOptional provider location code. Wins over location when provided.
language stringLanguage code or name (default: en)
limit integerKeywords to request (5-250, default: 25)
intersections booleantrue returns shared keywords; false returns keywords where target1 ranks and target2 does not (default: true)
min_search_volume integerMinimum search volume filter (default: 0)
sort_by enumopportunity, search_volume, traffic_gap, rank_gap, or cpc (default: opportunity)

Example

curl -X POST https://www.agentseo.dev/api/v1/domain/intersection?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
              -d '{"target1":"hubspot.com", "target2":"salesforce.com", "location":"United States", "language":"en", "limit":25, "intersections":true, "min_search_volume":10, "sort_by":"opportunity"}'
POST/domain/traffic-estimate

Compare estimated organic, paid, featured-snippet, and local-pack traffic across multiple domains, subdomains, or URLs before spending deeper analysis credits. Returns footprint type, channel mix, opportunity score, agent_workflow, and markdown_summary. Requests cost 5 credits per 25 supplied targets, minimum 5.

Parameters

NameTypeDescription
targets *string[]Domains, subdomains, or absolute page URLs to estimate (1-100).
location stringSearch market (default: United States)
location_code integerOptional provider location code. Wins over location when provided.
language stringLanguage code or name (default: en)
include_paid booleanInclude paid-search traffic estimates (default: true)
include_featured_snippet booleanInclude featured-snippet traffic estimates (default: true)
include_local_pack booleanInclude local-pack traffic estimates (default: false)
sort_by enumorganic_traffic, total_traffic, paid_traffic, opportunity, or target (default: organic_traffic)

Example

curl -X POST https://www.agentseo.dev/api/v1/domain/traffic-estimate?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"targets":["hubspot.com","salesforce.com","zendesk.com"], "location":"United States", "language":"en", "include_paid":true, "include_featured_snippet":true, "include_local_pack":false, "sort_by":"organic_traffic"}'
POST/pages/intersection

Compare ranking pages to find shared page keywords or competitor-page keywords excluded from your pages. Returns search volume, page ranks, rank spread, traffic gap, intent, SERP features, priority, agent_workflow, and markdown_summary. Requests cost 5 credits per 100 requested keywords, minimum 5. Clickstream enrichment doubles the credit cost.

Parameters

NameTypeDescription
pages *string[]Absolute page URLs or wildcard URL patterns to compare. Maximum 5.
exclude_pages string[]Absolute page URLs or wildcard URL patterns to exclude, usually your own page group. Maximum 5.
location stringSearch market (default: United States)
item_types string[]organic, paid, featured_snippet, or local_pack (default: organic and featured_snippet)
limit integerKeywords to request, 5-100 (default: 25)
intersection_mode enumunion or intersect (default: union). Use intersect when all supplied pages must rank for the keyword.
include_serp_info booleanInclude SERP feature metadata for each keyword (default: false)
include_clickstream_data booleanInclude clickstream-normalized metrics. Doubles credit cost (default: false).
min_search_volume integerMinimum search volume filter (default: 0)
max_rank integerMaximum rank for the first supplied page, 1-100 (default: 30)
sort_by enumopportunity, search_volume, traffic_gap, rank, or cpc (default: opportunity)

Example

curl -X POST https://www.agentseo.dev/api/v1/pages/intersection?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"pages":["https://www.hubspot.com/products/crm/*","https://www.salesforce.com/crm/*"], "exclude_pages":["https://www.agentseo.dev/*"], "location":"United States", "limit":25, "intersection_mode":"union", "include_clickstream_data":false, "sort_by":"opportunity"}'
POST/social/listen

Find web discussion evidence for a topic and return insights plus agent_workflow. This is web-wide discovery for pain points and buying signals, not native platform monitoring.

Parameters

NameTypeDescription
query *stringTopic or keyword
platform enumreddit, twitter, all (default: all)
limit integerMax results (1-50, default: 10)

Example

curl -X POST https://www.agentseo.dev/api/v1/social/listen?sync=true \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"query":"agentic seo", "platform":"reddit"}'

System

GET/webhooks/endpoints

List the webhook endpoints registered for your workspace.

Example

curl https://www.agentseo.dev/api/v1/webhooks/endpoints \
  -H "x-api-key: sk_live_..."
POST/webhooks/endpoints

Create a signed webhook endpoint for async job delivery. The signing secret is returned once on create.

Parameters

NameTypeDescription
url *stringHTTPS endpoint that will receive webhook POSTs
events arrayAny of job.completed, job.failed, project.budget_warning, or project.budget_exceeded

Example

curl -X POST https://www.agentseo.dev/api/v1/webhooks/endpoints \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url":"https://hooks.example.com/agentseo","events":["job.completed","project.budget_warning","project.budget_exceeded"]}'
PATCH/webhooks/endpoints/{id}

Update a webhook endpoint in place. Use this to rotate target URLs, event subscriptions, descriptions, or to pause delivery with is_active=false.

Parameters

NameTypeDescription
id *stringWebhook endpoint ID
url stringNew HTTPS target URL
description stringOptional human-readable label
events arrayAny of job.completed, job.failed, project.budget_warning, or project.budget_exceeded
is_active booleanSet false to pause deliveries without deleting the endpoint

Example

curl -X PATCH https://www.agentseo.dev/api/v1/webhooks/endpoints/123e4567-e89b-12d3-a456-426614174000 \
  -H "x-api-key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"description":"Primary production hook","is_active":false}'
DELETE/webhooks/endpoints/{id}

Delete a webhook endpoint. This stops future deliveries to that target but does not remove historical delivery records.

Parameters

NameTypeDescription
id *stringWebhook endpoint ID

Example

curl -X DELETE https://www.agentseo.dev/api/v1/webhooks/endpoints/123e4567-e89b-12d3-a456-426614174000 \
  -H "x-api-key: sk_live_..."
GET/webhooks/deliveries

Inspect recent webhook delivery attempts, response codes, and failure reasons.

Parameters

NameTypeDescription
limit integerNumber of rows to return (default: 25, max: 100)
status stringFilter by pending, delivered, or failed
endpoint_id stringFilter to one webhook endpoint ID
project_id stringFilter deliveries for one project, including budget alerts
event_type stringFilter one event type such as project.budget_warning or job.completed

Example

curl https://www.agentseo.dev/api/v1/webhooks/deliveries?limit=25&project_id=client-alpha&event_type=project.budget_exceeded \
  -H "x-api-key: sk_live_..."
POST/webhooks/deliveries/{id}/retry

Retry a failed webhook delivery without re-running the underlying job.

Parameters

NameTypeDescription
id *stringWebhook delivery ID

Example

curl -X POST https://www.agentseo.dev/api/v1/webhooks/deliveries/123e4567-e89b-12d3-a456-426614174000/retry \
  -H "x-api-key: sk_live_..."
GET/jobs/{id}

Check the status of an async job. Returns public progress, attempts, result, error, and attribution context.

Parameters

NameTypeDescription
id *stringJob ID from 202 response

Example

curl https://www.agentseo.dev/api/v1/jobs/123e4567-e89b-12d3-a456-426614174000 \
  -H "x-api-key: sk_live_..."
GET/jobs/{id}/events

Open an SSE stream for live job updates. Emits events such as job.open, job.status, job.done, and job.failed.

Parameters

NameTypeDescription
id *stringJob ID from a queued async request

Example

curl -N https://www.agentseo.dev/api/v1/jobs/123e4567-e89b-12d3-a456-426614174000/events \
  -H "x-api-key: sk_live_..." \
  -H "Accept: text/event-stream"