serp-keyword-research
stars:0
forks:1
watches:0
last updated:2026-08-10 07:51:26
SERP & keyword research
Capture search-engine results (Google, Bing, Brave, DuckDuckGo, Yahoo) and keyword/trend signals (Google autosuggest, Google Trends) as normalized JSON from the Crawlora API.
When to use this skill
- "What ranks for on Google / Bing?" / "snapshot the SERP for …".
- "Keyword ideas / autocomplete for …" (suggest endpoints).
- "Is trending?" / "interest over time / by region for ."
- "Related and rising queries for …" (Google Trends).
- SEO/SERP monitoring, keyword discovery, or trend research.
Setup (one-time)
- Get a free Crawlora API key (2,000 credits/mo, no card) at https://crawlora.net.
export CRAWLORA_API_KEY=sk_your_key_here- All requests:
x-api-key: $CRAWLORA_API_KEYagainsthttps://api.crawlora.net/api/v1. Missing/invalid key →401.
How it works
- SERP — Google search is
POST /google/searchwith asearchOptionbody; Bing, Brave, DuckDuckGo, and Yahoo are plainGETwithq:/bing/search,/brave/search,/duckduckgo/search,/yahoo-search/search. Cross-check engines for coverage; on a503challenge, fall back to another engine. - Verticals — news/videos/images per engine (
/google/news,/bing/videos,/duckduckgo/news,/duckduckgo/image,/duckduckgo/video,/duckduckgo/shopping, …). - Keyword ideas — autosuggest:
GET /google/suggest?q=...(and/bing/suggest,/brave/suggest). - Trends — Google Trends
POSTendpoints:/google/trends/explore/interest-over-time,/interest-by-region,/related-topics,/rising-queries,/top-queries(body:{"keywords":[...]}), plusGET /google/trends/trendingfor what's hot now.
Full endpoint list, methods, and params: reference/endpoints.md.
Calling the API
# GET search engines + suggest:
scripts/crawlora.sh /bing/search q="web scraping api" | jq '.'
scripts/crawlora.sh /brave/search q="web scraping api" | jq '.'
scripts/crawlora.sh /duckduckgo/search q="web scraping api" | jq '.'
scripts/crawlora.sh /yahoo-search/search q="web scraping api" | jq '.'
scripts/crawlora.sh /google/suggest q="web scraping" | jq '.'
# POST endpoints take a JSON body (note -X POST):
scripts/crawlora.sh -X POST /google/search '{"searchOption":{"q":"web scraping api"}}' | jq '.'
scripts/crawlora.sh -X POST /google/trends/explore/interest-over-time '{"keywords":["web scraping"]}' | jq '.'
Raw curl fallback:
curl -fsS -H "x-api-key: $CRAWLORA_API_KEY" \
"https://api.crawlora.net/api/v1/bing/search?q=web%20scraping%20api" | jq '.'
Endpoint reference
See reference/endpoints.md for every Google, Bing,
Brave, DuckDuckGo, Yahoo, and Google Trends endpoint this skill uses (method,
path, params, description).
Examples
- SERP snapshot:
POST /google/search(and/bing/search) for a target query; record the ranked result titles/URLs to track positions over time. - Keyword expansion: seed term →
/google/suggest→ for each suggestion,POST /google/trends/explore/rising-queriesto find momentum. - Trend check:
POST /google/trends/explore/interest-over-timewith{"keywords":["electric bikes","e-bikes"]}and compare the series.
Notes & limits
- Credits / pay-on-success: billed only on
2xx; free tier 2,000 credits/mo. Key at https://crawlora.net. - Public data only — public search results; respect each engine's terms.
- Security: key lives in
CRAWLORA_API_KEYonly — never hardcode, query-param, or commit it. - Search endpoints may return
503when the engine serves a challenge page — retry or switch engines (Google ↔ Bing ↔ Brave). Google search is rate-limited to ~1 req/s (429on excess).
