Integration
Serpkite
SerpKite for OpenClaw: Google web search provider plus serpkite_search and serpkite_webpage tools
Install
npm install
npm
README
# SerpKite plugin for OpenClaw
Adds [SerpKite](https://serpkite.com) to [OpenClaw](https://github.com/openclaw/openclaw):
- a `serpkite` provider for OpenClaw's built-in `web_search` tool (Google results), and
- two agent tools: `serpkite_search` (Google search with more options) and
`serpkite_webpage` (a public page or PDF as clean Markdown).
SerpKite is a Google search API built for agents. New accounts get 2,500 credits at
signup and 1,000 free credits every month. A search costs 1 credit and a page read
costs 1 credit.
## Install
Requires OpenClaw 2026.10.10 or later.
```bash
openclaw plugins install npm:@serpkite/openclaw-plugin
```
The `npm:` prefix installs from npm. Without it, OpenClaw looks up scoped package
names on ClawHub. In a noninteractive shell, add `--force` (and
`--accept-capabilities` if OpenClaw asks for capability consent) after you have
reviewed the package.
## Get an API key
Create a key at <https://app.serpkite.com/keys>. Keys start with `skt_live_`.
## Configure
Set the key in the Gateway environment:
```bash
export SERPKITE_API_KEY=skt_live_...
```
or in the OpenClaw config, and select SerpKite as the `web_search` provider:
```json5
{
plugins: {
entries: {
serpkite: {
enabled: true,
config: {
webSearch: {
apiKey: "skt_live_...", // optional if SERPKITE_API_KEY is set; SecretRefs work too
// baseUrl: "https://api.serpkite.com", // optional override
},
},
},
},
},
tools: {
web: {
search: {
provider: "serpkite",
},
},
},
}
```
You can also pick SerpKite in `openclaw configure --section web`.
The key is resolved from `plugins.entries.serpkite.config.webSearch.apiKey` first,
then `SERPKITE_API_KEY`. The base URL comes from `webSearch.baseUrl`, then
`SERPKITE_BASE_URL`, then `https://api.serpkite.com`.
Check it works:
```bash
openclaw infer web search --query "openclaw plugins" --json
```
## What the agent gets
### `web_search` (provider `serpkite`)
| Parameter | Description |
| ------------- | ---------------------------------------------------- |
| `query` | Search query (required). |
| `count` | Results to return, 1-10. |
| `country` | 2-letter country code, default `us`. |
| `language` | Interface language, e.g. `en`, `de`, `pt-BR`. |
| `freshness` | `hour`, `day`, `week`, `month` or `year`. |
| `date_after` | Only results published on or after `YYYY-MM-DD`. |
| `date_before` | Only results published on or before `YYYY-MM-DD`. |
Each search fetches one page of 10 results for 1 credit.
### `serpkite_search`
Everything above (`time` instead of `freshness`, `start_date`/`end_date` instead of
`date_after`/`date_before`), plus:
| Parameter | Description |
| ----------------- | --------------------------------------------------------------------------- |
| `num` | 10 (default), 20, 30, 50 or 100. 1 credit per 10 results; 100 costs 7. |
| `include_domains` | Up to 20 domains, path prefixes (`github.com/org`) or TLDs (`.gov`) to keep. |
| `exclude_domains` | Up to 20 sources to drop. |
### `serpkite_webpage`
| Parameter | Description |
| ----------- | -------------------------------------------------------- |
| `url` | Public http(s) URL of an HTML page or PDF (required). |
| `country` | Fetch the page as seen from this country. |
| `max_chars` | Truncate the Markdown to this length (default 50,000). |
1 credit per page. Pages that need JavaScript are rendered by SerpKite.
## Caching and errors
Results are cached in memory for `tools.web.search.cacheTtlMinutes` (default 15;
`0` turns the cache off). The cache is keyed by a hash of the API key, so
different keys never share results.
API errors keep SerpKite's status, code and `request_id`:
| Status | Meaning |
| ------ | ---------------------------------------------------------------- |
| 401 | Missing, invalid or revoked key. |
| 402 | Out of credits. |
| 429 | Rate limited. Retry later. |
| 503 | Google or the page could not be fetched. Not billed; retry. |
## Development
```bash
npm install
npm run typecheck
npm test
npm run build
SERPKITE_API_KEY=skt_live_... npm run test:live # spends 2 credits
```
To try a local build in OpenClaw:
```bash
npm pack
openclaw plugins install npm-pack:./serpkite-openclaw-plugin-0.1.0.tgz --force
openclaw plugins inspect serpkite --runtime --json
```
Releases are published to npm from GitHub Actions with npm trusted publishing
(OIDC) and provenance when a `v*` tag is pushed.
## License
MIT
integration
Comments
Sign in to leave a comment