---
title: "Batch Spam Lookup"
method: POST
path: "/api/v1/spam/batch"
tags: ["Spam"]
---

# Batch Spam Lookup

`POST /api/v1/spam/batch`

Process up to 100 phone numbers for spam detection in a single request.

**Features:**
- Automatic deduplication (duplicates charged once)
- Two-phase billing (reserve → process → settle)
- Job tracking with unique ID
- Full transparency in response with timing and billing breakdown

## Request body

- object
  - `phone_numbers` string[], required
  - `check_spam` boolean — Whether to query external spam provider

## Response `200`

Successful batch spam lookup

- BatchSpamResponse — Batch spam lookup response with deduplication and billing details
  - `job_id` string, uuid
  - `results` object[]
    - `phone_number` string
    - `is_spam` boolean
    - `is_robocall` boolean
    - `is_scam` boolean
    - `spam_type` 'NONE' | 'SPAM' | 'ROBOCALL' | 'SCAM'
    - `source` string
    - `cached` boolean
    - `input_indices` integer[]
    - `status` 'success' | 'failed' | 'invalid'
  - `summary` object
    - `submitted` integer
    - `unique` integer
    - `duplicates_removed` integer
    - `succeeded` integer
    - `failed` integer
    - `from_cache` integer
    - `invalid_count` integer
  - `billing` object
    - `estimated_cost` number
    - `actual_cost` number
    - `savings_from_deduplication` number
    - `per_lookup_rate` number
  - `timing` object
    - `submitted_at` string, date-time
    - `started_at` string, date-time
    - `completed_at` string, date-time
    - `duration_ms` integer

## Other responses

- `402` — Insufficient balance
- `429` — Too Many Requests — rate limit exceeded.

---

[API](https://skmtc.net/verirouteintel/apis/veriroute-intel-api.md) · [All operations](https://skmtc.net/verirouteintel/apis/veriroute-intel-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/verirouteintel/veriroute-intel-api/versions/0bd583e1906e/schema)
