API
Uma API JSON via HTTPS. Envie sua chave API no cabeçalho Authorization. Os preços, os reembolsos e a contagem regressiva de 20 minutos são os mesmos do site.
Endereço base
https://today-sms.com/api/v1
Autenticação
Cabeçalho Authorization: Bearer YOUR_API_KEY. Crie a chave na página Chave API depois da sua primeira recarga. Até 300 requisições por minuto.
curl https://today-sms.com/api/v1/balance \ -H "Authorization: Bearer YOUR_API_KEY"
GET /balance
Seu saldo em USD.
Exemplo de resposta
{
"balance": "42.5000",
"currency": "USD"
}GET /apps
Apps com números agora: código, nome, menor preço, países.
Exemplo de resposta
[
{ "app": "telegram", "name": "Telegram", "from": "0.4515", "countries": 61 }
]GET /prices?app=telegram
Países para um app, mais barato primeiro: código do país, código ISO, preço, números disponíveis.
Exemplo de resposta
[
{ "country": "indonesia", "iso": "id", "price": "0.4515", "stock": 702866 }
]POST /numbers {"app":"telegram","country":"indonesia"}
Compra um número. O preço é descontado do seu saldo.
Exemplo de resposta
{
"id": 1042,
"phone": "+6281234567890",
"price": "0.4515",
"status": "waiting",
"expires_at": "2026-10-14T09:20:00Z"
}GET /numbers/{id}
Status e todos os SMS recebidos até agora.
Exemplo de resposta
{
"id": 1042,
"status": "received",
"sms": [ { "code": "482913", "text": "Your code is 482913", "at": "2026-10-14T09:02:11Z" } ]
}POST /numbers/{id}/cancel
Cancela um número sem SMS, 120 segundos depois da compra. Reembolso total.
Exemplo de resposta
{
"id": 1042,
"status": "canceled",
"refunded": "0.4515"
}POST /numbers/{id}/finish
Fecha um número depois que você recebeu o código.
Exemplo de resposta
{
"id": 1042,
"status": "finished"
}Status
| waiting | Número pronto, ainda sem SMS |
| received | Chegou pelo menos um SMS |
| finished | Fechado depois de um código |
| canceled | Cancelado, reembolsado |
| expired | Sem SMS a tempo, reembolsado |
| checking | Resposta do fornecedor pouco clara; reembolsado no fim da contagem regressiva se nenhum número aparecer |
Erros
Os erros retornam um status diferente de 2xx e um corpo JSON com um código de erro.
{
"error": "not_enough_balance"
}| unauthorized | Chave API ausente ou errada |
| not_allowed | A API é liberada depois da sua primeira recarga |
| bad_request | Um campo obrigatório está ausente ou errado |
| no_numbers | Não há números para este app e país agora |
| not_enough_balance | Recarregue primeiro |
| too_many_open | Números abertos demais; finalize ou cancele alguns |
| too_early | O cancelamento é permitido 120 segundos depois da compra |
| has_sms | Chegou um SMS; o número não pode ser cancelado |
| not_found | Este número não existe na sua conta |
| try_again | O fornecedor não confirmou o cancelamento; tente de novo em um minuto |
| rate_limited | Requisições demais em um minuto |