Google Autocomplete Suggestions Scraper – Keyword Ideas
Pricing
from $0.40 / 1,000 search suggestions
Google Autocomplete Suggestions Scraper – Keyword Ideas
Get Google search suggestions for a list of keywords in bulk: a-z, question and preposition expansion, any language and country. Pay only per distinct suggestion delivered; no API key, no proxy, no personal data.
Pricing
from $0.40 / 1,000 search suggestions
Rating
0.0
(0)
Developer
Rowcraft
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
24 minutes ago
Last modified
Categories
Share
Google Autocomplete Suggestions Scraper: Keyword Ideas in Bulk
Get the Google search suggestions that appear while someone types, for a whole list of keywords at once, in the language and country you choose. Add the expansions you want (a to z after the keyword, question words in front, prepositions after, a letter in front) and one keyword turns into hundreds of real search phrases, delivered as JSON, CSV or Excel with the exact text that produced each one.
You pay per distinct suggestion delivered. There is no API key, no login, no proxy and no browser: the actor sends plain requests, one at a time, to the public suggestion endpoint, after reading its robots.txt.
Three facts before you start, because they decide whether this is the right tool:
- It gives phrases, not numbers. The suggestion list does not carry search volumes, competition or trends, and the actor does not invent them. Use it to find what people type; use another source to measure how often.
- One request returns about ten suggestions. More suggestions come from more requests: the plain keyword is 1 request, the a to z expansion is 26 more, and all expansions together are 92 more per keyword. At the default pace of one request every 700 ms that is about 80 requests a minute.
- Expansions go one level deep. A suggestion is never expanded again, so a run is predictable in size and time and cannot grow without limit.

