• 13-11-2025, 19:45:29
    #1
    Merhaba,

    Python React ile bir projede PTT kargo takip yapmamız gerekiyor ama API dökümanı bulamadım sanırım özel alınıyor harici bir yolu var mı yapan arkadaşlar bilgi verebilir mi?
  • 13-11-2025, 19:49:34
    #2



    bir barkod bulamadığım için verileri nasıl çekeriz bilmiyorum fakat bu api üzerinden oluyor, debug yaparak bulabilirsiniz.
  • 13-11-2025, 19:51:12
    #3
    gasxv2 adlı üyeden alıntı: mesajı görüntüle



    bir barkod bulamadığım için verileri nasıl çekeriz bilmiyorum fakat bu api üzerinden oluyor, debug yaparak bulabilirsiniz.
    Merhaba barkod no girip barkod numarasından sonuç almak istiyoruz hocam bu APInin tamamına nerden ulaşabilirim? Link var mıdır
  • 13-11-2025, 19:52:57
    #4
    talhacimen58 adlı üyeden alıntı: mesajı görüntüle
    Merhaba barkod no girip barkod numarasından sonuç almak istiyoruz hocam bu APInin tamamına nerden ulaşabilirim? Link var mıdır
    Api'nin dökümasyonu yoktur "bildiğim kadarıyla", fakat bir barkod numarası bulup, basit bir şekilde f12'konsol' yardımı ile araştırabilirsiniz. Tam olarak teknik bir detay veremeyeceğim çünkü araştırdığım bir konu değil, api üzerinden verileri getiriyor mu? takip sayfasına gittiğinde bu api üzerinden mi geliyor tarzında konuları dediğim gibi kendiniz bulmanız gerekecek.
  • 13-11-2025, 19:59:26
    #5
    talhacimen58 adlı üyeden alıntı: mesajı görüntüle
    Merhaba barkod no girip barkod numarasından sonuç almak istiyoruz hocam bu APInin tamamına nerden ulaşabilirim? Link var mıdır
    edit, evet bu api üzerinden oluyormuş.


    basit bir şekilde, barkod numarası
    https://api.ptt.gov.tr/api/ShipmentTracking




    req payload şeklinde



    örnek python
    import requests
    import json
    from datetime import datetime
    def ptt_kargo_sorgula(barkod_no):
        url = "https://api.ptt.gov.tr/api/ShipmentTracking"
        
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
        }
        
        payload = [barkod_no]
        
        try:
            response = requests.post(url, json=payload, headers=headers, timeout=10)
            response.raise_for_status()
            
            data = response.json()
            
            return data
            
        except requests.exceptions.RequestException as e:
            print(f"API bağlantı hatası: {e}")
            return None
        except json.JSONDecodeError as e:
            print(f"JSON parse hatası: {e}")
            return None
    def kargo_bilgilerini_yazdir(data):
        if not data or len(data) == 0:
            print("Kargo bilgisi bulunamadı!")
            return
        
        kargo = data[0]
        
        print("=" * 50)
        print("PTT KARGO BİLGİLERİ")
        print("=" * 50)
        
        print(f"almaHaberFlag: {kargo.get('almaHaberFlag')}")
        print(f"almaHaberFlagSpecified: {kargo.get('almaHaberFlagSpecified')}")
        print(f"errorMessage: {kargo.get('errorMessage')}")
        print(f"errorState: {kargo.get('errorState')}")
        print(f"errorStateSpecified: {kargo.get('errorStateSpecified')}")
        print(f"hareketDongu: {kargo.get('hareketDongu')}")
        
        kabul = kargo.get('kabul', {})
        print("\nKABUL BİLGİLERİ:")
        print(f"agirlik: {kabul.get('agirlik')}")
        print(f"alici: {kabul.get('alici')}")
        print(f"alici_adres: {kabul.get('alici_adres')}")
        print(f"barkod_no: {kabul.get('barkod_no')}")
        print(f"damga_vergisi: {kabul.get('damga_vergisi')}")
        print(f"deger_konulmus_bedeli: {kabul.get('deger_konulmus_bedeli')}")
        print(f"desi: {kabul.get('desi')}")
        print(f"ekhizmetler: {kabul.get('ekhizmetler')}")
        print(f"gonderici: {kabul.get('gonderici')}")
        print(f"gonderici_adres: {kabul.get('gonderici_adres')}")
        print(f"gumruge_sunma_ucreti: {kabul.get('gumruge_sunma_ucreti')}")
        print(f"gumruk_vergisi: {kabul.get('gumruk_vergisi')}")
        print(f"kabul_isyeri: {kabul.get('kabul_isyeri')}")
        print(f"kabul_tarihi: {kabul.get('kabul_tarihi')}")
        print(f"kabul_tarihiSpecified: {kabul.get('kabul_tarihiSpecified')}")
        print(f"odeme_sarti_bedeli: {kabul.get('odeme_sarti_bedeli')}")
        print(f"odeme_tipi: {kabul.get('odeme_tipi')}")
        print(f"reserve1: {kabul.get('reserve1')}")
        print(f"reserve2: {kabul.get('reserve2')}")
        print(f"reserve3: {kabul.get('reserve3')}")
        print(f"reserve4: {kabul.get('reserve4')}")
        print(f"reserve5: {kabul.get('reserve5')}")
        print(f"toplam_yd_ucret: {kabul.get('toplam_yd_ucret')}")
        print(f"ucret: {kabul.get('ucret')}")
        print(f"yd_iade_ucreti: {kabul.get('yd_iade_ucreti')}")
        
        sondurum = kargo.get('sondurum', {})
        print("\nSON DURUM BİLGİLERİ:")
        print(f"ahk_durum_aciklama: {sondurum.get('ahk_durum_aciklama')}")
        print(f"ahk_teslim_alan: {sondurum.get('ahk_teslim_alan')}")
        print(f"ahk_teslim_tarihi: {sondurum.get('ahk_teslim_tarihi')}")
        print(f"mazb_dosya_no: {sondurum.get('mazb_dosya_no')}")
        print(f"mazb_durum_aciklama: {sondurum.get('mazb_durum_aciklama')}")
        print(f"mazb_islem_tarihi: {sondurum.get('mazb_islem_tarihi')}")
        print(f"son_durum_aciklama: {sondurum.get('son_durum_aciklama')}")
        print(f"son_islem_saati: {sondurum.get('son_islem_saati')}")
        print(f"son_islem_tarihi: {sondurum.get('son_islem_tarihi')}")
        print(f"sozl_durum_aciklama: {sondurum.get('sozl_durum_aciklama')}")
        print(f"sozl_teslim_alan: {sondurum.get('sozl_teslim_alan')}")
        print(f"sozl_teslim_tarihi: {sondurum.get('sozl_teslim_tarihi')}")
        print(f"teslim_alan: {sondurum.get('teslim_alan')}")
        print(f"teslim_durum_aciklama: {sondurum.get('teslim_durum_aciklama')}")
        print(f"teslim_tarihi: {sondurum.get('teslim_tarihi')}")
    def main():
        print("PTT Kargo Takip Sistemi")
        print("=" * 30)
        
        while True:
            barkod_no = input("Barkod numarasını girin (çıkmak için 'q'): ").strip()
            
            if barkod_no.lower() == 'q':
                print("Program sonlandırıldı.")
                break
            
            if not barkod_no:
                print("Barkod numarası boş olamaz!")
                continue
            
            print(f"Sorgulanıyor: {barkod_no}")
            
            kargo_verisi = ptt_kargo_sorgula(barkod_no)
            
            if kargo_verisi:
                kargo_bilgilerini_yazdir(kargo_verisi)
            else:
                print("Kargo bilgileri alınamadı!")
            
            print("\n" + "=" * 50)
    if __name__ == "__main__":
        main()
    kendi uygulamanıza uyarlayabilirsiniz bu kod aracılığı ile, umarım mantığı anlamışsınızdır
  • 13-11-2025, 20:26:15
    #6
    gasxv2 adlı üyeden alıntı: mesajı görüntüle
    edit, evet bu api üzerinden oluyormuş.


    basit bir şekilde, barkod numarası
    https://api.ptt.gov.tr/api/ShipmentTracking




    req payload şeklinde



    örnek python
    import requests
    import json
    from datetime import datetime
    def ptt_kargo_sorgula(barkod_no):
        url = "https://api.ptt.gov.tr/api/ShipmentTracking"
        
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
        }
        
        payload = [barkod_no]
        
        try:
            response = requests.post(url, json=payload, headers=headers, timeout=10)
            response.raise_for_status()
            
            data = response.json()
            
            return data
            
        except requests.exceptions.RequestException as e:
            print(f"API bağlantı hatası: {e}")
            return None
        except json.JSONDecodeError as e:
            print(f"JSON parse hatası: {e}")
            return None
    def kargo_bilgilerini_yazdir(data):
        if not data or len(data) == 0:
            print("Kargo bilgisi bulunamadı!")
            return
        
        kargo = data[0]
        
        print("=" * 50)
        print("PTT KARGO BİLGİLERİ")
        print("=" * 50)
        
        print(f"almaHaberFlag: {kargo.get('almaHaberFlag')}")
        print(f"almaHaberFlagSpecified: {kargo.get('almaHaberFlagSpecified')}")
        print(f"errorMessage: {kargo.get('errorMessage')}")
        print(f"errorState: {kargo.get('errorState')}")
        print(f"errorStateSpecified: {kargo.get('errorStateSpecified')}")
        print(f"hareketDongu: {kargo.get('hareketDongu')}")
        
        kabul = kargo.get('kabul', {})
        print("\nKABUL BİLGİLERİ:")
        print(f"agirlik: {kabul.get('agirlik')}")
        print(f"alici: {kabul.get('alici')}")
        print(f"alici_adres: {kabul.get('alici_adres')}")
        print(f"barkod_no: {kabul.get('barkod_no')}")
        print(f"damga_vergisi: {kabul.get('damga_vergisi')}")
        print(f"deger_konulmus_bedeli: {kabul.get('deger_konulmus_bedeli')}")
        print(f"desi: {kabul.get('desi')}")
        print(f"ekhizmetler: {kabul.get('ekhizmetler')}")
        print(f"gonderici: {kabul.get('gonderici')}")
        print(f"gonderici_adres: {kabul.get('gonderici_adres')}")
        print(f"gumruge_sunma_ucreti: {kabul.get('gumruge_sunma_ucreti')}")
        print(f"gumruk_vergisi: {kabul.get('gumruk_vergisi')}")
        print(f"kabul_isyeri: {kabul.get('kabul_isyeri')}")
        print(f"kabul_tarihi: {kabul.get('kabul_tarihi')}")
        print(f"kabul_tarihiSpecified: {kabul.get('kabul_tarihiSpecified')}")
        print(f"odeme_sarti_bedeli: {kabul.get('odeme_sarti_bedeli')}")
        print(f"odeme_tipi: {kabul.get('odeme_tipi')}")
        print(f"reserve1: {kabul.get('reserve1')}")
        print(f"reserve2: {kabul.get('reserve2')}")
        print(f"reserve3: {kabul.get('reserve3')}")
        print(f"reserve4: {kabul.get('reserve4')}")
        print(f"reserve5: {kabul.get('reserve5')}")
        print(f"toplam_yd_ucret: {kabul.get('toplam_yd_ucret')}")
        print(f"ucret: {kabul.get('ucret')}")
        print(f"yd_iade_ucreti: {kabul.get('yd_iade_ucreti')}")
        
        sondurum = kargo.get('sondurum', {})
        print("\nSON DURUM BİLGİLERİ:")
        print(f"ahk_durum_aciklama: {sondurum.get('ahk_durum_aciklama')}")
        print(f"ahk_teslim_alan: {sondurum.get('ahk_teslim_alan')}")
        print(f"ahk_teslim_tarihi: {sondurum.get('ahk_teslim_tarihi')}")
        print(f"mazb_dosya_no: {sondurum.get('mazb_dosya_no')}")
        print(f"mazb_durum_aciklama: {sondurum.get('mazb_durum_aciklama')}")
        print(f"mazb_islem_tarihi: {sondurum.get('mazb_islem_tarihi')}")
        print(f"son_durum_aciklama: {sondurum.get('son_durum_aciklama')}")
        print(f"son_islem_saati: {sondurum.get('son_islem_saati')}")
        print(f"son_islem_tarihi: {sondurum.get('son_islem_tarihi')}")
        print(f"sozl_durum_aciklama: {sondurum.get('sozl_durum_aciklama')}")
        print(f"sozl_teslim_alan: {sondurum.get('sozl_teslim_alan')}")
        print(f"sozl_teslim_tarihi: {sondurum.get('sozl_teslim_tarihi')}")
        print(f"teslim_alan: {sondurum.get('teslim_alan')}")
        print(f"teslim_durum_aciklama: {sondurum.get('teslim_durum_aciklama')}")
        print(f"teslim_tarihi: {sondurum.get('teslim_tarihi')}")
    def main():
        print("PTT Kargo Takip Sistemi")
        print("=" * 30)
        
        while True:
            barkod_no = input("Barkod numarasını girin (çıkmak için 'q'): ").strip()
            
            if barkod_no.lower() == 'q':
                print("Program sonlandırıldı.")
                break
            
            if not barkod_no:
                print("Barkod numarası boş olamaz!")
                continue
            
            print(f"Sorgulanıyor: {barkod_no}")
            
            kargo_verisi = ptt_kargo_sorgula(barkod_no)
            
            if kargo_verisi:
                kargo_bilgilerini_yazdir(kargo_verisi)
            else:
                print("Kargo bilgileri alınamadı!")
            
            print("\n" + "=" * 50)
    if __name__ == "__main__":
        main()
    kendi uygulamanıza uyarlayabilirsiniz bu kod aracılığı ile, umarım mantığı anlamışsınızdır
    Çok teşekkür ederim deneyeceğim üstsd
  • 13-11-2025, 20:29:33
    #7
    Merak ettıgımden soruyorum hocam ptt de felan mı calısıyorsunuz