XMailHub.net
// API

Mail hesabı API

Son güncelleme: 15 Temmuz 2026

Evet, mail hesabını API ile satın alabiliyorsun. Üstelik uçlardan biri API anahtarı bile istemiyor: GET https://api.xmailhub.net/stock adresi canlı fiyat ve stoğu JSON olarak herkese açık döndürüyor, kayıt olmana gerek yok. Bakiye, satın alma ve mail okuma uçları ise anahtarını istiyor ve ön ödemeli bakiyenden düşüyor.

Tüm API beş GET ucundan ibaret, hepsi https://api.xmailhub.net altında. Katalogu üye olmadan doğrulayabiliyorsun: stok adresini tarayıcıda aç, karşılığında status, code ve bir data dizisi geliyor; dizideki her ürünün Name, string olarak Price ve tam sayı Stock alanı var. Taze Hotmail ve Outlook 0,004 dolar, yaşlandırılmış (trusted) Hotmail ve Outlook 0,040 dolar, Gmail 0,350 dolar. Sipariş adedi 1 ile 100.000 arasında ve birim fiyat adede göre değişmiyor. Ödeme yalnızca kripto: Plisio üzerinden USDT (TRC20), Litecoin ve Tron. Sipariş başına ödeme adımı yok, bakiyeyi bir kez yüklüyorsun ve API onu harcıyor.

Beş ucun tamamı, temel adres https://api.xmailhub.net
AnahtarDönen alanlar
GET /stockHayırstatus, code ve data[]; her üründe Name, string Price ve tam sayı Stock.
GET /balance/KEYEvetcode, string balance, dd/mm/yyyy HH:MM:SS formatında date.
GET /purchase/KEY/KOD/ADETEvetstatus, code, message, purchase_id, balance, price ve data[]: Email, Password, AccessToken, RefreshToken, ClientId.
GET /mailinfo/KEY?mail=ADRESEvetcode ve data: mail, password, accessToken, refreshToken, clientId.
GET /mailreader/KEY?mail=ADRESEvetcode, message ve data: email_address ile gelen kutusu mesajları. Ham HTML için &html ekle.
/purchase ucundaki KOD parçası için ürün kodları. Aynı kodlar /stock cevabındaki Account alanından da canlı okunabilir.
KodÜrünFiyat
HotmailHotmail Fresh$0.004
OutlookOutlook Fresh$0.004
Hotmail_TrustedHotmail Trusted$0.040
Outlook_TrustedOutlook Trusted$0.040
Canlı fiyat ve stok, /stock ucunun döndürdüğü rakamların aynısı
ÜrünFiyatStok
Hotmail Fresh$0.004Yok
Outlook Fresh$0.004Var
Hotmail Trusted$0.020Yok
Outlook Trusted$0.0201
Gmail$0.350Yok

Stok ucu herkese açık, API key istemiyor

GET https://api.xmailhub.net/stock ucu anahtar, header veya hesap istemiyor. Bu bilinçli bir tercih ve entegrasyona buradan başlamak en mantıklısı. Cevap şöyle dönüyor: {"status":"success","code":200,"data":[{"Name":"Hotmail Fresh","Price":"0.004","Stock":34},{"Name":"Outlook Trusted","Price":"0.040","Stock":17}]}. Price sayı değil string geliyor, yani doğrudan float sanma, parse et. Stock ise tam sayı ve sürekli hareket ediyor, çünkü aynı stoktan başkaları da alıyor. İki dürüst not. Birincisi, data dizisinde ürün adları var, satın alma ucuna göndereceğin ürün kodları yok; kodların tek kesin listesi yukarıdaki tablo. İkincisi, stok rakamı uzun süreli bir önbellekten değil istek anında okunuyor, o yüzden bir çağrıda 34 gören bir sonraki çağrıda 0 görebilir. Uzun süren bir işin başında bir kez değil, satın almadan hemen önce sorgula.

API key nereden alınır, bakiye nasıl yüklenir

API anahtarın panelindeki API sayfasında duruyor ve kayıt olduğun anda üretiliyor. Başvuru formu, onay bekleme, kota talebi yok. Aynı sayfadan istediğin zaman yenileyebiliyorsun. Anahtar eski bir script'in içinde ya da paylaşılan bir config dosyasında uzun süredir bekliyorsa yenilemek iyi fikir: yenilemenin bedeli bir deploy, sızmış anahtarın bedeli bakiyen. Anahtarı üç şekilde gönderebiliyorsun ve üçü de aynı yere gidiyor: URL'de path parçası olarak, ?apiKey= ile query'de veya X-API-Key header'ında. Para tarafı sitedekiyle aynı işliyor. Ön ödemeli bakiyeni Plisio üzerinden kripto ile yüklüyorsun (USDT TRC20, Litecoin, Tron) ve her satın alma çağrısı bu bakiyeden düşüyor. Anlık bakiyeni GET /balance/ANAHTARIN ile okuyorsun; cevapta code, string olarak balance ve dd/mm/yyyy HH:MM:SS formatında date dönüyor.

