Connect Retool to Ubersuggest using a REST API Resource with your Ubersuggest API key in the Authorization header. Query keyword suggestions, search volume, and SEO difficulty scores, then build a keyword research dashboard for content teams that consolidates data without switching between browser tabs.
| Fact | Value |
|---|---|
| Tool | Ubersuggest |
| Category | SEO |
| Method | REST API Resource |
| Difficulty | Beginner |
| Time required | 15 minutes |
| Last updated | April 2026 |
Build a Keyword Research Dashboard in Retool with Ubersuggest
Content teams conducting keyword research typically switch between multiple browser tabs — Ubersuggest for suggestions, spreadsheets for tracking, and internal tools for content calendars. Retool solves this by pulling Ubersuggest data directly into a unified internal dashboard where keyword research, content planning, and assignment can happen in one place.
Ubersuggest's API provides access to its core keyword intelligence data: search volume by month, SEO difficulty scores, paid difficulty scores, cost-per-click estimates, and keyword suggestions based on seed keywords or competitor domains. The API uses simple API key authentication, making it one of the more straightforward SEO tool integrations to set up in Retool.
Note that Ubersuggest's API is a premium feature available on paid plans. Free accounts have limited or no API access. The API documentation is minimal — most API users rely on community documentation and experimentation to discover endpoints. This tutorial covers the confirmed, working endpoints for keyword research use cases.
Integration method
Ubersuggest provides a REST API accessible at app.neilpatel.com/api that accepts API key authentication via the Authorization header. Retool's REST API Resource proxies all requests server-side, keeping your Ubersuggest API key secure and eliminating any CORS concerns. Query keyword data, domain metrics, and SEO scores from within Retool apps.
Prerequisites
- An Ubersuggest paid account (Individual, Business, or Enterprise plan) with API access enabled
- An Ubersuggest API key obtained from your account settings
- A Retool account with permission to create new Resources
- Basic familiarity with Retool's query editor and Table component
Step-by-step guide
Obtain your Ubersuggest API key
Log into your Ubersuggest account at app.neilpatel.com. Navigate to your account settings by clicking on your profile icon in the top-right corner, then selecting 'Profile' or 'Account Settings'. Look for the API or Developer section within your account settings. Your API key is displayed here — it is typically a long alphanumeric string. Copy the API key. Note that Ubersuggest API access is only available on paid plans (Individual plan and above). If you are on a free account, you will not see an API key section, and you will need to upgrade before proceeding. The API key is tied to your account's credit limits — each API call consumes credits from your monthly allocation, with limits varying by plan.
Pro tip: Store your Ubersuggest API key in Retool's configuration variables (Settings → Configuration Variables) and mark it as a secret. This prevents the key from being visible in query code and restricts it to resource-level configurations only.
Expected result: You have an Ubersuggest API key copied and ready to configure in Retool.
Create a REST API Resource for Ubersuggest
In Retool, navigate to the Resources tab and click 'Create New' → 'REST API'. Set the Base URL to 'https://app.neilpatel.com/api'. This is the base endpoint for Ubersuggest's API — specific endpoints will be added as paths in individual queries. Under the Headers section, click 'Add header' and add: key 'Authorization' with value your API key (the Ubersuggest API uses the API key directly in the Authorization header, without a 'Bearer ' prefix for most endpoints). Add a second header: 'Content-Type' with value 'application/json'. Name the resource 'Ubersuggest' and click 'Save'. Note that Ubersuggest's API documentation is limited — the API is intended primarily for internal use and was opened to users somewhat informally. If the base URL or authentication format has changed, consult the Ubersuggest community forums for the latest confirmed endpoint documentation.
1{2 "Base URL": "https://app.neilpatel.com/api",3 "Headers": {4 "Authorization": "{{ retoolContext.configVars.UBERSUGGEST_API_KEY }}",5 "Content-Type": "application/json"6 }7}Pro tip: Test the resource connection by creating a simple GET query to the /get_suggestions endpoint with a test keyword. A successful 200 response confirms your API key is valid and the base URL is correct.
Expected result: The Ubersuggest REST API Resource is saved in Retool. A test query returns a 200 response with keyword data.
Query keyword suggestions and SEO metrics
Create a new query in your Retool app using the Ubersuggest resource. Set the method to GET and the path to '/get_suggestions'. The primary query parameter is 'keyword' — set this to {{ keywordInput.value }} so users can type a seed keyword and run the query. Add a 'country' parameter to specify the target country for search volume data (e.g., 'us', 'gb', 'au'). The response includes an array of keyword suggestions, each with fields for: keyword text, search volume (search_volume), SEO difficulty score (seo_difficulty), paid difficulty (paid_difficulty), and cost per click (cpc). Run the query with a test keyword to verify the response structure. The response may be paginated or limited by your plan's credit allocation.
1// GET /get_suggestions2// Query parameters:3// keyword: {{ keywordInput.value }}4// country: {{ countrySelect.value || 'us' }}5// language_code: {{ languageSelect.value || 'en' }}Pro tip: Start keyword queries with a short seed keyword (1-2 words) rather than long-tail phrases to get the broadest set of suggestions. Ubersuggest's suggestion algorithm works best with concise seed terms.
Expected result: The query returns a JSON response containing an array of keyword suggestions with search volume, difficulty scores, and CPC values.
Transform and display keyword data in a sortable Table
Add a transformer to the keyword suggestions query to normalize the response data for the Retool Table component. Ubersuggest's response may nest the keyword array under a 'keywords' or 'suggestions' key depending on the endpoint version. The transformer should extract the array, sort by search volume descending, and format numeric fields for readability. Format the CPC as a dollar amount and create a color-coded difficulty category based on the SEO difficulty score: 0-30 is 'Easy', 31-60 is 'Medium', 61-100 is 'Hard'. Add a Table component to the canvas and bind its Data source to {{ getKeywords.data }}. Enable column sorting so users can re-sort by any metric. Add a Number Input component for users to filter by maximum difficulty score.
1// Transformer: normalize Ubersuggest keyword response2const raw = data;3// Handle different response structures4const keywords = raw.keywords || raw.suggestions || raw.results || [];56return keywords7 .filter(kw => kw.search_volume > 0)8 .map(kw => {9 const difficulty = kw.seo_difficulty || 0;10 let difficultyLabel;11 if (difficulty <= 30) difficultyLabel = 'Easy';12 else if (difficulty <= 60) difficultyLabel = 'Medium';13 else difficultyLabel = 'Hard';1415 return {16 keyword: kw.keyword,17 volume: kw.search_volume || 0,18 seo_difficulty: difficulty,19 difficulty_label: difficultyLabel,20 paid_difficulty: kw.paid_difficulty || 0,21 cpc: kw.cpc ? `$${parseFloat(kw.cpc).toFixed(2)}` : '$0.00',22 opportunity_score: Math.round((kw.search_volume || 0) / Math.max(difficulty, 1))23 };24 })25 .sort((a, b) => b.volume - a.volume);Pro tip: Add an 'opportunity_score' column calculated as volume divided by difficulty — this creates a simple compound metric that surfaces high-volume, low-competition keywords at the top of the list.
Expected result: The Table displays keyword suggestions sorted by search volume with columns for keyword text, volume, SEO difficulty with label, CPC, and opportunity score. Users can click column headers to sort.
Add domain keyword analysis queries
Create a second query to pull keyword data for a specific domain rather than a seed keyword. Use the '/get_keywords_for_url' or '/get_domain_info' endpoint (exact endpoint name may vary — test with your API key). The domain endpoint accepts a 'url' parameter instead of 'keyword'. This allows users to enter a competitor domain and see what keywords that domain ranks for in organic search. Build a second tab or section in your Retool app for the domain analysis view. Add a TextInput for the domain URL input and a second Table component bound to this query's transformer output. Add a comparison view where users can see both their target keyword list and the competitor domain's keywords side by side, identifying gaps and opportunities.
1// GET /get_keywords_for_url2// Query parameters:3// url: {{ domainInput.value }}4// country: {{ countrySelect.value || 'us' }}56// Transformer for domain keywords:7const keywords = data.keywords || data.results || [];8return keywords.map(kw => ({9 keyword: kw.keyword,10 position: kw.position || kw.rank || 'N/A',11 volume: kw.search_volume || 0,12 traffic_share: kw.estimated_visits || 0,13 seo_difficulty: kw.seo_difficulty || 0,14 cpc: kw.cpc ? `$${parseFloat(kw.cpc).toFixed(2)}` : '$0.00'15}));Pro tip: If the Ubersuggest API returns an error for the domain endpoint, try removing 'https://' from the domain URL — the API sometimes expects just the domain name (e.g., 'competitor.com') rather than a full URL.
Expected result: A second Table in the Retool app displays keywords that the queried domain ranks for, including their search position, volume, and difficulty scores.
Common use cases
Build a keyword research and prioritization panel
Pull keyword suggestions for multiple seed keywords into a single Retool table. Display search volume, SEO difficulty, and CPC side by side. Let content teams sort by volume or filter by difficulty threshold to identify quick-win keywords. Add a button to export selected keywords to a Google Sheet or internal database.
Build a Retool keyword research panel where I type a seed keyword, click 'Research', and see a table of keyword suggestions with search volume, SEO difficulty score, and CPC, sorted by volume descending. Include a filter for max difficulty score.
Copy this prompt to try it in Retool
Create a competitor keyword gap analysis tool
Enter a competitor domain to pull their top organic keywords from Ubersuggest. Compare these against your own site's ranking keywords stored in an internal database. Build a Retool app that highlights keywords the competitor ranks for but your site does not, providing a prioritized list of content opportunities.
Create a Retool competitor analysis tool that queries a competitor domain's top keywords from Ubersuggest, shows search volume and their ranking position, and highlights keywords where SEO difficulty is under 40 as high-priority content opportunities.
Copy this prompt to try it in Retool
Monitor keyword difficulty trends for target keywords
Build a Retool app that stores a list of target keywords in a database and periodically queries Ubersuggest for current SEO difficulty and volume data. Display trend charts showing how difficulty has changed over time and alert the content team when high-priority keywords have dropped in difficulty.
Build a Retool keyword monitoring dashboard that reads target keywords from a database table, queries Ubersuggest for current difficulty and volume, shows a chart of difficulty over time, and flags any keywords where difficulty dropped below 50.
Copy this prompt to try it in Retool
Troubleshooting
API returns 401 Unauthorized or 'Invalid API key' error
Cause: The API key is not correctly passed in the Authorization header, or the account does not have API access enabled. Ubersuggest's API key format and header name have changed in some plan configurations.
Solution: Try alternative header formats: some Ubersuggest API versions use 'X-Api-Key' as the header name instead of 'Authorization'. Also try passing the key as a query parameter named 'apiKey' or 'api_key'. Check your Ubersuggest account dashboard to confirm API access is included in your current plan.
1// Try these alternative auth configurations:2// Option 1: X-Api-Key header3// X-Api-Key: your_api_key45// Option 2: Query parameter6// GET /get_suggestions?keyword=example&apiKey=your_api_keyQuery returns data for some keywords but empty results for others
Cause: Ubersuggest does not have data for all keywords in all countries. Short-tail keywords and English US searches have the most data. Niche or highly specific long-tail keywords may return empty suggestion arrays.
Solution: Broaden the seed keyword to a shorter, more general term. Try changing the country parameter to 'us' to verify data exists for the keyword globally before filtering to specific regions. Add a null-check in your transformer to handle empty keyword arrays gracefully: return (keywords || []).map(...).
1// Handle empty response gracefully in transformer2const keywords = data?.keywords || data?.suggestions || [];3if (!keywords || keywords.length === 0) {4 return [{ keyword: 'No results found', volume: 0, seo_difficulty: 0 }];5}6return keywords.map(kw => ({ /* mapping */ }));API returns 429 Too Many Requests or credit limit error
Cause: Ubersuggest API calls consume credits from your monthly allocation. Queries run automatically on component changes in Retool can quickly exhaust credits if the app re-queries on every keystroke.
Solution: Set the keyword query to run 'Manually' (not automatically) in the query settings. Add a 'Search' button that triggers the query on click rather than auto-running on input change. Add query result caching in Retool's query settings to avoid re-fetching the same keyword data within a session.
Best practices
- Store your Ubersuggest API key in Retool configuration variables marked as secret to prevent it from appearing in exported app JSON or query logs
- Set keyword queries to run manually (triggered by a button) rather than automatically on component changes — this conserves API credits and prevents unnecessary calls
- Cache query results in Retool's query caching settings for at least 24 hours — keyword metrics change slowly and do not need to be fetched on every page load
- Add input validation to keyword TextInput components to prevent empty queries — an empty keyword parameter wastes an API credit without returning useful data
- Build a keyword list management feature using Retool Database to save researched keywords — this reduces the need to re-query Ubersuggest for keywords you have already analyzed
- Include a country selector component in your dashboard — keyword volume and difficulty vary significantly by country, and US data may not reflect your actual target market
Alternatives
Ahrefs provides more comprehensive backlink analysis and site audit data, making it better suited for advanced SEO workflows that go beyond keyword research.
SEMrush offers a more developer-friendly API with better documentation and higher data coverage, making it preferable for teams building sophisticated SEO reporting tools.
Moz's API provides Domain Authority and link metrics with clearer pricing and documentation, making it a more predictable choice for link-focused SEO dashboards.
Frequently asked questions
Does Ubersuggest have a public API?
Ubersuggest does have an API, but it is not prominently documented or officially supported in the same way as tools like SEMrush or Ahrefs. API access is available on paid plans but the documentation is minimal. The API endpoints function and are used by Ubersuggest's own web interface, making them discoverable through browser developer tools or community documentation.
How many API credits does each Ubersuggest query consume?
Ubersuggest API credit consumption varies by plan and endpoint. Keyword suggestion queries typically consume 1-2 credits per request. Domain analysis queries may consume more. Check your current credit balance in your Ubersuggest account dashboard and review the plan documentation for exact rates per endpoint.
Can I query Ubersuggest data for multiple keywords at once?
Ubersuggest's API typically handles one keyword per request for suggestion queries. To research multiple keywords, you would need to run multiple queries sequentially. In Retool, you can use a Workflow to loop through a list of keywords and query each one, storing results in a Retool Database table for the dashboard to display.
How current is Ubersuggest's keyword data?
Ubersuggest updates its keyword database monthly. The search volume data you receive reflects monthly averages, typically updated within the last 30-60 days. For real-time search volume, you would need to use the Google Ads API or Google Search Console API instead, which Retool also supports.
Can I use Ubersuggest API data in Retool without a paid plan?
No. Ubersuggest API access requires a paid Individual, Business, or Enterprise plan. Free accounts cannot generate API keys. If you need basic keyword research capabilities without a paid SEO tool subscription, consider querying Google Search Console's API, which provides actual click and impression data for keywords your site already ranks for.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation