{"slug":"search-index","domain":"web","title":"Your sites in Google Search Console, and IndexNow","summary":"Sitemaps with submitted and indexed counts, sitemap submits and URL inspection from your own Search Console, and IndexNow announcements for Bing.","help":"search-index: your own sites in Google Search Console, and IndexNow, as JSON.\n\nRETURNS\n  One JSON object on stdout. Pipe it to `jq` to pick a field.\n\nCONNECT FIRST\n  Search Console is your Google account's, not ours. Connect it in the\n  hedwigai app: Settings, then Connectors, then Google Search Console. Until\n  then every Search Console study answers that it is not connected, and says\n  where to connect. A grant that lacks the Search Console scope answers with\n  `reauth`. Connect again to fix it.\n\nWHAT IT DOES\n  `sites` lists the properties your grant can see. Use a property exactly as\n  it is listed: https://example.com/ with the slash, or sc-domain:example.com.\n  `sitemaps` shows each sitemap of a property. It gives the URLs submitted and\n  the URLs indexed. `submit-sitemap` asks Google to read a sitemap again.\n  `inspect` says what Google knows about one URL. It says whether the URL is\n  indexed, and why not.\n\nTWO HARD LIMITS\n  Google offers no API to request indexing of a single URL. That is a button\n  in Search Console, and only a person can press it. A sitemap submit is the\n  nearest thing.\n  The Search Console scope is a sensitive Google scope. Until Google verifies\n  hedwigai's app, only the test users on that app can connect.\n\nINDEXNOW\n  IndexNow tells Bing, Yandex, Seznam and Naver that pages changed. Google\n  does not take it. `indexnow-key example.com` gives this account a key for a\n  host. Publish the key at https://example.com/\u003ckey\u003e.txt, with the key as the\n  whole file. `indexnow` then checks that file and announces up to 1000 https\n  URLs on that one host. Each engine's answer comes back.\n\nPRICE\n  Free. Google and IndexNow charge nothing for these calls.\n\nStudies:\n  sites         \n      the Search Console properties this account's Google grant can see, with the permission on each\n  sitemaps       \u003csite\u003e\n      each sitemap of a property: when it was read, its errors, and how many URLs were submitted and indexed\n  submit-sitemap \u003csite\u003e \u003csitemap\u003e\n      submits a sitemap to a property, so Google reads it again\n  inspect        \u003curl\u003e\n      what Google knows about one URL: indexed or not, why, the canonical it chose and when it last crawled\n  indexnow-key   \u003chost\u003e\n      this account's IndexNow key for a host, and the file to publish at https://\u003chost\u003e/\u003ckey\u003e.txt\n  indexnow       \u003curls\u003e\n      checks the key file, then announces the URLs to IndexNow, Bing and Yandex, with each engine's answer\n\nJSON to stdout, so it composes: pipe to `jq` to pick a field, or `\u003e /tmp/…` to keep it.\nRun a study with no arguments — `search-index sites` — to see what it takes.\n","example_command":"search-index sitemaps sc-domain:example.com","example_output":"","cost_class":"upstream-fetch","tier":"free","price_per_1k_calls":0,"price_is_from":false,"status":"available","commands":["search-index"],"studies":[{"call":"sites","about":"the Search Console properties this account's Google grant can see, with the permission on each","args":[]},{"call":"sitemaps","about":"each sitemap of a property: when it was read, its errors, and how many URLs were submitted and indexed","args":[{"name":"site","positional":true,"list":false,"hint":"the property as `sites` lists it: https://example.com/ or sc-domain:example.com"}]},{"call":"submit-sitemap","about":"submits a sitemap to a property, so Google reads it again","args":[{"name":"site","positional":true,"list":false,"hint":"the property as `sites` lists it"},{"name":"sitemap","positional":true,"list":false,"hint":"the sitemap's full URL"}]},{"call":"inspect","about":"what Google knows about one URL: indexed or not, why, the canonical it chose and when it last crawled","args":[{"name":"url","positional":true,"list":false,"hint":"the page's full URL"},{"name":"site","positional":false,"list":false,"hint":"the property the URL belongs to, as `sites` lists it"}]},{"call":"indexnow-key","about":"this account's IndexNow key for a host, and the file to publish at https://\u003chost\u003e/\u003ckey\u003e.txt","args":[{"name":"host","positional":true,"list":false,"hint":"the bare host, like example.com"}]},{"call":"indexnow","about":"checks the key file, then announces the URLs to IndexNow, Bing and Yandex, with each engine's answer","args":[{"name":"urls","positional":true,"list":true,"hint":"https URLs on one host, up to 1000, separated by spaces or commas"},{"name":"host","positional":false,"list":false,"hint":"the host, when it is not the first URL's"}]}],"default_enabled":false,"first_seen":"2026-11-02T04:05:47.93921Z","enabled":false}
