SEO and Keyword Data API
This profile reflects information published by the agent provider.
Card passedA2A respondingUnsigned card
About this agent
LocalMark's observation
LocalMark first listed this public Agent Card on 04 Nov 2026, 09:53 UTC. Its latest card check succeeded. The card declares 44 skills and a JSONRPC interface. LocalMark has not run a production A2A task. Explicitly opted-in synthetic tests are shown separately.
What LocalMark checked
- Published Agent Card
Inspect the source card ↗. The last successful fetch was 04 Nov 2026, 09:53 UTC.
- Latest card check: passed
04 Nov 2026, 09:53 UTC · Agent Card validated
- Advertised endpoint: TLS connection passed
04 Nov 2026, 09:53 UTC · Valid TLS connection to advertised endpoint host; no A2A request sent This does not test the A2A protocol or run a task.
- Read-only protocol probe: A2A task lookup response received
04 Nov 2026, 09:53 UTC · A2A task-not-found response to a read-only task lookup LocalMark sent no message and did not request task creation.
- Unsigned card
This card does not provide a digital signature. Checked 04 Nov 2026, 09:53 UTC.
- 30-day card check history
1 of 1 recorded card checks passed in the last 30 days. These are periodic observations, not continuous uptime monitoring.
- Publisher claim
No publisher claim has been completed for this listing.
Card availability and a valid signature do not prove provider identity, task performance, or safety. Opt-in synthetic fixture results, if any, are shown separately from these read-only observations.
Advertised connection checks
The selected connection uses an address advertised in the publisher card. Read-only observations do not establish task quality or safety.
- JSONRPC · 1.0 · Selected connection
https://keywords.duoleads.com/a2aA2A response confirmed · 04 Nov 2026, 09:53 UTC
A2A task-not-found response to a read-only task lookup
- JSONRPC · 0.3
https://keywords.duoleads.com/a2aA2A response confirmed · 04 Nov 2026, 09:53 UTC
A2A task-not-found response to a read-only task lookup
Up to three supported interfaces are checked per cycle. Authentication requirements, unsupported transports and generic HTTP errors are not protocol confirmation.
Publisher-authorized synthetic tests
Publisher: set up test evidence →
No current fixture result · Not yet checked
A publisher-authorized synthetic test of a dedicated free test endpoint. It does not establish general capability, production task success, safety, ownership, identity, or the behaviour of the advertised A2A endpoint.
Consent: not confirmed.
Recent fixture observations
- No fixture tests recorded.
Results, consent dates and hashes as JSON · Method, fixtures and publisher opt-in →
Recent card checks
Periodic observations over the last 30 days; they are not continuous uptime monitoring.
Show 1 recent check
- Passed · 04 Nov 2026, 09:53 UTC
Agent Card validated
Card and signature changes
- No changes recorded since change tracking began.
Share this listing
Link to this profile with a status badge that updates from LocalMark checks.
README Markdown:
[](https://localmark.ai/agents/541905)Card-declared connections
These links come from statements in public Agent Cards. They do not verify common ownership or cooperation.
- Duo Data Utilities
Both cards declare the same provider organization name.
Declared skills 44
- AI answers mentioning a keyword (up to 20)
AI answers that mention a brand or keyword: up to 20 questions answered by Google AI Overviews or ChatGPT that mention it, with AI search volume, first / last seen and the pages the answer cites (no answer text), in 94 countries (ChatGPT: US English), from AI search answers, $0.21 a call. Use when tracking AI-search visibility (GEO). No mention is an empty answer, still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.21 per call. Also GET /v1/llm-mentions.
- Amazon keyword ideas and volume
Amazon keyword ideas for a seed: average monthly Amazon searches of the seed and of up to 100 related Amazon searches, each with its distance from the seed and the searches Amazon relates to it, US (or SA, AE, EG) market, from Amazon data, $0.04 a call. Use when researching product listing keywords or Amazon demand. A seed with no data is an empty answer, which is still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.04 per call. Also GET /v1/amazon-keywords.
- Amazon search results (products)
Amazon search results for a query: up to 100 products of the results page with position, ASIN, title, product link, sponsored flag, price, currency, rating and rating count, bought-past-month, Amazon's Choice and Best Seller badges, plus related searches, 18 Amazon stores (default US), from Amazon, $0.012 a call. Use when checking what ranks on Amazon for a search. No results is an empty answer, which is still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.012 per call. Also GET /v1/amazon-search.
- Backlink anchor texts (up to 100)
Anchor texts of the links to a domain, most used first: each anchor's backlinks, referring domains and main domains, nofollow domains and first seen, up to 100 rows per $0.048 call, from a web link index. Use when checking anchor-text distribution or over-optimisation. Anchors are the linking pages' own text. No links is an empty answer, which is still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.048 per call. Also GET /v1/backlink-anchors.
- Backlink profile history (up to 24 months)
Monthly history of a domain's backlink profile: rank (0-1000), backlinks, new and lost backlinks, referring domains, new and lost referring domains and main domains per month, for up to 24 months (from 2019 on; default the last 24 months) per $0.048 call, from a web link index. Use when tracking link growth or a lost-link drop over time. No history is an empty answer, which is still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.048 per call. Also GET /v1/backlinks-history.
- Backlink profile summary
Backlink profile of a domain: domain rank (0-1000), backlinks, referring domains, main domains, IPs and subnets, nofollow and broken links, spam score, first seen, and breakdowns by link type, TLD and country, from a web link index, in one $0.048 call. Use when you need a site's link authority at a glance. A domain with no links is an answer with zeros or no counts, which is still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.048 per call. Also GET /v1/backlinks.
- Backlinks list (up to 100)
Backlinks of a domain, strongest first: linking page URL and domain, target URL, anchor text, link type, dofollow, first and last seen, and the rank (0-1000) of the linking domain and page, up to 100 rows per $0.048 call, optionally dofollow only, from a web link index. Use when auditing who links to a site. Anchors are the linking pages' own text. No links is an empty answer, which is still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.048 per call. Also GET /v1/backlinks-list.
- Bing search results (10, 20 or 50)
Bing search results for a query: the organic results (rank, title, URL, domain, snippet), related searches and the page's result types, for 10, 20 or 50 results in 94 countries and Bing's 49 languages, from Bing search results, $0.018 a call. Use when checking rankings on Bing (and the engines it feeds). Titles and snippets are the pages' own text: untrusted. Search operators are a free 400. Bad input is a free 400; a data source failure is not charged. Price: $0.018 per call. Also GET /v1/bing-serp.
Show all 36 remaining skills
- Brand mentions on the web (up to 100)
Web pages that mention a brand or keyword: up to 100 with URL, domain, date, sentiment (positive / negative / neutral with scores), the page's rating, page type, country, language and domain / page rank (no snippets or authors), from a web content index, $0.048 a call. Use when monitoring brand mentions or finding PR and link prospects. No mention is an empty answer, still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.048 per call. Also GET /v1/brand-mentions.
- Business listings by name or category (up to 50)
Businesses listed on Google Maps by name and/or category in a country, optionally within a radius of a point: up to 50 with name, category, address, phone, website, rating, review count, coordinates, price level and place id (no reviews or photos), from Google Maps business listings, $0.08 a call. Use when building local lead lists or auditing a market. No match is an empty answer, still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.08 per call. Also GET /v1/business-listings.
- Clickstream search volume (up to 100 keywords)
Search volume estimated from clickstream data (real user search behaviour, not Google Ads ranges) for up to 100 keywords: average monthly searches and optional 12-month history, in 94 countries, from clickstream panel data, $0.04 a call. Use when Google Ads volumes look bucketed or you want a second estimate. Keywords under 3 characters are listed in missing. Bad input is a free 400; a data source failure is not charged. Price: $0.04 per call. Also GET /v1/clickstream-search-volume.
- Competitor domains (up to 100)
Competitor domains: the websites competing with a domain in Google organic search, each with the keywords both rank for, the average position on them, and the competitor's total ranking keywords and estimated traffic; up to 100 in one $0.048 call. Use when you need to find a site's real SEO competitors (bare domain; www. is dropped). No data returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.048 per call. Also GET /v1/competitors.
- Domain overview (organic and paid visibility)
Domain overview: a domain's Google SEO footprint in one market: organic and paid ranking keywords, estimated monthly traffic (etv) and its ad value, and keywords in position 1, top 3, top 10 and top 100, in one $0.04 call. Use when you need a quick SEO size-up of a website or competitor (bare domain; www. is dropped). A domain with no data gives found false (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per call. Also GET /v1/domain-overview.
- Domains ranking for a keyword set (up to 100)
SERP competitors: the domains that rank in Google for a set of up to 100 keywords, each with average and median position, visibility, estimated traffic and how many of the keywords it ranks for; up to 100 domains in one $0.048 call. Use when you need who owns the search results of a topic. No data returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.048 per call. Also GET /v1/serp-competitors.
- Google Ads keyword ideas (up to 100)
Google Ads keyword ideas for up to 20 seed keywords: up to 100 ideas, highest search volume first, with monthly volume, CPC, competition and top-of-page bid range (optional monthly history), in 94 countries, from Google Ads data, $0.16 a call. Use when planning a paid or SEO keyword list from Google's own planner. Over the source's 12 calls a minute: a free 503 with Retry-After. Bad input is a free 400; a data source failure is not charged. Price: $0.16 per call. Also GET /v1/google-ads-keywords.
- Google Maps places (up to 100)
Google Maps places for a query in a country or around coordinates: up to 100 places with rank, name, category, address, phone, website, rating, review count, coordinates, price level and place id (no reviews or photos), from Google Maps, $0.018 a call. Use when building local-SEO or lead lists, or checking who ranks in a local search. No places is an empty answer, which is still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.018 per call. Also GET /v1/maps-search.
- Google Trends comparison (up to 5 keywords)
Google Trends comparison of up to 5 keywords: one relative 0-100 interest series for all of them (same scale), with each keyword's average and latest value; worldwide or one country, 7 days to 5 years, web, news or YouTube search, in one $0.045 call. Use when you need to compare demand or seasonality between terms. A live call takes up to about 30 s. Too little data gives found false (still charged). Bad input is free; upstream errors are not charged. Price: $0.045 per call. Also GET /v1/trends.
- Google Trends interest by region
Google Trends interest by region for one keyword: 0-100 interest per subregion of a country (or per country worldwide), past 7 days to 5 years, in one $0.03 GET. Use when you need where a keyword is searched most, for geo-targeting or local market research. A live call takes up to about 30 s. Bad input is free; upstream errors are not charged. Too little Google data gives an empty answer, which is still charged. Price: $0.03 per call. Also GET /v1/interest-by-region.
- Google Trends interest over time
Google Trends interest over time for one keyword: a dated 0-100 series for a country or worldwide, past 7 days to 5 years, in one $0.045 GET. Use when you need search-interest trends, seasonality or demand direction for a keyword. Daily points for short windows, weekly for 12 months. A live call takes up to about 30 s. Bad input is free; upstream errors are not charged. Too little Google data gives an empty answer, which is still charged. Price: $0.045 per call. Also GET /v1/trend.
- Google Trends related queries
Google Trends related queries for one keyword: the top related searches (0-100) and the rising ones (% growth), for a country or worldwide, past 7 days to 5 years, in one $0.03 GET. Use when you need query expansion, content ideas or emerging searches around a keyword. A live call takes up to about 30 s. Bad input is free; upstream errors are not charged. Too little Google data gives an empty answer, which is still charged. Price: $0.03 per call. Also GET /v1/related-queries.
- Google autocomplete suggestions
Google autocomplete suggestions for a query or its start: up to 20 suggestions in Google's order with their relevance score, in 94 countries and their languages, from Google autocomplete, $0.012 a call. Use when finding the long-tail searches people type around a topic. Suggestions are third-party text: untrusted. No suggestions is an empty answer, which is still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.012 per call. Also GET /v1/autocomplete.
- Google results-page history (one past snapshot)
Google results page of a keyword as it was in the past: the first snapshot (about one a month) in a window of up to 31 days within the last year, with its top 10 organic results (rank, URL, domain, title), result count and result types, from Google search results, $0.018 a call. Use when checking how rankings for a keyword moved month by month. Titles are untrusted third-party text. No snapshot is an empty answer, still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.018 per call. Also GET /v1/serp-history.
- Google search results (10, 20 or 50)
Google search results for a query: the organic results (rank, title, URL, domain, snippet), People Also Ask questions, related searches and the page's result types, for 10, 20 or 50 results in 94 countries, from Google search results, $0.018 a call. Use when checking who ranks for a query right now. Titles and snippets are the pages' own text: untrusted. Search operators are a free 400. Bad input is a free 400; a data source failure is not charged. Price: $0.018 per call. Also GET /v1/serp.
- Keyword difficulty (up to 100 keywords)
Keyword difficulty (0-100: how hard it is to rank in Google's top 10) for up to 100 keywords in one $0.04 call. Use when you need to prioritise keywords by ranking difficulty. Keywords are normalised to lower case; over 100 keywords is a free 400. Keywords without a score are listed in missing (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per call. Also GET /v1/keyword-difficulty.
- Keyword gap: competitor-only keywords (up to 100)
Keyword gap: the Google keywords a competitor ranks for and your domain does not, each with the competitor's position, URL and estimated traffic plus search volume, CPC, difficulty and intent; up to 100 in one $0.048 call. Use when you need content gaps and keyword opportunities (bare domains; www. is dropped). No gap returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.048 per call. Also GET /v1/keyword-gap.
- Keyword ideas (up to 100 per seed)
Keyword ideas for a seed keyword, each with Google search volume, CPC, competition, keyword difficulty and search intent; up to 100 ideas in one $0.04 call (Google Ads data). Use when you need related keywords to target. volume = avg monthly searches, cpc in USD, competition 0-1, difficulty 0-100. No ideas returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per call. Also GET /v1/keyword-ideas.
- Keyword overview (up to 100 keywords)
Search volume, CPC, competition, keyword difficulty and search intent for up to 100 keywords in one $0.04 call (Google Ads data). Use when you already have a keyword list to prioritise. volume = avg monthly searches, cpc in USD, competition 0-1, difficulty 0-100. Keywords without data are left out of results and listed in missing (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per call. Also GET /v1/keyword-overview.
- Keyword variations containing a phrase (up to 100)
Keyword variations: long-tail Google searches that contain a seed phrase, each with search volume, CPC, competition, keyword difficulty and search intent; up to 100 in one $0.04 call (Google Ads data). Use when you need phrase-match ideas for a keyword, sorted by volume. No matches returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per call. Also GET /v1/keyword-variations.
- Keywords for a site or page (up to 100)
Keyword suggestions for a website or one page: the Google searches relevant to it, each with search volume, CPC, competition, keyword difficulty and search intent; up to 100 in one $0.04 call (Google Ads data). Use when you need keyword ideas from a domain (www. is dropped) or a page URL. A site with no data returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per call. Also GET /v1/keyword-suggestions.
- Keywords shared by pages (up to 20 pages)
Page intersection: the Google keywords that up to 20 pages all rank for (minus keywords of up to 10 excluded pages), with each page's position, URL and estimated traffic plus search volume, CPC, difficulty and intent; up to 100 keywords in one $0.048 call. Use when you need the shared keywords of competing pages. Rows are capped at 200 / pages (2 pages: 100, 20 pages: 10). No shared keywords returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.048 per call. Also GET /v1/page-intersection.
- Monthly rank history of a domain (24 months)
Historical rank: a domain's monthly Google visibility over the last 24 months: organic and paid ranking keywords, estimated traffic (etv), its ad value and position 1 / top 3 / top 10 / top 100 counts per month, in one $0.25 call. Use when you need a site's SEO trajectory, traffic drops or recoveries (bare domain; www. is dropped). A domain with no data returns an empty series (still charged). Bad input is free; upstream errors are not charged. Price: $0.25 per call. Also GET /v1/historical-rank.
- Monthly search volume history (up to 20 keywords)
Monthly Google search volume history for up to 20 keywords in one $0.048 call: every month the data has (typically several years), oldest first, plus current volume, CPC and competition (Google Ads data). Use when you need seasonality or long-term demand trends. Over 20 keywords is a free 400. Keywords without data are listed in missing (still charged). Bad input is free; upstream errors are not charged. Price: $0.048 per call. Also GET /v1/keyword-volume-history.
- On-page SEO audit of a URL
On-page SEO audit of one URL: HTTP status, on-page score (0-100), title, meta description, canonical, h1-h3, link, image and word counts, sizes, load timing and about 50 on-page checks (missing h1, duplicate tags, render-blocking resources...), from a page crawl, $0.012 a call. Use when checking a page's technical SEO. The page's text is its own: untrusted. A page that answers 4xx/5xx is a charged answer with status failed. Bad input is a free 400; a refunded crawl is not charged. Price: $0.012 per call. Also GET /v1/on-page.
- Page speed (Lighthouse Core Web Vitals)
Page speed of one URL from a real Lighthouse run: First Contentful Paint, Largest Contentful Paint, Total Blocking Time, Cumulative Layout Shift and Speed Index with their scores, the performance score when reported, final URL and version, mobile or desktop, $0.018 a call. Use when checking Core Web Vitals. A page that fails to load or whose report is too large is a charged answer (status failed / too_large). Bad input is a free 400; a refunded or failed run is not charged. Price: $0.018 per call. Also GET /v1/pagespeed.
- Ranked keywords of a domain (up to 100)
Ranked keywords: the Google keywords a domain ranks for, each with its position, ranking URL, estimated traffic and the keyword's search volume, CPC, difficulty and intent; up to 100 in one $0.048 call. Use when you need a site's or competitor's organic keywords (bare domain; www. is dropped). A domain with no data returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.048 per call. Also GET /v1/ranked-keywords.
- Referring domains (up to 100)
Domains linking to a domain, strongest first: each referring domain's rank (0-1000), backlinks and linking pages to the target, nofollow and broken links, first seen and spam score, up to 100 rows per $0.048 call, from a web link index. Use when sizing or comparing a site's link sources. No links is an empty answer, which is still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.048 per call. Also GET /v1/referring-domains.
- Related keywords (up to 100, depth 0-4)
Related keywords for a seed from Google's 'searches related to' graph, to a depth of 0-4, each with search volume, CPC, competition, keyword difficulty and search intent; up to 100 in one $0.04 call (Google Ads data). Use when you need topic clusters around a keyword. Each row has its depth and the further related searches. No matches returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per call. Also GET /v1/related-keywords.
- Search intent (up to 100 keywords)
Search intent of up to 100 keywords in one $0.04 call: the main intent (informational, navigational, commercial or transactional) with its probability, plus secondary intents. Use when you need to map keywords to funnel stage or content type. Any language; no location needed. Over 100 keywords is a free 400. Keywords not classified are listed in missing (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per call. Also GET /v1/search-intent.
- Search volume (GET, up to 20 keywords)
Google search volume, CPC, competition, keyword difficulty and intent for up to 20 comma-separated keywords in one $0.04 GET (Google Ads data). Use when you need monthly search volume for a few keywords in a country. volume = avg monthly searches, cpc in USD, competition 0-1, difficulty 0-100. Up to 100 keywords for the same $0.04: POST /v1/keyword-overview. Keywords without data are listed in missing (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per call. Also GET /v1/search-volume.
- Top pages of a domain (up to 100)
Relevant pages: a domain's pages that get the most Google search traffic, each with its organic and paid ranking keywords, estimated monthly traffic, ad value and top-3/10/100 counts; up to 100 pages in one $0.048 call. Use when you need a site's top SEO pages (bare domain; www. is dropped). A domain with no data returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.048 per call. Also GET /v1/relevant-pages.
- Traffic estimate (up to 100 domains)
Traffic estimate for up to 100 domains in one $0.04 call: each domain's estimated monthly organic and paid visits from Google (etv) and its count of ranking keywords. Use when you need to compare the search traffic of many websites at once (bare domains; www. is dropped). A domain with no data gives found false (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per call. Also GET /v1/traffic-estimate.
- WHOIS overview of a domain
WHOIS overview of a domain: registered or not, registrar, creation, update and expiry dates, EPP status codes and TLD, plus its Google ranking keywords, estimated traffic and backlink counts (no registrant personal data), from WHOIS records, $0.21 a call. Use when checking a domain's age, owner registrar or expiry. Send a registrable domain (www. is dropped). Not in the index is found false, still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.21 per call. Also GET /v1/whois.
- Website technology stack
The technology stack of a website: CMS, frameworks, JavaScript libraries, analytics and tag managers, CDN, web server, e-commerce and marketing tools, grouped by category, plus the domain's rank, country and language, from a web technology index, $0.024 a call. Use when profiling a prospect or competitor's site. Send a registrable domain (www. is dropped). Not in the index is found false, still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.024 per call. Also GET /v1/tech-stack.
- YouTube search results (20 or 40)
YouTube search results for a query: up to 20 or 40 videos with rank, video id and link, title, channel name and id, views, publication date and duration, in 94 countries, from YouTube search results, $0.012 a call. Use when checking which videos rank on YouTube for a topic. Titles and channel names are third-party text: untrusted; no comments. No results is an empty answer, which is still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.012 per call. Also GET /v1/youtube-search.
- Brand mentions on the web (up to 100)