# Google People Also Ask Scraper (Answers, 4 Levels) (`locaihost/people-also-ask`) Actor

Get every People Also Ask question Google shows for your keywords as a tree up to 4 levels deep, with answer, source title and link, plus AI Overview text and citations, related searches and Autocomplete. Track if your site is cited. No login. $1 per 1,000 rows plus $4 per 1,000 Google searches.

- **URL**: https://apify.com/locaihost/people-also-ask.md
- **Developed by:** [locaihost data](https://apify.com/locaihost) (community)
- **Categories:** SEO tools, Marketing, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.55 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Google People Also Ask Scraper (Answers, 4 Levels)

Get every "People also ask" question Google shows for your keywords as a question tree up to 4 levels deep, each with its answer, source title and link, plus Google's AI Overview text with its cited sources, related searches and Autocomplete suggestions, as JSON or CSV rows. 44 countries, no login, no API key.

- **Write content briefs:** the real questions searchers ask about a topic, with the pages Google uses to answer them.
- **Plan FAQ pages and headings:** turn each question tree into sections that match what people search for.
- **See if Google's AI Overview cites your site:** add your domain to `trackDomains` and every overview row says whether it is cited.
- **Find long-tail keywords:** Autocomplete from A to Z and with question words gives hundreds of phrases per keyword.
- **Track changes on a schedule:** see when questions, overviews and citations appear, change or disappear.

### Quick start

Paste this into the **JSON** tab of the input and click **Start**:

```json
{"keywords": ["how to start a podcast"], "questionDepth": 1}
```

You get the questions Google shows for the keyword, the AI Overview with its sources, the related searches and about 15 Autocomplete suggestions: 28 rows in about 25 seconds, for about $0.03. Set `"questionDepth": 2` to have each question searched too, which adds its answer and the questions it leads to.

More examples:

```json
{"keywords": ["claim tax refund", "self assessment deadline", "marriage allowance"], "country": "gb", "questionDepth": 2, "autocompleteAlphabet": true}
```

Keyword ideas only, fast and cheap (no Google results pages are opened, so only the $1 rows apply):

```json
{"keywords": ["crm", "email marketing"], "includePeopleAlsoAsk": false, "includeAiOverview": false, "includeRelatedSearches": false, "autocompleteAlphabet": true, "autocompleteQuestions": true}
```

### What data can I get?

Every row has the same columns, so one table holds every result type.

| Group | Fields |
|---|---|
| Every row | `id` (stable for the same keyword, type and text), `keyword`, `type` (`paa`, `ai-overview`, `related`, `autocomplete`), `text`, `country`, `language`, `googleDomain`, `scrapedAt` |
| Question tree | `depth` (1 = shown for your keyword, 2 = shown when a level-1 question was searched, and so on), `parent` (the search it appeared under), `position` |
| Answers | `answer` (the start of Google's answer), `answerSource` (`ai-overview` or `top-result`), `answerTitle`, `answerUrl` |
| AI Overview | `text` (Google's full overview as clean text, headings and list points kept as lines), `sources` (every cited page as `{title, url, site}`) |
| Citation tracking | `trackedDomainCited`, `citationState` (`cited`, `competitor-only`, `no-overview`), `citedTrackedUrls` (only on runs with `trackDomains`) |

- **People Also Ask** (`paa`): questions above the last level carry an answer. Google now writes the answer only when a question is clicked, so the Actor searches the question itself and takes the start of its AI Overview (with the first cited source), or the top result's snippet when there is no overview.
- **AI Overview** (`ai-overview`): one row per keyword searched. When Google shows no overview, `text` is empty and `sources` is `[]`.
- **Related searches** (`related`): the "People also search for" phrases from every page searched.
- **Autocomplete** (`autocomplete`): suggestions for the keyword, and optionally for "keyword a" to "keyword z" and for "how keyword", "what keyword", "why keyword" and 10 more question words.

Questions are deduplicated within each keyword's tree, and a question that turns up under two keywords is searched only once.

One real AI Overview row and one question row (run on 2026-10-18, shortened):

```json
[
  {
    "id": "f0828a52021d47a4",
    "keyword": "how to start a podcast",
    "type": "ai-overview",
    "text": "To start a podcast, you need to define your niche, pick your equipment, record and edit your episodes, and upload them to a hosting platform...\n1. Plan Your Concept and Niche\n- Choose a focused topic: ...",
    "depth": 0,
    "parent": "how to start a podcast",
    "position": 1,
    "sources": [
      {"title": null, "url": "https://creators.spotify.com/resources/how-to/start-a-podcast", "site": "creators.spotify.com"},
      {"title": "How to Start a Podcast: Complete Step-by-Step Guide [2026]", "url": "https://www.buzzsprout.com/blog/how-to-start-a-podcast", "site": "Buzzsprout"}
    ],
    "country": "us",
    "language": "en",
    "googleDomain": "www.google.com"
  },
  {
    "id": "d0c60db08396f247",
    "keyword": "how to start a podcast",
    "type": "paa",
    "text": "Do podcasts make money?",
    "depth": 1,
    "parent": "how to start a podcast",
    "position": 1,
    "answer": null,
    "country": "us",
    "language": "en"
  }
]
```

At `questionDepth` 1, level-1 questions have `answer: null`; at depth 2 or more they carry `answer`, `answerSource`, `answerTitle` and `answerUrl`. The dataset exports to JSON, CSV, Excel or HTML, and the run's `SUMMARY` record gives counts by type, citation totals and anything not finished.

### How much does it cost?

You pay per row returned. There is no charge for Apify platform usage on top. In short: **$1 per 1,000 rows**, plus **$4 per 1,000 keywords searched on Google** and **$4 per 1,000 answered questions**.

| Row | Free and Starter | Scale | Business |
|---|---|---|---|
| Result: a question without an answer, a related search or an Autocomplete suggestion | $1 per 1,000 | $0.75 per 1,000 | $0.55 per 1,000 |
| Keyword searched on Google (its AI Overview row, empty when Google shows none) | $4 per 1,000 | $4 per 1,000 | $4 per 1,000 |
| Answered question (each answer needs one more Google search) | $4 per 1,000 | $4 per 1,000 | $4 per 1,000 |

Plus $0.00005 per run start. Every Google results page costs real money to read, so each one is paid for by one $4 row. **Apify's free $5 monthly credit covers about 5,000 results** (questions, suggestions or related searches), or about 1,200 keywords searched on Google. On the Apify free plan, runs return up to 500 rows and make up to 25 Google searches each; any paid Apify plan removes both limits.

**What's free:** a keyword whose Google page comes back completely empty, rows skipped by `onlyNew`, and the Google search itself when Apify's Google SERP proxy can't be used on your account (the run says so). Autocomplete-only runs open no Google pages, so they cost only the $1 rows. To cap a run's spend, set **Maximum cost per run** in the run options, or `maxResults` in the input; the run stops cleanly at that point.

### Limits, stated up front

- **Google shows 4 or 5 questions per page.** A deeper tree comes from searching each question: depth 2 typically adds 3 or 4 new questions per question. `maxQuestionsPerKeyword` (default 30) keeps it in check.
- **Questions on the last level have no answer.** Set the depth one higher to answer them.
- **Not every keyword has an AI Overview.** Many "how to", shopping and brand searches don't, and some countries show far fewer. Those keywords still get their row with empty `text`, because the search itself was made.
- **Citation tracking reads the overview's cited links only:** a brand named in the text without a link is not counted. Subdomains count (`blog.example.com` counts for `example.com`).
- **Source links:** Google hides destinations behind its own redirect links. The Actor asks Google where each one goes; if Google won't say, the row keeps Google's link, which still opens the page.
- Results are what a logged-out visitor in the chosen country sees, without personalisation.
- **Speed:** 10 Google pages are read at once and a page can take up to a minute. A keyword at depth 1 takes one page; depth 2 adds one page per question. A run that reaches its time limit stops cleanly with everything found so far and says which keywords were not finished.
- Up to 5,000 keywords per run.

### Only new since last run, and schedules

Save a run as a task with `"onlyNew": true` and add a daily schedule. Each run returns every keyword's AI Overview row (a fresh read of Google, so you see when an overview appears, changes or disappears) and its answered questions, plus only the questions, related searches and suggestions earlier runs with the same country and language did not return. Skipped rows are free. Add `trackDomains` to see the day you gain or lose a citation. Set up a schedule under **Schedules** in Apify Console.

### Integrations: API, n8n, Make and AI agents

**API.** Run it and get the rows back in one call:

```bash
curl -X POST "https://api.apify.com/v2/acts/locaihost~people-also-ask/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords": ["best crm for small business"], "trackDomains": ["example.com"], "includeAutocomplete": false}'
```

Apify's API clients for Python and JavaScript work the same way.

**n8n, Make, Zapier, Google Sheets, Slack, webhooks.** Apify's built-in integrations send each run's dataset wherever you need it, for example a content brief straight into a Google Sheet.

**AI agents (MCP).** Add this Actor to Claude, Cursor or any MCP client with `https://mcp.apify.com/?tools=locaihost/people-also-ask`, then ask something like *"What questions do people ask Google about switching to a heat pump, and which sites does Google's overview cite?"*

### FAQ

#### How much does it cost to scrape People Also Ask?

One keyword at depth 1 with Autocomplete is about $0.03: one $4-per-1,000 keyword row plus about 27 questions, related searches and suggestions at $1 per 1,000. At depth 2, each question searched adds $0.004 plus the new questions it shows.

#### Can I use it through the API or from Python?

Yes. Use the `run-sync-get-dataset-items` call above, or Apify's Python and JavaScript clients. Every run's data is also available as JSON, CSV or Excel from its dataset.

#### Can I use it from an AI agent?

Yes. Through the Apify MCP server (`https://mcp.apify.com/?tools=locaihost/people-also-ask`) any MCP client can call it with a list of keywords and read the questions back.

#### Is it legal to scrape Google People Also Ask?

The Actor reads Google results pages that any logged-out visitor sees, through Apify's Google SERP proxy, and Google's public Autocomplete. It never logs in and collects no personal data. Google's terms restrict automated access, so check them against your use. You are responsible for how you use the data, including the copyright of the sites Google cites and the laws that apply to you. Do not use AI Overview text to train models. If you are a rights holder and want something changed, open an issue and we will act on it promptly.

#### Does my site appear in Google's AI Overview?

Add your domain (and rivals' domains) to `trackDomains`. Each AI Overview row then has `trackedDomainCited`, `citationState` and `citedTrackedUrls`, and the run's message and `SUMMARY.citations` give the totals. Nothing extra is searched, so the price is the same.

#### Why are some fields empty?

`answer` and its source fields are empty on the last level of the tree (raise `questionDepth` to fill them). `text` and `sources` on an AI Overview row are empty when Google shows no overview for that keyword. The citation columns exist only on runs with `trackDomains`, and are `null` on rows other than AI Overviews.

### More from locaihost data

- [Google Trends data](https://apify.com/locaihost/google-trends): search interest over time and rising queries for the same keywords.
- [SEO site audit](https://apify.com/locaihost/site-audit): check your own pages' titles, headings and links before you write.
- [YouTube transcripts](https://apify.com/locaihost/youtube-transcripts): what creators say about a topic, as text.
- [Website traffic checker](https://apify.com/locaihost/website-traffic): monthly visits and traffic sources for the sites Google cites.

### Did it help?

If this saved you time, a quick rating on the Store helps other people find it.

### Support

Something not working, a missing field or a keyword that reads wrong? Open an issue on the **Issues** tab: we answer issues within 24 hours.

# Changelog

This Actor's version history is a separate document: https://apify.com/locaihost/people-also-ask/changelog.md

# Actor input Schema

## `keywords` (type: `array`):

Search phrases, one per line. Each is searched on Google and sent to Autocomplete. Paste up to 5,000.

## `country` (type: `string`):

Where the searches come from. Google shows different questions, overviews and suggestions in each country.

## `language` (type: `string`):

Google's interface language. Leave on Country default to use the country's main language.

## `includePeopleAlsoAsk` (type: `boolean`):

The questions in Google's "People also ask" box, one row each.

## `questionDepth` (type: `integer`):

1 = the questions shown for your keyword. 2 = each of those is searched too: you get its answer (text, source title and link) and the questions it shows. 3 and 4 go further. Each answered question is one more Google search and costs $4 per 1,000 instead of $1.

## `maxQuestionsPerKeyword` (type: `integer`):

Stops expanding a keyword once this many questions are found, across all levels. 0 = no limit.

## `includeAiOverview` (type: `boolean`):

One row per keyword searched on Google with its AI Overview text and every cited source (empty when Google shows none). $4 per 1,000 keywords: it is what each Google search costs, so it is always on when questions or related searches are on. Switch questions, related searches and this off for an Autocomplete-only run.

## `trackDomains` (type: `array`):

Optional. Your site (and, if you like, rivals' sites), e.g. "example.com". Each AI Overview row then says whether the overview cites one of these domains or a subdomain of it: trackedDomainCited, citationState (cited, competitor-only or no-overview) and citedTrackedUrls. Read from the overview's cited links only. Same price; nothing extra is searched.

## `includeRelatedSearches` (type: `boolean`):

The "People also search for" phrases on each results page that is searched.

## `includeAutocomplete` (type: `boolean`):

What Google suggests as you type your keyword (about 10 to 15 phrases).

## `autocompleteAlphabet` (type: `boolean`):

Also ask Autocomplete for "keyword a", "keyword b" ... "keyword z": usually 200 to 400 long-tail phrases per keyword.

## `autocompleteQuestions` (type: `boolean`):

Also ask for "how keyword", "what keyword", "why keyword", "can keyword" and similar (13 English question words).

## `onlyNew` (type: `boolean`):

Skip every row an earlier run with the same country and language already returned. An AI Overview counts as new when its text changes. For scheduled tracking.

## `maxResults` (type: `integer`):

Stops the run after this many rows. 0 = no limit.

## Actor input object example

```json
{
  "keywords": [
    "how to start a podcast",
    "best crm for small business",
    "is coffee bad for you"
  ],
  "country": "us",
  "language": "",
  "includePeopleAlsoAsk": true,
  "questionDepth": 1,
  "maxQuestionsPerKeyword": 30,
  "includeAiOverview": true,
  "trackDomains": [
    "example.com"
  ],
  "includeRelatedSearches": true,
  "includeAutocomplete": true,
  "autocompleteAlphabet": false,
  "autocompleteQuestions": false,
  "onlyNew": false,
  "maxResults": 0
}
```

# Actor output Schema

## `overview` (type: `string`):

Every row: keyword, type, text, level, where it was shown, position and the answer for questions.

## `questions` (type: `string`):

People Also Ask questions with level, parent question, answer, source title and link.

## `aiOverviews` (type: `string`):

One row per keyword with Google's AI Overview text and its cited sources.

## `keywordIdeas` (type: `string`):

Autocomplete suggestions and related searches with the prefix or page they came from.

## `summary` (type: `string`):

Counts by type, keywords with nothing found, anything that failed, and cost.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "how to start a podcast"
    ],
    "questionDepth": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("locaihost/people-also-ask").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": ["how to start a podcast"],
    "questionDepth": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("locaihost/people-also-ask").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "how to start a podcast"
  ],
  "questionDepth": 1
}' |
apify call locaihost/people-also-ask --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,locaihost/people-also-ask"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/smnytP2ogU48mytAT/builds/D66DgtQeMBbIpZNcE/openapi.json
