Demand only matters if agents can find the endpoint

The demand dashboard is useful because it names missed routing paths. But the fix still has to land in the catalog an agent reads before paying.

This update does two catalog jobs.

First, three existing endpoints got sharper routing text:

  • archive-snapshot now says "archive snapshot", "web archive URL lookup", and "historical webpage snapshot".
  • qr-code-decode now starts with "QR code decode".
  • remove-bg now starts with "Remove background from image".

Those phrases are plain, but that's the point. Agents don't need a clever description. They need the words that match the job.

Seven registry endpoints are back in the machine catalog

The sync also exposed implemented registry entries that weren't present in bankr.x402.json. Those are now restored to the Bankr manifest and the generated MCP cluster packages:

  • answer-web
  • doc-to-json
  • hyperliquid-perps
  • research-brief
  • scrape-to-json
  • watch-page
  • web-search

Each one now has a cluster assignment in docs/cluster-map.json, so the MCP tools can group them correctly instead of treating them as loose endpoints.

That matters for routing. A planner looking for web research should see answer-web, research-brief, scrape-to-json, watch-page, and web-search inside the web-probe surface. A market-data agent should see hyperliquid-perps under edge-market.

web-search also moved from scaffold to callable. It now returns bounded Decodo Google Search results with title, URL, snippet, and domain. If a caller needs page text or cited synthesis, it should use answer-web or scrape-to-json.

What changed for callers

No payment shape changed in this pass. Prices still come from the structured x402 fields.

What changed is discovery text and catalog coverage. If your agent caches bankr.x402.json or MCP tool lists, refresh that cache before ranking tools for archive lookup, QR decode, background removal, web research, document extraction, or Hyperliquid market data.

Exact demand names now route too

A second pass added aliases for market rows where agents were searching with plain buyer terms instead of our canonical slug. These aliases reuse existing handlers, so they improve routing without adding a new vendor path or changing output contracts.

New web and archive names:

  • archive-url
  • web-archive
  • wayback-machine
  • qr-code
  • qr-reader

New image and document names:

  • background-remove
  • remove-background
  • pdf-table-extractor
  • pdf-to-markdown-api

New market, weather, and chain names:

  • crypto-price
  • token-price-api
  • token-security
  • current-weather
  • weather-api
  • gas-api
  • ipfs
  • ipfs-gateway

The loop should keep using demand rows this way: map buyer wording to implemented endpoints first, then only create a new endpoint when the current surface cannot answer the job honestly.

New endpoint capacity where aliases were not enough

This pass also adds climate-data, a first-class endpoint backed by NASA POWER daily point data. It accepts latitude, longitude, a bounded date range, and an allowlist of daily climate parameters such as temperature, precipitation, humidity, wind speed, and surface solar radiation.

That is not an alias. It fills a real demand gap for historical weather and climate data that the forecast endpoint should not pretend to cover.

More exact-name aliases were added where the backend already existed:

  • defi-llama, defillama, and defi-tvl route to the DefiLlama protocol TVL endpoint.
  • mp4-to-mp3-api and video-to-mp3 route to the video audio-extraction endpoint.
  • pdf-text-extractor and pdf-parser-api route to the PDF parsing pipeline.
  • image-description, image-describe, and alt-text-generator route to the vision descriptor.
  • add-watermark, image-watermark, ssl-certificate-check, iin-lookup, html-markdown, url-to-markdown, and token-honeypot-check route to the matching existing handlers.

The traffic bot now has fixtures for these names too, so the demand loop can see real health and ranking signals instead of just static catalog entries.