Giriş
Bu serinin amacı, Binance’in REST API’sini size tanıtmak ve API ile nasıl etkileşim kuracağınızı öğretmektir. Makalenin sonunda, piyasalar ve pozisyonunuz hakkında bilgi sorgulama becerinize yönelik kendinizden emin hale gelmeli ve farklı türlerde emirler verebilmelisiniz.
Ön koşullar
Test ağı anahtarları
Bu makale için test ağını kullanacağız. Bu bize deneme yapabilmemiz için gerçek hayatta değeri olmayan bir miktar fon sağlayacak. Deneme fonları da aynı gerçek coinler ve tokenlar gibi çalışır, bu nedenle API kullanma konusunda rahat hissetmeye başladığınızda gerçek fonlarla işlem yapmaya başlayabilirsiniz.
- Spot Test Ağına giderek başlayın.
- Buraya erişebilmek için bir GitHub hesabıyla giriş yapmanız gereklidir. Henüz hesabınız yoksa bir hesap oluşturun.
- Kimlik Doğrulamayı seçin ve GitHub üzerinden giriş yapın.
- API Anahtarlarının altında, henüz kayıtlı anahtarlarınızın olmadığı bilgisi sizinle paylaşılacaktır. Bir çift anahtar yaratmak için HMAC_SAH256 Anahtarı Oluştur düğmesine tıklayın.
- Bir sonraki ekrandan anahtarlara isim verin. İstediğiniz ismi belirledikten sonra Oluştur düğmesine basın.
- Size iki anahtar sunulacaktır: API Anahtarı ve Gizli Anahtar. Anahtarları bu aşamada kaydetmeniz önemlidir. Kaydetmezseniz, anahtar yaratma sürecini tekrar başlatmanız gerekir. Daha sonra kolayca kopyalayıp yapıştırabilmeniz için bu anahtarları cihazınızın notlar uygulamasında saklamanızı öneririz.
Postman'ı indirmek ve kurmak
Postman bir API İş Birliği platformudur. Bizim için harika bir başlangıç noktasıdır – tek bir satır bile kod yazmak zorunda kalmadan test edeceğimiz Binance istekleri koleksiyonuna erişebiliriz.
İndirme işlemini tamamladıktan sonra, dosya tarayıcınızda bu dosyayı bulun ve programı kurun. Uygulamayı çalıştırın ve artık hazırsınız! Giriş yapmak için bir hesap da oluşturabilirsiniz, fakat bunu yapmak zorunda değilsiniz. Bu adımı geçmek isterseniz, sayfanın altından bu seçeneği tıklayın.
Ortamı yapılandırmak
Bu aşamada, aşağıdakine benzer bir arayüzle karşılaşacaksınız.


İndirme işlemi uzun sürmeyecektir. Dosyayı, dosya tarayıcınızda bulun ve açın. Artık, Postman’a geri dönebiliriz.

- Import’u (İçe Aktar) seçin ve biraz önce çıkardığınız dosyaya ulaşın (binance-postman-api).
- Bu dosyaya ve daha sonra da environments (ortamlar) klasörüne girin.
- Şimdi iki dosya göreceksiniz (biri ana ağ, biri de test ağı için). Bizim istediğimiz binance_com_spot_testnet_api.postman_environment.json olan. Doğru olanı seçtiğinizden emin olun çünkü anahtarlarımız diğeriyle çalışmayacaktır.


