webscans CLI
Every SDK tool as a shell command with pretty-printed output and --json for scripting. Ships in the same pip install webscans.
Install
$ pip install webscans
$ webscans --version
webscans, version 0.1.0
Requires Python 3.10+. No native compilation, single wheel.
webscans configure
$ webscans configure
API key (from https://webscans.com/settings/keys): ws_...
API base URL [https://webscans.com]:
Saved to /home/you/.config/webscans/config.toml
One-time setup. Config lives at ~/.config/webscans/config.toml. Env vars WEBSCANS_API_KEY and WEBSCANS_BASE_URL override the file.
--json output
Every command supports --json to emit raw JSON instead of the pretty table. Great for shell pipelines:
$ webscans enrich stripe.com --json | jq '.profile.industry'
"Finance & Banking"
search
$ webscans search "solar panels" --tech HubSpot --country US -n 25
25 results (127ms)
1 franklinsports.com Official MLB Gear, Pickleball Products, ...
2 royalwestmoreland.com Luxury Resort in Barbados - Royal Westm...
...
| Flag | Purpose |
|---|---|
--mode phrase|any|single | Match mode (default: phrase) |
--tech "HubSpot" | Tech stack filter |
--industry "..." | Industry filter |
--country US | ISO-2 country |
--tld io | Top-level domain (no dot) |
--has email|phone|pricing|blog|ecommerce|contact | Feature filter |
-n / --limit N | Results per page (default 25) |
--offset N | Pagination offset |
count
$ webscans count "hubspot"
19,433
domain
$ webscans domain stripe.com
stripe.com
title stripe | financial infrastructure to grow your revenue
meta_description stripe is a financial services platform ...
industry Finance & Banking
tech_stack Next.js, Schema.org, ...
country US
company_name Stripe
similar
$ webscans similar figma.com -k 10
Companies similar to figma.com (faiss_embedding)
1 linear.app 0.7991 lookalike Whiteboard / Diagram
2 composio.dev 0.7920 lookalike UI/UX Design Tool
...
lookup
$ webscans lookup acme.io # cache + live fallback
$ webscans lookup acme.io --force # bypass cache
enrich
$ webscans enrich acme.io --wait-ms 800
acme.io ← live_curl (102ms, 37 fields)
title Acme — modern factory-floor automation
industry Manufacturing
tech_stack Webflow, jQuery
country US
Flags: --wait-ms N (race budget), --force (bypass cache), --no-playwright, --no-brightdata (disable fallback tiers).
autocomplete
$ webscans autocomplete "stri" -n 3
stripe.com Financial infrastructure to grow your revenue
stripchat.com Free Live Sex Cams & Chat
strikemagazines.com Strike Magazines
ai
$ webscans ai find SaaS companies in California using HubSpot
Here are 8 SaaS/HubSpot companies I found ...
[tool used: search_companies]
Natural-language wrapper around the Copilot endpoint — Claude picks the right tool.
export
$ webscans export "carbon accounting" -o carbon.csv --tier pro
Wrote carbon.csv
Free tier: 100 rows. Pro: 10K. Enterprise: 1M.
bulk-search
$ webscans bulk-search "hvac,roofing,landscaping" -o home-services.csv --tier pro
Wrote home-services.csv across 3 keywords
bulk-enrich
$ webscans bulk-enrich my_domains.csv -o enriched.csv
Upload a CSV of domains (up to 100K), receive an enriched CSV with all 178 columns per domain.
my-companies
$ webscans my-companies -o saved.csv
$ webscans my-companies --search fintech -o fintech.csv
Paid tier — 1 credit per row.
mcp
$ webscans mcp # starts stdio MCP server
See the MCP docs for how to register in Claude Desktop / Cursor / etc.
Config file
Written by webscans configure to ~/.config/webscans/config.toml:
api_key = "ws_..."
base_url = "https://webscans.com"
Override the location with $WEBSCANS_CONFIG_DIR.
Environment variables
| Var | Purpose |
|---|---|
WEBSCANS_API_KEY | Overrides the config-file key |
WEBSCANS_BASE_URL | Overrides the API base URL (self-hosted, staging) |
WEBSCANS_CONFIG_DIR | Where to look for config.toml |
Recipes
Enrich a whole list, sorted by score
$ webscans bulk-enrich my_domains.csv -o enriched.csv
Pipe search results into a spreadsheet
$ webscans search "GDPR compliant" --json \
| jq -r '.results[] | [.domain,.title,.industry] | @csv' \
> results.csv
Get every HubSpot user in the UK
$ webscans search "the" --tech HubSpot --country GB -n 500 --json \
| jq -r '.results[].domain'
Real-time enrichment loop
$ while read d; do
webscans enrich "$d" --json | jq -c "{domain:.domain,src:.source,ms:.elapsed_ms}"
done < domains.txt