API Referansı

Ocelot Gateway üzerinden erişilebilen tüm endpoint'lerin tam referansı.

🔐 Kimlik Doğrulama

POST /oauth/token

API anahtarını JWT access token ile değiştir

Header'lar

Header Değer Gerekli
X-API-Key tw_live_* Evet

İstek Gövdesi

{
  "grant_type": "api_key"
}

Yanıt

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 86400,
  "refresh_token": "rf_PAKhXhWmSeeicx6bAb1pg1FroLm1ig7jyMOpe...",
  "refresh_expires_in": 2592000,
  "issued_at": "2026-01-14T12:00:00Z"
}

Not: Access token 24 saat (86400 saniye), refresh token 30 gün geçerlidir.

POST /oauth/token

Refresh token ile access token yenile

İstek Gövdesi

{
  "grant_type": "refresh_token",
  "refresh_token": "rf_PAKhXhWmSeeicx6bAb1pg1FroLm1ig7jyMOpe..."
}

Yanıt

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 86400,
  "refresh_token": "rf_YENİ_REFRESH_TOKEN...",
  "refresh_expires_in": 2592000
}

Not: Refresh token tek kullanımlıktır. Başarılı yenilemeden sonra yanıttaki yeni refresh token'ı saklayın; eski token geçersiz olur.

👤 Hesaplar

Downstream: brokerageapi.tradewise.com.tr:443 | Timeout: 30s

GET /api/v1/accounts

Tüm aracı kurumlardan kullanıcının hesaplarını listele

Yanıt Örneği

{
  "success": true,
  "message": "Success",
  "data": [
    {
      "accountNumber": "ACC-ULID-001",
      "number": "12345",
      "name": "Ana Hesap",
      "brokerageCode": "TradeWiseYatirim",
      "brokerageName": "TradeWiseYatirim Menkul Değerler",
      "isActive": true,
      "isDefault": true
    },
    {
      "accountNumber": "ACC-ULID-002",
      "number": "67890",
      "name": "İkinci Hesap",
      "brokerageCode": "DENIZ",
      "brokerageName": "Deniz Yatırım",
      "isActive": true,
      "isDefault": false
    }
  ]
}
Yanıt Alanları
accountNumber Hesabın dahili tanımlayıcısı — diğer endpoint'lerde hesabı tanımlamak için kullanın
number Aracı kurumdaki gerçek hesap numarası (örn. "12345")
name Hesap adı
brokerageCode Aracı kurum kodu (örn. "TradeWiseYatirim") — tüm request'lerde bu alanı kullanın
brokerageName Aracı kurum adı
isActive / isDefault Hesap durumu / varsayılan hesap olup olmadığı

Not: Paralel sorgu yapılır. Bir aracı kurumdan veri alınamazsa hata vermez, diğerlerinden gelen veriler döndürülür.

POST /api/v1/accounts/login
2-PHASE

Aracı kurum hesabına SMS doğrulamalı giriş yap

🔵 AŞAMA 1: SMS Talebi

sessionId ve sms alanları olmadan istek gönderilir.

  • Yanıtta otp = 1 ve sessionId dolu ise → SMS gönderildi!
🟣 AŞAMA 2: SMS Doğrulama

Aşama 1'den gelen sessionId ve telefondaki sms kodu eklenerek gönderilir.

📋 İstek Alanları

Alan Açıklama Aşama
brokerageCode Aracı kurum kodu (örn. "TradeWiseYatirim") Her iki aşama
username TC Kimlik No Her iki aşama
password Hesap şifresi Her iki aşama
accountNumber Aracı kurumdaki hesap numarası Her iki aşama
sessionId Aşama 1 yanıtından alınan session ID Sadece Aşama 2
sms Telefona gelen SMS kodu Sadece Aşama 2

💡 Örnek: AŞAMA 1

{
  "brokerageCode": "TradeWiseYatirim",
  "username": "12345678901",
  "password": "MySecretP@ss123",
  "accountNumber": "77777"
}

