Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If you want to know which Google searches bring people to a website you manage, use Google Search Console and its API. For keyword ideas and estimated search demand, use Google Ads Keyword Planner. Those answer different questions from checking a URL’s position on an arbitrary public results page: Google’s policy specifically identifies automated rank-checking scrapes without express permission as prohibited machine-generated traffic.

Choose the data source that answers your question

“Google keyword data and rankings” can mean three different things. Pick the source by the decision you need to make, rather than treating all three as interchangeable.

Question Use What you get Important boundary
Which queries generated visibility and visits for a site I manage? Google Search Console Performance report or Search Analytics API Clicks, impressions, click-through rate (CTR), and average position, grouped by available dimensions such as query, page, country, or device. Data is for an authorized Search Console property; anonymized queries and system limits mean it is not a complete list of all searches.
What keyword ideas and approximate search activity might inform an advertising campaign? Google Ads Keyword Planner or Google Ads API Keyword Planning services Candidate keywords, historical search estimates, competition information, bid ranges, and campaign forecasts, depending on the feature and request. These are campaign-oriented estimates, not exact counts of all organic searches or a page’s position.
Where does a URL appear for an arbitrary Google search right now? Do not default to automated Google Search scraping A scraped result could reflect a particular query, time, location, device, and search context. Google’s policy addresses automated rank-checking scrapes without express permission. Use an authorized, policy-compliant approach instead.

Google’s Spam Policies for Google Web Search, in its “Machine-generated traffic” section, says automated queries include scraping results for rank-checking or other automated access without express permission, and that such activities violate Google’s spam policies and Terms of Service. This is a warning about automated access to Google Search—not a blanket statement about scraping every public website.

Export your site’s organic keyword performance from Search Console

Use the interface for a quick export

In Search Console, open the verified property and go to Performance > Search results. Set the date range and search type, then use the report’s tabs to inspect queries, pages, countries, devices, or other available breakdowns. Use Export to download the displayed report data. The interface is usually the fastest route for a one-off check; it is not a way to retrieve every query or bypass reporting limits.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use the Search Analytics API for repeatable reporting

The Search Analytics API’s searchanalytics.query() method returns performance data available through the Search Console Performance report. It supports dimensions, filters, sorting, aggregation settings, and row selection; it is not a general-purpose SQL endpoint. Google’s guide recommends first checking which dates have data with a date-only dimension and no other request parameters. Then add dimensions and filters to answer a specific question. See Google’s Search Analytics API guide and the query method reference for current request fields and behavior.

Before running the example, create a Google Cloud project, enable the Search Console API, configure OAuth credentials, and authorize an account with access to the property. The following Python example uses Application Default Credentials; it assumes authentication is configured in the environment and that google-auth and requests are installed. Replace the property URL and dates with values the authorized account can access.

import json
import google.auth
from google.auth.transport.requests import AuthorizedSession

PROPERTY = "https://www.example.com/"
START_DATE = "2026-08-01"
END_DATE = "2026-08-31"

credentials, _ = google.auth.default(
    scopes=["https://www.googleapis.com/auth/webmasters.readonly"]
)
session = AuthorizedSession(credentials)
endpoint = "https://www.googleapis.com/webmasters/v3/sites/"
site = PROPERTY.replace(":", "%3A").replace("/", "%2F")
url = f"{endpoint}{site}/searchAnalytics/query"

# First check that the date range has data, as Google's guide recommends.
request = {
    "startDate": START_DATE,
    "endDate": END_DATE,
    "dimensions": ["date"],
    "rowLimit": 25000,
}
response = session.post(url, json=request, timeout=90)
response.raise_for_status()
dates = response.json().get("rows", [])
print("Date rows:", len(dates))

# Then request query-level performance for the same range.
request = {
    "startDate": START_DATE,
    "endDate": END_DATE,
    "dimensions": ["query"],
    "rowLimit": 25000,
    "startRow": 0,
}
response = session.post(url, json=request, timeout=90)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))

The response rows contain keys for requested dimensions and metrics including clicks, impressions, CTR, and position. If you group by multiple dimensions, each row represents that combination; for example, a query-and-page report separates the same query across pages. Use the API reference for supported dimensions, filters, and aggregation behavior.

Batching helps within limits

Google’s guide describes retrieving batches of up to 25,000 rows with rowLimit and startRow. Pagination can retrieve additional available rows, but it cannot recover data that the reporting system does not expose. Google documents a ceiling of 50,000 rows per day, per property, per search type; this is not a promise that every query or dimension combination will have that many rows. See Google’s Search Console API export help and the Search Console performance data limits explanation.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep requests focused. Grouping and filtering on both page and query can use substantially more API load, and broad date ranges can also increase load. Google’s Search Console API usage limits page, last updated August 28, 2025, lists Search Analytics quotas of 1,200 queries per minute (QPM) per site and per user, and 40,000 QPM and 30,000,000 queries per day (QPD) per project. The page separately describes short- and long-term load quotas. Limits can change, so check that page when designing a recurring extraction.

