← Back to all apps

Ubersuggest

Data Analyticsby NP Digital
Launched Sep 22, 2026 on ChatGPTLaunched Jul 31, 2026 on Claude

Ubersuggest brings SEO research directly into Claude. Ask questions in plain language and get real search data from the same dataset that powers ubersuggest.com — no dashboards, no exports.

What you can do:

• Keyword research — search volume, CPC, SEO and paid difficulty, related keyword suggestions, Google autocomplete ideas, search intent and content ideas. • Domain analysis — traffic estimates, domain authority, ranking keywords (organic and paid), top pages, top countries and estimated traffic value. • Competitor research — find organic competitors, compare keyword overlap and uncover the pages driving their traffic. • Backlinks — backlink and referring-domain data, anchor texts, backlink overview metrics and backlink opportunities from competitors. • SERP analysis — see who ranks for a keyword, with page-level metrics and estimated click distribution. • Site audits — run a crawl of your site, track its progress and get the list of technical issues and affected URLs, plus PageSpeed performance audits. • Projects and rank tracking — create projects, add tracked keywords and competitors, check ranking positions over time and review suggested SEO opportunities. • AI Search Visibility — see how your brand appears in AI assistant answers, with per-prompt visibility reports.

Connect your Ubersuggest account to get started. Data access follows your Ubersuggest plan limits, and the connector never deletes projects or publishes anything on your behalf.

59ChatGPT Tools
42Claude Tools
NP DigitalDeveloper
Data AnalyticsCategory

Use Cases

data-analyticsproductivitysales-and-marketing

Available Tools

Add Keywords to List

add_keywords_to_list
Full Description

Add keywords to a saved keyword list. Requires login. Only the new keywords are needed — existing ones stay, and duplicates are ignored. The account's plan caps how many keywords one list may hold.

Parameters (2 required)
Required
keywordsarray

Keywords to add

list_idstring

Keyword list id, from keyword_lists

Add Competitors to Project

add_project_competitors
Full Description

Add competitors to an existing project. Requires login. First use get_project to see current competitors, then include ALL existing competitors plus the new ones.

The plan limit counts one entry per competitor per tracked location, so N competitors across M locations cost N*M against 'competitors_per_project' (see 'user_limits'). Going over returns a bare "Invalid project parameter: competitors". Each key must be a bare domain, e.g. 'competitor.com'.

Parameters (2 required, 1 optional)
Required
competitorsobject

Full competitors map (existing + new). Map of competitor domain to array of {lang, loc_id}. Example: {"competitor.com": [{"lang": "en", "loc_id": 2840}]}

project_idstring
Optional
competitors_locationsarray

Locations for competitor tracking. If not provided, uses project locations.

Add Keywords to Project

add_project_keywords
Full Description

Add keywords to an existing project. Requires login. First use get_project to see current keywords, then include ALL existing keywords plus the new ones.

The plan limit counts one entry per keyword per tracked location, so N keywords across M locations cost N*M against 'keywords_per_project' (see 'user_limits'). Going over returns a bare "Invalid project parameter: keywords".

Parameters (2 required)
Required
keywordsobject

Full keywords map (existing + new). Map of keyword phrase to array of {lang, loc_id}. Example: {"seo tools": [{"lang": "en", "loc_id": 2840}]}

project_idstring

Anchor Texts

anchor_texts
Full Description

Get the most common anchor texts used in backlinks to a domain.

Parameters (1 required, 3 optional)
Required
domainstring
Optional
limitnumber

Max results per page. Upstream caps this at 25; higher values are reduced to 25.

Default: 20
modestring

Scope of the target: 'domain' (whole domain, includes subdomains), 'url' (that exact page only — pass the full URL in `domain`), or 'host' (exact host, excludes subdomains). 'page' is a deprecated alias of 'url'.

Options:domainurlhostpage
Default: domain
offsetnumber

Pagination cursor — pass back the `previousKey` value from a previous response to get the next page. Defaults to 0.

Default: 0

Article Title Suggestions

article_title_suggestions
Full Description

Suggests article titles plus a content angle for a project, from a keyword or a free-form prompt. Requires login. Free of charge.

This is STEP 1 of writing an article with Content Studio: 1. 'article_title_suggestions' -> pick one 'titles' entry and keep 'content_idea'; 2. 'generate_article' with that title + content_idea (costs 100 monthly credits); 3. 'get_article' until the article is ready.

The project must have a business summary, which is what grounds the suggestions in the user's business. If this fails with "business summary is missing or incomplete", call 'project_business_summary' for the same project_id first, then retry.

Parameters (1 required, 5 optional)
Required
project_idstring

Project ID (from 'list_projects' or 'create_project').

Optional
keywordstring

Target keyword. Required when source_type is 'keyword'.

languagestring

Language code for the article (e.g. 'en', 'pt', 'es').

locIdnumber

Google location ID the content targets. Must be a real ID from `location_suggest`.

promptstring

Free-form description of what to write about. Required when source_type is 'prompt'.

source_typestring

What the article is seeded from: 'keyword' (default, uses `keyword`) or 'prompt' (uses `prompt`).

Options:keywordprompt
Default: keyword

Authentication Status

auth_status
Full Description

Check current authentication status and account tier.

Backlink Opportunities

backlink_opportunity
Full Description

Find backlink opportunities: referring domains that link to your competitors ('positive_targets') but not to you ('negative_targets').

