Sektör analitiği

47 Portfoy sektörü, her biri bir Türkiye (BIST) ve bir ABD ayağıyla: eşit ağırlıklı, taban 100 endeksler, saatlik gün içi performans, dönem getirileri ve sektörler arası yükselen/düşenler.

Uç noktalar

Uç noktaKapsamAçıklama
GET/v1/sectorsquotes:bistTüm 47 sektör: son endeks değerleri, günlük %, bileşen sayıları
GET/v1/sectors/{code}quotes:bistTek bir sektör + son saatlik gün içi anlık görüntü
GET/v1/sectors/{code}/performancehistory?resolution=1d&from=&to= (endeks serisi) veya ?resolution=intraday&date=
GET/v1/sectors/{code}/returnshistoryAyak başına 1w / 1m / 3m / 6m / ytd / 1y, sektör endeks değerlerinden
GET/v1/sectors/{code}/periodichistoryAyak başına 1w / 2w / 1m / 3m / 6m / 1y, bileşenlerin ortalaması
GET/v1/sectors/movers?period=&leg=quotes:bistSektör yükselen/düşenleri: dönem 1d|1w|1m|3m, ayak tr|us
GET/v1/sectors/{code}/constituentsquotes:bist · us: quotes:usTek bir ayağın üyeleri, kanonik kimliklerle — ?market=bist (varsayılan) veya us
GET/v1/sectors/{code}/valuationhistoryTek bir ayağın üyeleri genelinde medyan F/K ve PD/DD — ?market=bist|us

Sektör kimlikleri sabit slug'lardır: bankacilik, yazilim_bilisim, enerji_petrol_gaz, … — bilinmeyen bir kod, hatanın içinde tam listeyle birlikte 404 döner.

SECTORS-47 — taksonomi değişikliği (2026-09-27) — Portfoy sektör taksonomisi 30'dan 47 sektöre çıktı — yine tek bir düz liste, TR ve US ayakları ortak. İki kod, kimlikleri ve endeks serisi sürekliliği korunarak yeniden adlandırıldı: gayrimenkul_reit_emlak → gayrimenkul ve elektrik_su_kamu_hizmetleri → elektrik_enerji_uretim. On iki kod haleflerine devredilerek emekli edildi (ör. yazilim → yazilim_bilisim, ilac → ilac_saglik) — tam emeklilik tablosu değişiklik günlüğünde. Kimliği korunan sektörlerin serisi kesintisizdir; yeni sektörlerin endeksleri 2024-09-23'ten itibaren 100 çıpalıdır.

Buradaki iki uç nokta “bu sektör 1w’de ne yaptı?” sorusunu yanıtlar ve aynı sonucu vermezler. /returns bu API’nin kendi sektör endeks değerlerinin oranıdır; /periodic ise üst kaynağın sektör bileşenlerinin ortalamasıdır, ayrıca 2w penceresi ve pencere başına örneklem sayısı gönderir. Farklı görünümler değil, farklı yöntemler — bkz. /docs/periodic.

Deneme Alanı'nda deneyin →

Yöntem

Her ayak, 2025-05-16 tarihinde 100 tabanlı bir eşit ağırlıklı günlük-getiri endeksidir (yöntem v1-equal-weighted-daily-return, her yanıtta gönderilir). TR ayağı sektörün BIST bileşenlerinin, US ayağı ise ABD bileşenlerinin ortalamasını alır — böylece aynı sektörün iki piyasada nasıl gittiğini karşılaştırabilirsiniz. Birleşik bir değer yalnızca gün içinde vardır; orada üst kaynak bunu canlı hesaplar.

Sektör üyeleri

Bir ayağın arkasındaki hisseler; doğrudan /v1/quotes, /v1/valuation veya /v1/periodic'e verebileceğiniz kanonik kimliklerle. ?market= verilmezse TR (BIST) ayağını alırsınız; liste Portföy uygulamasının sektör atamalarından gelir; membership_source listenin canlı yenileme mi (live) yoksa sürümle gelen anlık görüntü mü (bundled — kaynağa ulaşılamadığında kullanılır) olduğunu, membership_as_of ise ne zaman alındığını söyler. Üye başına ağırlık yoktur: sektör endeksi o gün işlem gören üyeler üzerinde eşit ağırlıklıdır, sabit bir ağırlık uydurma olurdu. Kaynağın listelediği ama BIST kataloğumuzun tanımadığı üyeler (henüz işlem görmeyen, kottan çıkan) çözülmeyecek kimlikler olarak sunulmak yerine unresolved_symbols içinde ayrı tutulur. ?market=us, US ayağının üyelerini kanonik us: kimlikleriyle sunar (bankacilik → us:JPM ve 81 üye daha) ve TR ayağı quotes:bist'te kalırken quotes:us kapsamı ister. ABD ağırlıklı birkaç sektörün (yari_iletkenler, biyoteknoloji, medikal_cihaz_ekipman, internet_platform, odeme_fintek) TR listesi boştur — BIST ayağı [] dönerken market=us doludur. Aynı slug her BIST enstrüman kaydında sector_code olarak görünür.

