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.
- Set
CRAWLORA_API_KEY in the environment before running the helper.
- The helper reads
CRAWLORA_API_KEY from the environment and sends requests to https://api.crawlora.net/api/v1. Missing/invalid key → 401.
How it works
- SERP — Google search is
POST /google/search with flat keyword, language, and country fields;
Bing, Brave, DuckDuckGo, and Yahoo are plain GET with q:
/bing/search, /brave/search, /duckduckgo/search, /yahoo-search/search.
Cross-check engines for coverage; on a 503 challenge, 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
POST endpoints:
/google/trends/explore/interest-over-time, /interest-by-region,
/related-topics, /rising-queries, /top-queries (body: {"keywords":[...]}),
plus GET /google/trends/trending for 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 '{"keyword":"web scraping api","language":"en","country":"us"}' | jq '.'
scripts/crawlora.sh -X POST /google/trends/explore/interest-over-time '{"keywords":["web scraping"]}' | jq '.'
Use scripts/crawlora.sh for all requests; it keeps the API key out of command-line arguments.
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-queries to find momentum.
- Trend check:
POST /google/trends/explore/interest-over-time with
{"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_KEY only — never hardcode, query-param, or commit it.
- Search endpoints may return
503 when the engine serves a challenge page —
retry or switch engines (Google ↔ Bing ↔ Brave). Google search is rate-limited
to ~1 req/s (429 on excess).
1---2name: serp-keyword-research3description: Runs SERP and keyword research via the Crawlora API — Google, Bing, Brave, DuckDuckGo, and Yahoo search results plus Google Trends interest-over-time and related/rising queries — returning clean JSON. Use when the user wants search-engine rankings, SERP snapshots, autocomplete/keyword suggestions, or trend data instead of scraping result pages.4---56# SERP & keyword research78Capture search-engine results (Google, Bing, Brave, DuckDuckGo, Yahoo) and9keyword/trend signals (Google autosuggest, Google Trends) as normalized10JSON from the Crawlora API.1112## When to use this skill1314- "What ranks for <query> on Google / Bing?" / "snapshot the SERP for …".15- "Keyword ideas / autocomplete for …" (suggest endpoints).16- "Is <topic> trending?" / "interest over time / by region for <keyword>."17- "Related and rising queries for …" (Google Trends).18- SEO/SERP monitoring, keyword discovery, or trend research.1920## Setup (one-time)2122- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).23- Set `CRAWLORA_API_KEY` in the environment before running the helper.24- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.2526## How it works27281. **SERP** — Google search is `POST /google/search` with flat `keyword`, `language`, and `country` fields;29 Bing, Brave, DuckDuckGo, and Yahoo are plain `GET` with `q`:30 `/bing/search`, `/brave/search`, `/duckduckgo/search`, `/yahoo-search/search`.31 Cross-check engines for coverage; on a `503` challenge, fall back to another engine.322. **Verticals** — news/videos/images per engine (`/google/news`, `/bing/videos`,33 `/duckduckgo/news`, `/duckduckgo/image`, `/duckduckgo/video`, `/duckduckgo/shopping`, …).343. **Keyword ideas** — autosuggest: `GET /google/suggest?q=...` (and `/bing/suggest`,35 `/brave/suggest`).364. **Trends** — Google Trends `POST` endpoints:37 `/google/trends/explore/interest-over-time`, `/interest-by-region`,38 `/related-topics`, `/rising-queries`, `/top-queries` (body: `{"keywords":[...]}`),39 plus `GET /google/trends/trending` for what's hot now.4041Full endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).4243## Calling the API4445```sh46# GET search engines + suggest:47scripts/crawlora.sh /bing/search q="web scraping api" | jq '.'48scripts/crawlora.sh /brave/search q="web scraping api" | jq '.'49scripts/crawlora.sh /duckduckgo/search q="web scraping api" | jq '.'50scripts/crawlora.sh /yahoo-search/search q="web scraping api" | jq '.'51scripts/crawlora.sh /google/suggest q="web scraping" | jq '.'5253# POST endpoints take a JSON body (note -X POST):54scripts/crawlora.sh -X POST /google/search '{"keyword":"web scraping api","language":"en","country":"us"}' | jq '.'55scripts/crawlora.sh -X POST /google/trends/explore/interest-over-time '{"keywords":["web scraping"]}' | jq '.'56```5758Use `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.596061## Endpoint reference6263See [`reference/endpoints.md`](reference/endpoints.md) for every Google, Bing,64Brave, DuckDuckGo, Yahoo, and Google Trends endpoint this skill uses (method,65path, params, description).6667## Examples6869- **SERP snapshot:** `POST /google/search` (and `/bing/search`) for a target query;70 record the ranked result titles/URLs to track positions over time.71- **Keyword expansion:** seed term → `/google/suggest` → for each suggestion,72 `POST /google/trends/explore/rising-queries` to find momentum.73- **Trend check:** `POST /google/trends/explore/interest-over-time` with74 `{"keywords":["electric bikes","e-bikes"]}` and compare the series.7576## Notes & limits7778- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.79 Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).80- **Public data only** — public search results; respect each engine's terms.81- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.82- Search endpoints may return `503` when the engine serves a challenge page —83 retry or switch engines (Google ↔ Bing ↔ Brave). Google search is rate-limited84 to ~1 req/s (`429` on excess).