Typical flow: run 'competitors' first to pick competitor domains, put them in 'positive_targets' each with scope='domain', and put your own domain in 'negative_targets'. The response lists referring domains linking to the positive_targets but not to the negative_targets.

Parameters (1 required, 3 optional)
Required
positive_targetsarray

Competitor domains/URLs you want referrers of (e.g. [{target: 'competitor.com', scope: 'domain'}]).

Optional
limitnumber
Default: 20
negative_targetsarray

Your own domain(s) to exclude (referrers that link here are filtered out). E.g. [{target: 'yourdomain.com', scope: 'domain'}].

offsetnumber

Pagination cursor — pass back the `previousKey` value from a previous response. Defaults to 0.

Default: 0

Backlinks List

backlinks
Full Description

List individual backlinks pointing to a domain or page.

Parameters (1 required, 5 optional)
Required
domainstring

Domain or URL to analyze

Optional
limitnumber
Default: 20
modestring

Scope of the target: 'domain' (whole domain, includes subdomains), 'url' (that exact page only — pass the full URL in `domain`), or 'host' (exact host, excludes subdomains). 'page' is a deprecated alias of 'url'.

Options:domainurlhostpage
Default: domain
offsetnumber

Pagination cursor — pass back the `previousKey` value from a previous response to get the next page. Defaults to 0.

Default: 0
one_per_domainboolean

If true, returns at most one backlink per referring domain. Defaults to false.

order_bystring

Sort field. Defaults to 'domain_inlink_rank'.

Options:domain_inlink_rankpage_inlink_rankfirst_seenlast_seen

Backlinks Overview

backlinks_overview
Full Description

Get a backlinks summary for a domain: total backlinks, referring domains, domain authority.

Parameters (1 required)
Required
domainstring

Domain to analyze

AI Search Visibility — Brand Config

brand_config
Full Description

Get the AI Search Visibility (AISV) brand setup for a project: tracked topics and prompts, competitors, alias groups, update frequency and limits. Requires login.

Use this to understand WHAT is being tracked before interpreting the visibility numbers from 'brand_visibility_overview' / 'brand_prompts'.

To find the project_id: call 'list_projects' and pick a project with "has_brand": true. An error mentioning "No brand found" means the project has no AISV brand configured — the user must set one up in the app first.

Parameters (1 required)
Required
project_idstring

Project ID (from 'list_projects'; pick one with has_brand: true).

AI Search Visibility — Prompts

brand_prompts
Full Description

Get the per-prompt AI Search Visibility (AISV) breakdown for a project's brand: for each tracked prompt, how the user's brand ranks, which brands were found, sentiment, sentiment keywords (positive/negative) and search intents. Requires login.

To find the project_id: call 'list_projects' and pick a project with "has_brand": true. Use 'brand_visibility_overview' for the headline metrics and competitive ranking, and 'brand_config' to see the tracked topics/prompts.

If the response is prefixed with a pending_update note, the report is still computing — ask the user to retry in a few minutes.

Parameters (1 required, 3 optional)
Required
project_idstring

Project ID (from 'list_projects'; pick one with has_brand: true).

Optional
end_datestring

ISO date (YYYY-MM-DD). End of the range. Defaults to today.

providerstring

Filter to a single AI provider. Omit for all providers.

Options:openaigeminigoogle_aio
start_datestring

ISO date (YYYY-MM-DD). Start of the range. Defaults to 30 days ago. Clamped to the brand's creation date.

AI Search Visibility — Overview

brand_visibility_overview
Full Description

Get the headline AI Search Visibility (AISV) metrics for a project's brand: how often the brand appears in AI assistant answers (visibility %), average rank, share of voice, total mentions and sentiment — overall and broken down by provider — plus the competitive brand ranking and aggregated search intents. Requires login.

To find the project_id: call 'list_projects' and pick a project with "has_brand": true. Use 'brand_prompts' for the per-prompt breakdown, and 'brand_config' to see what is tracked.

If the response is prefixed with a pending_update note, the report is still computing — ask the user to retry in a few minutes.

Parameters (1 required, 3 optional)
Required
project_idstring

Project ID (from 'list_projects'; pick one with has_brand: true).

Optional
end_datestring

ISO date (YYYY-MM-DD). End of the range. Defaults to today.

providerstring

Filter to a single AI provider. Omit for all providers.

Options:openaigeminigoogle_aio
start_datestring

ISO date (YYYY-MM-DD). Start of the range. Defaults to 30 days ago. Clamped to the brand's creation date.

Domain Competitors

competitors
Full Description

Find the main organic competitors of a domain.

The backend runs this as an async report: the tool starts the job and polls every 5s for up to ~40s, so a ready report comes back in one call. If the response has 'pendingData: true' the report is still building — call the tool again in a moment.

Parameters (1 required, 4 optional)
Required
domainstring

Domain to analyze (e.g. 'example.com')

Optional
competitorsarray

Optional list of specific competitor domains to analyze instead of auto-detected ones.

languagestring

Language code (e.g. 'en', 'pt', 'es')

Default: en
limitinteger

Max competitors to return. Defaults to 20.

locIdnumber

Google location ID. Must be a real ID from `location_suggest` — never an ISO country number or a guessed value. Common ones: 2840 US, 2826 UK, 2076 Brazil, 2124 Canada, 2276 Germany, 2392 Japan. Unlike other tools this one has no global mode: omitting it means the US, and each location only covers some languages (the US covers en and es), so pass the locId that matches the language you asked for.

AI Search Visibility — Configure Brand

configure_brand
Full Description

