Tools
Hasdata Openclaw
HasData plugin for OpenClaw. Real-time access to Google SERP, Amazon, Zillow, Indeed, Google Maps, and more. Structured web data for your autonomous AI agent. Install and go.
Install
npm install
npm
Configuration Example
{
"plugins": {
"entries": {
"hasdata": {
"enabled": true,
"config": {
"apiKey": "hd_xxx",
"baseUrl": "https://api.hasdata.com", // optional
"timeoutMs": 120000 // optional (default 120s)
}
}
}
}
}
README
# HasData Plugin for OpenClaw
[](https://github.com/HasData/hasdata-openclaw-plugin/actions/workflows/ci.yml)
[](https://github.com/HasData/hasdata-openclaw-plugin/releases)
[](https://www.npmjs.com/package/@hasdata/hasdata-openclaw-plugin)
[](LICENSE)
Real-time web data for OpenClaw agents โ Google SERP, Google Maps, Google News, Google Shopping, Google Trends, Google Flights, Bing, Amazon, Shopify, Zillow, Redfin, Airbnb, Yelp, YellowPages, Indeed, Glassdoor, Instagram, and arbitrary URL scraping (HTML / Markdown / AI-extracted JSON) โ all exposed as a single `hasdata` tool via the [HasData API](https://hasdata.com).
No proxy rotation, no headless-browser farm, no captcha solver to run โ one tool call, structured JSON back.
## Install
```sh
openclaw plugins install @hasdata/hasdata-openclaw-plugin
```
Restart the Gateway after installation.
## How it works
1. The agent calls the `hasdata` tool with `action` (one of ~40 endpoint slugs) and `params` (per-endpoint inputs).
2. The plugin forwards the request to `api.hasdata.com`, which renders the page and parses the result.
3. The LLM gets structured JSON back โ organic results, prices, reviews, listings, extracted fields โ ready to reason over.
The tool schema is **auto-generated** from the live HasData OpenAPI catalog, so every endpoint's required/optional params, enums, and descriptions flow into the LLM's function-call schema. No manual schema drift.
## Get an API key
1. Sign up at [hasdata.com](https://hasdata.com).
2. Copy your API key from the dashboard.
3. Free tier includes 1,000 credits/month โ enough to smoke-test every endpoint.
## Configure
Config lives at `~/.openclaw/openclaw.json` under `plugins.entries.hasdata.config`:
```jsonc
{
"plugins": {
"entries": {
"hasdata": {
"enabled": true,
"config": {
"apiKey": "hd_xxx",
"baseUrl": "https://api.hasdata.com", // optional
"timeoutMs": 120000 // optional (default 120s)
}
}
}
}
}
```
Or use the CLI wizard:
```sh
openclaw hasdata setup --api-key hd_xxx
```
`apiKey` also falls back to the `HASDATA_API_KEY` environment variable.
## `hasdata` tool
Single tool, two fields:
- **`action`** (enum) โ endpoint slug, e.g. `google-serp`, `amazon-product`, `zillow-listing`, `web-scraping`.
- **`params`** (object) โ endpoint-specific parameters. Schema enforced per action.
### Supported sources
**Search engines**
- **Google Search** โ `google-serp`, `google-serp-light`, `google-ai-mode`, `google-news`, `google-shopping`, `google-images`, `google-short-videos`, `google-events`, `google-flights`, `google-trends`, `google-immersive-product`.
- **Bing** โ `bing-serp`.
**Google Maps & local**
- **Google Maps** โ `google-maps` (business search), `google-maps-place`, `google-maps-reviews`, `google-maps-contributor-reviews`, `google-maps-photos`.
- **Yelp** โ `yelp-search`, `yelp-place`.
- **YellowPages** โ `yellowpages-search`, `yellowpages-place`.
**E-commerce**
- **Amazon** โ `amazon-search`, `amazon-product`, `amazon-seller`, `amazon-seller-products`.
- **Shopify** โ `shopify-products`, `shopify-collections`.
**Real estate & travel**
- **Zillow** โ `zillow-listing`, `zillow-property`.
- **Redfin** โ `redfin-listing`, `redfin-property`.
- **Airbnb** โ `airbnb-listing`, `airbnb-property`.
**Jobs**
- **Indeed** โ `indeed-listing`, `indeed-job`.
- **Glassdoor** โ `glassdoor-listing`, `glassdoor-job`.
**Social**
- **Instagram** โ `instagram-profile`.
**Arbitrary web**
- **`web-scraping`** โ scrape any URL with JS rendering, residential proxies, ad blocking, markdown output, CSS-selector extraction, AI-based extraction rules, screenshots.
Full endpoint list with per-action parameter schemas is embedded in the tool description the LLM sees; reference docs at [docs.hasdata.com](https://docs.hasdata.com).
### Examples
```js
// Google SERP โ grounding an LLM answer in live search results
await hasdata({
action: "google-serp",
params: { q: "best espresso machine 2026", gl: "us", num: 20 }
});
// Amazon product lookup โ price monitoring
await hasdata({
action: "amazon-product",
params: { asin: "B08N5WRWNW", domain: "amazon.com" }
});
// Zillow listings โ real-estate research
await hasdata({
action: "zillow-listing",
params: {
keyword: "Austin, TX",
type: "forSale",
priceMin: 400000,
priceMax: 900000,
bedsMin: 3,
homeTypes: ["house", "townhome"],
sort: "priceLowToHigh"
}
});
// Google Maps โ local lead generation
await hasdata({
action: "google-maps",
params: { q: "plumber", ll: "@30.267,-97.743,14z", hl: "en" }
});
// Indeed โ job-market intelligence
await hasdata({
action: "indeed-listing",
params: { keyword: "rust engineer", location: "Remote", fromDays: 7 }
});
// Scrape any URL to markdown โ RAG ingestion
await hasdata({
action: "web-scraping",
params: {
url: "https://news.ycombinator.com",
outputFormat: ["markdown"],
jsRendering: true
}
});
// Scrape with AI extraction โ structured data from unstructured pages
await hasdata({
action: "web-scraping",
params: {
url: "https://example.com/annual-report",
aiExtractRules: {
ceo_name: { type: "string", description: "Name of the CEO" },
revenue_usd: { type: "number", description: "Revenue in USD" },
year_founded: { type: "number" },
// `list` of scalars โ shorthand `output: "string"`
board_members: { type: "list", output: "string" },
// `item` โ nested object, always needs `output: { ... }`
hq_address: {
type: "item",
output: {
city: { type: "string" },
country: { type: "string" }
}
}
}
}
});
```
## Use cases
### AI agents & tool-use
Drop `hasdata` into any OpenClaw agent and it can search the web, check prices, look up properties, fetch reviews, and scrape arbitrary pages without leaving the agent loop. Because the tool schema is strict and auto-generated, the LLM rarely hallucinates parameters โ and when it does, the response surfaces the API's validation error verbatim.
### RAG ingestion
Stream fresh Google SERP, News, Shopping, or arbitrary web pages into your vector store. A sub-agent loop running `google-serp` โ `web-scraping` with `outputFormat: ["markdown"]` produces clean Markdown chunks ready to embed.
### Prompt-time grounding
Need up-to-date facts mid-conversation? Have the agent call `google-serp` or `google-ai-mode` and paste the structured response into its reasoning context. Works around the LLM's training cutoff for current events, product pricing, real-estate comps, and fresh reviews.
### Price monitoring & competitive intelligence
Poll `amazon-product`, `amazon-search`, `google-shopping`, and `shopify-products` on a schedule to track competitor pricing, stock status, and new-product launches.
### Real-estate research
`zillow-listing` + `zillow-property`, `redfin-listing` + `redfin-property`, and `airbnb-listing` + `airbnb-property` cover sale, rent, and short-term-rental comps across the US market.
### Local-business lead generation
`google-maps` + `yelp-search` + `yellowpages-search` produce name, address, phone, website, hours, rating, and review counts for any city ร niche combination โ ready for CRM import or outreach.
### Job-market intelligence
`indeed-listing` + `glassdoor-listing` track open roles by keyword, location, and recency; pair with `indeed-job` / `glassdoor-job` for full JD text.
### SEO & SERP tracking
`google-serp`, `google-serp-light`, and `google-ai-mode` return organic positions, AI Overviews, ads, PAA ("People Also Ask"), knowledge panels, and related searches โ the data set SEO teams rebuild from scratch in every tool.
### News & sentiment monitoring
`google-news` plus `web-scraping` with `outputFormat: ["markdown"]` produces a clean feed of recent articles on any topic, publisher, or geography.
### Travel research
`google-flights`, `airbnb-listing`, and `google-maps-reviews` cover the travel research triangle โ flight search, lodging, and on-the-ground reviews โ in three tool calls.
### Any page, any shape
When no dedicated endpoint exists, `web-scraping` renders JS, rotates proxies, bypasses anti-bot, and returns HTML, text, Markdown, or AI-extracted structured JSON โ with `aiExtractRules` letting the agent declare the output shape inline.
## CLI
The plugin registers an `openclaw hasdata` subcommand:
```sh
openclaw hasdata setup --api-key hd_xxx # write API key to ~/.openclaw/openclaw.json
openclaw hasdata status # print the currently-loaded plugin config (API key masked)
openclaw hasdata test --query "openclaw" # cheap smoke test against google-serp-light
```
## Tips for agents
- **Pick the cheap endpoint first.** `google-serp-light` (5cr) is enough for most "what does Google say about X" queries; reserve `google-serp` (10cr) for when you need AI Overview, knowledge graph, or PAA.
- **Use Markdown output for LLM context.** `web-scraping` + `outputFormat: ["markdown"]` produces a clean representation that's cheap to feed back into the model.
- **Use `aiExtractRules` instead of parsing HTML in the agent.** HasData runs the extraction server-side; you get structured JSON back and save LLM tokens.
- **Check `credits` in the response** to track spend per call; HasData returns it on every successful response.
## Security
- API keys are read from `plugins.entries.hasdata.config.apiKey` (plaintext in the config file โ Lock down `~/.openclaw/openclaw.json` as you would `~/.aws/credentials`) or from the `HASDATA_API_KEY` environment variable. They never
... (truncated)
tools
Comments
Sign in to leave a comment