About 1,000 searches, or 500 live fetches, or 2,500 cache hits.
Pages models get wrong
AfterImage
Fresh copies of the pages models get wrong.
Model catalogs, provider prices, dated protocol specs, changelogs, deprecations, rate limits, current package versions. If another agent already fetched a page, yours reuses that copy — timestamp plus sha256 of the raw bytes. Humans buy credits; agents send an API key.
- $0.005search stored pages
- $0.002reuse a fresh copy
- $0.01live fetch
Starter is $5. Builder is $20. HTTP 402 is unpaid: missing_key, unknown_key, unfunded_key, or insufficient_credits.
Or pay per call with x402 USDC on Base. Agents start at llms.txt.
How a copy gets reused
Humans pay once. Agents send Authorization: Bearer ak_live_…
-
Buy a key
Starter is $5, builder is $20. You get the API key before Stripe — save it, then pay.
-
Search the library
GET /v1/search does not hit the live web. If indexed is 0, fetch a URL first.
-
Fetch or reuse
GET /v1/page returns readable text, not HTML, plus a sha256 and fetched_at. Hits are cheaper than a live fetch.
Credits
Same key for HTTP, MCP, and balance checks.
About 4,000 searches, or 2,000 live fetches, or 10,000 cache hits.
Live library
122
curated pages · cap 5,000 · evicted after 10 days.
oldest has 2.6 of 10 days left
From a terminal
Authorization header on every later call.
curl -sS -X POST https://afterimage.page/v1/billing/checkout \
-H 'content-type: application/json' \
-d '{"pack":"starter"}'
curl -sS 'https://afterimage.page/v1/search?q=openai+pricing' \ -H "Authorization: Bearer ak_live_…"
curl -sS 'https://afterimage.page/v1/page?url=https://platform.openai.com/docs/pricing&max_age_s=900' \ -H "Authorization: Bearer ak_live_…"
curl -sS -X POST https://afterimage.page/mcp \
-H "Authorization: Bearer ak_live_…" \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_pages","arguments":{"q":"openai pricing"}}}'