Free Virtual Numbers &
SMS Receiver Online

Get free phone numbers from 25+ countries. Receive SMS & OTP instantly — no registration needed.

💬 SMS Received Now
+1 (555) 123-4567
Your code is 482911
🔑 OTP Received Just now
+44 7700 900123
OTP: 796312
📞
0
Numbers Available
From 25+ countries
🌐
0
Countries Online
Now active
💬
0
OTPs Received Today
Across all countries
Why Use Free Number?
  • 100% Free & No Sign up
  • Instant SMS & OTP
  • 24/7 Online & Reliable
  • Multiple Countries
🛡️
Select a Country
🌐

Loading...

PHONE NUMBERS
0
OTPs Today
0
Countries
🔑

No OTPs yet...

FreeNumber API Documentation

Our API is public, free to use, and requires no authentication. You can easily query our list of active virtual numbers and parse OTP messages programmatically.

Base URL https://weak-deloris-nothing672434-fe85179d.koyeb.app
Authentication None Required
Update Frequency Real-time (Poll every 4-5 seconds)

Endpoints

GET /health

Check if the API service is alive and running.

// Response payload:
{
  "status": "running"
}
GET /api/numbers

Fetch the list of all available virtual phone numbers including country, code, and flag emoji.

// Response payload snippet:
[
  {
    "country": "Venezuela",
    "countryCode": "58",
    "flag": "🇻🇪",
    "id": "584161460140",
    "number": "584161460140"
  }
]
GET /api/otps

Fetch the latest received OTP messages (real-time feed).

// Response payload snippet:
{
  "success": true,
  "otps": [
    {
      "number": "584268261330",
      "otp": "108208",
      "message": "Your verification code is 108208",
      "sender": "Google",
      "timestamp": "2026-08-08T10:00:00.000Z"
    }
  ]
}

Python Integration Example

Here is a complete, working example of how to poll virtual numbers and OTP messages in Python:

import requests

BASE_URL = "https://weak-deloris-nothing672434-fe85179d.koyeb.app"

# 1. Fetch available virtual numbers
numbers_response = requests.get(f"{BASE_URL}/api/numbers")
numbers = numbers_response.json()
print("Available Numbers:", numbers)

# 2. Fetch latest OTP messages feed
otps_response = requests.get(f"{BASE_URL}/api/otps?limit=50")
otps = otps_response.json()
print("Latest OTPs:", otps)