Bulk LRN lookup: lists of numbers
Use POST /api/v1/lrn/bulk for up to 1,000 numbers, or 100 with trust. Understand inclusion flags, deduplication and per-number billing.
When should I use bulk LRN?
Use bulk when you have a list to process together. It does not provide a different class of LRN data and is not required for enhanced LRN. For one number at a time, use POST /api/v1/lrn.
What fields and limits does bulk use?
POST /api/v1/lrn/bulk accepts phone_numbers, an array of up to 1,000 numbers. Optional fields are include_enhanced, include_messaging, include_cnam and include_trust. With include_trust, the limit is 100 numbers per request.
How is a batch charged?
The existing bulk workflow deduplicates numbers, reserves estimated funds, executes lookups and settles billing. Each selected product has its own per-number price. One HTTP request does not mean one lookup charge. Inspect the response billing and summary fields for the actual outcome.
Request example
Illustrative request only. Use your own number and API key; live lookups may incur charges.
curl 'https://verirouteintel.com/api/v1/lrn/bulk' \
-H "Authorization: Bearer $VRI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"phone_numbers":["13364086644","19494600638"],"include_enhanced":true}'
Continue with the right guide
- LRN lookup: one number and optional inclusions
- Enhanced LRN: carrier details for one number
- Bulk LRN lookup: lists of numbers
- Background lookup jobs: submit and retrieve results
- Lookup pricing and inclusion costs
- MCP Server – Phone Intelligence for AI Agents
- API Authentication
- Understanding carrier classifications
- Python SDK
- TypeScript SDK
Bulk LRN Lookup
Process up to 1000 phone numbers in a single request with automatic deduplication and two-phase billing.
Request Body
{
"phone_numbers": ["13364086644", "19494600638", "13364086644"],
"include_enhanced": true,
"include_messaging": false
}
Response
{
"job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"results": [
{
"phone_number": "13364086644",
"e164_phone": "+13364086644",
"lrn": "13364086644",
"input_indices": [0, 2],
"status": "success",
"enhanced_lrn": { ... }
},
{
"phone_number": "19494600638",
"e164_phone": "+19494600638",
"lrn": "19494600638",
"input_indices": [1],
"status": "success",
"enhanced_lrn": { ... }
}
],
"summary": {
"submitted": 3,
"unique": 2,
"duplicates_removed": 1,
"succeeded": 2,
"failed": 0,
"from_cache": 0,
"invalid_count": 0,
"breakdown": {
"success": 2,
"failed": 0,
"invalid_format": 0
}
},
"billing": {
"estimated_cost": 0.001,
"actual_cost": 0.001,
"savings_from_deduplication": 0.0005,
"per_lookup_rate": 0.0005
},
"timing": {
"submitted_at": "2025-12-20T10:30:00Z",
"started_at": "2025-12-20T10:30:00Z",
"completed_at": "2025-12-20T10:30:01Z",
"duration_ms": 1234
}
}
Billing values above illustrate two unique LRN lookups at $0.0005 each. Selected add-ons and account pricing can change the total; see current published pricing.
Key Features
- Automatic Deduplication: Duplicate phone numbers are detected and only charged once. The
input_indicesfield shows which positions in your input array map to each result. - Two-Phase Billing: Balance is reserved before processing and settled after completion. Failed lookups are not charged.
- Invalid Number Handling: Rows that fail validation (impossible area code or exchange, wrong length) are returned with
status: "invalid"and a specificerrorreason. Invalid rows are never charged and are counted insummary.invalid_count. - Full Transparency: Response includes detailed summary, billing breakdown, and timing information.
- Job Tracking: Each bulk request gets a unique
job_idfor audit and support purposes. - Larger Lists — Async Jobs API: For lists beyond 1,000 numbers,
POST /api/v1/jobsaccepts up to 100,000 numbers (JSON array or CSV upload) and processes them in the background. PollGET /api/v1/jobs/<job_id>for status, download the result CSV fromGET /api/v1/jobs/<job_id>/results, or supply awebhook_url(optionally with awebhook_secretfor an HMAC-SHA256X-Webhook-Signature) to be notified on completion. Same per-lookup pricing; balance is reserved at submission and settled on completion.
Product prices · public rates
Each selected product adds its per-number cost. Estimates do not submit lookups or charge your wallet.
- lrn
- $0.000500 per number
- enhanced_lrn
- $0.000000 per number
- messaging_provider
- $0.000900 per number
- cnam
- $0.006000 per number
- spam
- $0.007000 per number