What you get
One row per distinct suggestion:
- The suggestion itself, as Google wrote it, with spaces cleaned
- The keyword you gave (
query) and the text that was sent to Google when the suggestion first appeared (expandedQuery, for examplestanding desk corhow meal prep) - How that text was made (
expansionType):basefor your keyword,alphabetfor a letter or digit after it,questionfor a question word in front,prepositionfor a preposition after it,prefixfor a letter in front - The position of the suggestion in the list Google returned for that text, counting from 1
- Language and country used, and the time the suggestion was read
- A stable
idmade of language, country and the suggestion in lower case, which is what Only new rows remembers between runs
The run also writes a COVERAGE record with one line per keyword (ok, empty, partial, error, blocked, not_checked or robots_disallowed, with the reason and the number of requests and rows) and a RUN_SUMMARY with the counts: requests sent, suggestions read, duplicates skipped, suggestions dropped by the privacy filter, and why the run stopped.
Why this actor
- You pay for suggestions, not for requests. A suggestion that already appeared under an earlier request of the same run is delivered once and charged once. Suggestions equal to the text you typed, failed requests and refused requests are never charged.
- Every row says where it came from.
expandedQueryandexpansionTypetell you which expansion found the phrase, so you can keep only the questions, only the "keyword for ..." phrases, or only what the plain keyword returned. - Language and country are separate settings. The same keyword gives different suggestions in different markets, and 39 languages and 60 countries are in the lists, so you can compare markets in one schedule.
- Polite and honest by design. The actor identifies itself, reads robots.txt first, sends one request at a time with a pause between them, uses no proxy and does not try to get around a block. When Google answers with a rate limit, a refusal or the CAPTCHA page, the run stops cleanly, tells you in the summary, and keeps what it already delivered.
- Built for schedules. Turn on Only new rows and a weekly run costs only the suggestions you did not have last week, which is a simple way to watch a market for new search phrases.
- Small and cheap to run. The actor runs in 256 MB, and the platform usage of a run is included in the price per suggestion.
How to use it
- Open the Actor and fill in Keywords (the other fields are optional filters).
- Set Maximum suggestions to a small number for a first try (the default is a safe start).
- Click Start. The status line shows progress; the run stops cleanly at your limit or at the charge limit you set in the run options.
- Open the Dataset tab and download JSON, CSV, Excel, XML or HTML, or send the rows to Google Sheets, Slack, Make, n8n or Zapier with the Integrations tab.
- To run it on a schedule, use Schedules in Apify Console and turn on Only new rows since the last run below: every run then costs only the new rows, and a webhook URL tells you when something new came in.
A first run that costs next to nothing: keep Keywords as it is, pick Alphabet under Expansions, and leave Maximum suggestions delivered at 100. It sends about eleven requests and finishes in under a minute.
Input
| Field | What it does |
|---|---|
queries | Keywords or phrases, one per line. Spaces are cleaned, duplicates are skipped, and a keyword is cut at 200 characters. Up to 10,000 per run. |
language | The language of the suggestions (hl), default en. A list of 39 languages. |
country | The country the suggestions are for (gl), default us. A list of 60 countries. |
expansions | Any of alphabet (keyword + a to z), digits (keyword + 0 to 9), questions (14 question words in front), prepositions (16 prepositions after), prefixAlphabet (a letter in front). Empty = only the plain keyword. |
maxItems | Stop after this many delivered suggestions. 0 = no limit. |
onlyNew, stateName | Deliver only suggestions that were not delivered to you in an earlier run with the same state name |
notifyUrl, notifyWhenEmpty | A webhook that receives one message when the run ends; see Automation below |
requestIntervalMs | Pause between requests, default 700 ms, minimum 500 ms |
How many requests an expansion sends for each keyword:
| Expansion | Text sent | Requests |
|---|---|---|
| none | standing desk | 1 |
alphabet | standing desk a ... standing desk z | 26 |
digits | standing desk 0 ... standing desk 9 | 10 |
questions | what standing desk, why standing desk, how standing desk ... | 14 |
prepositions | standing desk for, standing desk with, standing desk near ... | 16 |
prefixAlphabet | a standing desk ... z standing desk | 26 |
Example: one keyword with the a to z expansion, 100 suggestions at most.
{"queries": ["standing desk"],"language": "en","country": "us","expansions": ["alphabet"],"maxItems": 100}
Example: questions and prepositions for two keywords in German, for Germany.
{"queries": ["küche planen", "arbeitsplatte"],"language": "de","country": "de","expansions": ["questions", "prepositions"],"maxItems": 0}
Example: a weekly check of new search phrases around a brand, with a Slack message when something new appears.
{"queries": ["your brand", "your product category"],"expansions": ["alphabet", "questions"],"onlyNew": true,"stateName": "weekly-brand-watch","notifyUrl": "https://hooks.slack.com/services/..."}
Output
9 fields per row. Empty values are null, never missing, so CSV and Excel columns are stable.
| Field | Type | Example |
|---|---|---|
id | string | en|us|standing desk converter |
query | string | standing desk |
expandedQuery | string | standing desk c |
expansionType | string | alphabet |
suggestion | string | standing desk converter |
position | integer | 2 |
language | string | en |
country | string | us |
scrapedAt | string | 2026-10-22T10:21:05.310Z |
Example rows
Two real rows from a run (long texts shortened here, complete in the dataset):
[{"id": "en|us|standing desk converter","query": "standing desk","expandedQuery": "standing desk","expansionType": "base","suggestion": "standing desk converter","position": 2,"language": "en","country": "us","scrapedAt": "2026-10-22T10:10:25.794Z"},{"id": "en|us|how meal prep for weight loss","query": "meal prep","expandedQuery": "how meal prep","expansionType": "question","suggestion": "how meal prep for weight loss","position": 4,"language": "en","country": "us","scrapedAt": "2026-10-22T10:11:02.121Z"}]
Results can be downloaded as JSON, CSV, Excel, XML or HTML from the Dataset tab, or read through the Apify API.
position is the place in the list Google returned for expandedQuery. When a suggestion is identical to the text that was sent (Google sometimes returns the typed text itself, first in the list), it is skipped, so the first delivered row of such a keyword has position 2. Because each suggestion is delivered once, the position and the expandedQuery are those of the first request that returned it. expandedQuery is shown without the space that questions and prepositions end with.

