Get your agent traffic into Pickrate
Four ways in. Pick the one that matches who you are and what you can change — they all feed the same report.
Which one?
| You | Install | Code? | Sees status |
|---|---|---|---|
| Just want to see something now | Paste an access log | No | Yes |
| On Vercel | Log drain | No | Yes |
| Hosted docs, no-code, or no repo | Cloudflare Worker | No | Yes |
| Can edit the app | Framework middleware | One line | No |
Paste an access log
The zero-commitment start. Copy a chunk of your access log into Setup and Pickrate classifies it on the spot — Cloudflare, Vercel, and nginx formats all work. Nothing to install, and you find out whether agents are reading you before deciding how to wire it up permanently.
Vercel log drain — no code
The best install if you're on Vercel. Vercel streams request logs straight to Pickrate: no middleware, no deploy, no repo access, and it captures the response status so the Gaps view works. Works for every framework on Vercel at once.
- In Setup, create your drain URL and copy it.
- In Vercel: Project → Settings → Log Drains → Add. Paste the URL, choose sources
static,lambda, andedge. - Vercel shows a verification value. Paste it back into Setup first — Vercel won't save the drain until our endpoint echoes your team's value.
- Leave sampling at 100%, or your read counts will be a fraction of reality.
Cloudflare Worker — in front of anything
Put Pickrate in front of any origin, with no change to the thing behind it. This is the install for hosted documentation, no-code builders, and any site whose repo you don't control. Like the log drain, it sees the completed response, so 404s on agent surfaces show up as gaps.
git clone https://github.com/pickrate-io/cloudflare-worker
cd cloudflare-worker && npm install
npx wrangler secret put PICKRATE_KEY # your sk_ key
npx wrangler deployThen add a route in wrangler.jsonc pointing at your hostname and deploy again. One-click deploy and the full guide are in the template repo. With no key set the Worker is a transparent pass-through, so deploying it before you add the secret can't break your site.
Hosted documentation
Docs are where agent traffic concentrates — it's what agents actually read when deciding whether to recommend your tool, and it's usually the part of your site you can't instrument. Point the custom domain at your docs host through Cloudflare (proxied), then route the Worker at it.
Mintlify needs two Cloudflare settings for certificates to provision: SSL/TLS mode Full (strict), and Always Use HTTPS off. Its pre-validation flow doesn't work through a Cloudflare proxy — set the CNAME to cname.mintlify.builders and continue without waiting for the TXT records. GitBook, ReadMe, and Docusaurus need no platform-specific settings.
Framework middleware
One line, if you can edit the app.
// middleware.ts
export { middleware } from "@pickrate/collector/next";
export const config = { matcher: ["/((?!_next|favicon).*)"] };Set PICKRATE_KEY to a secret (sk_) key from Settings. Middleware runs before the response, so it can't record status codes — everything else is identical. Source: @pickrate/collector (MIT, dependency-free).
What won't work
- Any client-side tag. Google Tag Manager, Segment's browser SDK, a
<script>snippet — agents don't run JavaScript, so none of them see this traffic on any platform. - Shopify storefronts. Shopify terminates traffic at its own edge and doesn't allow a third-party CDN in front, so a Worker never sees the request. Only server-rendered Hydrogen/Oxygen storefronts are reachable.
- Webflow, Wix, and Squarespace can't run server code. Putting Cloudflare in front is the only route, and it needs DNS control.