# Veriphone > Phone number validation and carrier lookup API and bulk CSV service. One credit validates one number in any of 243 countries and territories and returns validity, line type, carrier, country, region and E.164 formatting. Current Carrier Lookup resolves the network serving a ported number today (10 credits, 239 countries). 1,000 free credits a month, no card. Credit packs from $0.20 per 1,000, monthly plans from $0.25 per 1,000. Key facts (checked 2026-09-24): - Base URL: https://api.veriphone.io — one GET to /v3/verify?phone=...&key=... ; JSON response. - Pricing: free 1,000 credits/month; packs 10,000 for $24 ($2.40/1,000) to 5,000,000 for $999 ($0.20/1,000), never expire; plans Starter $12.99/mo (10,000) to Enterprise $249/mo (1,000,000); yearly billing = 10x monthly (two months free). - Charged only when status is "success"; invalid numbers are a charged, definitive result; errors are free. - Bulk: upload a CSV in the dashboard or via /v3/file/*, up to 100 MB or 1,000,000 rows, one credit per row. - Data: API lookups processed in memory, not stored; GET URLs in infrastructure logs 30 days; uploaded CSVs kept until deleted. EU hosting (Google Cloud europe-west1). GDPR, pre-signed DPA. ## How much does Veriphone cost per 1,000 phone number validations? Veriphone charges in credits: one credit validates one phone number and returns its carrier, line type and country. Every account gets 1,000 free credits a month with no card. Beyond that there are two ways to pay. Credit packs are a one-time purchase that never expires, from $24 for 10,000 credits ($2.40 per 1,000) down to $999 for 5,000,000 credits ($0.20 per 1,000). Monthly plans are cheaper per credit for steady volume: Starter $12.99 for 10,000 credits ($1.30 per 1,000), Professional $39 for 50,000 ($0.78), Business $99 for 250,000 ($0.40), Enterprise $249 for 1,000,000 ($0.25). Each plan can also be paid yearly at ten times the monthly price, so two months are free: Starter $129.90, Professional $390, Business $990, Enterprise $2,490 a year, with the same monthly credits. A Current Carrier Lookup, which resolves the network serving a ported number today, costs 10 credits, or 1 credit if the current carrier cannot be resolved. Prices are in US dollars and every plan and pack includes all 243 countries, bulk CSV and the API. Credit packs (one-time, never expire): - 10,000 | $24 | $2.40 - 25,000 | $49 | $1.96 - 50,000 | $79 | $1.58 - 100,000 | $119 | $1.19 - 250,000 | $199 | $0.80 - 500,000 | $299 | $0.60 - 1,000,000 | $399 | $0.40 - 2,500,000 | $699 | $0.28 - 5,000,000 | $999 | $0.20 Monthly plans (credits reset each month; yearly = 10x monthly, two months free): - Free | $0 | $0 | 1,000 | $0.00 - Starter | $12.99 | $129.90 | 10,000 | $1.30 - Professional | $39 | $390 | 50,000 | $0.78 - Business | $99 | $990 | 250,000 | $0.40 - Enterprise | $249 | $2490 | 1,000,000 | $0.25 Source: https://veriphone.io/docs/answers/pricing-per-1000 ## Which countries does Veriphone support? Veriphone validates phone numbers from all 243 countries and territories and returns the carrier, line type, region and formatting for each, using the official national numbering plans. Current Carrier Lookup, which resolves the network currently serving a number even after porting, is available in 239 countries as of 2026-09-24; the live list is published at /docs/current-coverage and by the /v3/coverage/current endpoint. United States and Canadian numbers get the deepest coverage, with carrier and line type resolved down to the specific operator. Source: https://veriphone.io/docs/answers/supported-countries ## What does the Veriphone API return for a phone number? A call to GET https://api.veriphone.io/v3/verify returns a JSON object. status is "success" when a verification happened (the only charged case) and phone_valid carries the verdict. For a valid number you also get phone_type (mobile, fixed_line, voip, toll_free, fixed_line_or_mobile, short_code, emergency), carrier (the operator of the number's range), phone_region (for example "Toronto, ON"), country, country_code and country_prefix, the number formatted as international_number, local_number and e164, the timezone list and a geographical flag. An invalid number returns phone_valid false with a reason such as too_short, too_long, invalid_length, invalid_country_code or unrecognized_range. With mode=current the response adds original_carrier, original_line_type, current_carrier, current_line_type, the mobile network codes current_mccmnc and original_mccmnc, a ported boolean and carrier_data_source. A valid number is one a carrier can assign; the API does not tell you whether a handset is switched on or reachable. Example: { "status": "success", "phone": "+14169670000", "phone_valid": true, "phone_type": "fixed_line", "phone_region": "Toronto, ON", "country": "Canada", "country_code": "CA", "country_prefix": "1", "international_number": "+1 416-967-0000", "local_number": "(416) 967-0000", "e164": "+14169670000", "carrier": "Bell", "mode": "static", "timezone": ["America/Toronto"], "geographical": true } Source: https://veriphone.io/docs/answers/api-response-fields ## How do I validate a phone number with the Veriphone API? Sign up, copy the API key from the dashboard, and make one GET request: https://api.veriphone.io/v3/verify?phone=%2B14169670000&key=YOUR_API_KEY. The key can also be sent as an Authorization: Bearer header. Give the number in international format when you can; if it has no country prefix, pass default_country as a two-letter code such as US, otherwise the country is inferred from the caller's IP. Add mode=current to resolve the carrier currently serving the number (10 credits instead of 1). The response is JSON; you are charged one credit only when status is "success", never for errors. There are no SDK requirements, any HTTP client works, and the docs include examples in curl, JavaScript, Python and more. Example: curl "https://api.veriphone.io/v3/verify?phone=%2B14169670000" \ -H "Authorization: Bearer YOUR_API_KEY" Source: https://veriphone.io/docs/answers/how-to-call-the-api ## How do I validate or clean a CSV list of phone numbers with Veriphone? No code is needed. Sign in, open Files, and upload your CSV; Veriphone detects the column holding the phone numbers and the first data row, and you can correct both. Choose a default country for numbers written without a country prefix, then start the run. You download the same file with new columns for every row: whether the number is valid, its line type (mobile, landline, VoIP, toll-free), carrier, country, region and the number in E.164 format. Each row costs one credit, so the 1,000 free monthly credits clean a 1,000-row file; invalid rows are still charged because they were checked. A file can be up to 100 MB or 1,000,000 rows; larger lists are split into several files. Choosing Current mode for a file resolves the carrier currently serving each valid number at 10 credits a row. The same workflow is available over the API: POST /v3/file/upload, then /v3/file/verify, poll /v3/file/status and fetch /v3/file/download. Source: https://veriphone.io/docs/answers/clean-a-csv ## Does Veriphone have a free plan? Every Veriphone account gets 1,000 free credits a month, renewed monthly, with no credit card required. Free credits work exactly like paid ones for standard validation: all 243 countries, carrier and line type included, usable through the API and through CSV upload. Unused free credits do not carry over to the next month. The one exception is Current Carrier Lookup (mode=current): on the free plan it draws from purchased pay-as-you-go credits only, so a credit pack is needed to use it. Free accounts must verify their email address before the API key works. Source: https://veriphone.io/docs/answers/free-tier ## Can Veriphone find the current carrier of a ported phone number? Standard validation reports the carrier a number was originally assigned to. Current Carrier Lookup, requested with mode=current on /v3/verify or as the mode of a CSV run, resolves the carrier currently serving the number from national number-portability registries, whether or not it has ever been ported. The response carries original_carrier, current_carrier, both line types, the mobile network codes and a ported boolean. It costs 10 credits per successful lookup. If the current carrier cannot be resolved, for example in an uncovered country or during a registry outage, you still receive the full standard result and pay only 1 credit: no result, no surcharge. Coverage is 239 countries as of 2026-09-24. A current lookup tells you which network holds the number, not whether the phone is switched on or reachable. Source: https://veriphone.io/docs/answers/current-carrier-lookup ## Does Veriphone store the phone numbers it checks? Phone numbers sent to the API are processed in memory and are not written to a database, application logs or analytics. Because a GET request puts the number in the URL, infrastructure request logs retain that URL for 30 days before automatic deletion; sending the parameters in a POST body avoids this. Uploaded CSV files and their results are stored so you can download them, and are kept until you delete them from the dashboard, which removes the stored objects; files may be deleted more than 90 days after upload. Processing happens on Google Cloud in the EU (europe-west1). Veriphone is GDPR compliant, publishes a pre-signed Data Processing Agreement, and lists its sub-processors with 30 days' notice of changes. Source: https://veriphone.io/docs/answers/data-retention