Sonjj API — Unified Email / Temp-Mail / OTP / Validation / SEO Toolkit
What it is: One API key + one credit wallet covering a whole family of "save-time" utilities from sonjj.com (the maker of smailpro.com, ychecker.com, smser.net, ugener.com, cardgener.com, storegmail). Verified live 2026-06-16.
Auth: header X-Api-Key: <key> · Base: https://app.sonjj.com
Billing: credits deducted only on HTTP 200 (4xx/5xx/timeout = free).
Base rate $1 / 1,000 credits, dropping to $0.30 / 1,000 on the biggest plan.
Credits never expire. Same wallet works across every Sonjj product.
Key + base are in /data/.openclaw/secrets/env.sh → SONJJ_API_KEY, SONJJ_API_BASE.
> ⚠️ Cloudflare gotcha: app.sonjj.com returns error 1010 (browser_signature_banned)
> to the default Python/urllib User-Agent. The client sonjj.py already sends a
> normal browser UA. With raw curl, a UA is fine by default. If you ever hardcode
> a request, set -A "Mozilla/5.0 ...".
> ⚠️ Run with /usr/bin/python3 (system Python, has CA certs). brew Python 3.14
> fails SSL verify. The client also falls back to certifi if present.
---
When to auto-use this (no need to ask Dr. Wael)
| Need | Use |
|---|---|
| "Is this email real / does this Gmail/Outlook account exist?" | check-email / check-gmail / check-microsoft |
| "Is this domain a disposable/temp-mail domain?" (anti-fraud, signup filtering) | disposable (0.05 cr, super cheap) |
| Need a throwaway email to receive an OTP/verification during signups/testing | gmail-random → wait-otp (real Gmail/Outlook pool, lands on strict forms) |
| Validate a phone number (format, country, E.164, timezones) — offline libphonenumber | phone (0.03 cr) |
| Identify a card BIN (bank, brand, country, credit/debit) | bin |
| IP geolocation (country/city/ISP/lat-lon) | iplookup |
| Convert a messy HTML page → clean Markdown (Rust engine, sanitize option) | html2md |
| Generate realistic fake user data (name, address, DOB, phone, emails) for testing | user-gen |
| Lunar/Hijri-style date conversion | lunar |
| SEO metrics: Moz DA/PA, Ahrefs DR/traffic/backlinks, Google index check, backlink verify | moz / ahrefs / index / backlink |
Fit in the arsenal: this is a cheap, pay-per-success utility layer. It does NOT replace our golden chains (LLMs, media, research). It slots in as the go-to for: account/email/phone/card/IP verification, disposable-domain filtering, OTP-capture inboxes, and lightweight SEO recon — tasks where we previously had no single clean tool.
---
Quick usage (CLI)
bash
source /data/.openclaw/secrets/env.sh
cd /data/.openclaw/workspace/skills/sonjj-api/scripts
PY=/usr/bin/python3Email verification
$PY sonjj.py check-email someone@gmail.com # 2.00 cr
$PY sonjj.py check-gmail someone@gmail.com # 0.50 cr
$PY sonjj.py check-microsoft someone@outlook.com # 0.50 cr
$PY sonjj.py disposable 10minutemail.com # 0.05 cr → {"score":100}Validation
$PY sonjj.py phone +96599662183 # 0.03 cr
$PY sonjj.py phone 2025551234 --country US
$PY sonjj.py bin 457173 # 1.00 crNetwork & web
$PY sonjj.py iplookup 8.8.8.8
$PY sonjj.py html2md --file page.html [--sanitize] # 0.50 cr
$PY sonjj.py html2md --html "<h1>Hi</h1>"Generators
$PY sonjj.py user-gen --gender male --age 30
$PY sonjj.py lunar 2026-06-16 --lang arSEO
$PY sonjj.py moz https://example.com # 5.00 cr
$PY sonjj.py ahrefs https://example.com # 2.00 cr
$PY sonjj.py index https://example.com/page # 14.0 cr (expensive!)
$PY sonjj.py backlink https://blog.com/post https://target.com # 6.00 cr--- Temp mail (receive-only; real Gmail/Outlook pool that lands on strict forms) ---
$PY sonjj.py tmail-domains # list generic temp domains
$PY sonjj.py tmail-create user@oneofthedomains # 1.00 cr
$PY sonjj.py tmail-inbox user@domain # 0.05 cr (poll)
$PY sonjj.py tmail-msg user@domain <mid> # 1.00 cr (read)$PY sonjj.py gmail-random [--type new|alias] # 1.00 cr → real gmail addr
$PY sonjj.py gmail-inbox addr@gmail.com --timestamp 0 # 0.05 cr
$PY sonjj.py gmail-msg addr@gmail.com <mid> # 1.50 cr
$PY sonjj.py outlook-random # 1.00 cr
$PY sonjj.py outlook-inbox addr@outlook.com
$PY sonjj.py outlook-msg addr@outlook.com <mid>
OTP waiter — polls an inbox until a numeric code arrives, prints {"otp": "..."}
$PY sonjj.py wait-otp gmail addr@gmail.com --timeout 120 --interval 5
All commands print JSON on stdout; non-200 → stderr + exit 1 (and you were not charged).
---
Full endpoint map (31 endpoints, all under base https://app.sonjj.com)
Email Tools: /v1/check_email/ (2.0) · /v1/check_gmail/ (0.5) · /v1/check_microsoft/ (0.5) · /v1/check_disposable_email/ (0.05) · /v1/send_smtp_email/ (0.5, POST) · /v1/send_smtp_email/check_cred (0.1, POST)
Disposable Mail (generic): /v1/temp_email/{domains,create,inbox,message,attachments}
Gmail Inbox (real pool): /v1/temp_gmail/{random,inbox,message,list,remove_message}
Outlook Inbox (real pool): /v1/temp_outlook/{random,inbox,message,list}
Validation Tools: /v1/check_bin/ (1.0) · /v2/validate_phone/ (0.03, offline libphonenumber)
SEO Tools: /v1/moz/ (5.0) · /v1/check_ahrefs/ (2.0) · /v1/check_index/ (14.0) · /v1/backlink_checker/ (6.0)
Network & Web: /v1/iplookup/ · /v1/html_to_markdown (0.5, POST) · /v1/ghost_lexical_markdown/ (POST)
Generators & Date: /v1/user_generator/ · /v1/lunar_date/
> Note: SMS receive (smser.net) numbers are a separate product; SMS-receive endpoints > are NOT exposed under this API key's documented set (only email/validation/SEO/util). > If Dr. Wael needs online SMS numbers, check the smser.net dashboard / a dedicated key.
Error codes: 200 ok · 400 bad params · 401 bad/missing key · 402 insufficient credits ·
403 plan/access denied · 422 validation · 429 rate-limited (honor Retry-After) · 5xx server.
Cost-optimization rules
- Prefer
disposable(0.05) over fullcheck-email(2.0) when you only need
- Prefer inbox poll (0.05) loops; only read message (1–1.5) when a new mail appears.
- Avoid
check-index(14 cr) unless truly needed — it's the single most expensive call. - Implement backoff on 429; cache results locally.
Dashboard / management
- Account, API key rotation, credit balance, buy credits: https://my.sonjj.com/ → API section.
- Credits guide: https://sonjj.com/blog/sonjj-api-credits-system-guide/
- Live docs: https://sonjj.com/docs/ (OpenAPI: https://app.sonjj.com/openapi.json)
- Packages: Plan-1 10k=$10 · Plan-2 49k=$49 (+15%) · Plan-3 99k=$99 (+35% → 133,650 cr).