💡 Örnek: AŞAMA 2

{
  "brokerageCode": "TradeWiseYatirim",
  "username": "12345678901",
  "password": "MySecretP@ss123",
  "accountNumber": "77777",
  "sessionId": "41824250",
  "sms": "642529"
}
POST /api/v1/accounts/positions

Hesap pozisyonlarını getir

İstek Gövdesi

{
  "brokerageCode": "TradeWiseYatirim",
  "accountNumber": "12345",
  "includeOrders": false
}

⚠️ Rate Limit: Aynı kullanıcı ve hesap için saniyede 1 istek atılabilir.

POST /api/v1/accounts/daily-orders

Hesabın günlük emirlerini listele

İstek Gövdesi

{
  "brokerageCode": "TradeWiseYatirim",
  "accountNumber": "12345"
}

📈 Emirler

Downstream: brokerageapi.tradewise.com.tr:443 | Timeout: 30s

POST /api/v1/orders

Yeni emir ver

İstek Gövdesi

{
  "brokerageCode": "TradeWiseYatirim",
  "accountNumber": "77777",
  "symbol": "FROTO",
  "quantity": 1,
  "buySell": 1,
  "orderType": 2,
  "price": 101
}

Alanlar

brokerageCodeAracı kurum kodu (string, zorunlu)
accountNumberHesap numarası (string, zorunlu)
symbolİşlem sembolü (string, zorunlu)
quantityEmir miktarı (integer, zorunlu)
buySell1: Alış, 2: Satış (integer, zorunlu)
orderType1: Piyasa emri (price 0), 2: Limit emri (integer, zorunlu)
priceEmir fiyatı (decimal, limit emirler için zorunlu)

Yanıt

{
  "success": true,
  "message": "Order placed successfully",
  "data": {
    "symbol": "FROTO",
    "quantity": 1,
    "buySell": 1,
    "orderNo": "12345678",
    "orderStatus": 2
  }
}
POST /api/v1/orders/chain
ZİNCİR EMİR

Zincir emir ver (referans emre bağlı emir)

İstek Gövdesi

{
  "brokerageCode": "TradeWiseYatirim",
  "accountNumber": "77777",
  "symbol": "ADESE",
  "quantity": 100,
  "buySell": 1,
  "orderType": 2,
  "price": 1.5,
  "referenceOrderNo": "305344701"
}
POST /api/v1/orders/cancel

Emri iptal et

İstek Gövdesi

{
  "brokerageCode": "TradeWiseYatirim",
  "accountNumber": "77777",
  "orderNo": "ORD123456",
  "symbol": "FROTO"
}

Yanıt

{
  "success": true,
  "data": true
}
POST /api/v1/orders/batch
TOPLU İŞLEM

Toplu emir gönder

İstek Gövdesi

{
  "brokerageCode": "TradeWiseYatirim",
  "accountNumber": "77777",
  "items": [
    { "symbol": "FROTO", "quantity": 10, "buySell": 1, "orderType": 2, "price": 101.50 },
    { "symbol": "THYAO", "quantity": 5,  "buySell": 1, "orderType": 2, "price": 250.00 },
    { "symbol": "EREGL", "quantity": 20, "buySell": 2, "orderType": 1, "price": 0 }
  ]
}
POST /api/v1/orders/cancel/batch
TOPLU İŞLEM

Toplu emir iptali

İstek Gövdesi

{
  "brokerageCode": "TradeWiseYatirim",
  "accountNumber": "77777",
  "items": [
    { "orderNo": "12345678", "symbol": "FROTO" },
    { "orderNo": "12345679", "symbol": "THYAO" }
  ]
}

Yanıt

{
  "success": true,
  "message": "2 orders cancelled successfully",
  "data": true
}

🤖 Sistemler

Downstream: brokerageapi.tradewise.com.tr:443 | Timeout: 30s

