Ana Sayfa / API Kataloğu / Endeks Fiyatları API

Endeks Fiyatları API

Yerli ve küresel borsa endeksleri tek uçtan

Finans & PiyasaJSONGüncelleme: 30 saniye100 kredi / ay (ücretsiz plan)

Genel bakış

Endeks Fiyatları API; BIST 100, BIST 30, BIST Bankacılık gibi Türkiye endekslerinin yanı sıra S&P 500, Dow Jones, Nasdaq 100, DAX, FTSE 100, CAC 40, Nikkei 225, Hang Seng gibi küresel endekslerin anlık değerini, günlük değişimini, açılış/kapanış ve gün içi bandını verir. Endeks bileşenleri ve ağırlıkları ayrı uç noktadan alınabilir.

Uç noktalar

Temel adres: https://api.apibir.com/v1

GET/indicesEndeks listesi ve güncel değerler
GET/indices/{code}Tek endeks detayı
GET/indices/{code}/componentsEndeks bileşenleri ve ağırlıkları
GET/indices/historyGeçmiş kapanış serisi

Kimlik doğrulama

Tüm isteklerde API anahtarınızı Authorization başlığında gönderin:

Authorization: apikey APIBIR-8f2c4b7e9a1d3c5f7b2e9d41
Accept: application/json

Sorgu parametreleri

ParametreTipDurumAçıklama
codesstringopsiyonelÖrn: XU100,SPX,NDX
regionstringopsiyoneltr, us, eu, asia
rangestringopsiyonelGeçmiş sorgusu aralığı
convertstringopsiyonelDeğeri farklı para biriminde göster

Örnek istek

curl --request GET \
  --url "https://api.apibir.com/v1/indices?codes=XU100,SPX" \
  --header "authorization: apikey APIBIR-8f2c...9d41" \
  --header "content-type: application/json"
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://api.apibir.com/v1/indices?codes=XU100,SPX", nil)
	req.Header.Add("authorization", "apikey APIBIR-8f2c...9d41")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
const https = require('https');

const options = {
  hostname: 'api.apibir.com',
  path: '/v1/indices?codes=XU100,SPX',
  method: 'GET',
  headers: { 'authorization': 'apikey APIBIR-8f2c...9d41' }
};

https.get(options, (res) => {
  let data = '';
  res.on('data', (chunk) => data += chunk);
  res.on('end', () => console.log(JSON.parse(data)));
});
const res = await fetch(
  "https://api.apibir.com/v1/indices?codes=XU100,SPX",
  { headers: { authorization: "apikey APIBIR-8f2c...9d41" } }
);
const { data } = await res.json();
console.log(data);
import java.net.http.*;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.apibir.com/v1/indices?codes=XU100,SPX"))
    .header("authorization", "apikey APIBIR-8f2c...9d41")
    .GET().build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
import requests

r = requests.get(
    "https://api.apibir.com/v1/indices?codes=XU100,SPX",
    headers={"authorization": "apikey APIBIR-8f2c...9d41"},
    timeout=10,
)
print(r.json()["data"])
require 'net/http'
require 'uri'

uri = URI.parse("https://api.apibir.com/v1/indices?codes=XU100,SPX")
request = Net::HTTP::Get.new(uri)
request["authorization"] = "apikey APIBIR-8f2c...9d41"

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end
puts response.body
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("authorization", "apikey APIBIR-8f2c...9d41");
var json = await client.GetStringAsync("https://api.apibir.com/v1/indices?codes=XU100,SPX");
Console.WriteLine(json);
import Foundation

var request = URLRequest(url: URL(string: "https://api.apibir.com/v1/indices?codes=XU100,SPX")!)
request.addValue("apikey APIBIR-8f2c...9d41", forHTTPHeaderField: "authorization")

let task = URLSession.shared.dataTask(with: request) { data, _, _ in
    if let data = data, let str = String(data: data, encoding: .utf8) {
        print(str)
    }
}
task.resume()
open Cohttp_lwt_unix
open Lwt

let uri = Uri.of_string "https://api.apibir.com/v1/indices?codes=XU100,SPX" in
let headers = Header.init_with "authorization" "apikey APIBIR-8f2c...9d41" in
Client.get ~headers uri >>= fun (resp, body) ->
Cohttp_lwt.Body.to_string body >>= fun body_str ->
Lwt_io.printl body_str
<?php
$ch = curl_init("https://api.apibir.com/v1/indices?codes=XU100,SPX");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["authorization: apikey APIBIR-8f2c...9d41"]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($data["data"]);

Örnek yanıt

{
  "success": true,
  "creditsUsed": 1,
  "timestamp": "2026-08-07T10:42:52+03:00",
  "data": [
    {
      "code": "XU100",
      "name": "BIST 100",
      "country": "TR",
      "currency": "TRY",
      "value": 11482.36,
      "previousClose": 11395.80,
      "open": 11402.15,
      "change": 86.56,
      "changePercent": 0.76,
      "dayLow": 11380.44,
      "dayHigh": 11510.90,
      "yearToDatePercent": 18.42,
      "marketStatus": "open",
      "updatedAt": "2026-08-07T10:42:45+03:00"
    },
    {
      "code": "SPX",
      "name": "S&P 500",
      "country": "US",
      "currency": "USD",
      "value": 6284.11,
      "previousClose": 6301.55,
      "change": -17.44,
      "changePercent": -0.28,
      "marketStatus": "closed",
      "updatedAt": "2026-08-06T23:00:00+03:00"
    }
  ]
}

Yanıt alanları

AlanTipAçıklama
codestringEndeks kodu (XU100, SPX, NDX, DAX…)
valuenumberEndeksin güncel puan değeri
marketStatusstringopen · closed · pre · after
yearToDatePercentnumberYılbaşından bugüne getiri

Kredi tüketimi: Bu servis her başarılı istek için 1 kredi harcar. Hatalı istekler (4xx) kredi düşürmez. Kalan krediniz her yanıtın creditsRemaining alanında döner.

Olası hatalar

KodHTTPAnlamı
invalid_api_key401Anahtar geçersiz veya başlık eksik.
insufficient_credits402Aylık kredi limitiniz doldu.
invalid_parameter422Parametre değeri beklenen formatta değil.
rate_limited429Saniyelik istek limiti aşıldı.
no_data404Sorgu kriterlerine uyan kayıt bulunamadı.

Bu API ile neler yapabilirsiniz?

Finans portalı ana sayfa şeridi

Endeks şeridini (ticker tape) canlı gösterin.

Fon ve portföy karşılaştırması

Portföy getirisini benchmark endeksle kıyaslayın.

Piyasa açılış raporları

Her sabah otomatik e-posta bülteni üretin.

Risk yönetimi

Endeks volatilitesini takip ederek pozisyon limitlerini ayarlayın.

AI ile hızlı başlangıç. Bu API'yi Claude'a tanıtıp tek promptla pano kurmak için AI & Dashboard rehberine bakın. Hazır prompt şablonu ve çalışan dashboard örneği orada.

Ücretsiz API anahtarınızı 30 saniyede alın

Kredi kartı istemiyoruz. Ücretsiz plan tüm API'leri kapsar; yalnızca aylık kredi limiti farklıdır.