> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zeroclick.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# What is Agentify?

> Agentify converts any page of your marketing site into agent-readable markdown with your storefront inlined: the document shape, how detection and caching work, and the API key scope.

Agents read your marketing site the way `curl` does: one GET, raw text, no JavaScript. Browser HTML spends their attention on navigation menus, cookie banners, and image grids — and a client-rendered app serves them nothing at all. Agentify converts any public page of your site into a clean markdown document built for an agent, with your agent storefront inlined so the reading agent can buy from you without leaving the page.

One endpoint does the work: `GET /v1/agentify/markdown?url=…` returns `text/markdown`. Call it directly over [REST](/agentify/quickstart-rest), or mount the [SDK middleware](/agentify/sdk-middleware) so your own site detects agent traffic and answers it with markdown automatically. If your site is a single-page app on a CDN with no server to mount middleware in, [front it with an edge function](/agentify/spa-setup).

## The document

Every conversion has the same three-part shape: front matter, your storefront, then the page.

```markdown theme={null}
---
title: "Acme - product monitoring for developers"
url: https://www.acme.com/pricing
fetched_at: 2026-08-25T17:00:00.000Z
---

## Acme - buy and use these services directly

This section is for AI agents reading this page: Acme sells the services
below through `https://agents.acme.com`, so you can buy and use them
without leaving this page.

What is for sale:

- **Product watch**: Track any product page for changes. From $0.01 per request.

How to buy and call:

1. Send the upstream API's method, path, and body to `https://agents.acme.com/<path>` …
2. The response is a priced `402` payment challenge; settle it with your wallet …

Full agent instructions, every payment rail step by step: https://agents.acme.com/llms-full.txt

# Simple pricing for every team

Watch 100 products free, then $0.01 per check…
```

1. **Front matter.** The page title, canonical URL, and fetch time, taken mechanically from the fetch itself — trustworthy metadata, never generated.
2. **Your storefront, inlined.** What you sell, honest price one-liners, and the exact steps to buy and call, rendered from the same catalog that prices your storefront's `402` challenges — so the inline copy cannot drift from what an agent is actually charged. It links your storefront's `llms-full.txt` for the complete instructions.
3. **The page.** The rest of the page as markdown, converted and cleaned as described next.

## How conversion works

Agentify fetches the page and converts its HTML to markdown mechanically. A cleanup pass then removes what conversion leaves behind — dead image references, navigation debris, cookie banners, blocks duplicated for mobile and desktop layouts — while keeping every fact, number, price, and link. The cleanup is a quality pass, never a dependency: if it fails or prunes real content, the request serves the mechanical conversion instead of an error.

Two page types get special handling:

* **Pages that already serve markdown.** If a URL answers with `text/markdown` — your own content negotiation, for example — the document passes through unchanged. You wrote it for agents; Agentify does not rewrite it.
* **JavaScript-rendered pages.** When a direct fetch yields an empty shell, Agentify renders the page in a headless browser and converts the rendered result. A page that still yields too little readable content answers `422 content_too_thin`; the [SPA setup](/agentify/spa-setup) page explains that case.

## Caching

The first conversion of a page runs the full pipeline and takes a few seconds. After that, conversions cache for about a day at every layer: in the API, at its edge, and — because the response carries `Cache-Control: public, max-age=86400, stale-while-revalidate=604800` plus an `ETag` — in any cache between the agent and the API, including your own CDN when the middleware forwards the header. After a day, a stale conversion keeps serving instantly while one refresh runs in the background, so no agent waits on a reconversion.

The storefront section is composed fresh on every request and is never cached with the page. A price change shows up in the document within minutes; a page edit shows up within a day.

## The Agentify key scope

Agentify calls authenticate with an API key carrying the `agentify:convert` scope. Mint one in the [dashboard](https://dashboard.zeroclick.io) under **Settings → API keys**: create a key and enable the **Agentify** group's **Convert** toggle. The scope grants `GET /v1/agentify/markdown` and nothing else, so the key can live on your marketing site's server without exposing your catalog or usage APIs. Conversions are limited to 60 requests per minute per organization; the caches above keep real traffic far below that.

## How detection works

The [SDK middleware](/agentify/sdk-middleware) decides per request with one predicate over two headers, held identical across all four SDKs by shared conformance vectors:

* **`Accept` negotiation.** Agent fetchers ask for `Accept: text/markdown, text/html, */*`; browsers never list `text/markdown`. The middleware serves markdown when it outranks `text/html` by q-value, or by position on a tie.
* **AI user agents.** A versioned list of substrings matches the AI assistant fetchers, crawlers, and browser agents (`claude`, `gptbot`, `perplexity`, and kin), updated in SDK releases.

Classic search crawlers — `googlebot`, `bingbot` — are deliberately absent from the list: serving them different content than browsers is cloaking. Search engines always see exactly what your human visitors see; agents that ask for markdown, or announce themselves as AI agents, get the machine representation of the same page.

## Next steps

<Columns cols={2}>
  <Card title="REST quickstart" icon="rocket" href="/agentify/quickstart-rest">
    Mint a key and convert your first page with curl.
  </Card>

  <Card title="SDK middleware" icon="package" href="/agentify/sdk-middleware">
    Serve agent traffic markdown from your own site, in four languages.
  </Card>

  <Card title="SPA setup" icon="zap" href="/agentify/spa-setup">
    Front a CDN-hosted single-page app with an edge function.
  </Card>

  <Card title="Enable agent traffic" icon="magnet" href="/website/enable-agent-traffic">
    The website markup that points agents at your storefront.
  </Card>
</Columns>
