API REST para compra automatizada de números virtuais para recebimento de SMS
Base URL: https://api.cotoxprovidersms.fun/api/v1
Versão: 2.0.0
Serviços: Todos do bot (WhatsApp, Instagram, Telegram, etc)
Preços: Dinâmicos (R$ 1,20 - R$ 2,50)
Provedores: Cotz 🏹 e Suellen 🐺
Timeout do número: 20 minutos
Cancelamento: Após 2 minutos da compra
Limite: 10 números ativos simultâneos
Todas as requisições devem incluir o header de autenticação:
X-API-Key: sua_chave_api_aqui
Obtenha sua API Key no bot do Telegram em 🔌 API
Use estes códigos no parâmetro service_code para comprar números de forma mais fácil.
GET /services para ver todos os serviços disponíveis em tempo real.
curl -X GET "https://api.cotoxprovidersms.fun/api/v1/services" \ -H "X-API-Key: sua_chave_api_aqui"
import requests
response = requests.get(
"https://api.cotoxprovidersms.fun/api/v1/services",
headers={"X-API-Key": "sua_chave_api_aqui"}
)
services = response.json()["services"]
# Mostrar serviços
for service in services:
print(f"{service['name']} ({service['code']}): R$ {service['price_min']}")
{
"success": true,
"services": [
{
"id": 1,
"name": "WhatsApp",
"code": "wa",
"description": "Número virtual para WhatsApp",
"icon": "💬",
"price_min": 1.50,
"price_max": 2.00,
"available_count": 150
},
{
"id": 2,
"name": "Instagram",
"code": "ig",
"price_min": 1.80,
"price_max": 2.50,
"available_count": 80
}
]
}
curl -X GET "https://api.cotoxprovidersms.fun/api/v1/balance" \ -H "X-API-Key: sua_chave_api_aqui"
# pip install requests import requests response = requests.get( "https://api.cotoxprovidersms.fun/api/v1/balance", headers={"X-API-Key": "sua_chave_api_aqui"} ) print(response.json())
{
"success": true,
"balance": 15.50,
"currency": "BRL"
}
{"service_id": 1}{"service_name": "WhatsApp"}{"service_code": "wa"} ⭐ Mais fácil!{"service_code": "wa", "provider": "cotz"}
curl -X POST "https://api.cotoxprovidersms.fun/api/v1/purchase" \ -H "X-API-Key: sua_chave_api_aqui" \ -H "Content-Type: application/json" \ -d '{"service_code": "wa"}'
import requests # Comprar WhatsApp usando código response = requests.post( "https://api.cotoxprovidersms.fun/api/v1/purchase", headers={ "X-API-Key": "sua_chave_api_aqui", "Content-Type": "application/json" }, json={"service_code": "wa"} ) data = response.json() print(f"Serviço: {data['service_name']}") print(f"Número: {data['number']}") print(f"Preço: R$ {data['price']:.2f}")
curl -X POST "https://api.cotoxprovidersms.fun/api/v1/purchase" \ -H "X-API-Key: sua_chave_api_aqui" \ -H "Content-Type: application/json" \ -d '{"service_id": 1}'
/services para ver os IDs disponíveis
curl -X POST "https://api.cotoxprovidersms.fun/api/v1/purchase" \ -H "X-API-Key: sua_chave_api_aqui" \ -H "Content-Type: application/json" \ -d '{"service_name": "WhatsApp"}'
curl -X POST "https://api.cotoxprovidersms.fun/api/v1/purchase" \ -H "X-API-Key: sua_chave_api_aqui" \ -H "Content-Type: application/json" \ -d '{"service_code": "wa", "provider": "cotz"}'
cotz = Cotz Provedor 🏹suellen = Suellen Provedor 🐺{
"success": true,
"order_id": 12345678,
"service_id": 1,
"service_name": "WhatsApp",
"number": "+5511999998888",
"price": 1.50,
"expires_at": "2024-12-26T15:30:00Z"
}
{
"success": false,
"error": "INSUFFICIENT_BALANCE",
"message": "Saldo insuficiente. Necessário: R$ 1.50"
}
curl -X GET "https://api.cotoxprovidersms.fun/api/v1/order/12345" \ -H "X-API-Key: sua_chave_api_aqui"
import requests import time order_id = 12345 headers = {"X-API-Key": "sua_chave_api_aqui"} # Polling para aguardar SMS while True: response = requests.get( f"https://api.cotoxprovidersms.fun/api/v1/order/{order_id}", headers=headers ) data = response.json() if data["status"] == "completed": print(f"SMS: {data['sms']}") print(f"Código: {data['code']}") break print("Aguardando SMS...") time.sleep(5)
{
"success": true,
"order_id": 12345678,
"service_name": "WhatsApp",
"number": "+5511999998888",
"status": "ATIVO",
"sms": null,
"code": null,
"created_at": "2024-12-26T15:10:00Z",
"expires_at": "2024-12-26T15:30:00Z"
}
{
"success": true,
"order_id": 12345678,
"service_name": "WhatsApp",
"number": "+5511999998888",
"status": "CONCLUIDO",
"sms": "Seu código de verificação do WhatsApp é: 123456",
"code": "123456",
"created_at": "2024-12-26T15:10:00Z",
"expires_at": "2024-12-26T15:30:00Z"
}
curl -X POST "https://api.cotoxprovidersms.fun/api/v1/order/12345/cancel" \ -H "X-API-Key: sua_chave_api_aqui"
import requests
response = requests.post(
"https://api.cotoxprovidersms.fun/api/v1/order/12345/cancel",
headers={"X-API-Key": "sua_chave_api_aqui"}
)
print(response.json())
{
"success": true,
"message": "Pedido cancelado com sucesso",
"refunded": 0.50
}
{
"success": false,
"error": "too_early",
"message": "Aguarde 2 minutos para cancelar",
"wait_seconds": 85
}
curl -X POST "https://api.cotoxprovidersms.fun/api/v1/payment/create" \ -H "X-API-Key: sua_chave_api_aqui" \ -H "Content-Type: application/json" \ -d '{"amount": 10.00}'
import requests
response = requests.post(
"https://api.cotoxprovidersms.fun/api/v1/payment/create",
headers={
"X-API-Key": "sua_chave_api_aqui",
"Content-Type": "application/json"
},
json={"amount": 10.00}
)
data = response.json()
print(f"PIX Copia e Cola: {data['pix_code']}")
{
"success": true,
"payment_id": 67890,
"amount": 10.00,
"pix_code": "00020126580014br.gov.bcb.pix...",
"qr_code_base64": "data:image/png;base64,iVBORw0KGgo...",
"expires_at": "2024-12-26T15:40:00Z"
}
curl -X GET "https://api.cotoxprovidersms.fun/api/v1/payment/67890" \ -H "X-API-Key: sua_chave_api_aqui"
{
"success": true,
"payment_id": 67890,
"status": "pending",
"amount": 10.00
}
{
"success": true,
"payment_id": 67890,
"status": "approved",
"amount": 10.00,
"new_balance": 25.50
}
curl -X POST "https://api.cotoxprovidersms.fun/api/v1/payment/67890/cancel" \ -H "X-API-Key: sua_chave_api_aqui"
{
"success": true,
"message": "Pagamento cancelado com sucesso"
}
curl -X GET "https://api.cotoxprovidersms.fun/api/v1/health"
{
"status": "ok",
"version": "1.0.0"
}
import requests import time # Configuração API_KEY = "sua_chave_api_aqui" BASE_URL = "https://api.cotoxprovidersms.fun/api/v1" headers = {"X-API-Key": API_KEY, "Content-Type": "application/json"} # 1. Listar serviços disponíveis (opcional) r = requests.get(f"{BASE_URL}/services", headers=headers) services = r.json()["services"] print(f"{len(services)} serviços disponíveis") # 2. Verificar saldo r = requests.get(f"{BASE_URL}/balance", headers=headers) saldo = r.json()["balance"] print(f"Saldo: R$ {saldo:.2f}") # 3. Comprar número WhatsApp usando código r = requests.post( f"{BASE_URL}/purchase", headers=headers, json={"service_code": "wa"} # ou "ig", "tg", "ot", etc ) data = r.json() if not data["success"]: print(f"Erro: {data['message']}") exit() order_id = data["order_id"] numero = data["number"] servico = data["service_name"] preco = data["price"] print(f"✅ {servico} comprado!") print(f"📱 Número: {numero}") print(f"💰 Preço: R$ {preco:.2f}") print(f"🆔 Order ID: {order_id}") # 4. Aguardar SMS (polling a cada 5 segundos) print("⏳ Aguardando SMS...") for tentativa in range(60): # Máximo 5 minutos r = requests.get(f"{BASE_URL}/order/{order_id}", headers=headers) data = r.json() status = data["status"] print(f" [{tentativa+1}/60] Status: {status}", end=" ") if status == "CONCLUIDO": print(f" ✅ SMS recebido!") print(f"📩 Mensagem: {data['sms']}") print(f"🔢 Código: {data['code']}") break if status in ["CANCELADO", "EXPIRADO", "ERRO"]: print(f" ❌ Pedido finalizado: {status}") break time.sleep(5) else: # Cancelar se não recebeu SMS (após 2 minutos) print(f" ⏰ Timeout - tentando cancelar...") r = requests.post(f"{BASE_URL}/order/{order_id}/cancel", headers=headers) if r.status_code == 200: print("✅ Pedido cancelado e valor estornado") else: print("⚠️ Não foi possível cancelar")
wa, ig, tg) para facilitar