💡 Sistemler Nedir? TradeWise'da sistemler, alım-satım botlarının üst düzey grouping'idir. Her sistem bir hesaba bağlı olup LevelBot veya TradingViewBot türünde olabilir. Bu endpoint tüm bot tiplerini tek bir yanıtta döndürür.

POST /api/v1/systems/list

Hesaba ait tüm sistemleri (botları) listele

İstek Gövdesi

{
  "brokerageCode": "TradeWiseYatirim",
  "accountNumber": "77777",
  "botType": [],
  "isActive": 1,
  "isDeleted": 2,
  "startDate": null,
  "endDate": null
}

İstek Alanları

brokerageCode Aracı kurum kodu (string, zorunlu)
accountNumber Hesap numarası (string, zorunlu)
botType Filtre: Bot tipleri (integer[], opsiyonel, boş = tümü)
1: LevelBot  • 2: TradingViewBot  • 3: StockBot  • 4: SignalBot
isActive 1: Tümü, 2: Aktifler, 3: Pasifler (varsayılan: 1)
isDeleted 1: Tümü, 2: Silinmemişler, 3: Silinenler (varsayılan: 2)
startDate Başlangıç tarihi filtresi (ISO 8601, opsiyonel)
endDate Bitiş tarihi filtresi (ISO 8601, opsiyonel)

Yanıt Örneği

{
  "success": true,
  "data": [
    {
      "id": 42,
      "name": "THYAO Alım-Satım",
      "botType": 1,
      "isActive": true,
      "isRunning": true,
      "levelBotDetails": [
        {
          "symbol": "THYAO",
          "buyGap": 0.50,
          "sellGap": 0.50,
          "targetProfit": 2.00,
          "maxBuyPrice": 280.00,
          "minBuyPrice": 220.00,
          "maxSellPrice": 300.00,
          "minSellPrice": 230.00
        }
      ]
    }
  ]
}

📊 Level Bot'lar

Downstream: brokerageapi.tradewise.com.tr:443 | Timeout: 30s

💡 Level Bot Nedir? Level Bot, belirli fiyat seviyelerinde otomatik alım-satım emirleri veren bir trading botudur. Her bot birden fazla sembol için bağımsız konfigürasyon içerebilir. Fiyat limitleri (maxBuyPrice, minBuyPrice, vb.) bot konfigürasyonudur; gerçek işlem fiyatları değildir.

GET /api/v1/level-bots

Hesaba ait tüm Level Bot'ları listele

Query Parametreleri

brokerageCodeAracı kurum kodu (string, zorunlu)
accountNumberHesap numarası (string, zorunlu)

Örnek İstek

GET /api/v1/level-bots?brokerageCode=TradeWiseYatirim&accountNumber=77777

Yanıt Örneği

{
  "success": true,
  "data": [
    {
      "id": 42,
      "name": "THYAO-EREGL Stratejisi",
      "accountNumber": "77777",
      "isActive": true,
      "isRunning": true,
      "levelBotDetails": [
        {
          "symbol": "THYAO",
          "buyGap": 0.50,
          "sellGap": 0.50,
          "targetProfit": 2.00,
          "maxBuyPrice": 280.00,
          "minBuyPrice": 220.00,
          "maxSellPrice": 300.00,
          "minSellPrice": 230.00,
          "profit": 5.00
        },
        {
          "symbol": "EREGL",
          "buyGap": 0.25,
          "sellGap": 0.25,
          "targetProfit": 1.50,
          "maxBuyPrice": 50.00,
          "minBuyPrice": 35.00,
          "maxSellPrice": 55.00,
          "minSellPrice": 38.00,
          "profit": 3.50
        }
      ],
      "createdDate": "2026-01-10T08:00:00Z",
      "updatedDate": "2026-04-01T10:30:00Z"
    }
  ]
}

LevelBot Alanları

