inboxsink API

Kodla yönetilebilen tek kullanımlık kutular; kayıt akışlarını gerçek bir posta kutusuna bağımlı olmadan test edin. Beş rota, https://inboxsink.com tabanı, JSON.

Bir şeyi değiştiren rota wait: mesaj gelene kadar bloklar. O olmadan uçtan uca test sleep ile tahmin yürütür ve gönderim kuyruğu geciktiği anda kararsızlaşır.

Ücretsiz API anahtarı

Ayda bin çağrı, kartsız. Test paketinize bağlayıp tutup tutmadığını görmeye yeter.

Sonra, testleriniz reddedilmeye başlayınca: kendi alan adınız hiçbir yerde yayımlanmaz, bu yüzden hiçbir kara listeye düşmez — ayda 29 €.

JavaScript istemcisi

Hiçbir bağımlılığı olmayan bir paket, Node 18 ve üzeri için. Kod GitHub'da.

npm i inboxsink
import { InboxSink } from 'inboxsink';
const sink = new InboxSink(process.env.INBOXSINK_API_KEY);

const inbox = await sink.createInbox();
const code = await sink.waitForOtp(inbox.id);   // '204815'

Kod gelmediğinde waitForOtp null döndürmek yerine hata fırlatır: test sessizce boş alan doldurmak yerine yüksek sesle başarısız olmalı.

Kimlik doğrulama

Her çağrıda bir Authorization başlığı. Anahtarlar panelden oluşturulur ve ibsk_ ile başlar.

curl -H "Authorization: Bearer ibsk_…" \
  https://inboxsink.com/v1/domains

Açık haldeki anahtar yalnızca oluşturma anında gösterilir. Sonrasında sadece ön eki görünür kalır — biz yalnızca özetini saklarız.

Kutu oluşturmak

POST /v1/inboxes

Tüm parametreler isteğe bağlı: domain (varsayılan olarak havuzdan rastgele bir alan adı), prefix (varsayılan rastgele), ttl_seconds (60 saniyeden 30 güne).

curl -X POST https://inboxsink.com/v1/inboxes \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"ttl_seconds": 900}'

→ 201
{ "id": "42", "address": "9f2c1a@mailhusk.com", "expires_at": "2026-09-01T15:12:00Z" }

API ile oluşturulan bir kutu özeldir: yalnızca onu oluşturan anahtar okuyabilir.

Mesaj beklemek

GET /v1/inboxes/:id/wait

Bir mesaj gelene kadar bloklar, sonra hemen yanıtlar. timeout milisaniye cinsinden (varsayılan 30 000, en fazla 120 000), since yalnızca belirli bir kimlikten sonraki mesajları almak için.

Süre mesajsız dolarsa gövdesiz 204 döner — bu bir hata değil, «hiçbir şey gelmedi»nin normal yanıtıdır.

curl -H "Authorization: Bearer $KEY" \
  "https://inboxsink.com/v1/inboxes/42/wait?timeout=45000"

→ 200
{ "message": { "id": "913", "from": "no-reply@acme.com", "subject": "…",
               "otp": "204815", "link": "https://acme.com/confirm/9f3a" } }

otp ve link sizin için ayıklanır. Kod yalnızca mesaj gerçekten bir kod duyurduğunda bildirilir («kod», «doğrulama», «giriş»…) — fatura tutarı ya da yıl asla kodla karıştırılmaz.

Mesajları listelemek

GET /v1/inboxes/:id/messages

since ve limit alır (varsayılan 50, en fazla 200). Mesaj gövdesi olmadan özet döndürür.

Bir mesajı okumak

GET /v1/messages/:id

Mesajın tamamı: text, html, headers ve ek listesi.

Kutuyu silmek

DELETE /v1/inboxes/:id

Kutuyu ve mesajlarını hemen siler. 204 döner.

Hatalar

204İçerik yok — wait için süre mesajsız doldu
400Geçersiz parametre
401Anahtar eksik, bilinmiyor veya iptal edilmiş
403Bu kutu başka bir anahtara ait
404Kutu veya mesaj yok ya da süresi dolmuş
429Çok fazla çağrı

Sınırlar ve ömür

Genel havuzdaki kutular bir saat yaşar; API ile oluşturulanlar kendi ttl_seconds değerine uyar, otuz güne kadar. Süre dolunca kutu ve mesajları silinir — sonradan alınacak bir arşiv yoktur.

On megabaytı aşan mesajlar alım sırasında reddedilir. Bilinmeyen bir alan adındaki adresler SMTP oturumu sırasında reddedilir, geri dönüş üretmeden.

Bu kutular posta gönderemez ve bu bilinçlidir: tek kullanımlık bir alan adından gönderilen mesaj hiçbir yere ulaşmazdı.