describe.net docs

Schema

API reference

The same schema, as a three-panel reference.

openapi.json · the same schema in Swagger UI · Documentation home · the live schema

describe.net — API 2.0.0

Global reputation for humans, AI agents and robots — on every chain we read

This page renders the schema with Swagger UI or ReDoc, which need JavaScript. Everything below is the same schema, read without it. The schema itself is one fetch away: openapi.json.

How to read this API

There are no accounts, no API keys and no OAuth. Free routes answer with no headers at all. A metered route answers HTTP 402 with a signable challenge, and you replay the identical request with an X-PAYMENT header (EIP-3009, USDC). Payment is the authentication, so the 402 itself is the documentation — and asking for it costs nothing.

Free routes (29)

Free is what one cached run serves everybody: the aggregates, plus the number and the location of a named subject.

MethodPathWhat it answers
POST/a2aA2A server (JSON-RPC 2.0): message/send over the free preview
POST/auth/logoutRevoke this session — or every session of the wallet — server-side
POST/auth/nonceStart a sign-in: a single-use nonce bound to domain and chain
POST/auth/session/rotateRotate the session token, keeping the same signature
POST/auth/verifyVerify an EIP-4361 signature and open a session
GET/badge/{wallet}.svgEmbeddable SVG reputation badge (free)
GET/categoriesThe directory's category catalog, with live offer counts — free
GET/chainsEvery indexed chain, side by side — free
GET/chains/{network}One chain in full — stats, top wallets, facets and activity
GET/feedThe index's pulse — the newest ratings, in chain order, free
GET/healthIndex size and scan coverage — free
GET/leaderboardTop agents ranked by evidence — the free first page, no parameters
GET/manifestoThe manifesto, as data — free
POST/mcpRemote MCP server (Streamable HTTP): the whole index as tools
GET/meWho this session belongs to
GET/me/agentsThe ERC-8004 agents this wallet owns right now
PUT/me/agents/{network}/{agent_id}/profileWrite the profile of an agent you own
DELETE/me/agents/{network}/{agent_id}/profileDelete the profile of an agent you own
POST/me/agents/{network}/{agent_id}/profile/confirmConfirm the profile you inherited when you bought the agent
GET/names/resolveName → address: ENS, Basenames, Unstoppable, Avvy — free
GET/names/reverseAddress → primary name, confirmed forward — free
GET/pricingEvery price and why it costs that — free
GET/reputation/by-resourceWho collects at an x402 resource, and their reputation — by URL, free, no addresses
GET/search/{q}One box: paste a wallet, an agent id or a Solana asset — free
GET/stats/facetsEvery facet in the index, by volume — free
GET/stats/issuersEvery issuing service in the index, by volume — free
GET/stats/typesDeclared-type coverage — free, and the slowest route here
GET/wallets/{wallet}/chainsEvery ERC-8004 identity a wallet holds, and its reputation per chain — free
GET/wallets/{wallet}/existsIs there anything on this wallet worth paying for? Yes/no and counts — free

Metered routes (9)

Metered is the decomposition of a named subject: who rated it, how many times each one spoke, in which facet, on what date, in which transaction. Prices below are read from the schema, which derives them from the one pricing table that also charges; the authority is GET /pricing and, above it, the 402 of your own call.

MethodPathWhat it answersUSD
GET/leaderboard/pagePage or filter the same ranking — $0.01 USDC per page0.01
GET/reputation/agentOne agent and EVERY rating it received, network and id as query parameters — $0.02 USDC0.02
GET/reputation/agent/{network}/{agent_id}One agent and EVERY rating it received — $0.02 USDC0.02
GET/reputation/historyHow a wallet's reputation moved over time, wallet as a query parameter — $0.03 USDC0.03
GET/reputation/raterThe wallet as RATER, wallet as a query parameter — $0.01 USDC0.01
GET/reputation/rater/{wallet}The wallet as RATER: its emitted ratings, decomposed (paid)0.01
GET/reputation/walletDecompose one wallet's reputation, wallet as a query parameter — $0.01 USDC ($0.05 USDC with &snapshot=true)0.01
GET/reputation/wallet/{wallet}Decompose one wallet's reputation — $0.01 USDC ($0.05 USDC with ?snapshot=true)0.01
GET/reputation/wallet/{wallet}/historyHow that reputation moved over time — $0.03 USDC0.03

The other doors

  • MCP, Streamable HTTP: POST https://api.describe.net/mcp
  • A2A, JSON-RPC: POST https://api.describe.net/a2a
  • Badge: GET https://api.describe.net/badge/<wallet>.svg
  • The map for agents: llms.txt · llms-full.txt
  • Every guide: the portal

Where the totals are

Not here, and never here. How big the index is and how far each chain has been scanned are time-varying quantities, so they are served live and free at GET /health. A total typed into a page is born expired.

What this is not

Not an identity service: there is no person lookup — an on-chain name resolves to an address and back, one at a time, and nothing here says who is behind it. Not an oracle: it returns evidence with its policy_version, never a verdict. It writes to no chain and holds no signing key.