Pricing
Pay per result. You pay for each suggestion delivered to your dataset, nothing else: no subscription, no minimum, no charge for rows your filters drop or for the requests behind them.
| Your Apify plan | Price per 1,000 rows | Price per row |
|---|---|---|
| Free plan | $0.60 | $0.0006 |
| Starter plan | $0.55 | $0.00055 |
| Scale plan | $0.48 | $0.00048 |
| Business plan and above | $0.40 | $0.0004 |
Example: 1,000 suggestions cost $0.60 on the Free plan and $0.40 on the Business plan. Platform usage of the run (compute, storage) is included in that price and is not billed to you separately (pay per event: the actor covers it).
A start event of $0.00005 is charged once per run (Apify default).
Cap your spend: set Maximum total charge in the run options. The actor stops cleanly when the cap is reached and you keep everything delivered until then. The run summary (RUN_SUMMARY in the key-value store) says why a run stopped.
Automation: only new rows, notifications, schedules
Only new rows has a clear meaning here. The actor remembers the id of every suggestion it delivered to you (language, country and suggestion in lower case). The next run with the same stateName skips those and charges only suggestions that are new for you. The first run delivers everything it finds. Use a different stateName for each keyword list, language or country that you want to track separately.
Only new rows since the last run. Turn on onlyNew and the actor remembers every suggestion it delivered to you (in a key-value store named rowcraft-google-autocomplete-suggestions-scraper-state in your Apify account). The next run with the same stateName skips what you already have and you pay only for new rows. The first run delivers everything that matches. Use a different stateName for each schedule or search so they keep separate memories.
Notification when the run ends. Put a webhook address in notifyUrl and the actor sends one JSON POST with the number of new rows, links to the dataset (JSON and CSV) and the run. It works out of the box with Slack and Discord incoming webhooks (the message is in text and content), with Make, n8n and Zapier catch hooks, and with your own endpoint. By default it is sent only when there is at least one new row; notifyWhenEmpty sends it every time.
Schedules. Create a schedule in Apify Console (hourly, daily, weekly or cron) with onlyNew on. A daily schedule gives you a feed of new suggestions for the price of the new rows only.
Integrations. Send the results to Make, n8n, Zapier, Google Sheets, Slack, Google Drive, Airtable or any webhooks from the Integrations tab of the Actor, with no code. Apify also offers native actions for Make, n8n and Zapier.
API, SDKs and AI agents. Every run is available through the Apify API and the official JavaScript and Python clients; the Actor can also be called by AI agents through the Apify MCP server. The example input in the API tab is a working call.
Use cases
- Keyword research for SEO and content: start from a seed keyword and collect hundreds of phrases people actually type, grouped by the expansion that found them.
- FAQ sections and article outlines: run the
questionsexpansion and keep the rows whoseexpansionTypeisquestion; each one is a question in the words searchers use. - Product and category naming: the
prepositionsexpansion shows the uses and comparisons attached to a product ("for", "vs", "without"), which helps with titles and filters in a shop. - Market comparison: run the same keywords for several languages and countries and compare what each market adds after the keyword.
- Ad keyword and negative keyword lists: the
alphabetexpansion surfaces brand names, accessories and unrelated meanings next to your keyword, useful when you build match lists. - Trend watching: a schedule with Only new rows tells you when a new phrase starts to appear around your brand, product or topic.
- Training data for your own tools: a clean list of short real queries per topic and language, with no personal data.
Ready-made examples, each with the input filled in (open one and press Start, or save it as your own task):
- Keyword ideas for three US search topics, A to Z
- German shopping suggestions for three product keywords
What this actor does not do
- Give search volumes, competition, cost per click, trends or rankings. The suggestion endpoint does not provide them, and the actor does not estimate them.
- Return search results, "People also ask" boxes, "Related searches" or any page of Google Search. Only the suggestion list is read.
- Read suggestions of YouTube, Amazon, Bing or any other service. This actor reads one endpoint, the one behind Google Search suggestions.
- Expand suggestions again. The depth is always one level: your keyword, then its expansions.
- Use proxies, solve CAPTCHAs or get around a block. When Google refuses a request, the run stops and says so.
- Look at who typed what. The endpoint returns aggregated phrases without any information about people, and so does this actor.
Limits and fair use
- About ten suggestions per request. Google decides the number; the actor reports what comes back. The distinct suggestions per keyword depend on the keyword: in our test runs 11 requests of the a to z expansion gave 100 distinct suggestions for a product keyword, and 15 question requests gave 111 for a food keyword. Obscure keywords can give few or none, and then
COVERAGEmarks the keywordempty. - One request at a time, 700 ms apart by default (minimum 500 ms), after one robots.txt request per run. A keyword with every expansion is 93 requests, about a minute and a half. 1,000 keywords with the a to z expansion are 27,000 requests, five to six hours: raise the run timeout or split the list.
- A refusal ends the run. If Google answers with HTTP 429, 503 or 403, with an anti-bot page, or with a redirect to its CAPTCHA page, the actor stops at once, does not retry, writes the reason into
RUN_SUMMARYandCOVERAGE, and marks the keywords it did not reach asnot_checked. Suggestions delivered before the refusal stay in the dataset. Try again later, with a longer pause or with fewer expansions. Ten failed requests in a row (for example answers that are not a suggestion list) stop the run in the same way. - The endpoint is not a documented product. It is the address the Google Search box uses and it answers without a key today, but it can change its answer, add limits or disappear without notice. If that happens the actor reports it; it does not look for another way in.
- Suggestions vary. They change with time, with language and country, and a little between two identical requests. A second run can return a phrase the first did not.
- Keywords are cut at 200 characters and cleaned of repeated spaces. Up to 10,000 keywords per run.
- The run stops 60 seconds before its timeout with the summary, the coverage and the Only new rows memory saved.
Data source and licence
The data is the list of search suggestions that the Google Search box shows while a person types. The actor asks for it the way a browser does, with the suggestqueries.google.com suggestion endpoint, a keyword, a language (hl) and a country (gl). No key, cookie or login is used.
Before the first request the actor reads the robots.txt of that host and applies it. On 22 October 2026 the host returned "not found" for robots.txt, which means no restrictions, and the robots.txt of the main Google site had no rule for the suggestion path. The Google Terms of Service (https://policies.google.com/terms) forbid using automated means to access its services in violation of the machine-readable instructions on its web pages, such as robots.txt files; the actor reads and obeys those instructions on every run, and stops if they change.
The suggestions are short search phrases shaped by many people's searches. They stay subject to the terms of the service that produces them: Rowcraft claims no rights over them, and you are responsible for how you use the results under the law and the terms that apply to you.
This actor is independent and not affiliated with or endorsed by Google. Google and the names of its services are trademarks of their owner and are used only to say which suggestions the actor reads. How the suggestions are created is explained in the help page at https://support.google.com/websearch/answer/7368877.
Privacy: no personal data
Rowcraft actors are built not to collect personal data:
- The endpoint returns aggregated search phrases, not the searches of individuals, and the actor sends no cookies, no account and no identifier of yours.
- A suggestion that contains an
@, a run of seven or more digits, or a text that looks like an e-mail address or a phone number is dropped before it reaches the dataset, and counted in the summary aspersonalLookingSkipped. - A phrase can still name a public figure or a business when many people search for it. The actor cannot tell a name from other words and does not try to; the rows hold the phrase, nothing about anyone who typed it.
- The keywords you give are stored only in the input and in the
queryfield of your own dataset.
You are responsible for using the data in line with the law that applies to you.
Other Rowcraft actors
All Rowcraft actors read official or public sources, deliver flat rows without personal data and support only-new runs and notifications:
- Ashby Jobs Scraper – Job Postings with Salary Ranges — Job postings from Ashby job boards (jobs.ashbyhq.com) by company: title, department, team, locations with country, employment and workplace type, published salary range, full text.
- Brazil CNPJ Companies Scraper: Receita Federal Register Data — Company records from the Brazilian CNPJ register for a list of CNPJ numbers or a search by state, city and CNAE activity: legal name, trade name, status, legal nature, capital, address, opening date and size.
- Broken Link Checker – Find 404s and Dead Links API — Pay per crawled page, not per link: crawl a site within robots.txt and check every link on each page for 404s, 5xx errors, DNS and TLS failures and redirects.
- Bulk Image Downloader API: Save Page Images with Sizes — Download the images of any web pages, or direct image links, into a key-value store with width, height, format, size and a download link per file.
- Career Site Jobs Scraper: Greenhouse, Lever, Ashby, Workday — Job listings from the career pages of the companies you choose on Greenhouse, Lever, Ashby, Workday, Workable, Personio, Recruitee, Teamtailor and Gem, in one run and one format: title, locations, department, salary when published, full text.
- Chrome Web Store Scraper: Users, Ratings & Versions — Reads public Chrome Web Store listing pages with no login, no proxy and no personal data: users, rating, category, version, update date, permissions and company developers.
- Company Register Lookup Europe: Name, ID, Domain or LEI — Look up a European company by name, domain or registry number and get one unified profile from the official registers of France, Norway, Poland, the UK and the LEI index.
- Domain Email and DNS Checker API: MX, SPF, DMARC, Providers — Find which email provider, sending services and DNS host each domain uses, from public DNS records only.
- SIRENE France Company Scraper: SIREN, NAF, Revenue, Status — French companies from the official Recherche d'entreprises API (INSEE SIRENE + INPI): SIREN and SIRET, legal form, NAF activity, head-office address, employee band, revenue and net income, labels, creation date and VAT number.
- France Fuel Prices Scraper – Official Open Data by Station — Current fuel prices at every French station, straight from the official open-data feed (Licence Ouverte 2.0): gazole, SP95, SP98, E10, E85 and GPLc, each with its update time.
- Gem Jobs Scraper – Job Board Listings from jobs.gem.com — Job listings from Gem job boards (jobs.gem.com) by company: title, department, offices with country, employment type, remote, hybrid or on-site, requisition ID, publication date and full ad text, from the public Gem Job Board API.
- Google Play Apps Scraper: App Details, Installs, Ratings — Public Google Play app details as flat rows: installs, rating, number of ratings, price, version, last update, minimum Android, ads and in-app purchases.
- Greenhouse Jobs Scraper – Job Listings by Company Board — Job listings from Greenhouse job boards by company: title, departments, offices, publication date, full ad text, published pay ranges.
- Hacker News Scraper API: Top, New, Best, Ask, Show Stories — Read Hacker News stories from the official Firebase API: top, new, best, Ask HN, Show HN and job lists with score, comments, domain and age.
- Himalayas Jobs Scraper: Remote Jobs API with Salaries — Remote jobs from Himalayas through its public jobs API: title, company, salary range, seniority, categories, the countries and time zones open to candidates, full description and job link.
- Image to Text OCR API: Extract Text from Images in Bulk — Read the text in images given by link or found on web pages, with a local OCR engine and no third-party API.
- KRS Poland Companies Scraper: Register Data, PKD, Status — Polish companies from the official KRS register API of the Ministry of Justice: name, KRS, NIP and REGON numbers, legal form, status, address, PKD activity codes, share capital, branches and registration dates.
- LEI Records Scraper: Legal Entity Identifier Lookup API — Legal Entity Identifier (LEI) records from the Global LEI Index, read through the public GLEIF API: legal name, legal form, register number, addresses, status, renewal date and parent companies.
- Lever Jobs Scraper – Job Postings from jobs.lever.co — Job postings from Lever career pages (jobs.lever.co) by company: title, team, department, location, commitment, workplace type, salary range when published, description, requirements and benefits.
- Lighthouse Website Auditor API: Core Web Vitals, Page Speed — Run Lighthouse on any public page and get Performance, Accessibility, Best Practices and SEO scores, lab Core Web Vitals and the biggest savings.
- Norway Company Register Scraper: Brønnøysund Business Data — Norwegian companies from the Central Coordinating Register for Legal Entities (Brønnøysund, NLOD open data): organisation number, legal form, industry, employees, share capital, addresses, website, VAT and bankruptcy status.
- PDF Text Extractor API: Text, Pages and Metadata from PDFs — Get the text of every PDF you link, page by page, with page count, language and word count.
- Personio Jobs Scraper: Job Listings, Salaries, Departments — Job ads from any company's Personio careers feed: title, department, office, employment type, schedule, seniority, salary when published, keywords and the full description in the language you choose.
- Platsbanken Scraper: Sweden Jobs, Employers, Org Numbers — Every job ad on Platsbanken (Arbetsförmedlingen) from the official JobTech API: headline, employer and organisation number, occupation codes, municipality, coordinates, salary type, deadline and full text.
- Recruitee Jobs Scraper – Job Listings by Company Career Site — Job listings from Recruitee career sites by company: title, department, locations with country, employment type, remote flag, published salary and full text, one request per company.
- Remote Jobs Aggregator API: RemoteOK, WeWorkRemotely, Jobicy — Remote jobs from RemoteOK, We Work Remotely and Jobicy in one clean list, read from their official feeds and APIs, merged without duplicates.
- Robots.txt and AI Crawler Access Checker API — Check which AI and search crawlers a website lets in: GPTBot, ClaudeBot, PerplexityBot, Google-Extended and more, read from robots.txt by the RFC 9309 rules.
- RSS Feed Finder and Reader – Blog and News Article API — Find the RSS, Atom and JSON feeds of any website and read their newest articles, from a domain name alone.
- SAM.gov Contract Opportunities Scraper: US Federal Bids — US federal contract opportunities from the official SAM.gov daily extract: solicitations, awards and notices with agency, NAICS, set-aside, deadlines, place of performance and full descriptions.
- SEO Audit Tool: Titles, Meta Tags, Headings and Links API — Audit the on-page SEO of any list of pages or websites: titles, meta descriptions, headings, canonicals, indexing, links, images and structured data, with a score and the issues found per page.
- Shopify Products Scraper: Store Catalog Export to JSON, CSV — Products from any Shopify store's public catalog: title, vendor, type, tags, description, variants with price, compare-at price, SKU and stock, images, options, store currency.
- Sitemap URL Extractor: Every Page with Last-Modified Dates — Get every page a site lists in its sitemaps, with last-modified dates, from robots.txt through sitemap indexes and .gz files.
- SSL Certificate and Security Headers Checker API — Check the TLS certificate and the HTTP security headers of every domain in one run, with an A+ to F grade and the exact issues to fix.
- Store Products Scraper – Shopify, WooCommerce, VTEX — Export the product catalogue of any Shopify, WooCommerce or VTEX store from its public catalogue endpoint: title, brand, prices, discounts, stock, categories, images and links, one row per product, the same columns on every platform.
- Structured Data Extractor: JSON-LD, Schema.org, Open Graph — Pull the schema.org JSON-LD, Microdata, RDFa and Open Graph of any page list into flat rows: types, product price, availability, ratings, organization, breadcrumbs, with validation issues.
- Teamtailor Jobs Scraper – Career Site Jobs by Company — Job listings from Teamtailor career sites by company: title, department, role, locations with city and country, remote or hybrid status, publication date and full ad text, from the official job feed.
- TED Tenders Scraper: EU Public Procurement Notices API — EU public procurement notices from TED (Tenders Electronic Daily), the official EU tenders portal, through its public Search API: title, buyer, country, CPV codes, values, deadlines, lots and document links.
- UK Companies House Scraper: Company Search & Profiles API — UK companies from the official Companies House API with your free key: search by name, status, type, SIC code, date or location, or look up company numbers.
- UK Tenders Scraper: Find a Tender + Contracts Finder API — UK public procurement notices from Find a Tender and Contracts Finder, the official UK government portals, through their open OCDS APIs: title, buyer, region, CPV codes, values, deadlines, notice type and links.
- Bulk URL Status and Redirect Chain Checker API — Check the status code, redirect chain, canonical and indexing signals of every URL in a list, with the final destination and a loop flag.
- Video Frame Extractor: Frames, Scenes, Thumbnails from MP4 — Extract JPG, PNG or WebP frames from direct video links (MP4, WebM, MOV, MKV, OGV): evenly spaced, every N seconds, at exact times or at scene changes.
- VTEX Products Scraper – Public Catalog Export — Export the catalogue of any VTEX store (Auchan, Chedraui and thousands of retailers in Europe and Latin America) from its public search endpoint: title, brand, EAN, prices, list prices, stock, categories, specifications and images, one row per product.
- Website Intelligence API: Tech, Social, SSL, DNS Profile — One row per domain with the whole website profile: technologies, social profile links, logo and brand assets, SSL expiry, DNS and mail providers, sitemap size, robots.txt and llms.txt.
- Website to Markdown Converter API: Text for LLMs and RAG — Turn a list of web page addresses into clean Markdown and plain text for LLMs and RAG: the main content only, with headings, links, images and tables.
- Website Screenshot API: Full-Page PNG, JPEG and PDF Captures — Capture full-page or viewport screenshots of any public web page as PNG, JPEG or WebP, with an optional A4 PDF.
- Website Social Links Finder: Company Profiles API — Get the official social media profiles of any company website: LinkedIn page, Facebook, Instagram, X, YouTube, TikTok and more, plus logo, favicon and share image.
- Website Tech Stack Detector – Technology Lookup API — Find the technologies behind a list of websites: CMS, e-commerce platform, analytics, tag managers, ad pixels, consent tools, chat, CDN and payments, from one polite home-page request per domain.
- WooCommerce Products Scraper – Store API Export — Export every product of a WooCommerce store through its public Store API: title, SKU, prices and sale prices, stock, categories, tags, attributes, ratings, images and links, one row per product.
- Workable Jobs Scraper: Job Listings from Career Pages — Job listings from any company's Workable career page: title, department, location, remote or on-site, employment type, description, requirements, benefits and salary when published.
- Workday Jobs Scraper – Jobs from myworkdayjobs.com Sites — Job listings from Workday career sites (myworkdayjobs.com) by company: title, locations, country, posting date, time type, requisition ID and the full description.
FAQ
Is it legal to scrape Google autocomplete? The actor reads a public suggestion endpoint without a login, after checking and obeying its robots.txt, and the Google Terms of Service forbid automated access only when it violates the machine-readable instructions of the site. We read the page of the terms on 22 October 2026 and describe it in the Data source section. This is not legal advice: whether and how you may use the phrases, for example in a commercial product, depends on the law and on the terms that apply to you.
Does it collect personal data? No personal data. The endpoint returns aggregated search phrases, suggestions with an @ or a long number are dropped, and nothing about the people who typed is available or stored. See the Privacy section.
Why is the result empty or smaller than I expected? Open the COVERAGE and RUN_SUMMARY records. A keyword marked empty got no suggestions from Google, which happens with rare or misspelled keywords. blocked or a warning in the summary means Google refused a request and the run stopped; try again later. robots_disallowed means robots.txt changed. With Only new rows on, suggestions you already received are skipped and not charged. With Maximum suggestions delivered set low, the run stops as soon as the number is reached.
Does it show search volume? No. The suggestion endpoint returns only phrases, and this actor does not estimate volumes or competition. Combine the phrases with a volume source of your choice.
How many suggestions do I get for one keyword? The plain keyword gives about ten. Each expansion request adds up to ten more, and duplicates are removed: in our test runs the first 11 requests of the a to z expansion gave 100 distinct suggestions and 15 question requests gave 111. All expansions together send 93 requests per keyword. Rare keywords give far fewer, and the last requests of an expansion add fewer new phrases than the first ones.
What do the expansion types mean? base is your keyword as typed. alphabet adds a letter or a digit after it ("standing desk c"). question puts a question word in front ("how standing desk"), preposition adds a preposition after it ("standing desk for"), and prefix puts a letter in front ("c standing desk"). Google often completes an expansion into a more natural phrase, so a suggestion may not start with the text that was sent.
Why does the same keyword give different suggestions in two countries? Google tailors suggestions to the country (gl) and the language (hl). Set both so that the answer matches the market you are studying.
Do I pay for duplicates or for blocked requests? No. A suggestion that appeared in an earlier request of the same run is skipped, suggestions equal to the typed text are skipped, and failed or refused requests produce no rows. Only distinct suggestions delivered to your dataset are charged, plus the small start event.
What happens if Google blocks the run? The actor stops at once: no retries, no proxy, no CAPTCHA solving. You keep the suggestions already delivered and pay only for them. The summary says which request was refused and how, and COVERAGE lists the keywords that were not reached.
Can I get more than ten suggestions per request? No, the endpoint returns about ten at most. The way to get more is more requests with small changes, which is what the expansions do.
Which languages and countries can I use? The 39 languages and 60 countries in the lists of the input form, with the codes shown there (hl and gl of the endpoint). Choose the pair that matches the market you study.
How do I run it every week and only pay for new phrases? Turn on Only new rows since the last run, give the run a stateName, and create a schedule in Apify Console. A webhook in notifyUrl tells you when new phrases arrived.
Support and reviews
Problems, missing fields, questions: open an issue on the Issues tab of this Actor. We answer within one working day and fix confirmed bugs in the next release; the changelog lists every change.
If this Actor saved you time, a short review on its page helps other users find it and helps us keep improving it.