Create or update the AI Search Visibility (AISV) brand for a project: the topics and prompts tracked across ChatGPT, Gemini and Google AI Overviews, plus the competitor brands compared against. Requires login.

Creates the brand when the project has none, otherwise updates it. Creating one also starts the tracking.

Before calling:

  • 'brand_config' to read what is tracked today. 'topics' fully replaces the stored list — there is no way to edit a single topic or prompt, so resend every topic you want to keep, including its prompts.
  • 'user_limits' for 'prompts_per_brand' (the cap on total prompts) and 'brands' (how many brands the plan allows).

This spends one of the account's monthly 'brand_operations' credits whenever topics or prompts change, so confirm the list with the user first rather than saving twice.

Parameters (3 required, 1 optional)
Required
brand_namestring

The brand as customers name it, e.g. 'Ubersuggest'.

project_idstring

Project ID (from 'list_projects' or 'create_project').

topicsarray

Full list of topics to track, each with its prompts. Replaces the stored list entirely.

Optional
competitorsarray

Competitor brands to compare visibility against.

Content Ideas

content_ideas
Full Description

Get content ideas for keywords: top-performing pages by social shares, estimated visits, and backlinks.

Parameters (1 required, 6 optional)
Required
keywordsarray

Keywords to find content ideas for

Optional
filtersobject

Optional filters object (e.g. { minShares: 100, language: 'en' }).

languagestring
Default: en
limitnumber
Default: 25
locIdnumber
offsetnumber

Pagination cursor — pass back the `previousKey` value from a previous response to get the next page. Defaults to 0.

sortbystring

Sort field. Prefix with '-' for descending. Valid fields: facebookShares, estVisits, totalShares, redditShares, pinterestShares. Backlinks/refdomains cannot be used to sort — they're enriched after pagination.

Options:-facebookSharesfacebookShares-estVisitsestVisits-totalSharestotalShares-redditSharesredditShares-pinterestSharespinterestShares
Default: -facebookShares

Create Keyword List

create_keyword_list
Full Description

Create a saved keyword list, optionally filling it with keywords. Requires login. The account's plan caps how many lists it may have.

Parameters (1 required, 1 optional)
Required
namestring

Name of the new list

Optional
keywordsarray

Keywords to put in the list right away

Create Project

create_project
Full Description

Create a new tracked project for a domain. Requires login. Use location_suggest to find valid loc_id values.

For a first-time setup, prefer 'onboard_project': it analyses the business, then suggests competitors, keywords, topics and prompts, and sets up AI Search Visibility too.

Parameters (2 required, 5 optional)
Required
domainstring

Domain to track (e.g. 'example.com')

locationsarray

Locations to track rankings for

Optional
business_summaryobject

What the business does. Content Studio needs it, and passing it here saves a later call to 'project_business_summary'.

competitorsobject

Competitors to track. Map of competitor domain to array of {lang, loc_id}. Example: {"competitor.com": [{"lang": "en", "loc_id": 2840}]}

keywordsobject

Keywords to track. Map of keyword phrase to array of {lang, loc_id}. Example: {"seo tools": [{"lang": "en", "loc_id": 2840}]}

project_typestring

Project type. 'pitch' is a time-limited prospect project and needs a pitch slot on the plan.

Options:standardpitch
titlestring

Project title. Defaults to the domain — the API rejects an empty title, so one is always sent.

Delete Keyword List

delete_keyword_list
Full Description

Delete a saved keyword list and every keyword in it. Requires login. This cannot be undone — confirm with the user first.

Parameters (1 required)
Required
list_idstring

Keyword list id, from keyword_lists

Domain Keywords

domain_keywords
Full Description

Get the organic or paid keywords ranking for a domain, with search volume, position, and difficulty.

Parameters (1 required, 5 optional)
Required
domainstring

Domain to analyze (e.g. 'example.com')

Optional
languagestring

Language code (e.g. 'en', 'pt', 'es')

Default: en
limitnumber

Max results to return

Default: 50
locIdnumber

Google location ID. Must be a real ID from `location_suggest` — never an ISO country number or a guessed value. Common ones: 2840 US, 2826 UK, 2076 Brazil, 2124 Canada, 2276 Germany, 2392 Japan. Omit for global data.

previousKeynumber

Pagination offset

searchTypestring

Type of keywords

Options:organicpaid
Default: organic

Domain Overview

domain_overview
Full Description

Get a comprehensive overview of a domain including traffic, organic keywords count, domain authority, and backlinks summary.

Parameters (1 required, 2 optional)
Required
domainstring

Domain to analyze (e.g. 'example.com')

Optional
languagestring

Language code (e.g. 'en', 'pt', 'es')

Default: en
locIdnumber

Google location ID. Must be a real ID from `location_suggest` — never an ISO country number or a guessed value. Common ones: 2840 US, 2826 UK, 2076 Brazil, 2124 Canada, 2276 Germany, 2392 Japan. Omit for global data.

Domain Top Countries

domain_top_countries
Full Description

Get the top countries where a domain gets organic traffic.

Pass one or more language+location pairs in 'lang_locs' (format: 'languageCode:locationId', e.g. 'en:2840' for US-English, 'pt:2076' for Brazil-Portuguese). Use 'location_suggest' to find location IDs.

Parameters (2 required, 1 optional)
Required
domainstring

Domain to analyze (e.g. 'example.com')

lang_locsarray

List of 'langCode:locId' pairs (e.g. ['en:2840','pt:2076']). Each pair is one country to query.

Optional
pathstring

Optional page path to restrict analysis to a single URL.

Domain Top Pages

domain_top_pages
Full Description

Get the top pages of a domain ranked by estimated traffic.

Parameters (1 required, 4 optional)
Required
domainstring

Domain to analyze (e.g. 'example.com')

Optional
languagestring

Language code (e.g. 'en', 'pt', 'es')

Default: en
limitnumber

Max results to return

Default: 50
locIdnumber

Google location ID. Must be a real ID from `location_suggest` — never an ISO country number or a guessed value. Common ones: 2840 US, 2826 UK, 2076 Brazil, 2124 Canada, 2276 Germany, 2392 Japan. Omit for global data.

offsetnumber

Pagination cursor — pass back the `nextKey` value from a previous response to get the next page. Defaults to 0.

Default: 0

Estimate SERP Clicks

estimate_serp_clicks
Full Description

Estimate monthly click-through traffic for each SERP result, given its search volume, position, and result type.

This is a calculator — it does NOT look up rankings. For each entry you already know (volume + current position + type), it returns the projected clicks. Use it to model scenarios like "if I ranked #3 for kw X (10k volume), how many clicks would I get?". To discover positions for a keyword, use 'serp_analysis' or 'domain_keywords' first.

Parameters (1 required)
Required
serpsarray

List of SERP entries to estimate. Each needs searchVolume, position, and type.

Generate Article

generate_article
Full Description

Starts writing a full SEO article for a project and returns its 'article_id'. Requires login and a paid plan.

COST: 100 credits from the account's monthly credit pool ('monthly_keyword_metrics_updates'). Free and lowest-tier plans do not have enough allowance, so confirm with the user before calling.

ASYNCHRONOUS: the response only means the job was queued ('status' = "queued"). The article itself takes several minutes. -> Poll 'get_article' with the returned 'article_id' every ~15 seconds. -> Stop when 'status' is "generated" / "delivered" / "delivery_failed" (content is ready) or "failed" / "cancelled" (credits are refunded automatically).

'title' and 'content_idea' should come from 'article_title_suggestions'; pass the same seed ('source_type' + 'keyword'/'prompt') used there. The project must have a business summary — on "business summary is missing or incomplete", call 'project_business_summary' first.

Parameters (3 required, 5 optional)
Required
content_ideastring

The content angle to write about — pass the 'content_idea' from 'article_title_suggestions' verbatim.

project_idstring

Project ID (from 'list_projects' or 'create_project').

titlestring

Article title, normally one of the 'titles' returned by 'article_title_suggestions'.

Optional
keywordstring

Target keyword. Required when source_type is 'keyword'.

languagestring

Language code for the article (e.g. 'en', 'pt', 'es').

locIdnumber

Google location ID the content targets. Must be a real ID from `location_suggest`.

promptstring

Free-form description of what to write about. Required when source_type is 'prompt'.

source_typestring

What the article is seeded from: 'keyword' (default, uses `keyword`) or 'prompt' (uses `prompt`).

Options:keywordprompt
Default: keyword

Get Article

get_article
Full Description

Reads a Content Studio article and its generation status. Requires login. Free of charge — this is the polling endpoint for 'generate_article'.

'status' values: "queued" / "generating" -> still being written; 'content' is null. Poll again in ~15 seconds. "generated" / "delivered" / "delivery_failed" -> the article is ready; read 'content' (markdown), 'outline' and 'meta_description'. "failed" / "cancelled" -> generation stopped; 'error' explains why and the 100 credits were refunded.

Parameters (2 required)
Required
article_idstring

Article ID returned by 'generate_article'.

project_idstring

Project ID the article belongs to.

Get Project

get_project
Full Description

Get details of a specific project including tracked keywords and settings. Requires login.

Parameters (1 required)
Required
project_idstring

Project ID

Google Autocomplete Suggestions

google_suggestions
Full Description

Expand keywords into Google autocomplete suggestions, grouped the way the Ubersuggest web app groups them.

Each seed keyword is fanned out into ~60 autocomplete queries (question words, prepositions, comparison words, alphabet and digit suffixes), so this returns hundreds of real long-tail variations per keyword rather than only what autocomplete shows for the bare term. At most 10 keywords are expanded per call.

These are raw autocomplete phrases with no metrics attached — use 'keyword_overview' or 'match_keywords' to get search volume, CPC and difficulty for the ones worth pursuing.

Parameters (1 required, 2 optional)
Required
keywordsarray

Keywords to get suggestions for (max 10 are expanded)

Optional
countrystring

Country code (e.g. 'us', 'br')

languagestring
Default: en

AI Search Visibility — Detect Industry

industry_detect
Full Description

Work out which industry a brand belongs to, and suggest related topics worth tracking in AI Search Visibility. Requires login.

Use it when adding topics to a brand that already exists. For a brand-new project, 'onboard_project' already derives topics from the business summary.

Feed the topics you pick into 'industry_prompts' to get prompts, then save both with 'configure_brand'.

Parameters (4 required)
Required
brand_namestring

The brand as customers name it.

domainstring

The brand's domain, e.g. 'example.com'.

languagestring

Language code, e.g. 'en'.

loc_idnumber

Location ID from 'location_suggest'. Do not guess it.

AI Search Visibility — Generate Prompts

industry_prompts
Full Description

Generate the prompts to track for a brand's topics — the questions real users would ask an AI assistant about that topic. Requires login.

Use it when adding topics to a brand that already exists; 'onboard_project' covers a brand-new project.

