Geliştiriciler için SMS Doğrulama API'si
SMSBulk SMS doğrulama API'si, kodunuza istek anında gerçek bir telefon numarası verir ve doğrulama kodu gelir gelmez JSON olarak geri döndürür. Tek API, tek ön ödemeli bakiye, SMS gelmezse otomatik iade.
Üç API çağrısıyla OTP alın
Döngünün tamamı bu: numarayı ayırt, SMS kodu gelene kadar sorgula, kullanıldığını onayla. Aşağıdaki örnekler üretim API'sine karşı yazıldığı gibi çalışır; önce anahtarınızı ortam değişkenine koymanız yeterli.
const BASE = 'https://smsbulk.net/api/v1';
const KEY = process.env.SMSBULK_API_KEY; // smsbulk_...
async function api(path, options = {}) {
const res = await fetch(BASE + path, {
...options,
headers: { 'X-API-Key': KEY, 'Content-Type': 'application/json' },
});
if (!res.ok) throw new Error(res.status + ' ' + (await res.text()));
return res.json();
}
async function main() {
// 1) Buy a number for Telegram in the United States
const activation = await api('/activations', {
method: 'POST',
body: JSON.stringify({ serviceCode: 'tg', countryIso: 'US' }),
});
console.log('Number:', activation.phoneNumber);
// 2) Poll until the verification code arrives
let code = null;
while (!code) {
await new Promise((r) => setTimeout(r, 5000));
const a = await api('/activations/' + activation.id);
if (a.status === 'RECEIVED') code = a.smsCode;
else if (['CANCELLED', 'EXPIRED', 'REFUNDED'].includes(a.status)) {
throw new Error('Ended without SMS: ' + a.status);
}
}
console.log('Verification code:', code);
// 3) Confirm the code was used
await api('/activations/' + activation.id + '/complete', { method: 'POST' });
}
main();Anahtarınızı panelden oluşturun; tüm endpoint'leri ve yanıt şemalarını API dokümantasyonu içinde inceleyin. Kod hiç gelmezse aktivasyon süresi dolar ve bakiyeniz otomatik iade edilir. Bu örneklerin retry, timeout ve iade yönetimi eklenmiş production sürümleri için Node.js rehberi veya Python rehberi sayfasını izleyin.
Kayıttan üretime dört adım
Hesap oluşturun
E-posta adresiyle kaydolun. Sözleşme yok, aylık ücret yok, kullandıkça ödeyin.
API anahtarı üretin
Panelden bir anahtar oluşturun ve her istekte X-API-Key başlığıyla gönderin.
İlk isteğinizi atın
Servis kodu ve ülke ISO koduyla POST /v1/activations çağırın. Saniyeler içinde numara dönür.
Üretime ölçekleyin
Belgelenmiş hız limitleri, cursor sayfalama ve öngörülebilir hata kodları otomasyonu stabil tutar.
OTP API'siyle ne elde edersiniz
Bir telefon doğrulama API'si ancak milyonuncu istekte de ilk istekteki gibi davranıyorsa işe yarar. Platform şu garantiler etrafında kurulu.
Düz REST ve JSON
SDK zorunluluğu yok: her dilde her HTTP istemcisi çalışır. Kimlik doğrulama tek başlıktır.
Hızlı kod teslimi
Doğrulama kodlarının çoğu saniyeler içinde düşer. Aktivasyonu sorgulayın; status RECEIVED olur olmaz smsCode alanını okuyun.
Otomatik iade
Yalnızca çalışan doğrulamalar için ödersiniz. Aktivasyon süresi dolana kadar SMS gelmezse tutar destek talebi olmadan bakiyenize döner.
Küresel kapsam
Her bölgeden numara; ülke bazlı canlı stok ve fiyat, herkese açık katalog endpoint'lerinde. Şu an neyin canlı olduğunu servis kataloğu üzerinden görün.
SMS-Activate uyumlu endpoint
SMS-Activate protokolü için yazılmış bir entegrasyonu mu taşıyorsunuz? SMS-Activate uyumlu API dokümanları adresine yönlendirin, mevcut istemci kodunuz çalışmaya devam etsin.
Tek bakiye, dört ürün
Aynı cüzdan SMS doğrulama, e-posta doğrulama, numara kiralama ve eSIM verisi için geçerli. Tek yükleme tüm yığınınızı karşılar.
Yüksek hacimde toplu SMS doğrulama
Her sürümde kayıt akışını doğrulayan QA paketleri, iş hesaplarını partiler halinde açan onboarding hatları, öğle olmadan yirmi ülke isteyen bölge-matrisi testleri: yüksek hacimli doğrulama bu API için istisna değil, tasarım hedefidir. Desen basit: aktivasyonları sınırlı eşzamanlılıkla paralel başlatın, her birini bağımsız sorgulayın, süresi dolanların kendini iade etmesine izin verin.
const BASE = 'https://smsbulk.net/api/v1';
const KEY = process.env.SMSBULK_API_KEY; // smsbulk_...
async function api(path, options = {}) {
const res = await fetch(BASE + path, {
...options,
headers: { 'X-API-Key': KEY, 'Content-Type': 'application/json' },
});
if (!res.ok) throw new Error(res.status + ' ' + (await res.text()));
return res.json();
}
// One verification: buy, poll, return the code (or null on expiry/refund).
async function verifyOnce(serviceCode, countryIso) {
const a = await api('/activations', {
method: 'POST',
body: JSON.stringify({ serviceCode, countryIso }),
});
for (;;) {
await new Promise((r) => setTimeout(r, 5000));
const s = await api('/activations/' + a.id);
if (s.status === 'RECEIVED') {
await api('/activations/' + a.id + '/complete', { method: 'POST' });
return { number: a.phoneNumber, code: s.smsCode };
}
// Expired/cancelled activations refund to the balance automatically.
if (['CANCELLED', 'EXPIRED', 'REFUNDED'].includes(s.status)) return null;
}
}
// Run a QA batch with bounded concurrency (be kind to rate limits).
async function batch(jobs, limit = 5) {
const results = [];
const queue = [...jobs];
await Promise.all(
Array.from({ length: limit }, async () => {
while (queue.length) {
const job = queue.shift();
results.push(await verifyOnce(job.serviceCode, job.countryIso));
}
}),
);
return results;
}
// Example: verify 20 signup-flow test runs for Telegram in the US.
batch(
Array.from({ length: 20 }, () => ({ serviceCode: 'tg', countryIso: 'US' })),
).then((r) => console.log(r.filter(Boolean).length, 'codes received'));Tasarım gereği paralel
Her aktivasyon kendi id'si, durumu ve iade yaşam döngüsü olan bağımsız bir kaynaktır. API'nin hiçbir yeri teker teker kullanım varsaymaz.
Kendi kendine mutabık maliyetler
Her aktivasyon cüzdandan bir kez düşer ve süresi dolunca otomatik iade edilir; 500 koşuluk bir parti, işlem kaydından elle temizlik gerektirmeden mutabık olur.
Hacim fiyatlandırması hazır
Yüklemeler sadakat merdivenini otomatik tırmanır; hacim büyüdükçe kod başına fiyat düşer. Satış görüşmesi gerekmez.
Dürüst hız limitleri
Belgelenmiş limitler ve öngörülebilir hata kodları sayesinde kurallı bir parti koşucusu sürpriz engel yemez. 429'da yavaşlayın, devam edin.
Yukarıdaki örnek beş eşzamanlılık sınırıyla yirmi doğrulama koşturur. Hız limitleri ve sayfalama API dokümantasyonu içinde; parti araçlarınız zaten SMS-Activate protokolü konuşuyorsa SMS-Activate uyumlu API dokümanları onu olduğu gibi kabul eder.
Popüler servisler için canlı başlangıç fiyatları
Fiyatlar başarılı doğrulama başınadır ve ülkeye göre değişir. Aşağıdakiler katalogdan gelen canlı başlangıç fiyatlarıdır; bu sayfada saatlik yenilenir:
Ülke bazlı kesin fiyatlar GET /v1/services/{slug}/countries endpoint'inden gelir; panelin gösterdiği veriyle aynıdır.
Her doğrulama akışı için tek API
İster OTP API, ister telefon doğrulama API'si, ister SMS alma API'si deyin; iş aynı: sisteminizin, doğrulama kodunu yakalayıp makine tarafından okunabilir JSON olarak geri verecek geçici bir numaraya ihtiyacı var. POST /v1/activations sözleşmesinin tamamı budur.
Ekipler bunu CI içinde kayıt akışlarını doğrulamak, toplu kurumsal hesap açılışlarını yürütmek, bölge kilitli formları test etmek ve kişisel numaraları üçüncü taraf veritabanlarından uzak tutmak için kullanıyor. Toplu kullanım birinci sınıf vatandaştır: aktivasyonları paralel oluşturun, cursor sayfalamayla listeleyin, maliyetleri cüzdan hareketlerinden aktivasyon bazında mutabık edin.
Kullanım senaryonuz tek bir koddan çok numaranın kendisiyse, sanal numara API'si sayfası tedarik, yaşam döngüsü ve bırakma konularını derinlemesine anlatır.
AI ajanları için de hazır
SMSBulk resmi bir MCP sunucusu sunar: AI ajanları ve LLM tabanlı iş akışları, elle HTTP yazmak yerine yerel araç çağrılarıyla numara satın alabilir, kod bekleyebilir ve cüzdanı yönetebilir. SMS doğrulaması gereken bir ajan kuruyorsanız MCP sunucusu dokümantasyonu ile başlayın.
SMS doğrulama API'si SSS
API üzerinden SMS doğrulama kodunu nasıl alırım?
POST /v1/activations ile bir aktivasyon oluşturun, ardından GET /v1/activations/{id} ile sorgulayın. Status RECEIVED olduğunda smsCode alanı doğrulama kodunu içerir. Tam döngü yukarıdaki örneklerdeki gibi üç çağrıdır.
API'yi büyük taahhüt vermeden deneyebilir miyim?
Evet. Hesaplar abonesiz, kullandıkça öde modelindedir: küçük bir tutar yükleyin, entegrasyonunuzu üretime karşı çalıştırın; SMS almayan her aktivasyon bakiyeye otomatik iade edilir.
SMS doğrulama API'si hangi ülkeleri destekliyor?
Kapsam küreseldir ve canlı stokla birlikte değişir. GET /v1/countries desteklenen ülkeleri, GET /v1/services/{slug}/countries ise bir servisin şu anda tam olarak nerede numarası olduğunu fiyatlarıyla listeler.
API, SMS-Activate ile uyumlu mu?
Evet. Yerel REST API'nin yanında protokol uyumlu bir endpoint vardır; SMS-Activate API'si için yazılmış araçlar ve kütüphaneler çalışmaya devam eder. Eşleme için SMS-Activate uyumlu API dokümanları sayfasına bakın.
SMS gelmezse ne olur?
Aktivasyonun süresi dolar ve tutar bakiyenize otomatik iade edilir. Kullanılmayan bir aktivasyonu DELETE /v1/activations/{id} ile erken de iptal edebilirsiniz.
Doğrulama kodları ne kadar hızlı gelir?
Teslim hızı hedef servise göre değişir ama kodların çoğu saniyeler içinde gelir. Katalog, ülke başına avgArrivalSeconds alanı sunar; hızlı rotaları programatik seçebilirsiniz.
Telefon doğrulama API'si ile SMS doğrulama API'si aynı şey mi?
Pratikte iki isim aynı işi anlatır: bir numaraya kod ulaştırıp o kodu geri okuyarak numaranın gerçek olduğunu kanıtlamak. Bu API, o döngünün alma tarafıdır. Numarayı tedarik eder ve gelen OTP'yi döndürür; başka platformlarda telefon doğrulamasından geçmek veya kendi kayıt akışınızı test etmek için gereken budur. SMS olmadan yalnızca numara puanlayan lookup tarzı ürünler ayrı bir kategoridir.
Keşfetmeye devam edin
Tek seferlik koddan çok numaranın kendisi mi lazım? sanal numara API'si rehberini okuyun. Günlerce sizde kalacak bir numara mı? numara kiralama sayfasına bakın.