idBot ID
nameBot adı
accountNumberBağlı hesap numarası
isActive / isRunningAktif / Çalışıyor durumu
levelBotDetailsSembol bazında konfigürasyon listesi
buyGap / sellGapAlış/Satış gap değeri (konfigürasyon)
targetProfitHedef kâr oranı (konfigürasyon)
maxBuyPrice / minBuyPriceAlış fiyat limitleri (konfigürasyon)
maxSellPrice / minSellPriceSatış fiyat limitleri (konfigürasyon)
profitSembol için kâr hedefi (konfigürasyon)
GET /api/v1/level-bots/{'{id}'}

ID ile Level Bot getir

Query Parametreleri

id (path)Level Bot ID (integer, zorunlu)
brokerageCodeAracı kurum kodu (query, zorunlu)
GET /api/v1/level-bots/42?brokerageCode=TradeWiseYatirim
POST /api/v1/level-bots

Yeni Level Bot oluştur

İstek Gövdesi

{
  "brokerageCode": "TradeWiseYatirim",
  "accountNumber": "77777",
  "name": "THYAO Alım-Satım Botu",
  "isActive": true,
  "levelBotDetails": [
    {
      "symbol": "THYAO",
      "buyGap": 0.50,
      "sellGap": 0.50,
      "targetProfit": 2.00,
      "maxBuyPrice": 280.00,
      "minBuyPrice": 220.00,
      "maxSellPrice": 300.00,
      "minSellPrice": 230.00,
      "profit": 5.00
    }
  ]
}

İstek Alanları

brokerageCodeAracı kurum kodu (string, zorunlu)
accountNumberHesap numarası (string, zorunlu)
nameBot adı (string, zorunlu)
isActiveAktif mi? (boolean, zorunlu)
levelBotDetailsSembol konfigürasyonları listesi (zorunlu)

Yanıt

{
  "success": true,
  "message": "Level Bot başarıyla oluşturuldu",
  "data": {
    "id": 43,
    "name": "THYAO Alım-Satım Botu",
    "accountNumber": "77777",
    "isActive": true
  }
}
PUT /api/v1/level-bots/{'{id}'}

Level Bot güncelle

İstek Gövdesi

{
  "brokerageCode": "TradeWiseYatirim",
  "accountNumber": "77777",
  "name": "THYAO Güncellenmiş Bot",
  "isActive": true,
  "levelBotDetails": [
    {
      "symbol": "THYAO",
      "buyGap": 0.75,
      "sellGap": 0.75,
      "targetProfit": 3.00,
      "maxBuyPrice": 290.00,
      "minBuyPrice": 210.00,
      "maxSellPrice": 310.00,
      "minSellPrice": 225.00,
      "profit": 7.00
    }
  ]
}
GET /api/v1/level-bots/{'{id}'}/pair-orders

Level Bot'un aktif çift emirlerini listele

GET /api/v1/level-bots/42/pair-orders?brokerageCode=TradeWiseYatirim

Yanıt Örneği

{
  "success": true,
  "data": [
    {
      "id": 1001,
      "systemId": 42,
      "symbol": "THYAO",
      "buyQuantity": 100,
      "buyStatus": 2,
      "buyOrderNo": "305344701",
      "buyOrderDate": "2026-04-10T09:30:00Z",
      "sellQuantity": 100,
      "sellStatus": 1,
      "sellOrderNo": null,
      "sellOrderDate": null,
      "description": "Çift emir bekleniyor"
    }
  ]
}

Not: Pair order yanıtlarında gerçek işlem fiyatları (buyPrice, sellPrice) ve komisyon bilgileri paylaşılmaz; yalnızca emir takibine ilişkin durum ve numara bilgileri döndürülür.

GET /api/v1/level-bots/pair-orders/history

Hesabın tüm Level Bot işlem geçmişini getir

GET /api/v1/level-bots/pair-orders/history?brokerageCode=TradeWiseYatirim&accountNumber=77777&page=1&pageSize=20

Query Parametreleri

brokerageCodeAracı kurum kodu (zorunlu)
accountNumberHesap numarası (zorunlu)
pageSayfa numarası (varsayılan: 1)
pageSizeSayfa başına kayıt (varsayılan: 10)

Yanıt Örneği

