Batch

Screen many tokens in a single request — ideal for portfolios and watchlists. Each item is billed at its per-check price with a 25% discount.

POST /api/v1/batch −25% / item10 / hour

Auth: account balance or x402. Up to 100 projects per request.

Request

FieldTypeRequiredDescription
projectsobject[]RequiredArray of { "address", "chain" }. Max 100.
report_typestringOptionalstandard · deep_dive. Default standard.
curl -X POST https://csds.blockchainrangers.com/api/v1/batch \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "projects": [
      { "address": "0xAAA…", "chain": "ethereum" },
      { "address": "0xBBB…", "chain": "bsc" }
    ],
    "report_type": "standard"
  }'
$headers = @{ Authorization = "Bearer YOUR_API_KEY" }
$body = @{
  projects = @(
    @{ address = "0xAAA…"; chain = "ethereum" },
    @{ address = "0xBBB…"; chain = "bsc" }
  )
  report_type = "standard"
} | ConvertTo-Json -Depth 5
Invoke-RestMethod "https://csds.blockchainrangers.com/api/v1/batch" `
  -Method Post -Headers $headers -Body $body -ContentType "application/json"
import httpx

r = httpx.post(
    "https://csds.blockchainrangers.com/api/v1/batch",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "projects": [
            {"address": "0xAAA…", "chain": "ethereum"},
            {"address": "0xBBB…", "chain": "bsc"},
        ],
        "report_type": "standard",
    },
)
batch = r.json()
# addresses.txt: one address per line (optional "address,chain")
csds batch addresses.txt --format ndjson

Response

FieldTypeDescription
batch_idstringUUID for this batch.
statusstringcompleted · partial_failure · failed.
total_projects / completed / failedintegerCounts across the batch.
scam_blockedintegerHow many items were hard-blocked as confirmed scams (billed the flat $0.10 lookup fee, not analyzed).
resultsobject[]Per item: status (success/failed) and a report or error. A confirmed-scam item is success with report.blocked === true.
pricingobjectPer-item and total cost with the discount applied.
{
  "batch_id": "f1c2…",
  "status": "partial_failure",
  "total_projects": 2,
  "completed": 1,
  "failed": 1,
  "scam_blocked": 0,
  "results": [
    { "project_address": "0xAAA…", "chain": "ethereum", "status": "success",
      "report": { "risk_score": 18, "risk_level": "LOW" } },
    { "project_address": "0xBBB…", "chain": "bsc", "status": "failed",
      "error": "Project not found" }
  ],
  "pricing": { "discount_percentage": 25, "total_cost_usd": 0.08, "currency": "USD" }
}
A batch can partially succeed. Always iterate results and check each item's status rather than trusting the top-level one alone.
Any item that's a confirmed community-reported scam is hard-blocked (no analysis) and billed a flat $0.10 instead of the discounted per-item price. Its result is status: "success" with report.blocked === true and report.code === "reported_scam".

Related

Standard report The default per-item report. CLI batch Stream results from a file.