The prompts come back per topic, ready to hand to 'configure_brand'. Show them to the user before saving: the wording decides what the visibility numbers actually measure.

Spends one of the account's monthly 'brand_operations' credits.

Parameters (3 required, 1 optional)
Required
brand_namestring

The brand as customers name it.

domainstring

The brand's domain, e.g. 'example.com'.

topicsarray

Topics to generate prompts for.

Optional
project_idstring

Project the brand belongs to, when it already exists.

Keyword List

keyword_list
Full Description

Read one saved keyword list: its keywords with volume, CPC and difficulty. Requires login. Get the id from keyword_lists. A free account reads only as many keywords as its plan allows; 'hidden_by_plan' counts the rest, which an upgrade unlocks.

Parameters (1 required, 2 optional)
Required
list_idstring

Keyword list id, from keyword_lists

Optional
limitinteger

How many keywords to return, highest volume first

Default: 100
offsetinteger

Keywords to skip, for paging through a large list

Default: 0

Keyword Lists

keyword_lists
Full Description

List the user's saved keyword lists with their aggregates. Requires login. Use keyword_list with an id to read the keywords in one list. A free or downgraded account only reaches its three newest lists; 'hidden_by_plan' counts the ones an upgrade would unlock.

Keyword Metrics

keyword_metrics
Full Description

Recalculate a specific metric for a keyword: search difficulty or search intent. Runs an async report on the backend and waits for the result (may take ~30s; search_difficulty consumes the monthly keyword metrics update quota).

Parameters (3 required, 1 optional)
Required
keywordstring
languagestring

Language code

metricstring

Metric to retrieve

Options:search_difficultysearch_intent
Optional
locIdnumber

Google location ID. Must be a real ID from `location_suggest` — never an ISO country number or a guessed value. Common ones: 2840 US, 2826 UK, 2076 Brazil, 2124 Canada, 2276 Germany, 2392 Japan. Omit for global data.

Default: 2840

Keyword Overview

keyword_overview
Full Description

Get search volume, CPC, SEO difficulty, and paid difficulty for a keyword.

Parameters (1 required, 2 optional)
Required
keywordstring

Keyword to analyze

Optional
languagestring

Language code. Only applied together with `locId` — a global lookup (no locId) is not language-filtered.

Default: en
locIdnumber

Google location ID. Must be a real ID from `location_suggest` — never an ISO country number or a guessed value. Common ones: 2840 US, 2826 UK, 2076 Brazil, 2124 Canada, 2276 Germany, 2392 Japan. Omit for global data.

Keyword Suggestions

keyword_suggestions
Full Description

Get related keyword suggestions with metrics for seed keywords, as a flat list. For paginated or custom-sorted keyword research, use match_keywords instead.

Parameters (1 required, 2 optional)
Required
keywordsarray

Seed keywords (1-3)

Optional
languagestring
Default: en
locIdnumber

Location ID; accepts a country, a state or a city. Suggestions are localized to it. Omit for the backend default.

Linking Domains

linking_domains
Full Description

Get referring domains that a target domain recently gained or lost.

'filter_by' selects the set: 'new' (gained, default) or 'lost'. There is no "full live list" option — for totals use 'backlinks_overview' instead.

Date range ('begin_date'/'end_date') narrows the gained/lost window (the data source limits this to roughly the last 60 days). For "domains acquired in May 2026", use filter_by='new' with that month's begin/end dates.

Parameters (1 required, 6 optional)
Required
domainstring

Target domain or URL to analyze.

Optional
begin_datestring

Optional ISO date (YYYY-MM-DD).

end_datestring

Optional ISO date (YYYY-MM-DD).

filter_bystring

'new' = recently gained, 'lost' = recently lost.

Options:newlost
Default: new
limitnumber
Default: 20
modestring

Scope of the target: 'domain' (whole domain, includes subdomains), 'url' (that exact page only — pass the full URL in `domain`), or 'host' (exact host, excludes subdomains).

Options:domainurlhost
Default: domain
offsetnumber

Pagination cursor — pass back the `previousKey` value from a previous response. Defaults to 0.

Default: 0

List Projects

list_projects
Full Description

List all your tracked projects/domains. Requires login.

Location Details

location_details
Full Description

Get details (name, type, parent hierarchy) for one or more location IDs, countries included. Accepts a list so you can resolve several at once.

Parameters (1 required, 1 optional)
Required
location_idsarray

One or more location IDs (e.g. [2840] for US).

Optional
langstring

Language of the response labels (e.g. 'en', 'pt'). Defaults to 'en'.

Location Autocomplete

location_suggest
Full Description

Search for location IDs by name. Useful to find the locId parameter for other tools. Matches countries as well as cities and states.

Parameters (1 required, 2 optional)
Required
querystring

Location name to search (e.g. 'Brazil', 'New York', 'London')

Optional
langstring

Language of the response labels (e.g. 'en', 'pt'). Defaults to 'en'.

limitinteger

Max number of matches to return (default 8).

Default: 8

Match Keywords

match_keywords
Full Description

Find keywords matching seed terms with volume, difficulty, and CPC data. Great for keyword research.

Parameters (1 required, 6 optional)
Required
keywordsarray

Seed keyword(s) or phrase(s) to expand, e.g. ["beauty ecommerce"]. This is the only required input — keyword research works from these alone, no domain needed.

Optional
domainstring