{
  "success": true,
  "data": {
    "items": [
      {
        "id": 5001,
        "systemId": 42,
        "symbol": "THYAO",
        "buyQuantity": 100,
        "buyOrderNo": "305344701",
        "buyOrderDate": "2026-04-08T09:30:00Z",
        "sellQuantity": 100,
        "sellOrderNo": "305344702",
        "sellOrderDate": "2026-04-08T14:20:00Z",
        "description": "Tamamlandı",
        "hourCount": 4
      }
    ],
    "totalCount": 125,
    "page": 1,
    "pageSize": 10
  }
}

📡 TradingView Bot'lar

Downstream: brokerageapi.tradewise.com.tr:443 | Timeout: 30s

💡 TradingView Bot Nedir? TradingView sinyal botları, TradingView webhook sinyallerini alarak otomatik emir veren botlardır. Sinyaller belirlenen algo (algoritma) adı ve periyoduna göre filtrelenir.

GET /api/v1/trading-view-bots

Hesaba ait tüm TradingView Bot'ları listele

GET /api/v1/trading-view-bots?brokerageCode=TradeWiseYatirim&accountNumber=77777

Yanıt Örneği

{
  "success": true,
  "data": [
    {
      "id": 10,
      "name": "THYAO TradingView",
      "accountNumber": "77777",
      "isActive": true,
      "isRunning": false,
      "tradingViewBotDetails": [
        {
          "symbol": "THYAO",
          "algoName": "EMA_CROSS",
          "period": "1H",
          "quantity": 100,
          "maxBuyPrice": 280.00,
          "minBuyPrice": 210.00,
          "maxSellPrice": 300.00,
          "minSellPrice": 220.00
        }
      ],
      "createdDate": "2026-02-01T10:00:00Z"
    }
  ]
}

TradingViewBot Alanları

idBot ID
nameBot adı
accountNumberBağlı hesap numarası
tradingViewBotDetailsSembol konfigürasyonları listesi
algoNameAlgo adı — webhook payload'daki algo ile eşleşmeli
periodSinyal periyodu (örn. "1H", "4H", "1D")
quantitySinyal başına emir miktarı (lot)
maxBuyPrice / minBuyPriceAlış fiyat limitleri (konfigürasyon)
GET /api/v1/trading-view-bots/{'{id}'}

ID ile TradingView Bot getir

GET /api/v1/trading-view-bots/10?brokerageCode=TradeWiseYatirim
POST /api/v1/trading-view-bots

Yeni TradingView Bot oluştur

İstek Gövdesi

{
  "brokerageCode": "TradeWiseYatirim",
  "accountNumber": "77777",
  "name": "THYAO TV Botu",
  "isActive": true,
  "tradingViewBotDetails": [
    {
      "symbol": "THYAO",
      "algoName": "EMA_CROSS",
      "period": "1H",
      "quantity": 100,
      "maxBuyPrice": 280.00,
      "minBuyPrice": 210.00,
      "maxSellPrice": 300.00,
      "minSellPrice": 220.00
    }
  ]
}
PUT /api/v1/trading-view-bots/{'{id}'}

TradingView Bot güncelle

İstek Gövdesi

{
  "brokerageCode": "TradeWiseYatirim",
  "accountNumber": "77777",
  "name": "THYAO TV Güncellenmiş",
  "isActive": false,
  "tradingViewBotDetails": [
    {
      "symbol": "THYAO",
      "algoName": "EMA_CROSS",
      "period": "4H",
      "quantity": 200,
      "maxBuyPrice": 290.00,
      "minBuyPrice": 205.00,
      "maxSellPrice": 310.00,
      "minSellPrice": 215.00
    }
  ]
}
GET /api/v1/trading-view-bots/{'{id}'}/pair-orders

TradingView Bot'un aktif çift emirlerini listele

GET /api/v1/trading-view-bots/10/pair-orders?brokerageCode=TradeWiseYatirim

Yanıt Örneği

