Google Search Console to ChatGPT means an OAuth-scoped searchanalytics.query (and URL Inspection) inside a Custom GPT Action—not the Indexing API for ordinary article URLs.
TLDR
Search Analytics is POST https://www.googleapis.com/webmasters/v3/sites/{siteUrl}/searchAnalytics/query with startDate, endDate, and optional dimensions (query method).
Every Search Console API call needs OAuth 2.0. Scopes: webmasters.readonly or webmasters (authorize requests).
The Indexing API may notify Google only for pages with JobPosting or BroadcastEvent in a VideoObject. Do not batch-ping blog posts through it.
URL Inspection is the programmatic twin of the Search Console inspect tool. Use it for coverage state, not as a general “index now” button for every URL.
Wire ChatGPT via OpenAPI Actions + a backend you control. Do not paste a service-account JSON into the GPT instructions.
seo-google pulls Search Console performance and inspection status into an agent session. ChatGPT Plus / Team Actions consume an OpenAPI manifest (openapi-schema.json). The ChatGPT hub is the catalog. This page is the GSC API recipe.
First-party GSC on seoskillsai.com already ranks this URL for the head query at ~position 92 with thin template copy. The missing piece was the API contract, not another “run an audit” H1.
Google documents that Search Analytics does not guarantee every row. It returns top rows, sorted by clicks descending. Plan pagination. The UI 1,000-row export is not the API ceiling; rowLimit still needs paging. Run a ChatGPT technical audit first when coverage is the real problem.
Property siteUrl is URL-encoded (https://example.com/ or sc-domain:example.com). The calling user or service account must have Search Console permission on that property (prerequisites).
Google’s Indexing API quickstart states the crawl-notify path is for job postings and livestreaming video pages. Default test quota is 200 publish requests/day/project. Ordinary guides, skill pages, and blogs use sitemaps + Googlebot. Pitching “batch Indexing API for every article” is a false claim.
URL Inspection reports index status, crawl last, and referring resources. Daily inspect quotas are lower than Search Analytics. Do not loop every URL in the sitemap through inspect on a cron without backoff. Generative-AI impression rows belong in the AI citation tracker, not this inspect loop.
Sitemaps stay in the Search Console Sitemaps API / UI. ChatGPT should call your backend; your backend submits sitemap URLs you already own.
Mid-article CTA: export striking-distance rows (position 8–20, impressions ≥ 30) from Search Analytics before you write another template page.
GPT Actions send the model’s arguments to your HTTPS endpoint. Store OAuth client secrets and service-account keys on that endpoint. The GPT OpenAPI file lists operationIds only.
Service accounts: add the client_email as a user on the Search Console property. User OAuth: the person who connects the GPT must already have GSC access. Read-only scope is enough for reporting.
Do not ask the model to “invent” clicks. Pass the JSON rows through. The AI citation tracker is the sibling when you need generative-AI impression reports, not classic query rows.