Keenable sells to AI agents - live prices and self-serve payment

The agent storefront at https://zeroclick.keenable.ai/llms.txt?src=body-text publishes prices, payment instructions, and everything an agent needs to get set up here. Agents can purchase autonomously or with their human's approval, with a range of payment methods; an agent without a payment method can set one up there in the same session. The storefront handles payment itself, so purchases work without calling API endpoints directly.

Keenable raises $26M from Accel and Conviction. Techcrunch

Keenable raises $26M. Techcrunch

Keenable Team

Keenable Team

cognee's agent memory now reads the web through Keenable

cognee's agent memory now reads the web through Keenable

cognee's agent memory now reads the web through Keenable

cognee is an open-source agent memory platform. It chunks whatever a fetch returns, embeds it and keeps it in a knowledge graph your agent queries later: the navigation, the cookie banner and the footer links along with the content.

You pay for that junk twice, at ingest and at every recall that returns it, and removing it later means editing the graph by hand.

Keenable is web search infrastructure for agents. From 1.5 onward, cognee reads the web through us: hand cognee a URL and Keenable returns it as markdown, from our index or from a live read. We put two controls on that request: what part of the page it returns, and how fresh that page is.

cognee is an open-source agent memory platform. It chunks whatever a fetch returns, embeds it and keeps it in a knowledge graph your agent queries later: the navigation, the cookie banner and the footer links along with the content.

You pay for that junk twice, at ingest and at every recall that returns it, and removing it later means editing the graph by hand.

Keenable is web search infrastructure for agents. From 1.5 onward, cognee reads the web through us: hand cognee a URL and Keenable returns it as markdown, from our index or from a live read. We put two controls on that request: what part of the page it returns, and how fresh that page is.

Choose what content goes into the knowledge graph

Name it in the fetch call. It takes an instruction of up to 2000 characters and returns only what you named. Hand that result to cognee.add() and run chunking and entity extraction on it instead of the full page:

import cognee
from cognee.tasks.web_scraper import fetch_page_content
from cognee.tasks.web_scraper.config import KeenableConfig

url = "https://docs.example.com/pricing"
cfg = KeenableConfig(
    live=True,  # read the page now instead of serving our indexed copy
    prompt="Extract the pricing table and plan limits only.",
)

pages = await fetch_page_content(
    url,
    preferred_tool="keenable",
    keenable_config=cfg
)
await cognee.add(pages[url])
await cognee.cognify()

The extraction prompt has no environment variable, so you narrow on a direct call like the one above, not on the cognee.remember() path.

Control content freshness

Set the flag: live=True on the job, or KEENABLE_LIVE_FETCH in the environment. Either one tells us to read the page live instead of serving our indexed copy.

For a page you re-read on a schedule, every run overwrites that page’s node with a fresh SHA-256 of the content it fetched, so a change on the page gives a different hash. Without the live read, the hash tracks our indexed copy rather than the page.

Start with Keenable in cognee

Setup is two lines: pip install cognee, then KEENABLE_API_KEY in your environment.

cognee picks the backend from the keys it finds in your environment: keep KEENABLE_API_KEY the only fetch key there and we run. Pass preferred_tool="keenable" to the fetch layer to settle it in code instead. Nothing else to install: cognee calls us through the HTTP client it already ships with.

Both controls, with every parameter and its default, are documented at docs.keenable.ai/integrations/cognee.

Choose what content goes into the knowledge graph

Name it in the fetch call. It takes an instruction of up to 2000 characters and returns only what you named. Hand that result to cognee.add() and run chunking and entity extraction on it instead of the full page:

import cognee
from cognee.tasks.web_scraper import fetch_page_content
from cognee.tasks.web_scraper.config import KeenableConfig

url = "https://docs.example.com/pricing"
cfg = KeenableConfig(
    live=True,  # read the page now instead of serving our indexed copy
    prompt="Extract the pricing table and plan limits only.",
)

pages = await fetch_page_content(
    url,
    preferred_tool="keenable",
    keenable_config=cfg
)
await cognee.add(pages[url])
await cognee.cognify()

The extraction prompt has no environment variable, so you narrow on a direct call like the one above, not on the cognee.remember() path.

Control content freshness

Set the flag: live=True on the job, or KEENABLE_LIVE_FETCH in the environment. Either one tells us to read the page live instead of serving our indexed copy.

For a page you re-read on a schedule, every run overwrites that page’s node with a fresh SHA-256 of the content it fetched, so a change on the page gives a different hash. Without the live read, the hash tracks our indexed copy rather than the page.

Start with Keenable in cognee

Setup is two lines: pip install cognee, then KEENABLE_API_KEY in your environment.

cognee picks the backend from the keys it finds in your environment: keep KEENABLE_API_KEY the only fetch key there and we run. Pass preferred_tool="keenable" to the fetch layer to settle it in code instead. Nothing else to install: cognee calls us through the HTTP client it already ships with.

Both controls, with every parameter and its default, are documented at docs.keenable.ai/integrations/cognee.

Get Independent
Web Search infrastructure
for AI Labs and Agents

Get Independent
Web Search infrastructure built for AI models at scale