Bu ekranda, timestamp (zaman damgası) ve signature (imza) alanlarını boş bırakın. Bu iki değer, her bir istekle otomatik olarak yaratılacaktır.
Koleksiyonu içe aktarmak
Şimdi koleksiyonu içe aktaracağız. Koleksiyon, çağrı yaptığımızda asıl ağır işi bizim yerimize yapan birçok farklı istekten oluşan bir gruptur. Koleksiyonu ortama eklemek için:
- Sol üst köşedeki Import’a (İçe Aktar) tıklayın.
- Açılır pencerede, File (Dosya) sekmesinin altından Upload Files’ı (Dosyaları Yükle) seçin.
- Yine binance-postman-api klasörünü arıyoruz. Bu klasörü bulun ve açın.
- Bu kez, alt dizindeki koleksiyonlara girin.
- Burada da iki dosya göreceksiniz. Biri vadeli işlemler API’si fakat biz spot olanla çalışacağız, bu yüzden binance_spot_api_v1.postman_collection.json dosyasını seçin.
- İçe aktarmanın Postman Koleksiyonu formatında olduğunu belirten bir onaylama ekranı göreceksiniz. Import’u (İçe Aktar) seçin.
Pencerenin solundaki Collections (Koleksiyonlar) sekmesinin altında, 100’den fazla istek içeren bir klasör olduğunu göreceksiniz. Tebrikler! Artık hazırsınız. Bir sonraki bölümde, yapabileceğimiz istek türlerini inceleyeceğiz.
İstek Yapma
Koleksiyonlar sekmesinin altındaki klasörleri genişletirseniz, yapabileceğiniz farklı istek türleri olduğunu görebilirsiniz. Renk kodlamasından, kullanabileceğiniz üç yöntem türü olduğunu anlayabilirsiniz:
- GET (AL): GET yöntemi, sunucudan bir şeyler almak için kullanılır. Bunu, hesap bakiyesi, varlık fiyatları, vb. konular hakkında bilgi almak için kullanacağız.
- POST (YAYINLA): POST yöntemi genellikle sunucu üzerinde bilgi yaratmak için kullanılır. Emir vermek, çekim talep etmek, vb. konular için gereklidir.
- DELETE (SİL): DELETE yöntemi, sunucunun bilgi silmesi için bir istektir. Emir iptal etmek için kullanışlıdır.
Sembol listesini ve alım satım kurallarını bulma
İlk isteğimizi yapmanın zamanı geldi! Borsa üzerinde alım satım yapabileceğimiz sembolleri ve alım satım kurallarını alacağız:
GET /exchangeInfo
Bunda ek parametreler yoktur – yukarıdaki isteği kopyalayarak adres çubuğunuza yapıştırabilir ve bir yanıt alabilirsiniz. Fakat, birkaç parametre ekleyeceğimiz isteklerde, Postman bunları görmemizi ve değiştirmemizi kolaylaştırır.


En üstte işaretlenen bölümde önemli bilgiler göreceksiniz:
- Yanıtın durumu (200 başarılı olduğumuz, 400-499 ise bir sorunla karşılaştığımız anlamına gelir)
Yanıtın ne kadar sürede geldiği (bir saniyeden az)
Yanıtın büyüklüğü (~22KB).
İkinci kutu yanıt kümesidir. Pretty-print formatında yazıldığı için okuması biraz daha kolaydır. Burada borsanın kendisinin yanı sıra alıp satabileceğiniz çiftler ve bunların minimum/maksimum miktarları hakkında bilgiler yer alır.
Birçok bilgi varmış gibi gözükür, ama format programlanabilir bir biçimde çalışmayı çok kolay hale getirir. Etkileşim kurmak için komut dizileri yazarken, yanıtın içinden belirli öğelerin belirli özelliklerini rahatlıkla seçebilirsiniz.
Hesap bakiyesini kontrol etme
Hangi varlıklara sahip olduğumuzu ve bu varlıkların miktarlarını kontrol edelim:
GET /account
Yeni keşfettiğiniz (ve aslında olmayan) birikimleriniz için tebrik ederiz!
Sembol için güncel fiyatı alma
Bir varlığın güncel fiyatını farklı yollardan alabiliriz. Muhtemelen en kolay yöntem ise şu isteği yapmaktır.
GET /api/v3/ticker/24hr
GET /api/v3/price
Daha önceki gibi sembol değişkenini değiştirebilir ya da tüm sembollerin son fiyatına ulaşmak için seçiminizi kaldırabilirsiniz.
Güncel emir defteri derinliğini kontrol etme
Emir defteri derinliği de (piyasa derinliği ya da DOM olarak da bilinir) bize piyasa hakkında birçok bilgi verebilir. Bazı faydalı bilgiler getirecek bir çağrı yapacağız:
GET api/v3/depth
Bu çağrıyı varsayılan değerlerle yaptığımızda - Market (Piyasa) > Order Book (Emir Defteri), BTCUSDT için alış ve satış fiyatları hakkında bilgi veren bir yanıt alırız. Test ağı sunucusu gerçek sunucu kadar çok bilgi vermez. Bu nedenle, gerçek ortamda neyle karşılaşacağınızı aşağıdaki ekran görüntüsünden görebilirsiniz:

Yukarıda kırmızıyla işaretlenen bölümde ilk alış fiyatını görebilirsiniz. BTCUSDT emir defterine baktığımız için, üstteki sayı bir kişinin sizin BTC’leriniz için ödemeyi kabul ettiği fiyattır. Alttaki sayı ise bu kişinin almak istediği BTC miktarıdır. Dolayısıyla bu bilgi bize emrin, BTC başına 9704,65 USDT’den 0,999 BTC almak istediğini söyler. Aşağıya doğru devam edersek teklif fiyatının düştüğünü görürüz – bu fiyatlar daha az ödeme yapmak isteyen alıcıları temsil eder.
En yukarıdaki teklif, daha çok para kazanmak istiyorsanız doğal olarak sizin için en çekici teklif olacaktır. Bununla birlikte, örneğin 3 BTC’lik bir piyasa satışı yapmaya çalışıyorsanız, en iyi fiyattan yalnızca 0,999 BTC satabilirsiniz. Emrinizin tamamı doldurulana kadar daha sonraki (daha ucuz) teklifleri de kabul etmeniz gerekecektir.

