Skip to main content

langchain-keenable

This package contains the LangChain integration with Keenable, a web search and page-fetch API built for AI agents.

Installation

pip install -U langchain-keenable

Optionally set a KEENABLE_API_KEY environment variable to use the authenticated endpoints. Without a key, both search and fetch transparently fall back to their keyless public endpoints.

export KEENABLE_API_KEY="your-api-key"  # optional; create one at https://keenable.ai/console

The API endpoint defaults to https://api.keenable.ai and can be overridden (e.g. for staging) with the KEENABLE_API_URL environment variable. It must be an https:// URL.

Tools

KeenableSearch

Queries the Keenable search API and returns a list of result dictionaries. All filters are per-invocation, so an agent can vary them per query:

from langchain_keenable import KeenableSearch

# Works with no key (keyless public endpoint) or with KEENABLE_API_KEY set.
tool = KeenableSearch()

results = tool.invoke({
    "query": "typescript best practices",
    "site": "github.com",          # optional: restrict to a domain
    "published_after": "2026-01-01",  # optional: YYYY-MM-DD date filters
    # "published_before" / "acquired_after" / "acquired_before" also supported
})
for result in results:
    print(result["title"], result["url"])

mode defaults to "pro" (deeper retrieval). It can be set as a class default and overridden per call.

KeenableFetch

Fetches a page via Keenable and returns its main content as markdown — pair it with KeenableSearch so an agent can read the pages it discovers:

from langchain_keenable import KeenableFetch

tool = KeenableFetch()
page = tool.invoke({"url": "https://example.com/article"})
print(page["title"], page["content"])

Error handling

Both tools set handle_tool_error = True: rate limits (429), auth (401) and credit (402) errors, network timeouts and malformed responses are surfaced to the agent as an error string (carrying the backend's message) rather than raising and crashing the agent loop.

Async

Both tools implement _arun, so await tool.ainvoke({...}) works (the request runs in a worker thread).

The tools can be bound to any LangChain chat model that supports tool calling and used within an agent.

Release files for langchain-keenable 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for langchain-keenable 0.1.2
File Size Uploaded
langchain_keenable-0.1.2.tar.gz 145.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for langchain-keenable 0.1.2
File Interpreter ABI Platform
langchain_keenable-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 155.5 kB

Release files / langchain_keenable-0.1.2.tar.gz

Download URL langchain_keenable-0.1.2.tar.gz
Size 145.7 kB
Tags Source
SHA-256 checksum
How to use checksums
be9578b9623df6258c7be3f1d6946da568d9e872125be9c1c8716e402a78fb07
BLAKE2b-256 checksum
How to use checksums
91926886c3ba0177aa0cf37e2061dbf40c7011ca3a1b6cb302ff87d46c6aa899
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 23, 2026.

Transparency log

Release files / langchain_keenable-0.1.2-py3-none-any.whl

Download URL langchain_keenable-0.1.2-py3-none-any.whl
Size 9.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1b2e79f379dfe96627cd47635fdc581a40433b51483b0ef09f2629f605fd0c51
BLAKE2b-256 checksum
How to use checksums
c33ab47985db882bd60416a1b89ae413d619c4dde5814ce24c9afeed031503c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page