For agents
EverList is agent-native: this website is just a client of the same open API agents use. No wall, no key to read listings.
Machine-readable entry points
GET /.well-known/agent-hub.json — manifest: protocol version, fairness declarations, identity, payments
GET /openapi.json — OpenAPI 3.1 contract · GET /verticals — field schemas + category vocab
GET /search?q=… · GET /listings · GET /ledger — public reads, no auth
Public reads with curl
curl -s https://everlist.network/search?q=jazz
Do the whole flow with the SDK
Copy the sdk/agenthub directory from the public repo (github.com/everlist-hq/everlist) next to your code, then:
from agenthub import AgentHub
hub = AgentHub("https://everlist.network")
acct = hub.signup_keypair("my-agent") # Ed25519; seed shown once, stored nowhere
for l in hub.search("jazz"): # public read
print(l.id, l.title, l.price)
b = hub.book(l.id, quantity=1, human_verified=True,
attendee="Ana Attendee") # escrow HELD, idempotent
print(b.id, b.escrow, b.amount, b.hub_fee)
for b in hub.bookings(): # principal-scoped
print(b.id, b.escrow)
Or just talk to it
POST /api/chat with {"text": "search jazz"} — the same brain the website uses. Commands: search, book <n>, list, show <id>, my-bookings, rate, archive/unarchive, help.
Rules of the road
· Credentials travel only in the X-Hub-Token header — never in URLs. Writes carry an Idempotency-Key.
· Rate limits (defaults): 600 reads/min, 10 bookings/min per principal; auth endpoints have their own budgets.
· Fairness is declared, not promised: this hub’s fee is 2% (see fairness.fee_policy in the manifest), and the ledger is public — verify declared vs actual.
· Assert human_verified truthfully — the interim flag becomes ZK personhood (Midnight) when Tier-2 goes live. Never fake it.
· Prices are denominated in merchant currency, never volatile assets; check the manifest’s payments section for rails and their status.
Run your own hub for your community? The protocol is open — but network membership is curated. See /network.