curl — banking sector members (scope: quotes:bist)
curl -H "X-API-Key: $PORTGATE_KEY" \
  "https://api.theportfoy.com/portgate/v1/sectors/bankacilik/constituents"
response (abridged)
{
  "code": "bankacilik", "name_tr": "Bankacılık", "market": "bist",
  "member_count": 16,
  "constituents": [
    {"instrument_id": "bist:AKBNK", "symbol": "AKBNK", "name": "Akbank T."},
    {"instrument_id": "bist:GARAN", "symbol": "GARAN", "name": "Türkiye Garanti Bankası"},
    …
  ],
  "unresolved_symbols": [],
  "weighting": "equal",
  "membership_source": "live",
  "membership_as_of": "2026-09-16T10:34:47Z"
}
curl — US leg (scope: quotes:us)
curl -H "X-API-Key: $PORTGATE_KEY" \
  "https://api.theportfoy.com/portgate/v1/sectors/bankacilik/constituents?market=us"
response (abridged)
{
  "code": "bankacilik", "name_tr": "Bankacılık", "market": "us",
  "member_count": 82,
  "constituents": [
    {"instrument_id": "us:JPM", "symbol": "JPM", "name": "JPMorgan Chase & Co."},
    …
  ],
  …
}

Sektör değerleme medyanları

“AKBNK bankacılığa göre ucuz mu?” sorusu için. PortGate her üyenin en son /v1/stocks/{id}/valuation değerini alır ve medyanı raporlar: pe_median pozitif F/K'lı üyeler üzerinden (zarar edenler ve null'lar dışarıda), pb_median PD/DD'si olan üyeler üzerinden. pe_n ve pb_n her medyana kaç üyenin girdiğini söyler — 16 üyeden 3'ünün medyanı 16'da 16'dan daha zayıf bir iddiadır, bu yüzden sayı her zaman değerle birlikte gelir. member_count sektör büyüklüğü, covered_count herhangi bir değerleme satırı olan üye sayısıdır. Hiçbir üyede metrik yoksa medyan null'dır. Oranların para birimi yoktur. as_of kullanılan en yeni üye gözlemidir; toplam yaklaşık 15 dakika önbellekte tutulur (computed_at). ?market=us aynı medyanları US ayağının üyeleri üzerinden hesaplar — kapsam iki ayakta da history kalır.

curl — banking sector medians (scope: history)
curl -H "X-API-Key: $PORTGATE_KEY" \
  "https://api.theportfoy.com/portgate/v1/sectors/bankacilik/valuation"
response (shape; values illustrative)
{
  "code": "bankacilik", "name_tr": "Bankacılık", "market": "bist",
  "member_count": 16, "covered_count": 14,
  "pe_median": "5.84", "pe_n": 12,
  "pb_median": "1.14", "pb_n": 13,
  "as_of": "2026-09-16T12:05:10Z",
  "computed_at": "2026-09-16T12:09:44Z",
  "membership_source": "live"
}

Örnek — yazılım & bilişim sektörü, her iki ayak

curl
curl -H "X-API-Key: $PORTGATE_KEY" \
  "https://api.theportfoy.com/portgate/v1/sectors/yazilim_bilisim/returns"
response
{
  "code": "yazilim_bilisim", "name_tr": "Yazılım & Bilişim", "as_of": "2026-07-10",
  "tr": {"1w": "-3.40", "1m": "-1.22", "3m": "16.58",
         "6m": "43.61", "1y": "66.21", "ytd": "49.42"},
  "us": {"1w": "1.87", "1m": "4.05", "3m": "9.12",
         "6m": "12.40", "1y": "18.75", "ytd": "8.90"},
  "methodology": "v1-equal-weighted-daily-return"
}

Değerler biçimi göstermek içindir; yeterince eski bir kapanışı olmayan bir dönem, tahmini bir değer yerine null olarak sabitlenir — bkz. veri ve tazelik politikası.