API ile mail satın alma: /purchase/KEY/KOD/ADET

Satın alma tek istek: GET https://api.xmailhub.net/purchase/ANAHTARIN/Hotmail/10 çağrısı on adet taze Hotmail alıyor. KOD kısmına ürünün API kodu geliyor ve şu an dört tane canlı kod var: Hotmail, Outlook, Hotmail_Trusted ve Outlook_Trusted. Eşleşme büyük küçük harfe duyarsız, yani hotmail_trusted da çalışıyor. Her ürünün kodu /stock cevabındaki Account alanında da geliyor, yani bu listeyi koda gömmen gerekmiyor. Adet 1 ile 100.000 arasında ve birim fiyat adetle değişmiyor, on bin taze Hotmail on bin kere 0,004 dolar ediyor. Evet, para harcayan bir çağrının GET olması alışılmadık, bunu düzeltilmiş gibi anlatmayacağız. Sebebi eski sistemle uyum: URL'ler tam olarak böyleydi ve bugün hâlâ çalışan binlerce script bu adrese bakıyor, metodu değiştirmek hepsini bir kural uğruna kırardı. Sonuçlarını ciddiye al: bu URL gerçekten para harcıyor, yani körlemesine retry atan, link öngörüsü yapan veya tam URL'leri loglayan hiçbir yerde durmasın.

Satın alma cevabında ne dönüyor

Başarılı satın almada status, code, message, purchase_id, balance, price ve her hesap için bir nesne içeren data dizisi geliyor. Her nesnede Email, Password, AccessToken, RefreshToken ve ClientId alanları var. Son üçü OAuth2 alanları: hesabı IMAP veya Microsoft Graph üzerinden bağlamanı sağlıyorlar, yani Microsoft'un telefon numarası sorduğu giriş ekranına hiç uğramıyorsun. Hesapta token yoksa AccessToken alanı "-" olarak dönüyor, bir mail kütüphanesine vermeden önce bunu kontrol et. balance düşüm sonrası kalan bakiyen, price ise gerçekten ödediğin birim fiyat; ikisi de string. purchase_id sipariş numaran ve kaydetmeye değer tek alan o: bir hesap giriş yapmazsa destek bu numaradan bakıyor. Hesap bilgileri ayrıca sipariş geçmişinde duruyor, yani cevabı aldıktan sonra script'in çökerse hesapları kaybetmiş olmuyorsun.

Gelen kutusunu okuma: /mailreader ve /mailinfo

İki uç, senin satın aldığın hesaplar üzerinde çalışıyor. GET /mailreader/[email protected] gelen kutusunu okuyor; cevapta code, message ve email_address ile mesajları taşıyan bir data nesnesi var. Her mesajda date, sender_email, sender_name, subject, message, folder ve id alanları geliyor, yani doğrulama kodunu regex ile çekmek için yeterli. Sonuna &html eklersen temizlenmiş metin yerine ham HTML gövde dönüyor. GET /mailinfo/[email protected] ise tek hesabın saklı bilgilerini veriyor: mail, password, accessToken, refreshToken, clientId. İkisi de sahiplik kontrolü yapıyor, senin siparişlerinde olmayan bir adres 400 ve publicapi.invalid_mail anahtarıyla dönüyor. mail parametresi zorunlu, göndermezsen 400 ve publicapi.missing_params alıyorsun. Okuma harici bir mail servisine bağlı, o servise ulaşılamazsa boş kutu yerine 503 dönüyor. 503'ü "mail yok" değil "sonra tekrar dene" diye oku.

Hata kodları ve bilmen gereken tuhaflıklar