Test emri verme
Şimdi bir test emri yayınlayacağız.
POST api/v3/order/test

Burada daha fazla parametrenin olduğunu görebilirsiniz. İşaretlenmiş olanlardan teker teker bahsedelim:
- sembol – bununla daha önce de karşılaştık. Bu sizin işlem yapmak istediğiniz çifttir.
- taraf – buradan, ALIM mı yoksa SATIŞ mı yapmak istediğinizi belirleyebilirsiniz. BTCUSDT çiftinde ALIM, USDT karşılığında BTC almak istediğiniz, SATIŞ ise USDT karşılığında BTC satmak istediğiniz anlamına gelir.
- tür – göndermek istediğiniz emrin türü. Olası değerler şunlardır (emir türleri hakkında ayrıntılı bilgiye buradanulaşabilirsiniz):
- LIMIT (limit)
- MARKET (piyasa)
- STOP_LOSS (kayıp durdurma)
- STOP_LOSS_LIMIT (kayıp durdurma limit)
- TAKE_PROFIT (kar al)
- TAKE_PROFIT_LIMIT (kar al limit)
- LIMIT_MAKER (limit yapıcı)
- timeInForce– bu parametre emrinizin nasıl çalışmasını istediğinizi ifade eder:
- GTC (iptale kadar geçerli) – Muhtemelen en popüler düzen olan GTC, emrinizin tamamen gerçekleştirilene ya da siz iptal edene kadar geçerli olmasını sağlar.
- FOK (gerçekleşmezse iptal et) – FOK, borsaya bir emrin tamamen gerçekleştirilmesi talimatını verir. Borsa bunu yapamıyorsa, emir hemen iptal edilir.
- IOC (kalanı iptal et) – emir hemen kısmen ya da tamamen gerçekleştirilmelidir yoksa iptal edilir. FOK’un aksine, emirler kısmen gerçekleştirilebiliyorsa iptal edilmez.
- adet – bu sizin almak ya da satmak istediğiniz varlık adedidir.
- fiyat – satış yapmak istediğiniz fiyattır. BTCUSDT çifti için değer USDT üzerinden temsil edilir.
- newClientOrderId – emir için bir tanımlayıcıdır. Bu doldurulması zorunlu bir alan değildir, fakat daha sonra sorgulama yapmayı daha kolay hale getirecek bir tanımlayıcıyı buraya girebilirsiniz. Aksi takdirde, burası borsa tarafından rastgele doldurulur.
Gerçek bir emir verme
Sıra gerçek bir sahte emir vermede.
POST /api/v3/order
Emir başarılı olursa, alacağınız yanıt emir hakkında bilgiler içerecektir.
Açık bir emrin durumunu kontrol etme
Bir önceki bölümde emrin verildiğine yönelik doğrulama almıştık, peki ya bu emri daha sonra tekrar kontrol etmek istersek ne olur? Birkaç istekten birini kullanabiliriz.
GET /api/v3/openOrders
GET /api/v3/allOrders
Son olarak belirli emirleri sorgulamak için şunu kullanabilirsiniz:
GET /api/v3/order
Bir emri iptal etme
Bir süre sonra, 40.000 USD hedefinin fazla iyimser olduğuna karar verebilir, bu nedenle emri iptal etmek isteyebilirsiniz. Bu durumda şunu kullanmanız gerekir:
DELETE /api/v3/order
Hemen gerçekleştirilecek bir emir verme
Aşağıdan, güncel piyasa fiyatı üzerinden BUSD karşılığında BNB satmak için bir piyasa emri vereceğimizi görebilirsiniz.

Yanıt bize minimum bilgi verecektir:

İşlemleri kontrol etme
Son olarak, alım satımları kontrol etmek için uç noktayı inceleyelim:
GET /api/v3/myTrades
Postman ile hata ayıklama
Postman’da ham HTTP isteklerini ve yanıtları da görmek mümkündür.

Bu menü, her bir talebin ayrıntılarını gösteren Postman konsolunu açar.

Son düşünceler
Bu rehberin amacı, tek bir satır bile kod yazmadan Binance API'sini kullanabilmeniz için size anlaşılır bir şekilde yol göstermekti. Adımları takip ettiyseniz artık nasıl istek yapacağınız ve bilgi gönderebileceğiniz hakkında fikir sahibi olmalısınız.