Short answer: Turkish crypto exchange APIs are not interchangeable with the global exchanges they may share a name with. As of November 2026, official documentation for BtcTurk, Binance TR, Paribu, OKX TR, Bybit, Bitlo and Bitexen gives the base URLs, signing rules and any published limits. All seven appear on the provisional list of the Capital Markets Board of Türkiye (SPK), but SPK says being listed does not mean a platform is authorized. This guide summarizes those documents and recommends none of the platforms.
Debug request signing with a sample or testnet key: HMAC signature generator.
A client written for the global Binance API will not work against Binance TR, because the hosts, paths and symbol formats differ, and the same check applies to every platform that shares a brand with a global exchange. Each URL, header and limit below comes from the platform's own documentation, opened on 3 November 2026, and the code sample was run that day against public endpoints with no keys.
The general pattern of signed requests and reconnect logic is covered in crypto exchange API integration and is not repeated here. This is a summary of documentation, no platform is presented as better than another, and automated trading can lose money.
Which Turkish crypto exchanges publish API docs?
Seven platforms on SPK's list had official API documentation that could be opened and checked on 3 November 2026; they appear alphabetically below.
| Platform | Documentation | REST base URL | WebSocket |
|---|---|---|---|
| Binance TR | binance.tr/apidocs | https://www.binance.tr; https://api.binance.me for main-symbol market data | wss://stream-cloud.binance.tr for main symbols |
| Bitexen | docs.bitexen.com | https://www.bitexen.com/api/v1/ | None on the page read |
| Bitlo | docs.bitlo.com | https://api.bitlo.com (private); https://api4.bitlo.com (public) | wss://api4.bitlo.com/ws (public) |
| BtcTurk | docs.btcturk.com | https://api.btcturk.com | wss://ws-feed-pro.btcturk.com |
| Bybit | bybit-exchange.github.io/docs/v5/guide (global v5 documents) | https://api.bybit.tr for Turkey users | Host stream.bybit.tr |
| OKX TR | tr.okx.com/docs-v5/en/ | https://tr.okx.com | wss://ws.okx.com/ws/v5/public and /private |
| Paribu | docs.paribu.com/api | https://api.paribu.com | wss://api.paribu.com/v1/wapi/stream (public, beta) |
Documentation age varies: Binance TR's latest changelog entry is dated 28 August 2026, BtcTurk's Recent Changes page ends at 6 May 2024, Bitlo's footer reads 2024, and the Paribu and Bitexen pages read show no date. Bybit's pages are global documents that name Turkey hosts. Other listed platforms are left out because official API documentation covering their Turkish service could not be confirmed, which does not show that none exists.
Does being on SPK's list mean a platform is authorized?
No: SPK marks its list of operating crypto-asset service providers as provisional and states on that page that appearing on it does not mean a firm has been authorized under the relevant rules.
- Size. The list, as read on 3 November 2026, held 40 trading platforms and 9 entries marked as custody applications. Entries and notes change, so check it on the day you integrate.
- Restrictions. A footnote on the list records a Board decision of 23 September 2026: until further notice Bitexen may not accept new customers or list new crypto assets, and may only process transactions for existing customers.
- Foreign platforms. Article 99/A of Capital Markets Law No. 6362 treats activity by platforms based abroad that is aimed at Turkish residents as unauthorized crypto-asset service provision, so foreign platforms may not target Turkish residents. The wider picture is in is crypto legal in Turkey.
- Products. A documented endpoint does not prove a product is available. Article 14 of SPK Communiqué III-35/B.2 bars leveraged, derivative, margin and short-sale trading in crypto assets listed on platforms, while global documents such as Bybit's v5 WebSocket page also list derivatives streams.
BtcTurk API docs: signing, limits and orders
BtcTurk signs private calls with three headers and publishes per-endpoint limits in a table, as documented at docs.btcturk.com on 3 November 2026.
- Signing. Send
X-PCK(public key),X-Stamp(timestamp in milliseconds) andX-Signature. The signature is a base64 HMAC-SHA256 of the public key plus the timestamp, keyed with the base64-decoded secret. - Permissions. Keys are created on the web account page, with the groups Total Funds, Trade, Account and WebSocket. The documented table lists no withdrawal permission.
- Limits. Order creation and cancellation each allow 300 requests per 60 seconds and 10 per second, by account and IP;
/api/v2/tickerallows 600 per 60 seconds by IP; WebSocket allows 15 connection requests per minute, then blocks for 60 seconds. A 429 response carriesRetry-After. - Orders.
POST /api/v1/ordertakespairSymbol,orderType(buy, sell),orderMethod(limit, market, stoplimit, stopmarket),quantity,price,stopPriceandnewOrderClientId. For a market buy, quantity is in the quote currency; for the other three cases in the documentation's table it is in the crypto asset. - Filters.
GET /api/v2/server/exchangeinforeturns scales and price filters;BTCTRYhad a tick size of 10 on 3 November 2026, so read them at runtime.
Binance TR API documentation: how it differs from Binance
Binance TR has its own Open API at binance.tr/apidocs, whose paths, symbols and response shapes differ from the global Binance Spot API.
| Item | Binance TR | Global Binance Spot |
|---|---|---|
| Host | www.binance.tr | api.binance.com |
| New order | POST /open/v1/orders | POST /api/v3/order |
| Symbol | BTC_TRY; the underscore is removed on main-symbol market data endpoints | BTCUSDT |
| Response | Wrapper with code, msg, data | Plain JSON object |
| WebSocket ping | Every 3 minutes; disconnect after 10 minutes without a pong | Every 20 seconds; disconnect after 1 minute without a pong |
The signing model is similar: X-MBX-APIKEY, an HMAC-SHA256 signature over query string plus body, a timestamp and a recvWindow that defaults to 5,000 ms with a 60,000 ms maximum. Limits are per IP and order counts per account, reported in response headers; the page gives no numeric order limit. A 5XX response means the order status is unknown, so it must not be treated as a failure.
The 28 August 2026 changelog entry added Travel Rule endpoints under /open/v1/travel-rule/, which require the withdrawEnable permission. The documentation also says keys can reach all secure routes by default, so restrict them; see API key security for trading bots. The Binance API Python guide describes the global API and does not apply to Binance TR.
Paribu API documentation: signing, limits and streams
Paribu's API is documented at docs.paribu.com/api, which the footer of paribu.com links to as its API documentation (checked 3 November 2026).
- Signing. Send the raw public key in
Authorizationand a base64 HMAC-SHA256 inX-Signature. The signed payload is timestamp plus query string plus body, without the path.X-Timestampis optional for now (the page says a future version will require it) and, when sent, must be within 5 seconds of server time. - Keys. The key page offers Read-only, Trade, Full access and Custom, and recommends an IP allowlist. The scopes page says scopes cannot be customized, so check the key creation screen itself.
- Limits. GET requests draw on a bucket of 100,000 weight per user per minute (ticker 1, open orders 5, trade history 20). Standard users get 25 order creates and 25 cancels per second. Over the limit, the API returns 429 with
Retry-After. - Orders.
POST /orderacceptslimit,limit_maker,marketandoco, with numbers sent as strings and market IDs likebtc_tl. Client order IDs usePOST /v2/order. - Streams. The newer WebSocket API is labeled beta, with a warning that channel names may change:
/v1/wapi/streamfor public data and/v1/wapi/userfor private data, with up to 32 connections per user.
Can API terms restrict SaaS or third-party use?
Yes: OKX TR's API agreement bars commercial, SaaS, brokerage, signal and managed-trading use of its API unless OKX TR authorizes it in writing, so read the contract before building anything for other people.
Clause 9.3 of the agreement was read in Turkish on 3 November 2026; the page shows a publication date of 26 March 2026 and its metadata a modification date of 16 September 2026. Unless OKX TR has expressly authorized it in writing, the clause says in our translation that you may not:
- commercialize, sell, sublicense, distribute or make available to any third party the API services or the agent trade kit;
- offer the API services as part of a commercial product, a software-as-a-service platform, a brokerage service, a signal service, a strategy marketplace or a managed trading service;
- use the API services to operate trading accounts or execute orders on behalf of third parties without OKX TR's prior written approval;
- build derivative commercial infrastructure on its MCP server, skills, command-line tools, SDKs or trade kit tools.
The clause adds that trading for your own account through the API is not a commercial sale, even if profitable, while running the API services as a service for others needs prior written approval. Clause 8.2(a) prohibits giving API access or credentials to unauthorized third parties. Clause 9.4 limits market data to personal, non-commercial trading and account management, bars reselling or redistributing it, and says these limits also cover public endpoints that need no key. The OKX TR documentation adds that continued use of the API counts as acceptance of the agreement.
A tool can therefore work technically and still breach the contract. OKX TR's is the only agreement read for this guide, so the other platforms' absence here does not mean their terms contain no such limit. Whether software for other people raises licensing questions under Turkish law is a matter for a capital-markets lawyer.
Bitexen, Bitlo, Bybit and OKX TR: signing and limits
The remaining four platforms each use a different header set and publish limits in different forms, or none at all.
| Platform | Headers | Signature | Published limit |
|---|---|---|---|
| Bitexen | ACCESS-KEY, ACCESS-USER, ACCESS-PASSPHRASE, ACCESS-TIMESTAMP, ACCESS-SIGN | HMAC-SHA256, uppercase hex in the code samples, although the header list says base64 | 60 requests per minute, then HTTP 429 |
| Bitlo | x-pubkey, x-nonce, x-signature | HMAC-SHA256 of public key plus nonce, lowercase hex; nonce within 2 minutes of server time | None stated; keys are requested from support |
| Bybit | X-BAPI-API-KEY, X-BAPI-TIMESTAMP, X-BAPI-SIGN, optional X-BAPI-RECV-WINDOW | Derived from the request parameters | Global page: 600 requests per 5 seconds per IP by default on its main and local-site hosts, without naming the Turkey host; further per-second limits per user |
| OKX TR | OK-ACCESS-KEY, OK-ACCESS-SIGN, OK-ACCESS-TIMESTAMP, OK-ACCESS-PASSPHRASE | Base64-encoded | Place order: 60 requests per 2 seconds, by user and instrument |
BtcTurk API Python example: three venues, three formats
Public endpoints work without keys, and a single ticker call already shows why a shared client needs one adapter per venue.
import requests
def get(url, **params):
r = requests.get(url, params=params, timeout=10)
r.raise_for_status()
return r.json()
btcturk = get("https://api.btcturk.com/api/v2/ticker", pairSymbol="BTCTRY")["data"][0]
paribu = get("https://api.paribu.com/market/ticker", market="btc_tl")[0]
symbols = get("https://www.binance.tr/open/v1/common/symbols")["data"]["list"]
binance_tr = next(s for s in symbols if s["symbol"] == "BTC_TRY")
print("BtcTurk ", btcturk["pair"], type(btcturk["last"]).__name__)
print("Paribu ", paribu["market"], type(paribu["last"]).__name__)
print("Binance TR", binance_tr["symbol"], "type", binance_tr["type"], "of", len(symbols))Output on 3 November 2026:
BtcTurk BTCTRY int
Paribu btc_tl str
Binance TR BTC_TRY type 1 of 309Reading the output: three pair formats appear (BTCTRY, btc_tl, BTC_TRY). BtcTurk wraps results in data and returned a JSON number, Paribu returned a bare array with a string, and Binance TR nests symbols in data.list. An adapter should normalize symbols and convert prices to Decimal.
A library may not cover this: CCXT's README, read on 3 November 2026, lists BtcTurk but not Paribu, Bitlo or Bitexen, and has no separate Binance TR entry, so check before planning around CCXT. Signed calls were not run here. What such a project involves is outlined on the Turkish exchange connectors page.
Frequently asked questions
Is the Binance TR API the same as the Binance API?
No. Binance TR uses its own host, /open/v1 paths, underscore symbols such as BTC_TRY and a code, msg and data response wrapper, so code written for api.binance.com needs changes.
Does Paribu have a public API?
Yes. Paribu documents REST endpoints at api.paribu.com and WebSocket streams at docs.paribu.com/api, and its market ticker answered without a key in a test on 3 November 2026.
Does a platform on the SPK list hold a license?
Being listed does not show that. SPK says appearing on its provisional list does not mean a firm is authorized under the relevant rules.
Can I build a SaaS bot on these APIs?
That depends on each platform's contract and on the law that applies to you. OKX TR's agreement requires its written authorization for such use, and the other platforms' terms were not read for this guide, so read them and take legal advice.
Sources
- SPK: Crypto-asset service providers, list of operating firms (Turkish) (opens in a new tab)
- Capital Markets Law No. 6362, consolidated text, Article 99/A (Turkish) (opens in a new tab)
- Resmî Gazete: SPK Communiqué III-35/B.2, 13 March 2025, no. 32840, Article 14 (Turkish) (opens in a new tab)
- BtcTurk API documentation: Rate limits (opens in a new tab)
- BtcTurk API documentation: Authentication V1 (opens in a new tab)
- Binance TR: Open API documentation (opens in a new tab)
- Paribu API documentation (opens in a new tab)
- OKX TR: API documentation (opens in a new tab)
- OKX TR API Agreement, clauses 8.2, 9.3 and 9.4 (Turkish) (opens in a new tab)
- Bybit API documentation: V5 integration guidance (opens in a new tab)
- Bybit API documentation: Rate limit rules (opens in a new tab)
- Bybit API documentation: WebSocket connect (opens in a new tab)
- Bitlo API documentation (opens in a new tab)
- Bitexen API documentation (opens in a new tab)
- CCXT on GitHub: README and supported exchanges (opens in a new tab)
This guide is general information about software and markets, not investment, legal or tax advice. Automated trading can lose money, past or backtested performance does not guarantee future results, and the rules that apply depend on your jurisdiction and your exchange's terms. Sources, checks and corrections: see the editorial policy.