Web search and page fetch built for AI agents, as a Dify tool plugin. Keyless by default — it works with no signup or API key; add a key later to raise rate limits and unlock realtime search.
Two tools:
- Keenable Search — search the web and get ranked results (title, URL,
snippet, publication date), with optional
siteand date filters and apro/realtimemode. - Keenable Fetch — read a single web page and get its main content as clean markdown, with navigation and boilerplate stripped.
- Install the plugin from the Dify Marketplace (or upload the
.difypkg). - Authorize the provider. The API key field is optional:
- Leave it empty to use Keenable keyless (free tier).
- Paste a key (
keen_...) to raise rate limits and enablerealtimemode. Create one at https://keenable.ai.
- Add Keenable Search / Keenable Fetch to an Agent or a Workflow tool node.
In an Agent app, the model calls the tools itself: it searches, then fetches the most relevant result to read the full page.
In a Workflow, add a Tool node:
- Keenable Search — set
query(and optionallymode,site,published_after,published_before). Outputsjson({"results": [...]}) and a formattedtextdigest. - Keenable Fetch — set
url. Outputs the page asjson(withcontentand metadata) and astext(the markdown content).
| Parameter | Type | Required | Description |
|---|---|---|---|
query |
string | yes | The search query. |
mode |
select (pro / realtime) |
no | pro (default, deeper) or realtime (low latency, needs a key). |
site |
string | no | Restrict results to a single domain, e.g. github.com. |
published_after |
string | no | Only pages published on/after YYYY-MM-DD. |
published_before |
string | no | Only pages published on/before YYYY-MM-DD. |
| Parameter | Type | Required | Description |
|---|---|---|---|
url |
string | yes | Absolute http(s) URL to fetch and read. |
The plugin makes outbound HTTPS requests to https://api.keenable.ai only, on port
443. No inbound connections, no other hosts, and no local network access — the fetch
tool refuses private and internal addresses (loopback, RFC1918, link-local such as
169.254.169.254, reserved, multicast) before any request is issued, including the
legacy decimal/hex/octal IPv4 encodings that resolvers still accept. Self-hosted Dify
instances behind an egress firewall need api.keenable.ai allowlisted.
No credentials are required: the plugin calls the keyless public endpoints by default.
An optional KEENABLE_API_KEY raises rate limits.
Queries, fetched URLs, and any provided API key are sent to the Keenable API
(https://api.keenable.ai) to fulfill each request. See PRIVACY.md.
- Source repository: https://github.com/keenableai/dify-plugin-keenable
- Keenable: https://keenable.ai · support@keenable.ai