google-search-consolelisted
Install: claude install-skill AceDataCloud/Skills
Query **Google Search Console** via `curl + jq`. The user's OAuth bearer token is
in `$GOOGLE_SEARCH_CONSOLE_TOKEN` (scope `webmasters.readonly`); every call needs
`Authorization: Bearer $GOOGLE_SEARCH_CONSOLE_TOKEN`. Base:
`https://searchconsole.googleapis.com`.
Failures are `{"error":{"code","message","status"}}` — show verbatim. `401` =
re-install. `403` = the token's account doesn't own/verify that site.
```bash
AUTH="Authorization: Bearer $GOOGLE_SEARCH_CONSOLE_TOKEN"
# Verified sites (siteUrl is the property — URL-encode it in later calls)
curl -sS -H "$AUTH" "https://searchconsole.googleapis.com/webmasters/v3/sites" \
| jq '.siteEntry[] | {siteUrl, permissionLevel}'
```
## Search analytics
```bash
# Top queries by clicks for the last 28 days. siteUrl must be URL-encoded
# (https%3A%2F%2Fexample.com%2F or sc-domain%3Aexample.com).
SITE="https%3A%2F%2Fexample.com%2F"
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" -d '{
"startDate":"2026-05-24","endDate":"2026-06-21",
"dimensions":["query"],"rowLimit":10
}' "https://searchconsole.googleapis.com/webmasters/v3/sites/$SITE/searchAnalytics/query" \
| jq '.rows[] | {query: .keys[0], clicks, impressions, ctr, position}'
```
Swap `dimensions` for `["page"]`, `["country"]`, `["date"]`, or combine
`["query","page"]`. Add `"dimensionFilterGroups"` to filter by page/country.
## Sitemaps & URL inspection
```bash
# Submitted sitemaps
curl -sS -H "$AUTH" "https://searchconsole.googleapis.com/webmasters