Skip to main content

ccxt_exchanges/binance/
urls.rs

1//! Binance API URLs for different environments and market types.
2
3/// Binance API URLs.
4#[derive(Debug, Clone)]
5pub struct BinanceUrls {
6    /// Public API URL.
7    pub public: String,
8    /// Private API URL.
9    pub private: String,
10    /// SAPI URL (Spot API).
11    pub sapi: String,
12    /// SAPI V2 URL.
13    pub sapi_v2: String,
14    /// FAPI URL (Futures API - short form).
15    pub fapi: String,
16    /// FAPI URL (Futures API).
17    pub fapi_public: String,
18    /// FAPI Private URL.
19    pub fapi_private: String,
20    /// DAPI URL (Delivery API - short form).
21    pub dapi: String,
22    /// DAPI URL (Delivery API).
23    pub dapi_public: String,
24    /// DAPI Private URL.
25    pub dapi_private: String,
26    /// EAPI URL (Options API - short form).
27    pub eapi: String,
28    /// EAPI URL (Options API).
29    pub eapi_public: String,
30    /// EAPI Private URL.
31    pub eapi_private: String,
32    /// PAPI URL (Portfolio Margin API).
33    pub papi: String,
34    /// WebSocket URL (Spot).
35    pub ws: String,
36    /// WebSocket Futures URL (USDT-margined perpetuals/futures).
37    pub ws_fapi: String,
38    /// WebSocket Delivery URL (Coin-margined perpetuals/futures).
39    pub ws_dapi: String,
40    /// WebSocket Options URL.
41    pub ws_eapi: String,
42}
43
44impl BinanceUrls {
45    /// Returns production environment URLs.
46    pub fn production() -> Self {
47        Self {
48            public: "https://api.binance.com/api/v3".to_string(),
49            private: "https://api.binance.com/api/v3".to_string(),
50            sapi: "https://api.binance.com/sapi/v1".to_string(),
51            sapi_v2: "https://api.binance.com/sapi/v2".to_string(),
52            fapi: "https://fapi.binance.com/fapi/v1".to_string(),
53            fapi_public: "https://fapi.binance.com/fapi/v1".to_string(),
54            fapi_private: "https://fapi.binance.com/fapi/v1".to_string(),
55            dapi: "https://dapi.binance.com/dapi/v1".to_string(),
56            dapi_public: "https://dapi.binance.com/dapi/v1".to_string(),
57            dapi_private: "https://dapi.binance.com/dapi/v1".to_string(),
58            eapi: "https://eapi.binance.com/eapi/v1".to_string(),
59            eapi_public: "https://eapi.binance.com/eapi/v1".to_string(),
60            eapi_private: "https://eapi.binance.com/eapi/v1".to_string(),
61            papi: "https://papi.binance.com/papi/v1".to_string(),
62            ws: "wss://stream.binance.com:9443/ws".to_string(),
63            ws_fapi: "wss://fstream.binance.com/ws".to_string(),
64            ws_dapi: "wss://dstream.binance.com/ws".to_string(),
65            ws_eapi: "wss://nbstream.binance.com/eoptions/ws".to_string(),
66        }
67    }
68
69    /// Returns testnet URLs.
70    pub fn testnet() -> Self {
71        Self {
72            public: "https://testnet.binance.vision/api/v3".to_string(),
73            private: "https://testnet.binance.vision/api/v3".to_string(),
74            sapi: "https://testnet.binance.vision/sapi/v1".to_string(),
75            sapi_v2: "https://testnet.binance.vision/sapi/v2".to_string(),
76            fapi: "https://testnet.binancefuture.com/fapi/v1".to_string(),
77            fapi_public: "https://testnet.binancefuture.com/fapi/v1".to_string(),
78            fapi_private: "https://testnet.binancefuture.com/fapi/v1".to_string(),
79            dapi: "https://testnet.binancefuture.com/dapi/v1".to_string(),
80            dapi_public: "https://testnet.binancefuture.com/dapi/v1".to_string(),
81            dapi_private: "https://testnet.binancefuture.com/dapi/v1".to_string(),
82            eapi: "https://testnet.binanceops.com/eapi/v1".to_string(),
83            eapi_public: "https://testnet.binanceops.com/eapi/v1".to_string(),
84            eapi_private: "https://testnet.binanceops.com/eapi/v1".to_string(),
85            papi: "https://testnet.binance.vision/papi/v1".to_string(),
86            ws: "wss://testnet.binance.vision/ws".to_string(),
87            ws_fapi: "wss://stream.binancefuture.com/ws".to_string(),
88            ws_dapi: "wss://dstream.binancefuture.com/ws".to_string(),
89            ws_eapi: "wss://testnet.binanceops.com/ws-api/v3".to_string(),
90        }
91    }
92
93    /// Returns demo environment URLs.
94    pub fn demo() -> Self {
95        Self {
96            public: "https://demo-api.binance.com/api/v3".to_string(),
97            private: "https://demo-api.binance.com/api/v3".to_string(),
98            sapi: "https://demo-api.binance.com/sapi/v1".to_string(),
99            sapi_v2: "https://demo-api.binance.com/sapi/v2".to_string(),
100            fapi: "https://demo-fapi.binance.com/fapi/v1".to_string(),
101            fapi_public: "https://demo-fapi.binance.com/fapi/v1".to_string(),
102            fapi_private: "https://demo-fapi.binance.com/fapi/v1".to_string(),
103            dapi: "https://demo-dapi.binance.com/dapi/v1".to_string(),
104            dapi_public: "https://demo-dapi.binance.com/dapi/v1".to_string(),
105            dapi_private: "https://demo-dapi.binance.com/dapi/v1".to_string(),
106            eapi: "https://demo-eapi.binance.com/eapi/v1".to_string(),
107            eapi_public: "https://demo-eapi.binance.com/eapi/v1".to_string(),
108            eapi_private: "https://demo-eapi.binance.com/eapi/v1".to_string(),
109            papi: "https://demo-papi.binance.com/papi/v1".to_string(),
110            ws: "wss://demo-stream.binance.com/ws".to_string(),
111            ws_fapi: "wss://demo-fstream.binance.com/ws".to_string(),
112            ws_dapi: "wss://demo-dstream.binance.com/ws".to_string(),
113            ws_eapi: "wss://demo-nbstream.binance.com/eoptions/ws".to_string(),
114        }
115    }
116}