SEO Keyword & Search-Demand Intel
Pricing
from $3.00 / 1,000 keyword records
SEO Keyword & Search-Demand Intel
Bundles Google autosuggest expansion, logged-out SERP features, People-Also-Ask, related searches, and Trends seasonality into one normalized keyword record with intent, an estimated volume + difficulty model, and topic clusters. The layer Keyword Planner gates and Ahrefs/SEMrush charge for.
Pricing
from $3.00 / 1,000 keyword records
Rating
0.0
(0)
Developer
Seibs.co
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
TL;DR for SEO freelancers, agencies, content and growth teams, and AI research agents: Bundles the public Google surfaces that gate exact search volume - autosuggest (the long-tail expansion + demand-rank engine), the logged-out SERP (features, top results, "People also ask", related searches, difficulty), and Trends (seasonality) - into one normalized keyword record. On top of the raw signals it ships the value layer the gated tools charge for: a transparent, versioned volume + difficulty estimation model, search-intent classification, and topic clustering. Google Keyword Planner hides exact volume behind active ad spend, and Ahrefs ($29-$1,499/mo) / SEMrush ($139-$499/mo) sell the clean numbers - this delivers an honest estimate plus live SERP enrichment, per keyword, pay-per-use. Logged-out public data, rate-limited, no PII. Free Apify plan covers exploration runs on your $5 platform credit.
Run it in 30 seconds
# Via the Apify Python SDKfrom apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("seibs.co/keyword-demand-intel").call(run_input={"mode": "keyword_expansion","seeds": ["crm software", "project management tool"]})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Or via curl:
curl -X POST "https://api.apify.com/v2/acts/seibs.co~keyword-demand-intel/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"mode": "keyword_expansion", "seeds": ["crm software"]}'
Or click "Try for free" on this page if you prefer the no-code UI.
What you get
Each run produces:
- A clean dataset, filterable in the Apify console and downloadable as CSV or JSON
- An OUTPUT.html dashboard preview of your top keywords
- A
keywords.csv+ per-keyword content worksheet artifact - A sample-output preview at ./.actor/sample-output.json
- An
access_notesrecord up top documenting the sources, the estimation model, and the legal-safety posture
What does Keyword & Search-Demand Intel do?
It assembles search-demand intelligence from the free Google surfaces and normalizes everything into one keyword schema: term, intent (informational / commercial / transactional / navigational / local), monthly_searches_estimate + volume_band, difficulty_score + difficulty_band, expansion_source, serp_features, people_also_ask, related_searches, and seasonality. Then it runs the value layer:
- Long-tail expansion - fans each seed across Google autosuggest (the bare seed, intent modifiers like best / vs / price / near me, and the a-z "alphabet soup") into the real queries people type, deduped and ranked.
- Volume + difficulty estimation model (
estimation.py, versionedkdi-demand-v1) - a transparent, deterministic model that turns the signals we can collect (autosuggest rank + ubiquity, query shape, live SERP competition) into a banded volume estimate with an explicit confidence and a 0-100 difficulty score. The honesty is the product: these are clearly-labeled estimates, not Google's gated Keyword Planner figures or any third-party clickstream. - Live SERP enrichment - for the terms you choose, parses the logged-out SERP for top results, SERP features (featured snippet, PAA, knowledge panel, image/video/shopping/local packs, ads), and the related/PAA expansion, then scores difficulty from who actually ranks.
- Topic clustering - collapses a 400-row long-tail expansion into the handful of distinct topics a content team plans around, with summed volume and the easiest member's difficulty.
Modes
| Mode | What it returns | Charges |
|---|---|---|
keyword_expansion (default) | Seed -> long-tail universe via autosuggest, with intent + estimated volume + proxy difficulty per keyword, plus topic clusters. No SERP fetch (fast + cheap). | keyword_record + volume_estimate per keyword |
serp_analysis | Per seed term, the logged-out SERP: features, top results, PAA, related searches, and SERP-backed difficulty - plus the PAA/related mined into bonus keyword records. | serp_snapshot + keyword_record + volume_estimate per term |
keyword_metrics | The flagship bundle: expansion + volume + difficulty + live SERP features (top N terms) + optional seasonality per keyword, then topic clusters. | per-keyword + serp_snapshot per SERP-enriched term |
trend_signal | Per seed, the Google Trends seasonality signal (trend direction, peak/trough month, spikiness). Best-effort, fails soft. | keyword_record + volume_estimate per seed |
The estimation model (read this - it's the point)
Exact volume is gated; we do not pretend to reproduce Google's or Ahrefs' proprietary numbers. Instead estimation.py is a published, versioned, deterministic model you can audit:
- Volume composes a log-scale demand score from autosuggest rank (rank 0 = the top completion Google offers for a prefix), ubiquity (how many prefixes surface the term), query word count (head vs. long-tail), and SERP corroboration (PAA/related presence, result count), then maps it to a band (
very_low->very_high) with a confidence that rises with the number of signals. - Difficulty scores 0-100 from the live SERP - the share of high-authority domains in the top 10, ad competition, and featured-snippet pressure - or, without a SERP, a transparent proxy from intent + query shape (marked
proxy: true).
Every estimate carries model_version and signals_used so you can pin, diff, or override it. If you need Google's exact gated number, this is not that; if you need a defensible, free, queryable demand-and-difficulty signal at scale, this is.
Anti-bot escalation (for the SERP leg)
Autosuggest is a lightweight public JSON endpoint that almost always clears on the first httpx pass. The SERP is the surface Google fingerprints: a datacenter IP often gets a consent / "unusual traffic" interstitial. The client escalates automatically:
httpx (datacenter) -> curl_cffi Chrome TLS impersonation (residential) -> Playwright stealth browser (residential) -> fail-soft
If every tier is blocked, the term emits a documented fetch_error and the run still finishes SUCCEEDED with whatever it collected. Set browser_cdp_url (or the BROWSER_CDP_URL env var) to a warm anti-detect browser to clear the toughest interstitials. The expansion (autosuggest) leg keeps working regardless, so a run is never empty.
Legal-safety posture
Per the gated-data playbook (Section B): logged-out public Google surfaces only (autosuggest, the public SERP, public Trends), rate-limited, no accounts, no user-supplied cookies, no paywalls. Keyword and SERP data carry no personal data - PII-minimized by construction. Volume and difficulty are presented as clearly-labeled model estimates, never as Google's gated figures.
Cost control
Five-layer defense shared across the portfolio: pre-flight input caps, a top-level try/except that routes any failure to demo mode (so the run finishes SUCCEEDED with no "Under maintenance" scar), an in-run _RunBudget guard that aborts cleanly if compute outruns pay-per-event revenue, in-loop budget checks before each expensive SERP fetch, and hardcoded PPE prices that keep the guard accurate without an API round-trip. A run that returns nothing costs nothing.
Monitor mode
Save this actor as an Apify task and put it on a schedule to track a keyword set over time. On scheduled runs it emits a change digest (rank movement, difficulty shifts, new/lost SERP features) and can POST it to a Slack-compatible monitor_webhook_url. Charges one scheduled_delta_run per scheduled run.
Pricing (pay-per-event)
| Event | Price | What it is |
|---|---|---|
keyword_record | $0.003 | One normalized keyword (term, intent, word count, expansion source, proxy difficulty) |
volume_estimate | $0.006 | The demand-model output for a term (banded volume + confidence) - the layer Keyword Planner gates |
serp_snapshot | $0.008 | Top results + SERP features + PAA + related + SERP-backed difficulty for a term |
scheduled_delta_run | $0.050 | One scheduled monitor-mode change digest |
For comparison: Ahrefs is $29-$1,499/mo and SEMrush $139-$499/mo, both subscription-gated.
AI agents / MCP
There's a paired MCP server (mcp-keyword-demand-intel) exposing expand_keywords, keyword_metrics, analyze_serp, keyword_difficulty, and trend_signal as agent tools, with x402 (USDC on Base) and Skyfire agentic-payment support. The overview dataset view and the MCP-compatible output link are built for direct tool-call wiring (Claude, GPT, LangChain, LlamaIndex).
Related actors
Part of the seibs.co intel portfolio. Pairs well with shopify-store-discovery (find a store, then size its keyword demand) and b2b-sales-triggers (keyword -> intent -> account). See the full portfolio for the public-records and lead-gen actors.