Files
autoreg-skills-max/skills/account-validation/references/sms-receive-api-verification.md

3.1 KiB

SMS Receive API Verification (mytempsms.com / receivesms.top)

Pattern: API on different domain than website

The public API for mytempsms.com is at america.receivesms.top, NOT at mytempsms.com. The website has no API endpoints — it's a web UI behind Cloudflare. The API docs are at https://mytempsms.com/api-docs/v5.html.

Always check for API docs pages (/api-docs/, /docs, /api) before concluding a service has no API.

Auth format: SecretKey, not Bearer

Authorization: SecretKey D2B25249546AC0FE146AA3F819DDE3E8

NOT Bearer <key>. The key format is a 32-char hex string (MD5-like).

Base URL and endpoints

  • Base: https://america.receivesms.top/api/v5/
  • Auth: SecretKey <key> header
  • All endpoints are POST with JSON body (Content-Type: application/json)

Key endpoints

Endpoint Purpose Body
POST /api/v5/get_user Balance check {}
POST /api/v5/get_project List projects (services) {}
POST /api/v5/get_country List countries {}
POST /api/v5/get_price Price for project+country {"project_id": N}
POST /api/v5/get_phone Get phone number {"project_id": N, "country_id": N}
POST /api/v5/get_message Get SMS for order {"order_id": "..."}
POST /api/v5/cancel_order Cancel order {"order_id": "..."}

Balance check

curl -s -X POST "https://america.receivesms.top/api/v5/get_user" \
  -H "Content-Type: application/json" \
  -H "Authorization: SecretKey <KEY>" \
  -d '{}'

Response: {"error_code":0,"msg":"Request successful","data":{"tokens":0}}

  • error_code: 0 = auth OK, key is valid
  • tokens: 0 = no balance

Pitfall: 0 tokens = "high usage" error, not "insufficient balance"

When trying get_phone with 0 tokens, the API returns:

{"error_code":4000,"msg":"Due to high current usage, we recommend trying multiple times..."}

This is MISLEADING. It's not actually high usage — it's zero balance. The API does not have an explicit "insufficient tokens" error for get_phone. When you see this error across multiple countries consistently, especially with error_code: 4000, it means no balance.

Do not waste time retrying different countries — check tokens first with get_user.

Free tier

The web version at mytempsms.com has free public numbers (SMS visible to everyone), but the site is behind Cloudflare anti-bot protection. The API has no free tier — requires token balance > 0.

Quick verification script

#!/bin/bash
KEY="$1"
BASE="https://america.receivesms.top/api/v5"

# Check balance
echo "=== Balance ==="
curl -s -X POST "$BASE/get_user" \
  -H "Content-Type: application/json" \
  -H "Authorization: SecretKey $KEY" \
  -d '{}' | python3 -c "import sys,json; d=json.load(sys.stdin); print(f'tokens={d[\"data\"][\"tokens\"]}')"

# Try getting a phone (will fail if tokens=0)
echo "=== Get Phone (US, Telegram) ==="
curl -s -X POST "$BASE/get_phone" \
  -H "Content-Type: application/json" \
  -H "Authorization: SecretKey $KEY" \
  -d '{"project_id":1,"country_id":226}' | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('msg','')[:120])"