{
  "success": true,
  "data": [
    {
      "id": 2001,
      "systemId": 10,
      "symbol": "THYAO",
      "algoName": "EMA_CROSS",
      "period": "1H",
      "accountNumber": "77777",
      "buyQuantity": 100,
      "buyStatus": 2,
      "buyOrderNo": "305344801",
      "buyOrderDate": "2026-04-10T11:00:00Z",
      "sellQuantity": 0,
      "sellStatus": 0,
      "sellOrderNo": null,
      "sellOrderDate": null
    }
  ]
}

Not: TradingView pair order yanıtlarında gerçek işlem fiyatları, stop-loss/take-profit fiyatları, komisyon bilgileri ve webhook payload'ları paylaşılmaz.

📋 Sembol Listeleri

Downstream: listmanagement.tradewize.com.tr:443 | Timeout: 10s | Cache: 30s

GET /api/v1/symbol-lists

Tüm sembol listelerini getir

{
  "success": true,
  "data": [
    {
      "id": 1,
      "name": "BIST 30",
      "description": "BIST'in ilk 30 şirketi",
      "symbolCount": 30,
      "listType": "INDEX",
      "isPublic": true
    }
  ]
}
GET /api/v1/symbol-lists/{'{id}'}

Belirli bir sembol listesinin detaylarını getir

{
  "success": true,
  "data": {
    "id": 1,
    "name": "BIST 30",
    "symbols": ["ASELS", "THYAO", "EREGL"],
    "listType": "INDEX"
  }
}
POST /api/v1/symbol-lists

Yeni sembol listesi oluştur

{
  "name": "Teknoloji Hisseleri",
  "description": "Teknoloji sektörü şirketleri",
  "symbols": ["ASELS", "LOGO", "NETAS"],
  "listType": "CUSTOM",
  "isPublic": false
}
PUT /api/v1/symbol-lists/{'{id}'}

Sembol listesini güncelle

{
  "name": "Güncellenmiş Liste",
  "description": "Yeni açıklama",
  "symbols": ["ASELS", "LOGO", "NETAS", "ARMDA"]
}
DELETE /api/v1/symbol-lists/{'{id}'}

Sembol listesini sil

{
  "success": true,
  "message": "Liste başarıyla silindi"
}

🔤 Semboller

Downstream: listmanagement.tradewize.com.tr:443 | Timeout: 10s | Cache: 60s

GET /api/v1/symbols

Tüm mevcut sembolleri getir

{
  "success": true,
  "data": [
    {
      "symbol": "ASELS",
      "name": "Aselsan Elektronik",
      "exchange": "BIST",
      "isActive": true
    }
  ]
}
GET /api/v1/symbols/{'{symbol}'}

Belirli bir sembol hakkında detaylı bilgi getir

{
  "success": true,
  "data": {
    "symbol": "ASELS",
    "name": "Aselsan Elektronik",
    "exchange": "BIST",
    "isActive": true
  }
}

⚠️ Tedbirli Hisseler

BIST'in volatilite/pazar bazlı tedbirlerine (Açığa Satış Yasağı, Brüt Takas, Tek Fiyat İşlem vb.) tabi hisseleri sorgular. Bir hisse aynı anda birden fazla tedbirde olabilir ve her tedbirin bir başlangıç/bitiş tarihi vardır. Aktif tedbirlerde validTo alanı null'dır. Geçmiş tedbirler korunur (tarihçe).

Downstream: listmanagement.tradewize.com.tr:443 | Timeout: 10s | Cache: 6 saat (yazma sonrası invalidasyon) | Yetki: read scope

Tedbir Tipi Kodları

restrictionType parametresi sayı (ör. 3) ya da isim (ör. BrutTakas) olarak verilebilir.