Optional. A real website domain (e.g. "example.com") used only to filter results by Search Difficulty achievable for that site. Leave it empty for plain keyword research. NEVER put seed keywords or phrases here — those go in `keywords`.

languagestring
Default: en
limitnumber

Approximate maximum — the API applies server-side filtering after fetching, so it may return more or fewer rows than requested.

Default: 50
locIdnumber
offsetnumber

Pagination cursor — pass back the `nextKey` value from a previous response to get the next page. Defaults to 0.

Default: 0
sortbystring

Sort field (prefix with - for desc)

Default: -search_volume

Set Up a Project (Onboarding)

onboard_project
Full Description

Run the full first-time setup for a domain: analyse the business, suggest competitors, generate AI Search Visibility topics and prompts, generate keywords, then create the project and its brand. Requires login.

Call it repeatedly. The flow takes minutes, so one call does as much as fits and returns 'done': false with a 'stage' and everything gathered so far. To resume, call again with the same 'domain' and 'locations' — the generation jobs are keyed by them — and pass every returned field straight back, so nothing is recomputed.

It stops at 'stage': "review" and creates nothing. At that point show the user the business summary, competitors, topics with their prompts, and keywords, and ask what to change. Only call again with 'confirm': true once they have answered. To apply edits, send the corrected 'competitors', 'topics' or 'keywords' along with 'confirm' — what you pass wins over what was generated.

Reviewing matters: saving the brand spends one of the account's monthly 'brand_operations' credits, and prompts can only be changed by resending the whole list, so a fix afterwards costs another credit.

Lists are trimmed to what the plan allows before anything is created; 'notes' says what was dropped. Resolve 'locations' with 'location_suggest' first — guessing a loc_id silently tracks the wrong country.

Parameters (1 required, 12 optional)
Required
domainstring

Domain to set up, e.g. 'example.com'.

Optional
brand_competitorsarray

Competitor brands for AI Search Visibility. Defaults to the project competitors.

brand_namestring

Brand name for AI Search Visibility. Defaults to the business name.

business_summaryobject

Carry-over, or the summary to use when the website cannot be analysed. Ask the user for the facts rather than inventing them.

competitorsarray

Carry-over, or the edited competitor list to use.

confirmboolean

Set true only after the user has reviewed the generated setup. False stops at the review stage without creating anything.

Default: False
keywordsarray

Carry-over, or the edited keyword list to track.

locationsarray

Markets to track, first one is primary. Defaults to English / United States (loc_id 2840) — pass it explicitly for anywhere else.

project_idstring

Carry-over once the project exists, so a resumed call goes straight to the brand step.

project_typestring

Project type. 'pitch' requires a pitch slot on the plan.

Options:standardpitch
skip_brandboolean

Create the project without AI Search Visibility tracking.

Default: False
titlestring

Project title. Defaults to the business name.

topicsarray

Carry-over, or the edited topics and prompts to use.

Page Keywords

page_keywords
Full Description

Get the keywords that a specific page ranks for.

Parameters (1 required, 3 optional)
Required
pagestring

Full URL of the page

Optional
languagestring

Language code (e.g. 'en', 'pt', 'es')

Default: en
limitnumber

Max results to return

Default: 50
locIdnumber

Google location ID. Must be a real ID from `location_suggest` — never an ISO country number or a guessed value. Common ones: 2840 US, 2826 UK, 2076 Brazil, 2124 Canada, 2276 Germany, 2392 Japan. Omit for global data.

Page Overview

page_overview
Full Description

Get an overview of a specific page including its organic keywords and traffic.

Parameters (1 required, 2 optional)
Required
pagestring

Full URL of the page (must start with http/https)

Optional
languagestring

Language code (e.g. 'en', 'pt', 'es')

Default: en
locIdnumber

Google location ID. Must be a real ID from `location_suggest` — never an ISO country number or a guessed value. Common ones: 2840 US, 2826 UK, 2076 Brazil, 2124 Canada, 2276 Germany, 2392 Japan. Omit for global data.

Page Social Shares

page_shares
Full Description

Get social media share counts + backlink/traffic metrics for a batch of page URLs. Supports multiple URLs in a single call.

Parameters (1 required, 3 optional)
Required
page_urlsarray

Page URLs to query (e.g. ['https://example.com/post-1', 'https://example.com/post-2']). Domains alone also accepted.

Optional
languagestring

Language code (e.g. 'en', 'pt'). Defaults to 'en'.

locIdnumber

Location ID (e.g. 2840 for US). Defaults to 2840.

modestring

Scope for backlink metrics lookup. Defaults to 'url'.

Options:domainurlhost

PageSpeed Audit

pagespeed_audit
Full Description

Run a PageSpeed audit on a domain to check Core Web Vitals and performance.

Parameters (1 required, 2 optional)
Required
domainstring

Domain to audit (e.g. 'example.com').

Optional
devicesstring

Comma-separated device strategies. Defaults to 'DESKTOP,MOBILE'. Values: 'DESKTOP', 'MOBILE'.

forceUpdateboolean

Bypass the cached result and re-run the audit. Defaults to false.

Project Business Summary

project_business_summary
Full Description

Makes sure a project has the business summary that Content Studio requires, and returns it. Requires login. Free of charge.

Call this before 'article_title_suggestions' / 'generate_article', or whenever one of them fails with "business summary is missing or incomplete".

