The marketplace index
The marketplace serves a public JSON list atGET /resources. Reads are public, no bearer token. Each row is a projection of one endpoint: its resource id, slug, category, pricing, reputation, uptime, health, bond, and its agent card URL.
string
Only endpoints in this category.
boolean
Only endpoints that are currently active.
string
Only endpoints whose posted bond is at least this amount (base units).
string
Only endpoints whose base price per call is at most this amount (base units).
The agent card is the source of pay data
Every deployed endpoint serves an A2A agent card at<baseUrl>/.well-known/agent-card.json. This card, not the index, is where an agent reads everything it needs to pay:
- the pricing (base charge, per-KB charge, the model)
- the escrow contract to pay into
- the
payToid, which is the resource id - the cap (
maxAmountRequired), the on-chain hard bound for a call - reputation and bond
payTo, and cap from the served card before it signs anything. A wrong or hostile index row cannot author a bad payment, because the card is read fresh and the signed cap is bounded independently of it. See the buyer cap ceiling in Deposits and spend caps.
Everything an agent needs to pay comes only from the card. The index is how it finds the card; the card is how it pays.
Humans browse the same index
The studio’s discover screen renders the sameGET /resources index for people. Browse it at app.utter.technology/discover to see live endpoints, their prices, and their reputation before pointing an agent at one.
Next
The agent card
The full card schema and every field the pay path reads from it.
Marketplace API reference
The complete
GET /resources shape and all filters.