Hata gövdelerinde success: false, makine tarafında okunacak bir code ve hem messageKey hem messageText var; ikincisi Accept-Language başlığına veya ?lang= parametresine göre çevriliyor. Anahtar yoksa 401 ve API_KEY_MISSING, anahtar geçersizse yine 401 ama API_KEY_INVALID, anahtar askıya alınmış bir hesaba aitse 403 ve ACCOUNT_INACTIVE dönüyor. Bunları aynı kefeye koyma: 401 anahtarını düzelt demek, 403 destekle konuş demek ve ikisi de retry atmaya değmez. Bilinmeyen ürün kodu 404 dönüyor. Tedarikçide olandan fazlasını istersen 400 ve INSUFFICIENT_STOCK geliyor, mesaj kaç adet olduğunu da söylüyor, yani script adedi düşürüp tekrar deneyebiliyor. 1 ile 100.000 dışındaki adet 400 QUANTITY_OUT_OF_RANGE, yetersiz bakiye 400 INSUFFICIENT_BALANCE veriyor. İki gerçek tuhaflık: query formatında /purchase ucunu kod veya adet olmadan çağırırsan HTTP durumu 400 gelirken gövdedeki code alanı 403 yazıyor, ve bakım modunda bütün uçlar 503 ile code: 999 dönüyor.

İki URL formatı ve eski script'ler

Her uç aynı anda iki şekilde cevap veriyor. Eski path formatı anahtarı URL'ye koyuyor: /balance/KEY, /purchase/KEY/KOD/ADET, /mailinfo/KEY?mail=..., /mailreader/KEY?mail=.... Query formatı ise yolu temiz tutuyor: /balance?apiKey=KEY, /purchase?apiKey=KEY&code=Hotmail&quantity=10. İkisi de aynı handler'a gidiyor ve aynı gövdeyi döndürüyor; üçüncü seçenek olan X-API-Key header'ı da her ikisiyle çalışıyor. Bu, geri sayımı olan bir deprecation değil. İki format yan yana canlı, geçiş tarihi yok. Eski PHP subdomain'ine yıllar önce yazılmış bir script bu yüzden çalışmaya devam ediyor: adresi https://api.xmailhub.net yap, anahtarı koru, bitti. Yeni bir şey yazıyorsan header formatını tercih et. URL'deki anahtar erişim loglarına, tarayıcı geçmişine, proxy önbelleğine ve sonrasında açtığın sayfanın referrer'ına düşüyor; para harcayan bir anahtar için bunların hiçbiri iyi yer değil.

Sık sorulan sorular

Stok sorgusu için API key gerekiyor mu?

+

Hayır. GET https://api.xmailhub.net/stock herkese açık. Anahtar yok, header yok, hesap yok, kayıt yok. Tarayıcıda açtığında JSON dönüyor: bir status alanı, bir code alanı ve her ürün için Account, Name, Price ve Stock taşıyan bir data dizisi. Bir şeye para vermeden önce gerçekten ne satıldığını ve hangi fiyata satıldığını doğrulamanın en hızlı yolu bu, ayrıca döngüde sorgulaman gereken uç da bu, çünkü sana hiçbir şeye mal olmuyor. Diğer tüm uçlar (bakiye, satın alma, mailinfo, mailreader) anahtarını istiyor. Bir ayrıntı: stok cevabında ürün adları var, satın alma ucunun beklediği kodlar yok. İkisi arasındaki eşleşme için bu sayfadaki kod tablosunu kullan.

API key nereden alınır?

+

Kayıt ol, anahtar zaten orada duruyor: panelindeki API sayfasında. Başvuru yok, onay yok, bekleme yok. Aynı sayfa temel adresi ve her uç için senin gerçek anahtarınla doldurulmuş örnek isteği de gösteriyor, yani curl komutunu doğrudan kopyalayabiliyorsun. Anahtarı istediğin an aynı sayfadan yenileyebilirsin; yenileme anında geçerli oluyor, yani eski anahtarı kullanan her şey 401 ve API_KEY_INVALID almaya başlıyor. Anahtar üç yoldan gidebiliyor: URL'de path parçası, query'de ?apiKey= veya X-API-Key header'ı. Yeni yazdığın kodda header'ı tercih et, çünkü URL'ye konan anahtar loglara ve tarayıcı geçmişine sızıyor.

Sipariş sırasında stok biterse ne oluyor?

+

Sipariş tamamen iptal oluyor ve senden para çekilmiyor. Satın alma atomik: önce hesaplar tedarik ediliyor, istediğin adet tam olarak karşılanamıyorsa hiçbir şey yazılmıyor ve bakiye hiç düşmüyor. Yani yarım kalan bir partinin parasını ödemiş olmuyorsun. Karşılığında HTTP 400 ve INSUFFICIENT_STOCK kodu geliyor, mesaj gerçekten kaç adet olduğunu ve senin kaç istediğini söylüyor, bu da script'in otomatik olarak daha düşük adetle tekrar denemesine yetiyor. Ürün tamamen tükendiyse kod INSUFFICIENT_STOCK yerine OUT_OF_STOCK oluyor. İkisini de 401'den ayrı ele almakta fayda var. Stok genelde yeniden doluyor, o yüzden işi hataya düşürmek yerine bekleyip /stock sorgulamak doğru davranış.

