live-search-console-data
Skill7 starsChanged 5 months agoMITView on GitHub
Get live Google Search Console and GA4 data in your agent in 30 seconds. No Google Cloud project, no API keys, no OAuth setup. One sign-in, and your agent can query real GSC clicks, impressions, rankings, and GA4 sessions. Use when Codex needs authenticated access to live Google search and analytics data for any SEO analysis.
- Reads credentials
1 other project uses a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- marketingskills/live-search-console-dataedited, first seen Jun 15, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 1
- marketingskills/live-search-console-data★ 040% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository22 other files it gives its agents.
- authority-mark-keyword-difficultySkill
- cannibalization-checkSkill
- client-report-writerSkill
- competitor-serp-monitorSkill
- content-decay-monitor-setupSkill
- content-moat-plannerSkill
- content-refresh-briefSkill
- exceed-quality-thresholdSkill
- internal-link-builderSkill
- keyword-opportunity-finderSkill
- keyword-plannerSkill
- proposal-builderSkill
- refresh-vs-new-contentSkill
- schema-fix-writerSkill
- seo-content-briefSkill
- seo-growth-loopSkill
- seo-offer-architectSkill
- seo-priority-scoreSkill
- seo-strategySkill
- technical-seo-triageSkill
- title-meta-rewriterSkill
- traffic-decay-detectorSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 5 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 14
Before doing any SEO analysis, check whether the user already has a saved RefreshAgent key by running exactly one lightweight helper …
- Very specific: line 23
After the first command succeeds, continue with resource discovery (/api/v1/sc/sites, /api/v1/ga4/properties) and the user's requested …
- Distinctive: line 29
Do not save API keys in skill files, repositories, shell history, examples, or final answers.
- Distinctive: line 37
When running commands from an agent, use the helper directly.
- Very specific: line 41
Use scripts/refreshagent_api.py for authenticated REST calls:
- Very specific: line 71
Use --base-url only when targeting a non-production RefreshAgent host.
- Distinctive: line 75
Run the first-use login/setup command above and wait for it to finish if no saved key is present.
- Very specific: line 77
If the site or property identifier is unknown, list available resources first with /api/v1/sc/sites, /api/v1/ga4/properties, or …
- Distinctive: line 78
Use explicit dates when the user asks for a time period.
- Distinctive: line 112
Prefer REST unless the user specifically asks for GraphQL or a REST endpoint cannot express the needed query.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Live Search Console Data
Overview
Get live Google Search Console and GA4 data in your agent in 30 seconds. No Google Cloud project to create, no API keys to request, no OAuth consent screen to configure. One Google sign-in and your agent can query real clicks, impressions, rankings, sessions, and conversions. Uses RefreshAgent as an authenticated proxy — keep secrets out of prompts and repositories. Prefer the bundled helper because it can authenticate, save, and reuse the user's local key without exposing it in chat.
First-Use Login
Before doing any SEO analysis, check whether the user already has a saved RefreshAgent key by running exactly one lightweight helper command first. Expect this first command to open a browser login if ~/.config/refreshagent/.env does not exist yet:
python3 /home/dunc/.codex/skills/live-search-console-data/scripts/refreshagent_api.py \
GET /api/v1/clients --loginIf the helper opens a browser, tell the user that RefreshAgent needs one Google sign-in on first use, then wait for the command to finish. Do not investigate missing output as a data/API problem while the login is pending. Do not start Search Console and GA4 discovery in parallel until this first command has completed and saved the key.
After the first command succeeds, continue with resource discovery (/api/v1/sc/sites, /api/v1/ga4/properties) and the user's requested analysis. Later runs should reuse the saved key and should not open a browser.
Authentication
Send the API key in the X-API-Key header.
Do not save API keys in skill files, repositories, shell history, examples, or final answers. Prefer:
export REFRESHAGENT_API_KEY="..."The helper also checks ~/.config/refreshagent/.env. If no key exists, it opens https://refreshagent.com/auth/cli with a localhost callback, waits for Google login, saves the returned key to ~/.config/refreshagent/.env, and then continues the original API request.
When running commands from an agent, use the helper directly. If it starts login, tell the user to complete the browser sign-in and return to the agent. Do not ask the user to manually paste a key unless browser login is unavailable.
Quick Start
Use scripts/refreshagent_api.py for authenticated REST calls:
python3 /home/dunc/.codex/skills/live-search-console-data/scripts/refreshagent_api.py \
GET /api/v1/sc/sitesTo force setup without making an API request:
python3 /home/dunc/.codex/skills/live-search-console-data/scripts/refreshagent_api.py \
GET /api/v1/clients --loginExamples:
python3 /home/dunc/.codex/skills/live-search-console-data/scripts/refreshagent_api.py \
GET /api/v1/sc/summary --param site_url=https://example.com/
python3 /home/dunc/.codex/skills/live-search-console-data/scripts/refreshagent_api.py \
GET /api/v1/sc/query --param site_url=sc-domain:example.com --param date_range=30d
python3 /home/dunc/.codex/skills/live-search-console-data/scripts/refreshagent_api.py \
GET /api/v1/sc/keyword-position --param site_url=sc-domain:example.com --param keyword="example keyword"
python3 /home/dunc/.codex/skills/live-search-console-data/scripts/refreshagent_api.py \
POST /api/v1/proposals/build/start --json '{"site":"https://example.com","audience":"agency"}'Use --base-url only when targeting a non-production RefreshAgent host.
Workflow
- Run the first-use login/setup command above and wait for it to finish if no saved key is present.
- Identify the metric source: Search Console (
/api/v1/sc/...), GA4 (/api/v1/ga4/...), clients (/api/v1/clients), or proposals (/api/v1/proposals/...). - If the site or property identifier is unknown, list available resources first with
/api/v1/sc/sites,/api/v1/ga4/properties, or/api/v1/clients. - Use explicit dates when the user asks for a time period. GSC data can lag by 2-3 days; mention that when interpreting "today" or very recent windows.
- Inspect
cache.cachedandcache.age_secondsbefore presenting results as fresh. - Preserve raw metric meaning: GSC
positionis average search position where lower is better;position_changeis positive when rank improved. - Summarize results in business language, but keep enough raw numbers for auditability.
Common Endpoints
GET /api/v1/sc/sites: list Search Console sites available to the API key.GET /api/v1/sc/summary: clicks and impressions for 30d/7d versus previous periods.GET /api/v1/sc/query: top queries, optional exactkeyword, date range, and device filter.GET /api/v1/sc/pages: top pages by clicks.GET /api/v1/sc/keyword-analysis: top 50 queries for deeper analysis.GET /api/v1/sc/keyword-position: exact keyword current/previous metrics.GET /api/v1/sc/cannibalization: query+page conflict check.GET /api/v1/sc/sitemaps: submitted sitemap status and index counts.GET /api/v1/ga4/properties: list GA4 properties.GET /api/v1/ga4/summary: organic active users and sessions.GET /api/v1/ga4/organic-sessions: organic sessions with date and path filters.GET /api/v1/ga4/landing-pages: landing pages with conversions.GET /api/v1/ga4/top-events: top events with conversions.GET/POST /api/v1/clients: list or create client site mappings.POST /api/v1/proposals/build/start: start async proposal build; poll returned job URL.POST /api/v1/proposals/build: synchronous proposal build; prefer async for agents.
For full request/response schemas, read references/openapi.yaml.
GraphQL
RefreshAgent also exposes GraphQL:
- Endpoint:
POST https://refreshagent.com/graphql - Header:
X-API-Key: <key> - Schema:
GET https://refreshagent.com/graphql/schema
Prefer REST unless the user specifically asks for GraphQL or a REST endpoint cannot express the needed query.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