Kod İsim (enum) Açıklama
1AcigaSatisYasagiAçığa Satış Yasağı
2KredliIslemYasagiKredili İşlem Yasağı
3BrutTakasBrüt Takas
4TekFiyatIslemTek Fiyat İşlem Yöntemi
5EmirIptalYasagiEmir İptali Yasağı
6AcilisKapanisIslemKisitiAçılış/Kapanış İşlem Kısıtı
7DegerTavaniDeğer Tavanı
8IslemSirasiKapatmaİşlem Sırası Kapatma
99DigerDiğer (kaynakta eşlenmeyen tedbir)
GET /api/v1/public/restrictions

Şu an aktif tedbiri olan tüm hisseler, hisse bazında gruplu (her hissenin tüm aktif tedbir tipleriyle). İsteğe bağlı ?restrictionType= ile tek tipe filtrelenir.

Örnek istek (cURL)

curl -H "Authorization: Bearer $TOKEN" \
  "https://api.tradewize.com.tr/api/v1/public/restrictions?restrictionType=BrutTakas"

Örnek yanıt

{
  "success": true,
  "data": [
    {
      "symbolId": 12,
      "code": "ASELS",
      "name": "ASELSAN",
      "logoUrl": "https://.../ASELS.png",
      "restrictions": [
        {
          "restrictionType": 1,
          "restrictionTypeName": "Açığa Satış Yasağı",
          "validFrom": "2026-05-20T00:00:00+03:00",
          "validTo": null,
          "sourceRef": "KAP-2026-0512"
        },
        {
          "restrictionType": 3,
          "restrictionTypeName": "Brüt Takas",
          "validFrom": "2026-05-20T00:00:00+03:00",
          "validTo": null,
          "sourceRef": "KAP-2026-0512"
        }
      ]
    }
  ]
}
GET /api/v1/public/restrictions/check/{'{code}'}/{'{restrictionType}'}

"Bu hisse şu an bu tedbirde mi?" — tek hisse + tek tedbir tipi aktiflik kontrolü. Yalnızca aktif (devam eden) tedbirlere bakar; geçmiş tedbirler false döndürür.

Örnek: "EREGL brüt takasta mı?"

curl -H "Authorization: Bearer $TOKEN" \
  "https://api.tradewize.com.tr/api/v1/public/restrictions/check/EREGL/BrutTakas"

Örnek yanıt (tedbirde değil)

{
  "success": true,
  "data": {
    "code": "EREGL",
    "restrictionType": 3,
    "restrictionTypeName": "Brüt Takas",
    "isRestricted": false,
    "validFrom": null
  }
}

Örnek yanıt (tedbirde)

{
  "success": true,
  "data": {
    "code": "ASELS",
    "restrictionType": 3,
    "restrictionTypeName": "Brüt Takas",
    "isRestricted": true,
    "validFrom": "2026-05-20T00:00:00+03:00"
  }
}
GET /api/v1/public/restrictions/by-type/{'{restrictionType}'}

Belirli bir tedbir tipinde şu an bulunan tüm hisselerin yalın listesi. Örn: "Brüt takastaki tüm hisseler".

Örnek istek

# sayı ile
curl -H "Authorization: Bearer $TOKEN" \
  "https://api.tradewize.com.tr/api/v1/public/restrictions/by-type/3"

# veya isim ile
curl -H "Authorization: Bearer $TOKEN" \
  "https://api.tradewize.com.tr/api/v1/public/restrictions/by-type/BrutTakas"

Örnek yanıt

{
  "success": true,
  "data": [
    { "symbolId": 12, "code": "ASELS", "name": "ASELSAN",        "logoUrl": "https://.../ASELS.png", "validFrom": "2026-05-20T00:00:00+03:00" },
    { "symbolId": 31, "code": "BIMAS", "name": "BIM MAGAZALAR",   "logoUrl": "https://.../BIMAS.png", "validFrom": "2026-05-30T00:00:00+03:00" },
    { "symbolId": 47, "code": "SASA",  "name": "SASA POLYESTER",  "logoUrl": "https://.../SASA.png",  "validFrom": "2026-05-28T00:00:00+03:00" }
  ]
}
GET /api/v1/public/restrictions/{'{code}'}