Behaviour:

  • If the project already has a complete summary, it is returned as-is ('already_complete' = true) and nothing is written.
  • Otherwise the project's website is analysed (this takes up to ~1 minute) and the resulting summary is saved on the project. If the analysis is still running the tool returns 'done' = false — just call it again.
  • Pass 'business_summary' yourself to write it directly, e.g. when the automatic analysis cannot read the site. Ask the user for the facts instead of inventing them.
  • Omit 'project_id' and pass 'domain' to just analyse a site and get the summary back without storing it — useful before the project exists.
Parameters (0 required, 4 optional)
Optional
business_summaryobject

Write this summary to the project instead of analysing the website.

domainstring

Domain to analyse. Defaults to the project's own domain. Required when `project_id` is omitted.

languagestring

Language code the summary should be written in.

Default: en
project_idstring

Project ID (from 'list_projects' or 'create_project'). Omit it to analyse a domain without storing anything — pass `domain` instead.

Project Keyword Position Tracking

project_position_info
Full Description

Get ranking positions for the tracked keywords of a project (rank tracking report). Requires login.

Returns the full report. How to read the response:

  • "done": true — the report is FINAL. Treat it as a definitive answer; do not retry expecting different data.
  • A keyword's "status": "ok" with "old_position.position": null and "new_position.position": null means the domain does NOT rank in the top 100 for that keyword. This is a final answer ("not ranking"), NOT a "still loading" state. The "binned.not_ranking" bucket counts these.
  • A keyword's "status": "pending" only appears for brand-new projects whose first SERP collection hasn't run yet (no "updated_at"). In that case, ranking data typically appears 5-60 minutes after project creation; the caller should retry then.
  • "average_positions.positions": [] simply means there's no historical ranking series to plot — consistent with "not ranking".

Polls briefly (HTTP 200/202) for the rare cached-report regeneration path. If the backend errors persistently the tool throws — retry in a few minutes. Filter by lang/location/device; pick one combo you track in the project.

Parameters (3 required, 3 optional)
Required
endDatestring

Required. ISO date (YYYY-MM-DD). End of the date range for the report. Use today's date if no specific end is given.

project_idstring

Project ID (from 'list_projects' or 'create_project').

startDatestring

Required. ISO date (YYYY-MM-DD). Start of the date range for the report. Use today minus 30 days if no specific range is given.

Optional
devicestring

Device to filter results. Defaults to 'desktop'.

Options:desktopmobile
languagestring

Language code (e.g. 'en', 'pt'). Must match one tracked in the project.

locIdnumber

Location ID to filter results (e.g. 2840 US). Must match one tracked in the project.

Remove Keywords from List

remove_keywords_from_list
Full Description

Remove keywords from a saved keyword list. Requires login. Match the language and loc_id shown by keyword_list — the same phrase in another location is a different entry.

Parameters (2 required)
Required
keywordsarray

Keywords to remove

list_idstring

Keyword list id, from keyword_lists

Rename Keyword List

rename_keyword_list
Full Description

Rename a saved keyword list. Requires login. Its keywords are untouched.

Parameters (2 required)
Required
list_idstring

Keyword list id, from keyword_lists

namestring

New name

Search Neil Patel Blog

search_neilpatel_blog
Full Description

Search articles from Neil Patel's blog. Filter by category server-side and/or refine with query keywords. Returns matching articles with full content as markdown. Provide at least one of: query, category.

Parameters (0 required, 4 optional)
Optional
categorystring

Optional WordPress category slug to scope results server-side. Pick the closest topic — invalid slugs return no articles.

Options:seocontent-marketingsocial-mediapaid-adsdata-analyticslead-gennews-trendsemail-marketingmarketingecommerce
full_contentboolean

If true, include the full article content as markdown. If false, only the excerpt.

Default: True
limitinteger

Maximum number of articles to return (1-5).

Default: 3
querystring

Keywords to rank results client-side (e.g. 'technical seo', 'link building'). Required if no category is provided.

SEO Opportunities

seo_opportunities
Full Description

Get SEO improvement opportunities for a project. Requires login.

Parameters (1 required)
Required
project_idstring

SERP Analysis

serp_analysis
Full Description

Analyze the SERP (Search Engine Results Page) for a keyword, showing top ranking URLs with metrics.

Parameters (1 required, 3 optional)
Required
keywordstring
Optional
languagestring
Default: en
limitnumber

Number of SERP results

Default: 20
locIdnumber

Run Site Audit

site_audit
Full Description

Starts (or re-starts) a site audit crawl for a domain AND returns the initial crawl status. Requires a paid account.

This is STEP 1 of the site audit flow. Internally the tool: a) calls the backend to register the crawl task (without this step, later status calls fail with "Task has not been set"); b) immediately reads 'site_audit_status' once so the response tells you whether the crawl just started, is already in progress, or a cached report is already available.

Response is the same shape as 'site_audit_status': result.done === true -> a report is ready (cached or freshly finished). Inspect 'result.report'. result.done === false -> crawl is running. Start polling 'site_audit_status' every ~5 seconds with the same 'domain' / 'path' / 'crawlMaxPages' until 'result.done' is true.

Then, to list URLs affected by a specific issue id from 'result.report.issues_per_category.{errors|warnings|recommendations}[].id', call 'site_audit_results'.

Use 'path' only when auditing a single URL (page audit) rather than the whole domain. Set 'recrawl' to true to force a fresh crawl ignoring any cached result.

Parameters (1 required, 3 optional)
Required
domainstring

Root domain to audit (e.g. 'example.com'). For URL-mode audits pass the domain here and the page path in 'path'.

Optional
crawlMaxPagesinteger

