OTPMailbox INSTANT CLOUD Instant OTP Verification & Disposable Digital Mailbox Hub
Instant OTP verification for 250+ services (Gmail, Hotmail & Outlook) with real-time stock sync.
Frequently Asked Questions
Everything you need to know about our instant disposable mailboxes, 15-minute refund escrow, and developer verification APIs.
GET /api/code/email or POST /v1/orders/create, and fetch incoming OTP codes via low-latency polling with GET /api/code/fetch. Complete documentation and cURL / Python examples are accessible directly in the API tab.
Developer REST API & SDK
All API requests require a token URL parameter. Keep your token private — never share it or expose it in public code.
https://otpmailbox.com/v1
Auth:
?token=YOUR_API_TOKEN
Non-Programmers Quick Start
100% No Coding Required · Direct Browser LinksNo Python, cURL, or terminal commands needed. Simply copy each live URL below and open it directly in your browser address bar (Chrome, Edge, Firefox)!
Explore Catalog & Pick Your Product Code
Before leasing an email, browse the real-time catalog to find available services, current prices, and their exact product_code (e.g. APPLE_GMAIL_OTP, TM_OPENAI, GMAIL_TELEGRAM).
product_code, price, and live_stock.
Output: [{"product_code": "APPLE_GMAIL_OTP", "price": 0.075}, ...]
Rent Disposable Email & Start Session
Click a popular service below or type any code from Step 1. The URL updates automatically. Open the URL in your browser to allocate your fresh mailbox!
data.account (The Email Address)[email protected] — Copy this email and paste it into the app or website (Apple, Discord, OpenAI, etc.).data.uid (Your Session Order ID)7c9e6679-7425-40de-... — Copy this order UID to retrieve your verification code in Step 3 below!Retrieve Your Verification Code (OTP)
After requesting your verification code from the website (Apple, Discord, etc.), open this URL in your browser. Refresh the page until your code appears!
{"code": 601, "message": "waiting for code"} (refresh every 2–3 seconds).
Once arrived: {"code": 0, "data": {"code": "849201"}}
Check Real-Time Account Balance
Check your remaining account balance anytime. Balance is only deducted upon successful code delivery — zero deduction if no code arrives.
Interactive API Console Live Request Builder
Select a service, auto-fill your key with 1 click, and obtain ready-to-run automation code.
Request Parameters
APPLE_GMAIL_OTP
308
data.uid./api/user/balance
Check account balance
Returns your current wallet balance.
GET /v1/api/user/balance?token=YOUR_TOKEN
{
"code": 0,
"message": "SUCCESS",
"data": {
"balance": 12.50
}
}
/api/code/email
Rent a temporary OTP email
Rents a disposable email address for receiving a verification code. Returns a uid (order ID) and the email account.
| Parameter | Type | Required | Description |
|---|---|---|---|
token | string | Yes | Your API token |
productCode | string | Either | e.g. GMAIL_TELEGRAM, g_api_telegram, TWITTER_X_OUTLOOK_OTP |
service_id | integer | Either | Numeric ID (e.g. 1, 2, 14...) from /v1/products. You can provide either productCode OR service_id. |
GET /v1/api/code/email
?token=YOUR_TOKEN
&productCode=GMAIL_TELEGRAM
{
"code": 0,
"message": "SUCCESS",
"data": {
"uid": "a1b2c3d4-...",
"account": "[email protected]"
}
}
/api/code/fetch
Poll for verification code
Polls for the incoming verification code. Call every 2–3 seconds until code is returned. Hold is automatically released and refunded if no code is received during the lease session.
| Parameter | Type | Required | Description |
|---|---|---|---|
token | string | Yes | Your API token |
uid | string | Yes | Order UID from /api/code/email |
GET /v1/api/code/fetch
?token=YOUR_TOKEN
&uid=ORDER_UID
// Code received ✓ { "code": 0, "message": "SUCCESS", "data": {"code": "482931"} }// Still waiting... { "code": 601, "message": "Waiting for verification code", "data": null }// Expired / Refunded { "code": 503, "message": "Order session expired", "data": null }
/v1/orders/create
Rent a temporary OTP email
Rents a disposable email address for receiving an OTP verification code. Returns an order_id and the email address.
| Parameter | Type | Required | Description |
|---|---|---|---|
token | string | Yes | Your API token |
product_code | string | Either | Service slug (e.g. GMAIL_TELEGRAM, TWITTER_X_OUTLOOK_OTP) |
service_id | integer | Either | Numeric ID (e.g. 1, 14...). Accepts either product_code OR service_id. |
GET /v1/orders/create
?token=YOUR_TOKEN
&product_code=GMAIL_TELEGRAM
# Or use numeric ID: &service_id=1
{
"ok": true,
"order_id": "a1b2c3d4-...",
"email": "[email protected]"
}
/v1/orders/{order_id}/fetch
Poll for verification code
Polls for the incoming verification code. Call every 2–3 seconds until code is returned. Hold is automatically released and refunded if unreceived. Subsequent / 2nd codes on the same email are also supported automatically.
| Parameter | Type | Required | Description |
|---|---|---|---|
token | string | Yes | Your API token |
order_id | string (path) | Yes | Order ID from create endpoint |
GET /v1/orders/ORDER_ID/fetch
?token=YOUR_TOKEN
// Code received ✓ { "ok": true, "status": "received", "code": "482931" }// Second code arrived on same email ✓ { "ok": true, "status": "received", "code": "729104", "all_codes": "482931, 729104", "is_second_code": true }// Still waiting... { "ok": true, "status": "waiting", "code": null }
/v1/products
Live Catalog
List available services, stocks & pricing
Retrieves the real-time catalog of all available verification services, numeric service_id, string product_code identifiers, email_type, live inventory counts, and current unit prices.
GET /v1/products
?token=YOUR_TOKEN
{
"ok": true,
"products": [
{
"id": 1,
"service_id": 1,
"product_code": "GMAIL_TELEGRAM",
"name": "Telegram Verification Code (Instant OTP)",
"category": "email",
"email_type": "gmail",
"price": 0.024,
"live_stock": 250
},
{
"id": 14,
"service_id": 14,
"product_code": "TWITTER_X_OUTLOOK_OTP",
"name": "Twitter/X (Outlook)",
"category": "email",
"email_type": "outlook",
"price": 0.012,
"live_stock": 480
}
]
}
| Code / HTTP | Interface | Meaning | How to Handle |
|---|---|---|---|
code: 0 | JSON API | Success | Operation completed successfully (order created or code delivered) |
code: 601 | JSON API | Waiting for code | Keep polling every 2–3 seconds until code is received |
code: 101 | JSON API | Insufficient stock | Service momentarily busy or sold out; retry shortly |
code: 401 | JSON API | Insufficient balance | Top up your wallet balance to place this order |
code: 503 | JSON API | Expired / Refunded | Session timed out with $0.00 deducted; balance released back to wallet |
HTTP 401 | REST API | Invalid API token | Token missing, inactive, or revoked; check dashboard tokens |
HTTP 402 | REST API | Insufficient balance | Deposit funds via Cryptomus before creating order |
HTTP 503 | REST API | Capacity busy | Zero balance deducted; retry shortly |
// Step 1: Get verification code email
const BASE = 'https://otpmailbox.com/v1'; // Base API endpoint
const TOKEN = 'YOUR_API_TOKEN';
const emailRes = await fetch(
`${BASE}/api/code/email?token=${TOKEN}&productCode=GMAIL_TELEGRAM`
);
const emailData = await emailRes.json();
if (emailData.code === 0) {
console.log('Email:', emailData.data.account);
console.log('UID:', emailData.data.uid);
// Step 2: Poll for verification code
const fetchCode = async () => {
const codeRes = await fetch(
`${BASE}/api/code/fetch?token=${TOKEN}&uid=${emailData.data.uid}`
);
const codeData = await codeRes.json();
if (codeData.code === 0) {
console.log('Code:', codeData.data.code);
return;
}
await new Promise(r => setTimeout(r, 3000));
return fetchCode();
};
await fetchCode();
}
import requests, time
API_TOKEN = 'YOUR_API_TOKEN'
BASE_URL = 'https://otpmailbox.com/v1' # Base API endpoint
# Step 1: Get verification code email
email_res = requests.get(f'{BASE_URL}/api/code/email', params={
'token': API_TOKEN,
'productCode': 'GMAIL_TELEGRAM'
})
email_data = email_res.json()
if email_data['code'] == 0:
print(f"Email: {email_data['data']['account']}")
uid = email_data['data']['uid']
# Step 2: Poll for verification code
while True:
code_res = requests.get(f'{BASE_URL}/api/code/fetch', params={
'token': API_TOKEN,
'uid': uid
})
code_data = code_res.json()
if code_data['code'] == 0:
print(f"Code: {code_data['data']['code']}")
break
time.sleep(3)
// Step 1: Rent OTP email
const BASE = 'https://otpmailbox.com';
const TOKEN = 'YOUR_API_TOKEN';
const res = await fetch(
`${BASE}/v1/orders/create?token=${TOKEN}&product_code=GMAIL_TELEGRAM`
);
const { order_id, email } = await res.json();
console.log('Got email:', email);
// Step 2: Poll for verification code
const pollCode = async () => {
while (true) {
const r = await fetch(
`${BASE}/v1/orders/${order_id}/fetch?token=${TOKEN}`
);
const d = await r.json();
if (d.ok && d.code) {
console.log('Code:', d.code);
break;
}
await new Promise(r => setTimeout(r, 3000));
}
};
await pollCode();
import requests, time
TOKEN = 'YOUR_API_TOKEN'
BASE = 'https://otpmailbox.com'
# Step 1: Rent OTP email
r = requests.get(f'{BASE}/v1/orders/create',
params={'token': TOKEN, 'product_code': 'GMAIL_TELEGRAM'})
data = r.json()
order_id = data['order_id']
print(f"Email: {data['email']}")
# Step 2: Poll for code
while True:
resp = requests.get(f'{BASE}/v1/orders/{order_id}/fetch',
params={'token': TOKEN})
d = resp.json()
if d.get('ok') and d.get('code'):
print(f"Code: {d['code']}")
break
time.sleep(3)
GET /v1/products?token=... to programmatically retrieve the real-time list of all services, live stock, and unit prices.
Code Details
| Order No. | Product | Account (Email) | Code | Status | Time |
|---|---|---|---|---|---|
| Loading code details... | |||||
Platform Orders
Recharge & Deposit History
| Transaction ID | Amount | Balance Movement | Status | Time |
|---|---|---|---|---|
| Loading recharge ledger... | ||||
Profile & Statistics
Account Dashboard Services
Security Settings
Two-Factor Auth (2FA)
Protect your account with Google Authenticator, 1Password, or Authy apps.