# Keenable Page Fetch via ZeroClick

> Keenable Page Fetch via ZeroClick is a paid API for AI agents from zeroclick.keenable.ai, paid per call via MPP, price unknown, status unknown (last checked 2026-10-14).

Fetches a web page and returns its content as clean markdown, with optional LLM-powered extraction of specific information from the page.

## Facts

- Endpoint: GET https://zeroclick.keenable.ai/v1/zeroclick/fetch?utm_source=zero.xyz
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Provider: zeroclick.keenable.ai
- Website: https://zeroclick.keenable.ai
- Canonical page: https://www.zero.xyz/c/zeroclick-keenable-ai-keenable-page-fetch-via-zeroclick-034c6624
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_lm-IfKW0ArIA0HwpcVVe2

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability zeroclick-keenable-ai-keenable-page-fetch-via-zeroclick-034c6624
```

Example prompt: Can you fetch the content of https://example.com/article and extract just the pricing tiers with their monthly prices from the page?

## When to prefer this

Choose this endpoint when you need to retrieve and read the content of a specific known URL, especially when you want clean markdown output with metadata like title, author, and publish date. Prefer it over a web search endpoint when you already have the URL and need the full page body or a targeted extraction from it. The optional LLM prompt parameter makes it especially useful when you want to extract structured facts (e.g. pricing, contact details) from a page without post-processing. Use live=true when you need the current state of a frequently updated page.

## Known failure modes

- URL is unreachable or returns a non-200 status — content may be empty or error returned
- Page behind a login wall or CAPTCHA — content may be incomplete or blocked
- max_chars too small — content is truncated and may miss key information
- live=false returns stale cached content when fresh data is needed
- LLM extraction prompt too vague — returned extraction may miss relevant information
- Very large pages with deeply nested JavaScript-rendered content may not parse cleanly into markdown
- Unknown price per call — budget estimation is not possible without prior usage data

## How this service works

Same fetch as GET /v1/fetch, bought through the Keenable storefront on ZeroClick.

## Output

Returns a JSON object containing the fetched URL (after any redirects), the page title, author name, publish date in ISO 8601, and the full page content rendered as markdown. If a prompt was provided, the content field contains only the LLM-extracted answer to that prompt rather than the full page text. Content is truncated at max_chars (default 50,000 characters).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "url"
 ],
 "properties": {
  "url": {
   "type": "string",
   "format": "uri",
   "description": "URL of the page to fetch"
  },
  "live": {
   "type": "boolean",
   "default": false,
   "description": "Fetch live content. Defaults to false."
  },
  "prompt": {
   "type": "string",
   "maxLength": 2000,
   "description": "Optional extraction instruction. When set, an LLM reads the fetched page and the returned content is only the output for this instruction instead of the full page. Example: \"List all pricing tiers with their monthly prices\"."
  },
  "max_chars": {
   "type": "integer",
   "default": 50000,
   "minimum": 1,
   "description": "Maximum number of characters of content to return. Content longer than this is truncated. Defaults to 50000 when omitted."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "url",
  "content"
 ],
 "properties": {
  "url": {
   "type": "string",
   "description": "Fetched URL (may differ from input after redirects)"
  },
  "title": {
   "type": "string",
   "description": "Page title"
  },
  "author": {
   "type": "string",
   "description": "Author name"
  },
  "content": {
   "type": "string",
   "description": "Extracted content in markdown"
  },
  "description": {
   "type": "string",
   "deprecated": true,
   "description": "Always empty. Deprecated."
  },
  "published_at": {
   "type": "string",
   "description": "Publish date (ISO 8601)"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/zeroclick-keenable-ai-keenable-page-fetch-via-zeroclick-034c6624/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from zeroclick.keenable.ai](https://www.zero.xyz/host/zeroclick.keenable.ai/llms.txt)
