API endpoints & quota reference

A concise matrix of Search Console API services, request limits, row limits, and expensive queries.

Automatable now Advanced

The public Search Console API contains four service areas: Search Analytics, Sites, Sitemaps, and URL Inspection. It does not provide API access to Page Indexing totals, Crawl Stats, Core Web Vitals, HTTPS, Links, Manual Actions, Security Issues, Removals, annotations, or most experimental interface features.

The limits below were verified against Google's official API documentation on July 18, 2026. Quotas can change; check the live quota page and the Google Cloud project before sizing a production extractor.

Endpoint matrix

Service and operation Method and endpoint What it does Important boundary
Search Analytics query POST https://www.googleapis.com/webmasters/v3/sites/{siteUrl}/searchAnalytics/query Returns clicks, impressions, CTR, and position grouped by requested dimensions Bounded top-row data; not a complete export
Sites list GET https://www.googleapis.com/webmasters/v3/sites Lists properties accessible to the authenticated user and permission levels Returns that user's access, not every organizational property
Sites get GET .../webmasters/v3/sites/{siteUrl} Gets one property's access details siteUrl must match Search Console's property identifier
Sites add PUT .../webmasters/v3/sites/{siteUrl} Adds a property to the user's Search Console account Does not verify ownership
Sites delete DELETE .../webmasters/v3/sites/{siteUrl} Removes the property from the user's account Does not remove the site from Google Search
Sitemaps list GET .../webmasters/v3/sites/{siteUrl}/sitemaps Lists submitted sitemaps and, optionally, children of a sitemap index Not a discovery list of every sitemap Google might know
Sitemaps get GET .../webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath} Gets information for one submitted sitemap feedpath is the URL-encoded sitemap URL
Sitemaps submit PUT .../webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath} Submits a sitemap Submission does not guarantee successful processing or indexing
Sitemaps delete DELETE .../webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath} Removes the sitemap from the submitted list Does not delete the sitemap file or deindex its URLs
URL Inspection POST https://searchconsole.googleapis.com/v1/urlInspection/index:inspect Returns Google's indexed status for one URL Indexed evidence only; it cannot run the UI's live test or request indexing

siteUrl is either the URL-prefix identifier, such as https://www.example.com/, or the Domain-property identifier, such as sc-domain:example.com. Encode it when it is part of a path.

OAuth and permissions

Read operations can use the https://www.googleapis.com/auth/webmasters.readonly scope. Operations that change Sites or Sitemaps require https://www.googleapis.com/auth/webmasters.

OAuth scope is only one gate. The authenticated user must also have sufficient permission on the exact Search Console property. A broad OAuth scope cannot turn a restricted Search Console user into an owner.

Use least privilege, keep refresh tokens out of logs, and distinguish user authorization failures from project quota failures.

Search Analytics request reference

Core request fields include:

Field Purpose
startDate, endDate Required inclusive dates in YYYY-MM-DD, interpreted in Pacific Time
dimensions date, hour, query, page, country, device, or searchAppearance, subject to data-state and combination rules
type web, image, video, news, discover, or googleNews
dimensionFilterGroups AND filter groups for supported dimensions and operators
aggregationType auto, byPage, byProperty, or the specialized supported News Showcase aggregation
rowLimit 1–25,000 rows in one response; default 1,000
startRow Zero-based pagination offset
dataState final, all for fresh data, or hourly_all with the hour dimension

Results are normally sorted by clicks descending. When grouped by date, they are sorted chronologically. Ties have arbitrary order, so offsets are not a durable incremental cursor if the underlying data is still changing.

Row limits are not quota

Three separate limits are often confused:

  1. Response size: rowLimit can request at most 25,000 rows per API response.
  2. Search Analytics exposure: the method exposes at most 50,000 rows per day per search type, sorted by clicks.
  3. Request quota: rate and load limits govern how often and how expensively the API can be queried.

Pagination cannot recover rows beyond the 50,000-per-day-per-search-type exposure. Adding page and query detail can cause additional data loss. For the most complete ongoing Performance dataset, configure BigQuery bulk export; anonymized queries remain excluded there too.

Published request quotas

Search Analytics

Scope Published request limit
Per site 1,200 queries per minute
Per user 1,200 queries per minute
Per project 40,000 queries per minute
Per project 30,000,000 queries per day

Search Analytics also has short-term load quota measured in 10-minute windows and long-term load quota measured in one-day windows. Google does not publish numeric load units. A request can therefore receive quota exceeded even when the visible request-rate counts are below the table above.

URL Inspection

Scope Per minute Per day
Per site 600 2,000
Per project 15,000 10,000,000

The per-site daily limit is normally the practical constraint for a batch inspection. At 2,000 URLs per property per day, URL Inspection is a targeted diagnostic service, not a full-site crawling API.

Sites, Sitemaps, and other resources

Scope Published limit
Per user 20 queries per second
Per user 200 queries per minute
Per project 100,000,000 queries per day

Monitor actual use in Google Cloud Console → APIs & Services → Search Console API → Quotas. Quotas can apply simultaneously; the first one reached blocks the request.

What makes a Search Analytics query expensive

Google identifies these load drivers:

  • grouping or filtering by page;
  • grouping or filtering by query;
  • combining page and query, which is most expensive;
  • long date ranges;
  • repeatedly requesting the same historical period.

If short-term load is exceeded, wait at least 15 minutes and spread requests across the day. If one request still fails after the wait, reduce long-term load by shortening the date range and removing page/query grouping or filters.

Efficient extraction pattern

  1. Query finalized data in one-day windows, normally after its expected publication delay.
  2. Choose property or page aggregation deliberately.
  3. Request only required dimensions and metrics.
  4. Use rowLimit: 25000 and increase startRow by 25,000 until the response has no rows.
  5. Run separate requests for each required search type.
  6. Cache finalized responses; do not re-download unchanged months.
  7. Re-query recent preliminary dates only when the workflow explicitly needs fresh data.
  8. Apply exponential backoff with jitter for retryable server and quota responses, but do not retry an invalid request unchanged.

Search appearance requires two steps

The API does not return searchAppearance alongside other dimensions in the first discovery request. Google documents this workflow:

  1. Query with searchAppearance as the only dimension to discover values present for the property.
  2. For each required value, send another request filtering by that appearance and group by the desired dimensions.

Do not hardcode a global appearance list. Availability is property- and date-dependent, and values are retired over time. See Search appearance reference.

Error triage

Symptom First check
401 Expired/invalid access token, wrong audience, or missing OAuth authorization
403 Property permission, OAuth scope, API enablement, or quota details in the error body
400 Property identifier, date range, dimension combination, filter operator, aggregation type, or encoded URL
Empty rows No exposed rows for the scope, pagination past the result, wrong property/search type, or privacy/top-row effects
quota exceeded Request-rate quota and Search Analytics load quota; the message is shared across quota types
Inspection result differs from live page API returns indexed evidence, not an on-demand live test

Automation boundary

SearchConsole.ai can use read-only Search Analytics, Sites, Sitemaps, and URL Inspection operations for properties the user can access. It does not submit or delete sitemaps, add or remove properties, request indexing, or modify Search Console.

Official sources