Test ortamı (sandbox) var mı?

+

Yok, sahte hesap döndüren sahte bir anahtar da yok. Okuma tarafı için daha iyisi var: /stock herkese açık, yani katalogu okuyan her şeyi kayıt olmadan ve tek kuruş harcamadan yazıp test edebilirsin. Yazma tarafında ise sandbox'ın yerini fiyat tutuyor. Tek bir taze Hotmail hesabı 0,004 dolar, yani gerçek bir hesap almak yazacağın en ucuz entegrasyon testi ve taklidini değil, prodüksiyonun gireceği kod yolunun tam olarak kendisini deniyor. İlk iş bunu yap, adet 1 ile, ve döngüyü çalıştırmadan önce cevabın düzgün parse edildiğini gör. Satın almalar geri alınamıyor, o yüzden 0,004 dolarlık gerçek bir test, hatayı 10.000 adette keşfetmekten iyidir.

Satın alma neden POST değil de GET?

+

Dürüst cevap: uyumluluk. Eski PHP sistemi satın almayı GET /purchase/KEY/KOD/ADET olarak veriyordu ve bugün hâlâ çalışan bir sürü script tam olarak bu URL'yi çağırıyor. POST'a geçmek bir kural uğruna hepsini kırardı, o yüzden şekil aynı kaldı. REST açısından temiz değil ve öyleymiş gibi anlatmıyoruz. Önemli olan buna göre davranman: para harcayan bir URL, sıradan bir GET gibi ele alınamaz. Zaman aşımında otomatik retry atan yerlerden, link öngörüsü yapan araçlardan ve tam URL'leri kaydeden loglardan uzak tut, çünkü anahtar path'in içinde. Bu seni rahatsız ediyorsa header formatını query ile birlikte kullan.

Hangi ürün kodlarını gönderebilirim?

+

Şu an dört kod canlı: Hotmail Fresh için Hotmail (0,004 dolar), Outlook Fresh için Outlook (0,004 dolar), Hotmail Trusted için Hotmail_Trusted (0,040 dolar) ve Outlook Trusted için Outlook_Trusted (0,040 dolar). Eşleşme büyük küçük harfe duyarsız. Gmail istisna: tedarikçiden değil envanterden karşılanıyor ve kısa bir kodu yok, o yüzden düz Gmail yazmak 404 ve publicapi.product_not_found dönüyor. /stock onun yerine Gmail'in uzun public id'sini veriyor ve o id KOD parçasında çalışıyor; şu an accounts değil SALE_CLOSED dönüyor, çünkü Gmail geçici olarak satışa kapalı. Bunları koda gömmen de gerekmiyor: her ürünün kodu /stock cevabındaki Account alanında geliyor, keşif mekanizması orası. Bu sayfadaki tablo yalnızca kolaylık. Daha önce çalışan bir kod 404 dönmeye başladıysa ürünün adı değişmemiştir, satıştan kaldırılmıştır.

API ile toplu mail alırken adet sınırı ve indirim var mı?

+

Sınır tek siparişte 1 ile 100.000 arası, indirim ise yok. Birim fiyat adetle değişmiyor, yani bin taze Hotmail bin kere 0,004 dolar. Pazarlık edilecek bir kademe tablosu ya da açılacak bir eşik yok, siparişi fiyat kırılımına göre değil gerçekten ihtiyacın olan sayıya göre belirliyorsun. Aralık dışında bir adet gönderirsen 400 ve QUANTITY_OUT_OF_RANGE alıyorsun. Pratikte asıl sınır adet değil, o anki stok ve bakiyen. Stok yetmiyorsa hata mesajı kaç adet olduğunu söylüyor, o adetle devam edip kalanını stok dolunca almak normal bir akış. Sana stok ayıran bir mekanizma yok, o yüzden çıktıkça alan bir script, tam sayıyı bekleyenden daha erken bitiriyor.

İlgili sayfalar

Denemeye hazır mısın?

https://api.xmailhub.net/stock adresini şimdi aç, anahtar gerekmiyor. Almak istediğinde kayıt ol.

Mağazayı aç →