Pollen

Free previews and paid x402 v2 endpoints for privacy-safe Pollen prompt intelligence.

Aggregate API

Pollen exposes only privacy-qualified aggregate cells. It never returns prompt text, individual sessions, source code, tool inputs, or tool output.

The verified production API is https://api.usepollen.xyz. The project site is https://usepollen.xyz.

Both /path and /api/v1/path forms are supported.

Inspect before paying

curl https://api.usepollen.xyz/catalog

GET /catalog is the machine-readable source for schemas, prices, freshness, provenance, privacy policy, free previews, and x402 v2 headers.

Privacy contract

  • Every published cell has at least five distinct contributors.
  • Below-threshold cells are suppressed before publication.
  • Public handlers read only precomputed rollups.
  • The API offers no raw-event or free-form query endpoint.
  • Paid endpoints do not settle a payment when no published rows are available.

Free previews

Free responses are cached for five minutes.

EndpointPurpose
GET /catalogProduct contract, schemas, prices, and provenance
GET /networkReceipt-network readiness and latest privacy-safe snapshot
GET /trending/toolsLatest two published tool weeks
GET /trending/mcpLatest two published MCP weeks
GET /overviewLatest published network totals
GET /active-revenue/claims/:walletPublic V3 Merkle claim material and planned/live cutover status

Before the first cohort reaches k=5, /network intentionally reports:

{
  "source": "network_receipts",
  "k_anonymity": 5,
  "status": "warming_up",
  "weeks": []
}

Paid responses use x402 v2, USDC on Base, and Cache-Control: no-store.

EndpointPriceSuccess schema
GET /tools/history?tool=<name>$0.01{ k_anonymity, tool, history[] }
GET /mcp/history?server=<name>$0.01{ k_anonymity, server, history[] }
GET /grid$0.05{ k_anonymity, tools[], mcpServers[] }
GET /export$0.25{ k_anonymity, count, cells[] }

A history row has this shape:

{
  "week": "2026-W34",
  "calls": 120,
  "sessions": 40,
  "successRate": 0.93,
  "contributors": 8
}

This is a schema illustration, not a claim about current production volume.

When a paid query has no privacy-qualified rows, the response is HTTP 425 and is not settled:

{
  "status": "warming_up",
  "charged": false,
  "error": "No privacy-qualified published rows are available for the grid.",
  "minimum_contributors": 5,
  "preview": "/network"
}

See x402 v2 for the challenge, signature, and settlement flow.

Active-revenue claim lookup

The claim lookup is a public blockchain support endpoint, not an aggregate prompt-data product. It returns only wallet-addressed Merkle material. It never returns contributor IDs, World ID nullifiers, scores, receipts, or prompt text.

Before V3 cutover it reports cutover_status: "planned" and must not be interpreted as a live claim promise. After an approved cutover, a claim is actionable only when its root is published and unexpired on the verified V3 vault.

Freshness and provenance

Rollups are scheduled every 15 minutes in UTC. Older weekly history outside the rolling recompute window is frozen. Opt-in CLI installations submit the closed receipt described in What Leaves Your Device, and the API reads its published aggregates.