Phone Number Fraud & Risk Scanner
Pricing
$50.00 / 1,000 phone number scoreds
Phone Number Fraud & Risk Scanner
Validate phone numbers and score fraud risk — detect VOIP, toll-free, premium-rate lines and get an ALLOW/REVIEW/BLOCK decision for KYC and fraud prevention onboarding. 100% offline, no scraping.
Pricing
$50.00 / 1,000 phone number scoreds
Rating
0.0
(0)
Developer
daehwan kim
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does this Actor do?
Phone Number Fraud & Risk Scanner validates phone numbers and assigns a fraud risk score to help you instantly decide whether to ALLOW, REVIEW, or BLOCK a number during KYC onboarding, fraud prevention, or account verification workflows. The Actor detects high-risk line types (VOIP, premium-rate, toll-free) and produces a transparent, deterministic risk score (0–100) with actionable recommendations for your compliance team. 100% offline — no external APIs, no scraping, pure libphonenumber validation.
Why use Phone Number Fraud & Risk Scanner?
- Fraud Prevention: Automatically flag risky line types (VOIP, premium-rate, toll-free) that correlate with fraud and account takeover
- KYC Compliance: Speed up onboarding decisions — no more manual review delays for every phone number
- Transparent Scoring: Fully deterministic, human-readable risk score (base 5 + line type adjustments)
- Offline & Fast: No external API dependencies — scores return in milliseconds
- Privacy-First: No scraped data, no external platform calls, no personal data stored
- Cost-Effective: $0.05 per valid phone number scored; invalid numbers are free
Use Cases
- Banking/FinTech: Filter out synthetic identities and fraud rings during account opening
- Mobile/Telecom: Detect ported numbers, VOIP gateways, and toll-free fronts
- Compliance Teams: Generate reports of risky phone numbers for secondary review
- B2B Platforms: Verify seller/buyer phone numbers before transaction approval
How to use Phone Number Fraud & Risk Scanner
- Prepare your list: Gather phone numbers in international format (e.g.
+14155552671) or with a default country code - Set disclaimers: Acknowledge that you will use results for lawful fraud prevention / KYC only
- Run the Actor: Click "Start" or call the API with your phone list
- Review results: Download the dataset (JSON, CSV, Excel) — each row shows risk score, line type, and recommendation
- Act on recommendations:
- ALLOW (score <25): Proceed with normal onboarding
- REVIEW (score 25–60): Manual verification step (call or SMS test)
- BLOCK (score >60): Flag for fraud team, request alternative phone number
Input
The Actor accepts:
| Field | Type | Required | Example | Description |
|---|---|---|---|---|
phoneNumbers | Array of strings | ✅ Yes | ["+14155552671", "+442071838750"] | Phone numbers to score (international format preferred, or national format if defaultCountry is set) |
defaultCountry | String | ❌ No | "US" | ISO country code for parsing numbers without country prefix (e.g. (415) 555-2671 in the US) |
disclaimerAck | Boolean | ✅ Yes | true | Must be checked to proceed. Confirms lawful use, compliance with GDPR/CCPA/PIPA, and no harassment/doxxing intent |
Example Input (JSON)
{"phoneNumbers": ["+14155552671", "+442071838750", "+33679368229"],"defaultCountry": "US","disclaimerAck": true}
Output
The Actor produces a dataset (table view in Apify Console) with one row per phone number:
| Field | Type | Example | Description |
|---|---|---|---|
input | string | "+14155552671" | Original input number |
valid | boolean | true | Whether the number parsed and validated successfully |
e164 | string | "+14155552671" | Normalized international format (if valid) |
national | string | "(415) 555-2671" | National format (if valid) |
country | string | "US" | ISO country code |
countryCallingCode | number | 1 | International dialing code |
lineType | string | "MOBILE" | Line type: MOBILE, FIXED_LINE, VOIP, PREMIUM_RATE, TOLL_FREE, etc. |
riskScore | number | 5 | Risk score (0–100, higher = riskier) |
riskFlags | array | [] | Risk indicators (INVALID_NUMBER, VOIP, PREMIUM_RATE, TOLL_FREE, UNKNOWN_TYPE, etc.) |
recommendation | string | "ALLOW" | Decision: ALLOW (<25), REVIEW (25–60), BLOCK (>60) |
disclaimer | string | "Risk score is advisory..." | Legal disclaimer text |
scannedAt | string (ISO 8601) | "2024-01-15T10:30:45.123Z" | Timestamp of scan |
Example Output (JSON)
[{"input": "+14155552671","valid": true,"e164": "+14155552671","national": "(415) 555-2671","country": "US","countryCallingCode": 1,"lineType": "MOBILE","riskScore": 5,"riskFlags": [],"recommendation": "ALLOW","disclaimer": "Risk score is an advisory signal...","scannedAt": "2024-01-15T10:30:45.123Z"},{"input": "+441234567890","valid": true,"e164": "+441234567890","national": "01234 567890","country": "GB","countryCallingCode": 44,"lineType": "VOIP","riskScore": 45,"riskFlags": ["VOIP"],"recommendation": "REVIEW","disclaimer": "Risk score is an advisory signal...","scannedAt": "2024-01-15T10:30:46.456Z"}]
You can download the dataset in JSON, CSV, HTML, or Excel formats via the Output tab.
Data Table
Risk Score Breakdown
| Line Type | Base Score | Risk Level | Notes |
|---|---|---|---|
| MOBILE | 5 | Low | Residential cell phones (lowest risk) |
| FIXED_LINE | 5 | Low | Landline numbers |
| FIXED_LINE_OR_MOBILE | 20 | Medium | Mixed validation (additional review recommended) |
| TOLL_FREE | 30 | Medium-High | 1-800 numbers, commonly spoofed |
| VOIP | 45 | High | VoIP/internet-based, high fraud correlation |
| PREMIUM_RATE | 55 | Very High | 1-900, premium SMS gateways, toll-line proxies |
| PERSONAL_NUMBER | 20 | Medium | Directory-listed non-geographic |
| UAN | 20 | Medium | Unified Access Numbers (less common) |
| SHARED_COST | 20 | Medium | Shared-cost lines |
| UNKNOWN_TYPE | 35 | High | Validation passed but type unclear (requires review) |
| INVALID_NUMBER | 90 | Critical | Failed to parse or invalid format (BLOCK) |
Score Thresholds:
- ALLOW (0–24): Proceed to next step
- REVIEW (25–59): Secondary verification (SMS test, human review, callback)
- BLOCK (60+): Flag for fraud team, request alternative phone number
Pricing
Cost per scan:
- Valid phone numbers: $0.05 per number (charged once it parses and validates)
- Invalid numbers: Free (no charge for parse failures)
Cost Estimation
- 100 valid numbers = $5.00
- 1,000 valid numbers = $50.00
- 10,000 valid numbers = $500.00
Free tier: First 10 runs per month (up to 100 valid numbers total) on Apify's free plan.
Tips & Advanced Options
Optimize Performance
- Batch large lists: The Actor processes numbers sequentially; for 100K+ numbers, consider splitting into 10K batches and running in parallel
- Use default country: For domestic numbers (e.g. all US), set
defaultCountry: "US"to avoid prefixing all 10,000+ numbers - Cache results: If you're re-scanning the same customer base monthly, store results in your own DB to avoid duplicate charges
Improve Accuracy
- Verify REVIEW-tier numbers: Use SMS OTP or callback to confirm REVIEW-tier numbers (VOIP, toll-free, unknown types) before granting access
- Combine with other signals: Risk score is one signal — pair with IP geolocation, email verification, and account history for stronger fraud detection
- Monitor false positives: Some legitimate businesses use VOIP or toll-free numbers; build allowlist for known vendors
Reduce Costs
- Pre-filter your list: Remove obvious duplicates and formatting errors before submitting (saves 5–20% on wasted scans)
- Use callback verification: For borderline REVIEW cases, a $0.10 SMS or $0.05 callback is cheaper than $0.05 auto-block if it enables conversions
- Retry only failures: Only re-submit numbers that failed to parse (network glitch, formatting edge case), not all 10K every month
FAQ, Disclaimers & Support
FAQ
Q: Does this Actor make real-time API calls to carriers or third-party services?
A: No. All validation and scoring is done offline using libphonenumber-js (Google's open-source library). Zero external API dependencies.
Q: Can I use this for SMS marketing or spam calling?
A: No. This Actor is for fraud prevention and authorized KYC workflows only. Unauthorized calling/SMS violates TCPA, GDPR, and local laws.
Q: What about GDPR/CCPA privacy?
A: The Actor does not store personal data, does not call external platforms, and only returns metadata (country, line type, validity). You are responsible for user consent and data retention policies.
Q: Why do some valid numbers get a high risk score?
A: Numbers flagged as VOIP, toll-free, or premium-rate correlate with fraud rings but have legitimate business uses. Use REVIEW scores for secondary verification instead of auto-blocking.
Q: Can I integrate this with my app?
A: Yes, via the Apify API. Call the Actor's endpoint and parse the returned dataset. See Apify docs for webhooks, scheduling, and integrations.
Disclaimers
Legal: This tool validates phone numbers and produces a heuristic risk score from offline metadata (line type, validity, region). It does NOT access carrier databases, perform live lookups, or scrape any platform. The risk score is an advisory signal for fraud-prevention and KYC workflows only — NOT a definitive determination of fraud, identity, or suitability. You assume full liability for decisions made using this output.
Compliance: You are responsible for compliance with:
- GDPR (if processing EU residents)
- CCPA/CPRA (if processing California residents)
- TCPA (US telephone spam law)
- PIPA (Canada privacy law)
- Local telecom and data protection regulations
Misuse (harassment, doxxing, unauthorized calling, spam) is prohibited and may result in legal liability.
Limitations
- No real-time validation: Score is based on number format and known line-type metadata, not live carrier status
- Regional metadata gaps: Some developing regions have incomplete phonenumber databases; UNKNOWN_TYPE flags may be higher
- ported numbers: Does not detect if a number was recently ported from VOIP to MOBILE (or vice versa)
- SIM-only validation: Validates SIM card format, not SIM activation status or current ownership
Support & Feedback
- Bug reports: Use the Issues tab to report parsing errors or incorrect risk scores
- Feature requests: Comment with your use case (fraud detection, compliance, banking, etc.) and we'll consider it
- Custom solutions: Need bulk verification, real-time webhooks, or custom scoring rules? Contact Apify for a consultation
Built by ntriq on the Apify platform. Powered by libphonenumber-js (Google's open-source library).