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.
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 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,
"line_status": "active",
"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."
}
}QR Code Analysis POST
Upload a QR code image. Server decodes the QR code and analyzes the extracted URL for scam indicators using the full URL verification pipeline. Supported types: JPEG, PNG, WebP. Maximum size: 4.5 MB. If the QR code contains a phone number, email, or non-URL content, the decoded data is returned without URL analysis. **Quota:** Consumes 1 URL quota when a URL is extracted and analyzed. Non-URL QR codes do not consume quota. **Caching:** Results are cached by image hash. Cached lookups do not consume quota and return instantly. **Performance:** Expect 2-8 seconds for a full analysis (QR decode + URL verification pipeline). Cached results return instantly.
Batch URL Lookup POST
Look up multiple URLs in a single request. Processes up to 100 URLs with 10 concurrent lookups at a time. **Quota:** Each successful non-cached lookup consumes 1 URL 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.