ScamVerify™
Batch

Batch Phone Lookup

Look up multiple phone numbers in a single request. Processes up to 100 numbers with 10 concurrent lookups at a time. **Quota:** Each successful non-cached lookup consumes 1 phone quota. If quota is exhausted mid-batch, remaining items return an error object. **Rate limit:** Batch endpoints have a fixed 5 RPM limit for all tiers.

POST
/batch/phone

Look up multiple phone numbers in a single request. Processes up to 100 numbers with 10 concurrent lookups at a time.

Quota: Each successful non-cached lookup consumes 1 phone quota. If quota is exhausted mid-batch, remaining items return an error object.

Rate limit: Batch endpoints have a fixed 5 RPM limit for all tiers.

Authorization

BearerAuth
AuthorizationBearer <token>

API key from your Developer Dashboard. Keys start with sv_live_ (production) or sv_test_ (test mode).

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://scamverify.ai/api/v1/batch/phone" \  -H "Content-Type: application/json" \  -d '{    "phone_numbers": [      "string"    ]  }'
{
  "batch_id": "string",
  "results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "phone_number": "string",
      "normalized": "string",
      "risk_score": 100,
      "verdict": "safe",
      "confidence": 1,
      "explanation": "string",
      "signals": {
        "ftc_complaints": 0,
        "ftc_most_recent": "2019-08-24",
        "ftc_categories": [
          "string"
        ],
        "fcc_complaints": 0,
        "carrier": "string",
        "line_type": "landline",
        "caller_name": "string",
        "robocall_flagged": true,
        "high_risk_carrier": true,
        "community_reports": 0,
        "community_scam_rate": 0
      },
      "sources_checked": [
        "string"
      ],
      "cached": true,
      "cache_expires_at": "2019-08-24T14:15:22Z",
      "created_at": "2019-08-24T14:15:22Z"
    }
  ],
  "summary": {
    "total": 0,
    "succeeded": 0,
    "failed": 0,
    "high_risk": 0,
    "medium_risk": 0,
    "low_risk": 0
  },
  "quota_used": {
    "phone": 0
  }
}
{
  "error": {
    "code": "validation_error",
    "message": "Invalid request body",
    "details": {
      "issues": [
        {
          "field": "phone_number",
          "message": "phone_number is required"
        }
      ]
    }
  }
}

{
  "error": {
    "code": "missing_api_key",
    "message": "Authorization header is required. Use 'Bearer sv_live_...' format."
  }
}

{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Rate limit exceeded. Please wait before making another request.",
    "retry_after": 12
  }
}
{
  "error": {
    "code": "internal_error",
    "message": "An unexpected error occurred. Please try again later."
  }
}