Developers
Enterprise Risk API
Check a phone number's spam risk and business verification before a payout, onboarding step or callback — one signed request, answered in milliseconds.
Signed & scoped
HMAC-signed requests, single-use nonces, IP allowlists and per-client scopes.
One number at a time
Built for decisions, not data mining. No batch input and no directory export.
Privacy by design
Only verified business names are returned. The numbers you check are never stored.
Request
import hashlib, hmac, json, secrets, time, requests
path = "/enterprise/v1/risk-check"
body = json.dumps({"number": "+918041234567"})
ts, nonce = str(int(time.time())), secrets.token_hex(16)
canonical = "\n".join([ts, nonce, "POST", path,
hashlib.sha256(body.encode()).hexdigest()])
sig = hmac.new(SECRET.encode(), canonical.encode(),
hashlib.sha256).hexdigest()
r = requests.post("https://api.synsafecaller.com" + path, data=body,
headers={"Content-Type": "application/json", "X-SSC-Key": KEY_ID,
"X-SSC-Timestamp": ts, "X-SSC-Nonce": nonce,
"X-SSC-Signature": sig})200 OKResponse~40 ms
{
"request_id": "5b1f0c2e-8c4d-4a6e-9d51-2f7c3a9e1b20",
"number": "+918041234567",
"verification": {
"status": "verified_business",
"business_name": "Acme Bank",
"purpose": "support"
},
"risk": { "level": "low", "confidence": "high", "category": null },
"ttl_seconds": 3600,
"v": 1
}What you get
- verification.status
- verified_business, claimed or unverified
- verification.business_name
- Only for verified businesses — never a person's name
- risk.level
- unknown, low, medium, elevated or high — from community reports and burst detection
- risk.category
- Most reported category, e.g. loan_fraud or telemarketing
Limits & security
- 10 requests / second per client by default
- Monthly quota by contract
- ±5 minute timestamp window, nonces never reused
- Emergency numbers (112, 100, 108…) are never scored
Who it is for
- Banks and NBFCs — verify a caller before sharing account details
- Fintech & payments — risk-check payout and refund numbers
- Collections & support teams — confirm a callback number is genuine
Get API access
Access is by contract with purpose limitation. Tell us about your use case and expected volume.
Talk to us — contact@synsafecaller.comIntegration guide with Python, Node.js and PHP examples is shared with approved clients.