Tek bir hissenin tüm tedbirleri (aktif + geçmiş), en yeniden eskiye sıralı. Aktif tedbirlerde validTo alanı null'dır.

Örnek istek

curl -H "Authorization: Bearer $TOKEN" \
  "https://api.tradewize.com.tr/api/v1/public/restrictions/ASELS"

Örnek yanıt

{
  "success": true,
  "data": [
    {
      "id": 101,
      "symbolId": 12,
      "code": "ASELS",
      "name": "ASELSAN",
      "logoUrl": "https://.../ASELS.png",
      "restrictionType": 1,
      "restrictionTypeName": "Açığa Satış Yasağı",
      "validFrom": "2026-05-20T00:00:00+03:00",
      "validTo": null,
      "isActive": true,
      "sourceRef": "KAP-2026-0512"
    },
    {
      "id": 88,
      "symbolId": 12,
      "code": "ASELS",
      "name": "ASELSAN",
      "logoUrl": "https://.../ASELS.png",
      "restrictionType": 4,
      "restrictionTypeName": "Tek Fiyat İşlem Yöntemi",
      "validFrom": "2026-04-01T00:00:00+03:00",
      "validTo": "2026-04-30T00:00:00+03:00",
      "isActive": false,
      "sourceRef": "KAP-2026-0388"
    }
  ]
}

JavaScript (fetch) ile kullanım

Bir hissenin emir gönderilmeden önce brüt takasta olup olmadığını kontrol etme.

const BASE = "https://api.tradewize.com.tr";
const headers = { Authorization: `Bearer ${token}` };

// "ASELS brüt takasta mı?" (3 = Brüt Takas)
async function isUnderGrossSettlement(code) {
  const res = await fetch(
    `${BASE}/api/v1/public/restrictions/check/${code}/3`,
    { headers }
  );
  const json = await res.json();
  return json.data.isRestricted;
}

if (await isUnderGrossSettlement("ASELS")) {
  console.warn("ASELS brüt takasta — T+0 nakit gerekebilir.");
}

MCP / AI asistanı: Bu uçlar MCP üzerinden de kullanılabilir — check_symbol_restriction, get_restricted_symbols_by_type, get_symbol_restrictions araçları. Ayrıntı için MCP Server sayfasına bakın.

📊 Liste Tipleri

Downstream: listmanagement.tradewize.com.tr:443 | Timeout: 10s | Cache: 120s

GET /api/v1/list-types

Tüm mevcut liste tiplerini getir

{
  "success": true,
  "data": [
    { "id": 1, "code": "INDEX", "name": "Endeks", "description": "Borsa endeksi listeleri" },
    { "id": 2, "code": "CUSTOM", "name": "Özel Liste", "description": "Kullanıcı tanımlı listeler" }
  ]
}
GET /api/v1/list-types/{'{id}'}

Belirli bir liste tipi hakkında detaylı bilgi getir

{
  "success": true,
  "data": {
    "id": 1,
    "code": "INDEX",
    "name": "Endeks",
    "description": "Borsa endeksi listeleri"
  }
}

Yaygın Durum Kodları

Durum Kodu Açıklama
200 OKİstek başarılı
400 Bad RequestGeçersiz istek parametreleri
401 UnauthorizedEksik veya geçersiz kimlik doğrulama
403 ForbiddenYetersiz izinler
404 Not FoundKaynak bulunamadı
429 Too Many RequestsRate limit aşıldı (saatte 5000 istek)
500 Internal Server ErrorSunucu hatası

📦 Postman Collection Mevcut!

Tüm bu endpoint'leri Postman'de test etmek için hazır collection dosyamızı kullanabilirsiniz:

  • TradeWise-Developer-API.postman_collection.json — Kimlik doğrulama, hesaplar, emirler, sistemler, Level Bot, TradingView Bot ve daha fazlası
  • TradeWise-Developer-API.postman_environment.json — Environment değişkenleri
  • • Otomatik token yönetimi ve yenileme
  • • Rate limit izleme