Find keyword ideas and search estimates with Keyword Planner

For potential keywords rather than a site’s actual organic performance, use Google Ads Keyword Planner. It can generate ideas from phrases, a website, or both, and can analyze an existing list for search-volume information and forecasts. Google says basic access requires completing Google Ads account setup with billing information. Some very low-volume or sensitive terms may not be discoverable or forecastable.

For programmatic workflows, Google Ads API Keyword Planning services can generate keyword ideas, historical metrics, and forecasts. Google’s documentation describes historical metrics such as average monthly searches over the past 12 months, approximate monthly search volume by month, competition level or index, and bid ranges. Requests can specify locations and language. Google recommends caching historical metrics: statistics refresh monthly, and a result may remain unchanged for hours or days. Start with Keyword Planning and Generate Historical Metrics.

Interpret the numbers as advertising research, not a census of searches. Forecasts depend on campaign inputs and conditions such as budget, bid strategy, targeting, and seasonality. A Keyword Planner estimate does not tell you the actual organic position of your page.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Interpret Search Console rankings and query data carefully

Average position is an aggregate, not a universal rank

Search Console reports position for the data and dimensions selected. Treat it as the report’s average-position metric for that scope, not as a fixed place every searcher sees. Results can differ across queries, pages, locations, devices, and times; an average combines observations rather than describing every result page.

Query tables do not expose every search

Google omits some anonymized queries from query tables to protect privacy. Those queries can contribute to chart totals, so the sum of visible query rows may not equal the chart total; applying a query filter can also affect the comparison. Google’s 2022 explanation of performance data filtering and limits documented a 1,000-row UI export ceiling and a 50,000-row daily API/Looker Studio ceiling per site and search type. Current Search Console Help also describes the 50,000-row daily limit; the older UI ceiling is a dated detail, not a guarantee about every current interface or export.

Clicks are not Analytics sessions

Search Console measures activity before a visitor reaches your site; Google Analytics measures on-site activity. Google says the systems use different metrics, so their totals will not match completely. For a useful comparison, align date range, country, device, and landing-page scope, then compare the closest measures—Search Console clicks and Analytics sessions. Remaining differences do not by themselves show that either system is wrong. See Google’s guide to using Search Console and Google Analytics data for SEO.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

For a website screenshot—not Google keyword or ranking data—ScreenshotNeo is a website screenshot API and MCP server for developers. It can capture a rendered page as PNG, JPEG, WebP, or PDF. One GET request is enough for a basic capture:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo API documentation for the request options. Cookie banners are accepted and removed before capture, along with supported newsletter popups and chat widgets; each cleanup step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status. An MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 shots. ScreenshotNeo does not replace Search Console or provide Google keyword rankings. Sign up for 1,000 free screenshots a month—no card required.

Troubleshoot common extraction problems

  • The API returns no rows. Confirm that the property identifier exactly matches the Search Console property, the authorized account has access, and the date range contains data. Try the date-only check before adding query or page dimensions.
  • The request is unauthorized or forbidden. Confirm OAuth is configured with the Search Console read-only scope and that the account used to obtain credentials can access the property. Also verify the API is enabled in the relevant Google Cloud project.
  • The report has fewer rows than expected. Privacy omissions, row limits, the selected search type, dimensions, and filters can all affect the available result set. Increase startRow in batches where applicable, but do not assume pagination defeats the documented ceiling.
  • Requests slow down or fail under load. Reduce request frequency and avoid unnecessarily broad dates or costly page-and-query grouping. Check Google’s current quota and load-limit documentation before increasing extraction volume.
  • Keyword Planner data differs from Search Console. They report different things: campaign-oriented estimates versus measured performance for a verified property. Check location, language, time period, and campaign settings before comparing estimates.
  • Search Console clicks differ from Analytics sessions. Align date, country, device, and landing-page filters, and remember that clicks and sessions are different measurements.

FAQ

Can I get exact Google search volume for a keyword?

No source described here provides an exact count of all Google searches. Keyword Planner provides advertising-oriented estimates, while Search Console reports performance for a site property.

Can I use the Search Analytics API to query any website?

No. It provides performance data available for a Search Console property the authorized account can access.

Does a Search Console average position tell me what every user sees?

No. It summarizes reported observations for the selected data scope; it is not a personalized, stable position for every searcher.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.