Ana Sayfa / API Kataloğu / Geçmiş Döviz Kurları API

Geçmiş Döviz Kurları API

30 yıllık kur arşivi, tek sorguda zaman serisi

Finans & PiyasaJSONGüncelleme: Günlük 15:30 (TCMB bülteni sonrası)100 kredi / ay (ücretsiz plan)

Genel bakış

Geçmiş Döviz Kurları API ile belirli bir tarihteki kuru veya bir tarih aralığındaki tüm günlük kapanışları tek istekte alabilirsiniz. Muhasebe kapanışları, kur farkı hesaplamaları, geriye dönük raporlama ve grafik çizimi için tasarlanmıştır. Yanıt hem tarih anahtarlı sözlük hem de grafik kütüphanelerine doğrudan verilebilen dizi formatında alınabilir.

Uç noktalar

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

GET/fx/historyBelirli bir tarihin kurları
GET/fx/timeseriesTarih aralığı zaman serisi
GET/fx/averageDönemsel ortalama kur (aylık/yıllık)

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
datedateopsiyonelTek gün sorgusu. Örn: 2024-03-15
startdatezorunluZaman serisi başlangıç tarihi
enddatezorunluZaman serisi bitiş tarihi
symbolsstringopsiyonelPara birimi kodları. Örn: USD,EUR
formatstringopsiyonelobject (varsayılan) veya series

Örnek istek

curl --request GET \
  --url "https://api.apibir.com/v1/fx/history?date=2026-08-07&start=2026-07-01&end=2026-07-31" \
  --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/fx/history?date=2026-08-07&start=2026-07-01&end=2026-07-31", 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/fx/history?date=2026-08-07&start=2026-07-01&end=2026-07-31',
  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/fx/history?date=2026-08-07&start=2026-07-01&end=2026-07-31",
  { 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/fx/history?date=2026-08-07&start=2026-07-01&end=2026-07-31"))
    .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/fx/history?date=2026-08-07&start=2026-07-01&end=2026-07-31",
    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/fx/history?date=2026-08-07&start=2026-07-01&end=2026-07-31")
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/fx/history?date=2026-08-07&start=2026-07-01&end=2026-07-31");
Console.WriteLine(json);
import Foundation

var request = URLRequest(url: URL(string: "https://api.apibir.com/v1/fx/history?date=2026-08-07&start=2026-07-01&end=2026-07-31")!)
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/fx/history?date=2026-08-07&start=2026-07-01&end=2026-07-31" 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/fx/history?date=2026-08-07&start=2026-07-01&end=2026-07-31");
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,
  "base": "TRY",
  "start": "2026-07-01",
  "end": "2026-07-05",
  "source": "tcmb",
  "data": {
    "2026-07-01": { "USD": 40.9120, "EUR": 47.8305, "GBP": 55.2410 },
    "2026-07-02": { "USD": 40.9865, "EUR": 47.9012, "GBP": 55.3877 },
    "2026-07-03": { "USD": 41.0402, "EUR": 47.8890, "GBP": 55.4120 },
    "2026-07-04": { "USD": 41.1130, "EUR": 48.0455, "GBP": 55.6018 },
    "2026-07-05": { "USD": 41.1287, "EUR": 48.1120, "GBP": 55.6402 }
  },
  "meta": {
    "days": 5,
    "missingDays": ["2026-07-04 hafta sonu — bir önceki iş günü kuru kullanıldı"]
  }
}

Yanıt alanları

AlanTipAçıklama
dataobjectTarih anahtarlı kur sözlüğü (YYYY-MM-DD)
sourcestringtcmb veya market
meta.daysnumberDönen gün sayısı
meta.missingDaysarrayTatil/hafta sonu için uygulanan doldurma bilgisi

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?

Kur farkı ve dönem sonu değerleme

Fatura tarihindeki ve kapanış tarihindeki kuru çekip muhasebe farkını otomatik hesaplayın.

Finansal grafikler

Tek sorguda 5 yıllık seriyi alıp Chart.js veya Recharts ile çizin.

Backtest ve analiz

Kur senaryolarını geçmiş veriyle test edin, volatilite hesaplayın.

Denetim ve raporlama

Bağımsız denetim dosyalarına tarih bazlı resmi kur ekleri üretin.

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.

Kurumsal Kur & Muhasebe Otomasyonu Teklifi

Şirketinizin ERP veya muhasebe sistemlerine günlük TCMB kapanış kurlarını otomatik aktarın.

Otomasyonları Keşfet