Geçmiş Döviz Kurları API
30 yıllık kur arşivi, tek sorguda zaman serisi
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
Kimlik doğrulama
Tüm isteklerde API anahtarınızı Authorization başlığında gönderin:
Authorization: apikey APIBIR-8f2c4b7e9a1d3c5f7b2e9d41
Accept: application/jsonSorgu parametreleri
| Parametre | Tip | Durum | Açıklama |
|---|---|---|---|
| date | date | opsiyonel | Tek gün sorgusu. Örn: 2024-03-15 |
| start | date | zorunlu | Zaman serisi başlangıç tarihi |
| end | date | zorunlu | Zaman serisi bitiş tarihi |
| symbols | string | opsiyonel | Para birimi kodları. Örn: USD,EUR |
| format | string | opsiyonel | object (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.bodyusing 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ı
| Alan | Tip | Açıklama |
|---|---|---|
| data | object | Tarih anahtarlı kur sözlüğü (YYYY-MM-DD) |
| source | string | tcmb veya market |
| meta.days | number | Dönen gün sayısı |
| meta.missingDays | array | Tatil/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
| Kod | HTTP | Anlamı |
|---|---|---|
| invalid_api_key | 401 | Anahtar geçersiz veya başlık eksik. |
| insufficient_credits | 402 | Aylık kredi limitiniz doldu. |
| invalid_parameter | 422 | Parametre değeri beklenen formatta değil. |
| rate_limited | 429 | Saniyelik istek limiti aşıldı. |
| no_data | 404 | Sorgu 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.
İlgili API'ler
Döviz Kurları
Finans & PiyasaTCMB resmi günlük alış/satış kurları (EVDS ve kur bülteni). Muhasebe ve fatura değerlemesi için.
Faiz Oranları
Finans & PiyasaTCMB politika faizi, mevduat/kredi faizleri, TLREF, Euribor, Fed ve ECB oranları.
Ekonomik Takvim
Finans & PiyasaPiyasayı hareketlendiren makroekonomik veri açıklamaları takvimi.
Kurumsal Kur & Muhasebe Otomasyonu Teklifi
Şirketinizin ERP veya muhasebe sistemlerine günlük TCMB kapanış kurlarını otomatik aktarın.
Uygulamalı rehber
TCMB Döviz Kurlarını Node.js ve Python ile Çekme — çalışan kod örnekleriyle adım adım entegrasyon.