Skip to main content
If you use OpenRush through an AI agent, you do not need to memorize these tool names. Ask normal marketing questions and let your agent choose the right tool. This page is for developers who call the REST API directly. Tool endpoints require authentication. Send Authorization: Bearer <key> or X-API-Key: <key>. Every successful tool response is an Open Fact Envelope. The data shape changes per tool, but the top-level envelope stays the same.

Plain-language map

Inspect domain

POST /v1/tools/inspect_domain Compact factual snapshot for one domain. Use this as the starting map for top keywords, top pages, estimated traffic, dominant intents, and likely competitors. Credit cost: 9 Request body: Example:
data includes domain, location, summary, top_keywords, top_pages, likely_competitors, and intent_mix. inspect_domain uses the organic search index only. It does not call the backlink index or include link-authority metrics. When backlink tools are enabled, next_actions can suggest inspect_backlinks and an executable compare_backlink_gap call seeded with the likely competitors returned here.

Discover competitors

POST /v1/tools/discover_competitors Find organic competitors by domain overlap or by seed keywords. Credit cost: 3 Request body: Provide domain or seed_keywords. Domain mode is cheap and broad. Seed keyword mode works better for new or sparsely indexed sites.
data includes domain, location, and competitors. In domain mode, a successful result can suggest compare_backlink_gap with the discovered competitors already filled in, to find referring domains that link to rivals but not you.

Research keywords

POST /v1/tools/research_keywords Expand a seed term into a ranked demand list. Credit cost: 3 Request body:
data includes seed, location, mode, and keywords.

Compare keyword coverage

POST /v1/tools/compare_keyword_coverage Find keyword gaps where competitors rank and the target does not, plus keywords where the target is losing. Credit cost: 12 Request body:
data includes domain, location, competitors, gaps, losing, and intent_clusters. POST /v1/tools/inspect_backlinks Inspect a domain’s link profile from the backlink index, sliced by view so you pay only for the slices you ask for (each view is one vendor call). This is a lean primitive, not a bundle. Credit cost: 9 (one flat price whatever views you request) Request body:
The views:
  • authority: domain_rank (0-1000), referring-domain and backlink totals, dofollow_ratio, spam score. The cheap “how established is this site” call.
  • referring_domains: a deep, paginated list of domains that link to the target. Its row-level rank is page-level, not true domain authority. For a ranked, authority-filtered competitor gap, use compare_backlink_gap.
  • anchors: anchor-text distribution.
  • backlinks: individual links (from-url, anchor, dofollow, first_seen, lost_date). Use status=lost for reclaim, the full list for disavow. Set domain_from to one source domain to see exactly where and how it links to the target in a single call — the drill-down after a compare_backlink_gap row.
Facts use backlinks.domain_authority, backlinks.referring_domain, backlinks.anchor, and backlinks.backlink types with backlink_index provenance. For a competitor link gap, do not page these lists and union them yourself — call compare_backlink_gap, which runs that whole join server-side. POST /v1/tools/compare_backlink_gap The backlink gap (a.k.a. link intersect), computed server-side in one call: the referring domains that link to several of a client’s competitors, ranked by how many competitors link them then by true authority, spam- and authority-filtered, with the ones the client already earned flagged. This replaces the old hand-run recipe — pull each competitor’s referring domains, union thousands of rows, dedupe against the client, re-enrich for true authority, filter, sort — all of which used to run in the calling agent’s context. Here it is one call and a compact, report-ready result. Credit cost: 40 Request body:
How it works: ranks the competitors by true authority, fans out referring-domain pulls to the strongest of them (fan-out and per-competitor depth are chosen internally; the top ones recover essentially the full intersect), unions and counts the overlap, attaches true authority and spam through an internal bulk engine, drops spam and low-authority rows, flags each row earned or gap, and sorts by (competitor count desc, authority desc). data includes domain, competitors (the set the pulls fanned out to), filters, gap (the top limit rows), and summary — the funnel counts (union_referring_domains, candidates, after_filter, gap_count, earned_count, dropped_spam, dropped_low_authority) plus per-competitor coverage. Facts use the backlinks.link_gap type (domain, links_to, competitor_count, earned, domain_rank, spam_score) with backlink_index provenance. Read coverage.scope_note for what was and wasn’t covered, and fetch the full ranked candidate set from resources with export_dataset — don’t re-run per-competitor pulls to get the long tail. A short gap list is a good result: if the client already owns the strong domains, that shows up as earned=true, not as padding.
These endpoints are independent. inspect_backlinks makes only profile calls. compare_backlink_gap computes the whole intersect server-side, but no search, audit, or owned-data endpoint invokes either one automatically.

