phoneveriflo
Products⌄
ProductsView all →
Phone validationValidate supported phone-number quality signals in bulk or API workflows.Email validationAdd supported email-validity signals to contact-data workflows.Carrier lookupReturn carrier and line-type data where coverage is verified.Number generatorGenerate dialer-ready candidate numbers by region, locality, carrier and line type.Bulk verificationUpload, preflight, quote, process, and export large lists.Developer APIFirst-party asynchronous jobs, results, idempotency, and webhooks.
Solutions⌄
SolutionsView all →
CRM cleaningNormalize and verify contact fields without destructive cleanup.Signup verificationCatch bad contact data around onboarding without confusing it with OTP.Fraud preventionUse contact-data signals as explainable inputs in a broader risk model.Data migrationProfile and clean contact identifiers before CRM or warehouse cutover.Customer engagementPrepare cleaner, freshness-aware segments for downstream workflows.
Pricing
Developers⌄
DevelopersView all →
API documentationAuthentication, jobs, results, errors, limits, and idempotency.QuickstartCreate a small test job and handle the asynchronous lifecycle safely.Libraries & SDKsREST examples today; official SDK status is shown explicitly.WebhooksSigned events, retries, idempotent consumers, and delivery history.ChangelogCompatibility-aware product and API release notes.
Resources⌄
ResourcesView all →
Blog & guidesPractical phone, email, freshness, and API guides.ToolsE.164 formatter, CSV cleaner, deduplicator, and cost calculator.GlossaryPlain-language verification, cache, carrier, and API terms.CoverageService and country availability published only after verification.SupportDocs, status, account support, and sales help.
Company⌄
CompanyView all →
AboutWhy phoneveriflo is built around transparent verification workflows.SecurityImplemented application controls and production security boundaries.PrivacyPrivacy policy draft and data-handling framework.TermsService, API, billing, and acceptable-use terms framework.ContactSales, implementation, support, and product questions.
Sign in Start free preflight
phoneverifloMenu
ProductsPhone validation→Email validation→Carrier lookup→Number generator→Bulk verification→Developer API→
SolutionsCRM cleaning→Signup verification→Fraud prevention→Data migration→Customer engagement→
DevelopersAPI documentation→Quickstart→Libraries & SDKs→Webhooks→Changelog→
ResourcesBlog & guides→Tools→Glossary→Coverage→Support→
CompanyAbout→Security→Privacy→Terms→Contact→
Pricing
Sign in Start free preflight
Developers/Event Streaming/REAL-TIME EVENT STREAMING
Get API Key →
Getting Started
Overview & Architecture
Hub
Quickstart Guide
5 min
Authentication & API Keys
v1
Core API Reference
Jobs API & Lifecycle
Async
Results & Freshness
Encrypted
File Formats & E.164
CSV/TXT
Event Streaming
Webhooks & Signatures
HMAC
Reliability & Limits
Errors & Status Codes
Standard
Rate Limits & Quotas
100 req/s
Idempotency & Retries
24h Safe
SDKs & Resources
Libraries & Official SDKs
6 langs
API Changelog
2026.08
Need implementation help?

Our engineering team helps with schema mapping, high-throughput batching, and custom webhooks.

Developer SupportTalk to Sales
REAL-TIME EVENT STREAMINGVerified API v1Updated: August 12, 2026

Receive verification events without continuously polling.

Configure secure HTTP webhook destinations to receive real-time notifications for job progress, completion, failure, and wallet balance events with HMAC-SHA256 signature verification.

Get your API key Open API SandboxOpenAPI 3.1 Spec
HTTPS / Bearer Auth
import express from 'express';
import crypto from 'node:crypto';

const app = express();
const WEBHOOK_SECRET = process.env.PHONEVERIFLO_WEBHOOK_SECRET;

app.post('/webhook', express.raw({ type: 'application/json' }), (req, res) => {
  const signature = req.headers['x-phoneveriflo-signature'];
  const timestamp = req.headers['x-phoneveriflo-timestamp'];
  const rawBody = req.body.toString('utf8');

  // Verify HMAC-SHA256 signature
  const expectedSig = crypto
    .createHmac('sha256', WEBHOOK_SECRET)
    .update(`${timestamp}.${rawBody}`)
    .digest('hex');

  if (!crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expectedSig))) {
    return res.status(401).send('Invalid signature');
  }

  const event = JSON.parse(rawBody);
  console.log(`Received event: ${event.type} for job: ${event.data.jobId}`);
  res.status(200).json({ received: true });
});
Authentication

All requests require Bearer authorization with high-entropy secret tokens.

Bearer pv_live_...→
Idempotency

Prevent duplicate jobs and safe automatic retries using 24h unique keys.

Idempotency-Key: uuid→
Rate Limits

Predictable Token Bucket model at 100 req/s with standard Retry-After headers.

100 req/s burst→
Stable Versioning

Strict date-based compatibility guarantees with 12-month deprecation windows.

v1 (2026-08-11)→
Interactive Sandbox

Test API Requests in Real Time

Build and simulate verification requests directly in your browser. Generates live code snippets and previews the exact response schema.

Sandbox Mode
3 rows
Simulated Response

Configure request parameters and click Send Request to preview live execution.

Supported Webhook Event Types

Event Catalog

Subscribe to lifecycle events relevant to your operational pipeline.

When configuring a webhook in the Developer Center (/app/developers), choose the event types you want delivered: job.created, job.verifying, job.completed, job.partial, job.failed, wallet.low_balance.

Interactive Tool

HMAC-SHA256 Webhook Signature Tester

Test and inspect webhook signature calculation in your browser to verify anti-tamper security.

X-Phoneveriflo-Signature:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7819467b28
const expected = crypto
  .createHmac('sha256', 'whsec_9f82a1b4c3d2e5f6')
  .update(timestamp + '.' + rawBody)
  .digest('hex');

const valid = crypto.timingSafeEqual(
  Buffer.from(headerSig),
  Buffer.from(expected)
);
Frequently Asked Questions

Common Integration Questions

What IP addresses do webhooks originate from?

In production, webhooks originate from dedicated static egress IPs published in the Developer Center. However, we mandate validating the HMAC-SHA256 signature as your primary cryptographic security barrier.

Related Guides & API References

Jobs API Reference→

Lifecycle transitions that trigger webhook events

API Errors & Codes→

Understand error payload models delivered via webhooks

Start Building

Ready to build with phoneveriflo?

Generate your secret API key in 30 seconds. Test preflight quotes and receive provider-neutral results with full freshness auditability.

Get your API key → View pricing
On this page
Interactive SandboxSupported Webhook Event Types
Developer Resources
Download OpenAPI 3.1System Status (100%)Developer Support
Official SDK Packages
Node.js
npm i @phoneveriflo/sdk
Python
pip install phoneveriflo
phoneveriflo

Verification workflows with transparent preflight pricing, provider-neutral results, and visible freshness metadata.

Platform status

Products

Phone validationEmail validationCarrier lookupNumber generatorBulk verificationDeveloper API

Solutions

CRM cleaningSignup verificationFraud preventionData migrationCustomer engagement

Developers

API documentationQuickstartLibraries & SDKsWebhooksChangelog

Resources

Blog & guidesToolsGlossaryCoverageSupport

Company

AboutSecurityPrivacyTermsContact
© 2026 phoneveriflo. All rights reserved.PrivacyTermsSecurityStatus