# Keenable pricing: what do Web Search, Page Fetch and SELECT cost?

One Keenable Web Search costs $0.004 and one Page Fetch $0.004. A SELECT query, which reads many pages and answers with a table, costs $0.10. All three draw on one prepaid Credits balance, bought from $0.50 with no subscription, and a call that fails costs nothing.

## At a glance

- **Web Search:** `POST https://zeroclick.keenable.ai/zcj/tglvfdpwhhwg/v1/zeroclick/search`, at $4 per thousand requests
- **Page Fetch:** `GET https://zeroclick.keenable.ai/zcj/tglvfdpwhhwg/v1/zeroclick/fetch`, at $4 per thousand requests
- **SELECT:** `POST https://zeroclick.keenable.ai/zcj/tglvfdpwhhwg/v1/zeroclick/select`, at $0.10 per request for each query that answers `200`
- **Balance:** one Credits plan covers all three. The minimum purchase is $0.50, and $0.50 by card. There is no subscription.
- **Payment:** Credits are bought over x402 or MPP (USDC wallet rails) or by card. The buyer skill has the purchase steps.
- **Access:** `Authorization: Bearer <token>`. [Identity](https://zeroclick.keenable.ai/zcj/tglvfdpwhhwg/auth.md) and the buyer skill have the steps to get one.
- **Charge per call:** the `zc-billing` response header gives `chargedUsd` and `remainingCreditUsd`
- **Full purchase flow:** [the buyer skill](https://zeroclick.keenable.ai/zcj/tglvfdpwhhwg/SKILL.md)

## Price per call

| Service | Price | One request is |
| --- | --- | --- |
| Web Search | $4 per thousand requests | one search, with any filters (`site`, publish and index date windows, `query_time`) and any `max_results` |
| Page Fetch | $4 per thousand requests | one page, from the index or with `live=true`, with or without a `prompt` |
| SELECT | $0.10 per request | one query that answers `200`, however many pages it searches or fetches |

The storefront rate matches Keenable's own prepaid credits.

## Worked costs

At the current rates, the smallest purchase of $0.50 covers 125 searches, 125 fetches or 5 SELECT queries.

| Usage | Cost |
| --- | --- |
| 125 searches | $0.50 |
| 125 page fetches | $0.50 |
| 5 SELECT queries | $0.50 |
| 1,000 searches | $4 |
| 1,000 searches, 1,000 fetches and 10 SELECT queries | $9 |

## What is charged and when

- Each call that succeeds draws its price from Credits. Nothing else is charged.
- A search for five results returns `query`, `mode` and `results`. Each result has `title`, `url`, `snippet`, `published_at` and `acquired_at`. The search drew $0.004 from Credits.
- A Page Fetch capped at `max_chars=3000` returns `url`, `title`, `content` as Markdown, `author` (a name) and `published_at` in Unix seconds. The fetch drew $0.004.
- One SELECT that fetched three pages and extracted two fields from each with `SEM_EXTRACT` returned a three-row table with a `result_set_id`. The query drew $0.10.
- Any SELECT that answers `200` is one request, including a later query that reads `FROM` a saved `result_set_id`.
- A call that fails is not billed. A fetch of a page that does not exist answers `404` with a JSON body of `error` and `message`. It draws nothing from Credits.
- You cannot pay for a call on its own. A call without a credential answers `401 bearer_required`. A credential without Credits answers `403 plan_required`.

## Frequently asked questions

### Is there a subscription or a monthly fee?

No. Credits is a prepaid balance with no interval. Calls draw it down. When it runs low, or a call returns `usage_exhausted`, add credit with `POST https://zeroclick.keenable.ai/zcj/tglvfdpwhhwg/extend` and an `amountUsd`. The first purchase is `POST /plans/{planId}/purchase`, with the plan id from the [catalog](https://zeroclick.keenable.ai/zcj/tglvfdpwhhwg/manifest.json), and the buyer skill has the steps.

### Does a filtered search or a live fetch cost more?

No. Each search is one request, whatever its filters or result count. Each fetch is one request, whether it comes from the index, runs with `live=true` or carries an extraction `prompt`.

### What do 1,000 searches cost?

1,000 searches cost $4, and 1,000 page fetches cost $4. Both draw on the same Credits balance as SELECT.

### Is a failed call billed?

No. A response with an error status draws nothing from Credits. That covers a page that does not exist, an invalid SELECT query (`400`), a rate limit (`429`) and a `503`, which means the storefront could not confirm your balance at that moment. Retry a `503` after `Retry-After`.

### How do I see what a call cost?

Read the `zc-billing` header on the response. `chargedUsd` is what the call drew, and `remainingCreditUsd` is your balance after it. To list your plans and remaining credit, send `GET https://zeroclick.keenable.ai/zcj/tglvfdpwhhwg/agent/entitlements` with your bearer.

## Keep reading

- [The buyer skill](https://zeroclick.keenable.ai/zcj/tglvfdpwhhwg/SKILL.md): the purchase flow from credential to first call
- [Catalog](https://zeroclick.keenable.ai/zcj/tglvfdpwhhwg/manifest.json): live services, plans and prices
- [How to pay](https://zeroclick.keenable.ai/zcj/tglvfdpwhhwg/payment.md): Credits over x402, MPP and card
- [Identity](https://zeroclick.keenable.ai/zcj/tglvfdpwhhwg/auth.md): register the agent credential
- [Error reference](https://zeroclick.keenable.ai/zcj/tglvfdpwhhwg/errors.md): every error code and what to do about it

---

Updated 2026-11-04. All Keenable guides: https://zeroclick.keenable.ai/guides.md. Storefront: https://zeroclick.keenable.ai/zcj/tglvfdpwhhwg/llms.txt.
