Skip to main content
POST
/
v1
/
reputation:batch
Reputation Batch
curl --request POST \
  --url https://api.agentscore.sh/v1/reputation:batch \
  --header 'Content-Type: application/json' \
  --data '
{
  "addresses": [
    "<string>"
  ],
  "policy": {},
  "view": "<string>"
}
'
{
  "model_version": "<string>",
  "computed_at": "<string>",
  "results": [
    {}
  ],
  "cache": {}
}

Overview

Evaluate multiple wallet addresses in one request. Returns a score, grade, and decision for each address. Designed for production batch processing — gateway pre-filtering, marketplace indexing, or periodic trust audits. Paid tier only. Maximum 100 addresses per request.

Request body

addresses
string[]
required
Array of EVM wallet addresses to score. Maximum 100.
policy
object
Optional policy inputs applied to all addresses.
  • min_grade (string) — Minimum grade threshold (e.g., "B")
  • min_transactions (number) — Minimum transaction count
view
string
default:"summary"
Response detail level: summary or full.

Authentication

Requires a paid-tier X-API-Key header. See Authentication.

Example

curl -X POST https://api.agentscore.sh/v1/reputation:batch \
  -H "X-API-Key: sk_live_abc123..." \
  -H "Content-Type: application/json" \
  -d '{
    "addresses": [
      "0xdb5aa553feeb2c3e3d03e8360b36fb0f7e480671",
      "0x447e981bd3d8267499860ff0f9afbc9f8ffcc514",
      "0x0000000000000000000000000000000000000001"
    ],
    "policy": {
      "min_grade": "B",
      "min_transactions": 5
    }
  }'
Response
{
  "model_version": "v1",
  "computed_at": "2026-03-08T17:20:00Z",
  "results": [
    {
      "address": "0xdb5aa553feeb2c3e3d03e8360b36fb0f7e480671",
      "score": 82.4,
      "grade": "B",
      "decision": {
        "allow": true,
        "reasons": [
          "sufficient_transaction_history",
          "recent_activity"
        ]
      }
    },
    {
      "address": "0x447e981bd3d8267499860ff0f9afbc9f8ffcc514",
      "score": 91.2,
      "grade": "A",
      "decision": {
        "allow": true,
        "reasons": [
          "sufficient_transaction_history",
          "recent_activity",
          "counterparty_diversity_ok"
        ]
      }
    },
    {
      "address": "0x0000000000000000000000000000000000000001",
      "score": 0,
      "grade": "F",
      "decision": {
        "allow": false,
        "reasons": [
          "insufficient_activity"
        ]
      }
    }
  ],
  "cache": {
    "ttl_seconds": 60
  }
}

Response fields

model_version
string
required
Scoring model version used for this batch.
computed_at
string
required
ISO 8601 timestamp of computation.
results
array
required
Array of results, one per input address. Each contains address, score, grade, and decision.
cache
object
required
Cache metadata with ttl_seconds.

Usage pattern

A common pattern is to pre-filter a list of wallets before processing:
const batch = await fetch("https://api.agentscore.sh/v1/reputation:batch", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.AGENTSCORE_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    addresses: pendingWallets,
    policy: { min_grade: "C", min_transactions: 3 },
  }),
}).then((r) => r.json());

const allowed = batch.results
  .filter((r) => r.decision.allow)
  .map((r) => r.address);

const denied = batch.results
  .filter((r) => !r.decision.allow)
  .map((r) => ({ address: r.address, reasons: r.decision.reasons }));

Limits

ConstraintValue
Max addresses per request100
Required tierPaid (Starter and above)
Rate limitVaries by plan — see Rate Limits

Errors

StatusCodeDescription
400invalid_addressOne or more addresses are invalid
401unauthorizedMissing or invalid API key
402payment_requiredBatch requires a paid plan
429rate_limitedToo many requests