Last updated 2026-04-30
Agents
All endpoints below are paywalled via x402. See x402 payment flow for how to sign a payment.
GET /v1/agents
Search and list agents.
curl -i "https://erc-8004.quicknode.com/v1/agents?network=base-mainnet&page=1&per_page=20"
Query params
| Param | Type | Notes |
|---|---|---|
network |
string | Network slug, e.g. base-mainnet. Optional. |
owner |
string | Owner address (0x…). Optional. |
include_testnets |
bool | Include agents on testnets. Default false. |
page |
int | 1-indexed page number. Default 1. |
per_page |
int | Page size, capped server-side. |
Response
{
"data": [
{
"agent_id": 42,
"network": { "slug": "base-mainnet", "name": "Base", "chain_id": 8453 },
"owner_address": "0x…",
"agent_uri": "ipfs://…",
"feedback_count": 12,
"validation_count": 3,
"registered_at": "2026-04-01T12:00:00Z"
}
],
"meta": { "page": 1, "per_page": 50, "total_count": 137 }
}
GET /v1/agents/:agent_id
Single agent detail. :agent_id is the on-chain ID. Pass network=<slug> to disambiguate when the same ID exists on multiple chains.
curl -i "https://erc-8004.quicknode.com/v1/agents/42?network=base-mainnet"
Response
{
"data": {
"agent_id": 42,
"chain": "base-mainnet",
"owner_address": "0x…",
"agent_uri": "ipfs://…",
"metadata": { "name": "...", "active": true },
"registered_at": "2026-04-01T12:00:00Z",
"feedback_count": 12,
"validation_count": 3,
"avg_validation_response": "P0DT4H12M",
"reputation": { "score": 72, "confidence": "medium", "..." }
}
}
reputation reflects a 30 s show-route cache; for fresher numbers call GET /v1/agents/:agent_id/reputation directly.
Errors
| Code | When |
|---|---|
| 404 | Agent doesn’t exist on the requested network. |
GET /v1/agents/:agent_id/feedback
Per-agent feedback feed.
curl -i "https://erc-8004.quicknode.com/v1/agents/42/feedback?network=base-mainnet&per_page=20"
Query params
| Param | Type | Notes |
|---|---|---|
tag1, tag2 |
string | Filter by tag. |
since, until |
ISO 8601 | Time-bound. |
include_revoked |
bool | Default false. |
network |
string | Required when the same :agent_id exists on multiple chains. |
page, per_page |
int | Pagination. |
GET /v1/agents/:agent_id/validations
Per-agent validations.
curl -i "https://erc-8004.quicknode.com/v1/agents/42/validations?network=base-mainnet"
Query params
| Param | Type | Notes |
|---|---|---|
tag |
string | Filter by validation tag. |
has_response |
bool | Only validations with (or without) a response payload. |
since, until |
ISO 8601 | Time-bound. |
network |
string | Required when ambiguous. |
page, per_page |
int | Pagination. |
GET /v1/agents/:agent_id/validations/summary
Aggregate counts and tag breakdowns across an agent’s validations.
curl -i "https://erc-8004.quicknode.com/v1/agents/42/validations/summary?network=base-mainnet"
Query params
| Param | Notes |
|---|---|
network, tag, validators, include_testnets |
All optional. |
GET /v1/agents/:agent_id/reputation
Live reputation calculation. Bypasses the show-route cache; runs the formula against current data.
curl -i "https://erc-8004.quicknode.com/v1/agents/42/reputation?network=base-mainnet"
Response
{
"data": {
"score": 72,
"confidence": "medium",
"formula_version": "v1.3",
"sub_scores": { "feedback": 80, "validation": 65, "sybil_resistance": 70, "reliability": 75 },
"signals": { "..." }
}
}
See the reputation formula for the full breakdown.