Bulk LRN Enrichment

Enrich Up to 1,000,000 Numbers.

Sync lookups for up to 1,000 numbers return immediately. Async jobs handle up to 1,000,000 — backed by a 251M-row NPAC database with a covering index. CSV and JSONL output with row-level ID passthrough.

1k
Sync (instant)
1M
Async (minutes)
251M
NPAC Rows
curl -X POST api.sipsmart.io/api/user/lrn/bulk/jobs \
  -H "Idempotency-Key: $(uuidgen)" \
  --data '{"items": [...]}' 
✓ job_id: "a3f8d1b6-..."
✓ 250,000 numbers queued

Measured Throughput

All queries use idx_lrn_enrichment — a covering index on our 251M-row LRN table. MySQL reads the index only; no row fetches.

NumbersTypical TimeMethod
10,000~1–2 secondsSync or Async
100,000~10–15 secondsAsync job
1,000,000typical: minutesAsync job

Infrastructure-Grade

Built for Every Scale

From single-number lookups to million-row batch jobs — one API, two modes.

Sync Lookup — Up to 1,000 Numbers

POST up to 1,000 phone numbers and get enriched results back immediately — no polling, no job ID. Ideal for real-time list previews, form validation, and small batches.

🚀

Async Jobs — Up to 1,000,000 Numbers

Submit a job with up to 1 million numbers. The API returns a job ID immediately; poll for status as processing completes. Typical 1M-number jobs complete in minutes.

📊

251M-Row Covering Index

Every query hits a covering index on our 251M-row LRN database — MySQL reads only the index, no row fetches. At ~1M index rows/sec for joins, 10k numbers takes 1–2 seconds.

📁

CSV + JSONL Output

Async jobs produce both a CSV and a JSONL result file, available via pre-signed S3 URLs for 7 days. Each row includes your original row ID for lossless reconciliation.

🔑

Row-Level ID Passthrough

Send items with your own row IDs (e.g. CRM record IDs). IDs are echoed in every result row and in both output files — join directly back to your source data without painful reconciliation.

🔄

Idempotent Job Submission

Pass an Idempotency-Key header to prevent duplicate jobs on retry. Same key + same account within 24 hours returns the original job — safe to retry on network failure.

Developer-First

Sync Bulk — Instant Results for Small Batches

Request

POST https://api.sipsmart.io/api/user/lrn/bulk
// Sync: up to 1,000 numbers → immediate results
POST /api/user/lrn/bulk
Authorization: Bearer <token>

{
  "items": [
    { "id": "row-001", "tn": "+13234473116" },
    { "id": "row-002", "tn": "+12125551234" }
  ]
}

Response — <10ms

200 OK
{
  "total": 2,
  "found": 2,
  "results": [
    {
      "id": "row-001",
      "number": "+13234473116",
      "lrn": "6267570000",
      "is_ported": true,
      "carrier_name": "T-Mobile US-SVR-10X/2",
      "line_type": "C",
      "state": "CA",
      "lata": "730",
      "ocn": "6529"
    }
  ]
}
cURLPythonNode.jsGoPHPRuby

Simple, Predictable Pricing

No Surprises. Ever.

We charge less than legacy providers and publish our prices openly. No setup fees, no hidden costs, no annual lock-in required.

Starter
$0.0001
per lookup
  • Real-time LRN dip
  • Standard latency
  • HTTPS API
  • 1,000 free lookups
Best Value
Volume
$0.00005
per lookup (1M+/mo)
  • Real-time + batch
  • <10ms Ohio cluster
  • Dedicated endpoint
  • Priority SLA
Enterprise
Custom
flat-rate
  • DB replication
  • On-prem option
  • SLA guarantee
  • Dedicated support

🛡 Pricing Guarantee

We will match or beat any competitor's published price for equivalent LRN lookup volume. Contact us with a quote.

Get Started Free

FAQ

Bulk LRN Enrichment FAQ

Have another question? Email us at support@sipsmart.io

  • Sync bulk is limited to 1,000 numbers per request and returns results immediately. For larger batches — up to 1,000,000 numbers — use the async job endpoint which returns a job ID and notifies you when results are ready to download.
  • The API uses a covering index on our 251M-row LRN database, so MySQL reads only the index — no row fetches required. At ~1M index rows/sec for the join: 10,000 numbers typically completes in 1–2 seconds, 100,000 numbers in 10–15 seconds, and 1,000,000 numbers in a few minutes.
  • Each enriched result includes: number (E.164), LRN (10-digit routing number), is_ported (boolean), carrier_name (serving carrier), line_type (C=Wireless, L=Landline, V=VoIP, P=Paging), state (2-letter), LATA, and OCN.
  • Async jobs produce both a CSV file and a JSONL file. When a job completes, the polling response includes a result_formats object with pre-signed S3 URLs for both formats, valid for 7 days. Download both or either — both include your original row IDs.
  • Passing an Idempotency-Key header (any UUID) on job creation prevents duplicate jobs if your request is retried due to a network error. The same key + account within 24 hours returns the original job ID with an idempotent flag — no new job is created.
  • Pass items[] in your request body instead of a plain numbers array. Each item has an id field (your CRM row ID, list index, etc.) and a tn field (the phone number). The id is echoed in every result row and in both CSV and JSONL output files.
  • Result file download URLs are pre-signed S3 URLs valid for 7 days after job completion. Download your files before they expire. The job history endpoint returns the 50 most recent jobs, including expired result URLs.
  • Poll GET /api/user/lrn/bulk/jobs/:id. The response includes status (queued, processing, done, failed), processed count, and progress_pct. When status is done, result_formats contains your CSV and JSONL download links.
  • Any common North American format is accepted: E.164 (+13234473116), 11-digit (13234473116), 10-digit (3234473116), or formatted ((323) 447-3116). Invalid or non-NANP numbers are silently skipped — only valid NANP numbers appear in results.
  • Yes, the bulk enrichment API is part of the LRN API product. Activate your endpoint from the Subscriptions page, then use the Bulk Enrichment panel for sync and async lookups from within the portal, or call the API endpoints directly with your API token.

Enrich Your Number Lists with NPAC-Accurate LRN Data

Sync lookups and async batch jobs. CSV + JSONL output. Row-level ID passthrough. Start today.

1,000 free lookups included • No credit card required • Instant provisioning