Inspect SERP

POST /v1/tools/inspect_serp Fetch a live SERP snapshot for one query. Credit cost: 2 Request body:
data includes query, location, fetched_at, item_types_present, organic, optional ai_overview, paid, local_pack, optional featured_snippet, people_also_ask, and related_searches.

Inspect search visibility

POST /v1/tools/inspect_search_visibility Check where a domain ranks across a keyword set. Credit cost: 6 Request body: auto tries the index first and falls back to live SERPs when the target is underindexed. index is fast and cheap. live reflects today’s Google.
data includes domain, location, fetched_at, positions, and summary.

Inspect AI visibility

POST /v1/tools/inspect_ai_visibility How often a domain is cited as a source in AI answers, alone or against named competitor domains. Credit cost: 20 Request body:
Coverage is Google AI Overview only. It does not cover ChatGPT, Claude, Gemini, Perplexity, or CoPilot, and the number is “your domain cited as a source,” not “how often AI talks about you.” Call it solo (no competitors) to also get data.sample_answers — real questions where the domain is cited, with the sources cited alongside it. With competitors you get the ranked comparison and share-of-citations gap instead. A domain with no AI citations returns a brand_mentions fact with mentions: 0 plus a next_actions pointer to discover_ai_citations. data includes domain, location, platform, competitors, mentions, and, in the solo case, sample_answers.

Discover AI citations

POST /v1/tools/discover_ai_citations Which domains AI cites across a category — the map of where to earn a mention. Credit cost: 22 Request body: *Provide topic or domain; one is required. If both are given, topic wins. Prefer topic whenever you know the brand’s real category.
Coverage is Google AI Overview only. When the category is derived from a thin domain that barely ranks, data.category_confidence returns derived_weak and a next_actions entry asks you to re-run with an explicit topic. Results are domain-anchored (which domains are cited as sources), never brand-name matched. data includes topic, source, location, platform, citation_map, low_signal, and category_confidence.

Audit site

POST /v1/tools/audit_site Run a fast technical and content health audit over sampled pages. Credit cost: 9 Request body:
data includes domain, discovery_source, pages_discovered, pages_audited, pages_excluded, fetch_failures, render_warning, templates_sampled, onpage_score, issues_summary, excluded_summary, page_class_summary, worst_page, recommendations, issue_clusters, and compact pages. Scope: the audit reads raw HTML. It does not execute JavaScript or measure Core Web Vitals.

Inspect keyword

POST /v1/tools/inspect_keyword Drill into one keyword. Credit cost: 5 Request body:
data includes keyword, location, monthly_volume, cpc_usd, competition_level, intent, trend, serp_top, and serp_features.

Inspect page

POST /v1/tools/inspect_page Drill into one exact URL. Credit cost: 3 Request body:
data includes url, location, organic_keywords, estimated_organic_traffic_per_month, and top_keywords.

Export dataset

POST /v1/tools/export_dataset Fetch a full dataset by URI from a previous response resources entry. Credit cost: 1 Request body:
data includes uri, items, available, and optional note.

Owned data (Search Console & Analytics)

These tools read a site you own through a connected Google property — Search Console for search performance, Google Analytics for website traffic. They appear only when owned data is enabled for your account, so check /v1/capabilities first. See Connections to connect a property.

Get search performance

POST /v1/tools/get_search_performance Your measured Search Console performance: real clicks, impressions, CTR, and impression-weighted position. This is Google’s own data, not an estimate. Credit cost: 2 Request body:
data includes website_id, domain, search_type, period, date_range, compare_to, data_state, group_by, summary, rows, and notes. If the account has several connected websites, the call returns a website_required error listing safe options. If nothing is connected it returns connection_required or binding_required. See Errors.

Get website analytics

POST /v1/tools/get_website_analytics Your measured Google Analytics traffic: real sessions, users, new users, engaged sessions, page views, and engagement time. This is Google’s own data, not an estimate. Every reported ratio (engagement rate, average engagement time, views per session) is recomputed from the base counts. Credit cost: 2 Request body:
data includes website_id, domain, report, period, date_range, compare_to, data_state, summary, and — for a grouped report — group_by and rows. If the account has several connected websites, the call returns a website_required error listing safe options. If nothing is connected it returns connection_required or binding_required. See Errors.

List websites

GET /v1/me/websites List the websites on the account and each one’s connection state, per source. This is exposed to agents as the list_websites tool; over the REST API it is the account endpoint below. Free. Credit cost: 0
Returns websites, each with website_id, name, primary_domain, is_default, and connections (per-source state such as {"gsc":"connected","website_analytics":"connected"}). An account with nothing connected returns an empty list, which agents surface as connection_required.