API simples, confiável e transparente para verificação SMS.
A API do SMSKap fornece números físicos reais de operadora para WhatsApp, WhatsApp Business e Telegram com preços de catálogo padrão e reembolso 100% automático.
https://api.smskap.com/v1Integre em três etapas
Envie sua solicitação, gere sua chave de API após a aprovação e faça requisições com segurança a partir do seu servidor.
Submit your developer form to begin the review process.
Get notified once your account is reviewed and approved.
Generate your live secret key and configure it on your server.
Autenticação Segura via Bearer Token
Envie sua chave no cabeçalho Authorization: Bearer <key>. A chave secreta é exibida apenas uma vez no momento da criação.
curl https://api.smskap.com/v1/account \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxx"Status da Conta e Saldo
Consulte GET /v1/account para verificar o saldo disponível, moeda (TRY) e limites operacionais.
/v1/accountRequer Chave Live Aprovada{
"account": { "balance": 450.00, "currency": "TRY" },
"application": {
"name": "Production Bot",
"status": "approved",
"requests_per_minute": 60,
"daily_activation_limit": 200,
"currency": "TRY"
},
"environment": "live",
"request_id": "req_01J8SMSKAP123456789"
}Catálogo Padrão de Serviços e Países
Nosso sistema é focado estritamente em 3 serviços essenciais e 3 países de alta taxa de entrega.
Supported Services
whatsappwhatsapp-businesstelegramSupported Countries
trusgbSem margens ocultas ou surpresas de fornecedores. Os preços seguem a tabela pública do site, com possibilidade de descontos por volume configurados via painel de administração.
/v1/countriesPaíses Ativos (TR, US, GB)/v1/servicesServiços Ativos (WhatsApp, WhatsApp Business, Telegram)/v1/offersPreços e Estoque em Tempo RealReserva de Número, Consulta de SMS e Reembolso
Reserve um número, consulte o código SMS recebido ou cancele no prazo hábil. Se o código não chegar, o saldo é reembolsado instantaneamente.
/v1/activationsReservar Número (POST /v1/activations)curl -X POST https://api.smskap.com/v1/activations \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Idempotency-Key: e9b8d2e1-4567-4d89-b123-987654321abc" \
-H "Content-Type: application/json" \
-d '{
"service_key": "whatsapp",
"country_code": "tr"
}'{
"activation": {
"id": "AKT-260827-ABC123",
"status": "waiting_code",
"service_key": "whatsapp",
"service_name": "WhatsApp",
"country_code": "tr",
"country_name": "Türkiye",
"number": "+905301234567",
"code": null,
"sale_amount": 40.50,
"currency": "TRY",
"expires_at": "2026-10-19T21:05:00Z",
"cancellable_at": "2026-10-19T20:47:00Z",
"poll_interval_seconds": 3
},
"request_id": "req_01J8SMSKAP123456789"
}/v1/activations/{activation_id}Consultar SMS (GET /v1/activations/{id})curl https://api.smskap.com/v1/activations/AKT-260827-ABC123 \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxx"{
"activation": {
"id": "AKT-260827-ABC123",
"status": "code_received",
"code": "482910",
"sale_amount": 40.50,
"currency": "TRY"
},
"request_id": "req_01J8SMSKAP123456789"
}/v1/activations/{activation_id}Cancelar e Reembolsar (DELETE /v1/activations/{id})Integração via SDK Python Oficial
Integrate in seconds using our official open-source Python SDK with automated polling and refund handling:
pip install smskapfrom smskap import SMSKapClient, SMSKapError
client = SMSKapClient(api_key="sk_live_xxxxxxxxxxxxxxxxxxxxxxxx")
try:
# 1. Numara rezerve et (WhatsApp / Türkiye)
act = client.create_activation(service="whatsapp", country="tr")
print(f"Tahsis edilen numara: {act['number']} (ID: {act['id']})")
# 2. SMS kodunu otomatik dinle (120 saniyeye kadar)
code = client.wait_for_code(activation_id=act["id"], timeout=120)
if code:
print(f"SMS Doğrulama Kodu: {code}")
else:
# Kod gelmezse iptal et; bakiye anında iade edilir
client.cancel_activation(act["id"])
print("Süre doldu, rezervasyon iptal edildi ve bakiye iade edildi.")
except SMSKapError as e:
print(f"Hata [{e.code}]: {e.message}")Observabilidade, Limites e Segurança
O uso da API é protegido por limites dinâmicos configuráveis.
Controle de requisições por minuto (ex. 60/min). Retorna 429 e Retry-After se excedido.
Número máximo de ativações por dia. Pode ser expandido conforme seu volume.
Identificador único em cada resposta para auditoria e suporte ágil.
Códigos de Erro Padronizados
Todos os erros seguem o padrão JSON uniforme. Trate error.code no seu código.
| HTTP | Código de Erro (error.code) | Descrição e Solução |
|---|---|---|
| 400 | invalid_payload | Missing or invalid payload (service_key or country_code outside supported catalog). |
| 400 | insufficient_balance | Account balance is insufficient. Top up balance in the user panel. |
| 400 | cancel_window_expired | Cancellation window expired or SMS code already delivered; cannot be cancelled. |
| 401 | invalid_api_key | Invalid, missing or revoked Bearer API key. |
| 403 | forbidden | Developer application pending approval or suspended. |
| 404 | no_numbers_available | No numbers available right now for this service and country. Please retry shortly. |
| 404 | activation_not_found | The requested activation ID does not exist. |
| 409 | activation_conflict | Conflict detected on activation or duplicate idempotency key. |
| 429 | rate_limit_exceeded | Rate limit exceeded. Wait the number of seconds specified in the Retry-After header. |
| 429 | daily_activation_limit_exceeded | Daily activation quota reached. Contact support to request a quota increase. |
| 503 | service_temporarily_unavailable | Carrier network is temporarily unavailable. Please retry shortly. |