Max pages to crawl. Defaults to 150 (free tier). Paid plans allow more; pass a higher value if the user's plan permits.

pathstring

Optional path for URL-mode audit (e.g. '/pricing'). Omit to audit the whole domain.

recrawlboolean

If true, forces a fresh crawl and bypasses the cache. Defaults to false.

Site Audit Pages

site_audit_pages
Full Description

Lists every URL that was crawled during a completed site audit, with HTTP status and index state. Requires a paid account.

Use this after 'site_audit_status' returns 'result.done === true' when the user wants the full list of discovered pages (not issue breakdown). For issue-specific URLs use 'site_audit_results' instead.

Parameters (1 required)
Required
domainstring

Domain that was audited.

Site Audit Results

site_audit_results
Full Description

Gets the list of pages affected by a specific SEO issue from a completed site audit. Requires a paid account.

This is STEP 3 of the site audit flow — call it AFTER 'site_audit_status' returned 'result.done === true'. You do not need this tool to get the issue summary (that already lives in the status response's 'result.report.issues_per_category').

Pick the 'issue' id from 'result.report.issues_per_category.{errors|warnings|recommendations}[].id' in the status response (e.g. 'seo_missing_h1', 'seo_broken_links', 'seo_duplicate_titles').

Response contains: result.breakdown -> affected URLs with status + recommendation result.ignored -> URLs the user previously ignored result.diff -> change vs. previous audit

Parameters (2 required, 1 optional)
Required
domainstring

Domain that was audited.

issuestring

Issue id from the status report's issues_per_category (e.g. 'seo_missing_h1'). Not a free-text label.

Optional
pathstring

Page path for URL-mode audits. Must match what was passed to 'site_audit'.

Site Audit Status

site_audit_status
Full Description

Checks the progress/result of a site audit previously started with 'site_audit'. Requires a paid account.

This is STEP 2 of the site audit flow. Poll this tool repeatedly (every ~5 seconds) until 'result.done' is true.

Response shape: result.done -> false while crawling, true when finished result.crawl_count -> pages crawled so far result.crawl_max_pages -> total pages the crawl will visit result.report -> partial (while crawling) or final (when done) audit report, including: overview -> totals + health score issues_per_category: { errors, warnings, recommendations } each with list of issue ids + counts result.extended_status -> 'no_errors' on success, otherwise the crawl failed

When 'result.done' is true, stop polling and inspect 'result.report.issues_per_category' for issue ids. To list the affected URLs for a given issue id, call 'site_audit_results'.

Pass the same 'domain' / 'path' / 'crawlMaxPages' you used when calling 'site_audit'.

Parameters (1 required, 2 optional)
Required
domainstring

Root domain being audited (e.g. 'example.com').

Optional
crawlMaxPagesinteger

Max pages used when starting the audit. Defaults to 150. Must match what was passed to 'site_audit'.

pathstring

Page path for URL-mode audits. Must match what was passed to 'site_audit'.

Estimated Traffic Value

traffic_value
Full Description

Get the estimated monthly value in USD of a domain's organic traffic (the equivalent Google Ads spend). Only available for domains tracked as a project in this account — requires login.

Parameters (1 required, 1 optional)
Required
domainstring

Domain to analyze. Must be one of the account's project domains (see list_projects).

Optional
project_idstring

Project ID (from 'list_projects') to read the metric from. Optional — omit it and the domain is matched against the account's projects.

Fetch Keyword Ideas & SEO Data

ubersuggest.fetch_keyword_ideas
Full Description

Returns real-time SEO data from Ubersuggest including exact monthly search volume, cost-per-click (CPC), SEO difficulty score, and paid difficulty for keyword ideas. Use this tool whenever the user needs actual keyword metrics, search volume numbers, or data-driven keyword research — this provides live data that cannot be answered from training knowledge alone. Only call this tool with a keyword the user explicitly provided or clearly implied; never invent, guess, or use a placeholder keyword. If the user has not specified a keyword, ask them which keyword they want to research before calling this tool.

Parameters (1 required, 3 optional)
Required
keywordstring

The seed keyword to generate related ideas for. Must come from the user's request — never make one up or use an example/placeholder value. If no keyword was provided by the user, ask for one instead of calling this tool.

Optional
countrystring

Two-letter country code for localized search data (e.g., "US", "UK", "CA"). Defaults to "US"

Default: US
languagestring

Language code for search results (e.g., "en", "es", "fr", "pt"). Defaults to "en"

Default: en
limitnumber

Number of keyword ideas to return (1-10). Defaults to 5 for optimal display

Default: 5

Plan Limits

user_limits
Full Description

Get the account's plan allowances. Requires login. Free of charge.

Call this before setting a project up, so lists are trimmed to what the plan accepts. The backend rejects an over-limit request with a bare "invalid_parameter" that does not say which limit was hit.

Useful keys: 'projects', 'keywords_per_project', 'competitors_per_project', 'locations_per_project', 'brands' (AI Search Visibility slots), 'prompts_per_brand', 'topics_per_brand', 'keyword_lists', 'keywords_per_keyword_list', and the monthly 'brand_operations_limits'/'brand_operations_used' pool that brand edits draw on.

Validate Site

validate_site
Full Description

Validate if a domain or URL is reachable and can be analyzed by Ubersuggest.

Parameters (1 required, 1 optional)
Required
sitestring

Domain (e.g. 'example.com') or full URL to validate.

Optional
is_domainboolean

True if 'site' is a bare domain, false if it's a full URL. Defaults to true.