OpenClaw native plugin that registers justserpapi as a web_search provider.
It lets OpenClaw use JustSerpAPI for Google SERP-backed web search.
- OpenClaw with plugin support
- Node.js
>=22.14.0 - A JustSerpAPI API key from the JustSerpAPI dashboard
OpenClaw installs native plugins from local paths. For GitHub distribution, clone this public repo first, then install the local plugin directory.
git clone https://github.com/justserpapi/justserpapi-openclaw-websearch.git
cd justserpapi-openclaw-websearch
openclaw plugins install . --link
openclaw plugins enable justserpapiUse --link while testing or developing so OpenClaw loads the checked-out repository. For a copied install instead, omit --link:
openclaw plugins install .Confirm OpenClaw can see the plugin:
openclaw plugins list --enabled
openclaw plugins inspect justserpapiThis repository also ships a marketplace manifest at .claude-plugin/marketplace.json, so users can install the plugin from the public GitHub repo without npm publishing.
Inspect the marketplace:
openclaw plugins marketplace list justserpapi/justserpapi-openclaw-websearchInstall from the marketplace:
openclaw plugins install justserpapi --marketplace justserpapi/justserpapi-openclaw-websearch
openclaw plugins enable justserpapiThe full GitHub URL works too:
openclaw plugins install justserpapi --marketplace https://github.com/justserpapi/justserpapi-openclaw-websearchFor remote marketplaces, OpenClaw requires plugin sources to be relative paths inside the marketplace repository. This plugin's marketplace entry uses "source": ".", pointing at this native OpenClaw plugin root.
Add the provider config to your OpenClaw config:
{
"plugins": {
"entries": {
"justserpapi": {
"enabled": true,
"config": {
"webSearch": {
"apiKey": "YOUR_JUSTSERPAPI_KEY",
"baseUrl": "https://api.justserpapi.com"
}
}
}
}
},
"tools": {
"web": {
"search": {
"enabled": true,
"provider": "justserpapi",
"maxResults": 5,
"timeoutSeconds": 30
}
}
}
}You can also provide credentials with environment variables:
export JUSTSERPAPI_API_KEY="YOUR_JUSTSERPAPI_KEY"Supported environment fallbacks:
JUSTSERPAPI_API_KEYJUSTSERP_API_KEYJUSTSERPAPI_BASE_URLJUSTSERP_BASE_URL
Under plugins.entries.justserpapi.config.webSearch:
apiKey: JustSerpAPI API key.baseUrl: API base URL, defaults tohttps://api.justserpapi.com.language: default Google language code, such asen.country: default Google country code, such asus.safeSearch:activeoroff.count: default result count, clamped to 1-10.
Tool-call parameters can override the configured defaults:
querycountcountrylanguagesafeSearch
The provider calls:
GET https://api.justserpapi.com/api/v1/google/search?query=...
X-API-Key: <apiKey>It maps JustSerpAPI data.organic_results[] into OpenClaw web search results:
titleurlsnippetdescriptionsourcesiteNamedisplayedLinkfaviconposition
missing_justserpapi_api_key: configureplugins.entries.justserpapi.config.webSearch.apiKeyor setJUSTSERPAPI_API_KEY.401or403: check that the API key is valid and the account has permission/credits.429: the JustSerpAPI account is rate limited; retry later or adjust usage.- No
web_searchresults: confirmtools.web.search.provideris set tojustserpapiand the plugin is enabled.
npm install --omit=peer
npm test
npm run typecheck
npm pack --dry-runopenclaw is declared as an optional peer dependency so this package can be tested without vendoring the full OpenClaw runtime.
Do not commit real API keys. Use OpenClaw secret storage or environment variables for credentials.