Döviz Kurları API
TCMB resmi günlük alış/satış kurları
Genel bakış
Döviz Kurları API; TCMB efektif ve döviz alış/satış kurlarını EVDS ve günlük kur bülteni üzerinden sunar. USD, EUR, GBP ve bültendeki diğer para birimleri için fatura tarihi kuru ve çapraz kur hesaplanabilir. Serbest piyasa ve banka gişe kurları, ilgili lisans veya banka protokolü sonrası açılır; bu uçlar şimdilik planlıdır. Altın fiyatları lisanslı emtia kaynağı olmadan bu yanıtta yer almaz.
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 |
|---|---|---|---|
| base | string | opsiyonel | Referans para birimi. Varsayılan TRY |
| symbols | string | opsiyonel | Virgülle ayrılmış kod listesi. Örn: USD,EUR,GBP |
| source | string | opsiyonel | tcmb (varsayılan), market ve bank (lisans/protokol sonrası) |
| bank | string | opsiyonel | source=bank iken banka kodu. Örn: ziraat |
| amount | number | opsiyonel | /fx/convert için çevrilecek tutar |
Örnek istek
curl --request GET \
--url "https://api.apibir.com/v1/fx/latest?symbols=USD,EUR" \
--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/latest?symbols=USD,EUR", 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/latest?symbols=USD,EUR',
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/latest?symbols=USD,EUR",
{ 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/latest?symbols=USD,EUR"))
.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/latest?symbols=USD,EUR",
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/latest?symbols=USD,EUR")
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/latest?symbols=USD,EUR");
Console.WriteLine(json);import Foundation
var request = URLRequest(url: URL(string: "https://api.apibir.com/v1/fx/latest?symbols=USD,EUR")!)
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/latest?symbols=USD,EUR" 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/latest?symbols=USD,EUR");
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",
"source": "market",
"timestamp": "2026-08-07T10:42:11+03:00",
"data": [
{
"code": "USD",
"name": "Amerikan Doları",
"buying": 41.7420,
"selling": 41.8180,
"previousClose": 41.6905,
"change": 0.0515,
"changePercent": 0.12,
"dayLow": 41.6810,
"dayHigh": 41.8640,
"updatedAt": "2026-08-07T10:42:08+03:00"
},
{
"code": "EUR",
"name": "Euro",
"buying": 48.5910,
"selling": 48.6870,
"previousClose": 48.7240,
"change": -0.1330,
"changePercent": -0.27,
"dayLow": 48.5120,
"dayHigh": 48.8010,
"updatedAt": "2026-08-07T10:42:08+03:00"
},
{
"code": "GAU",
"name": "Gram Altın",
"buying": 4586.30,
"selling": 4589.85,
"changePercent": 0.81,
"updatedAt": "2026-08-07T10:42:08+03:00"
}
]
}Yanıt alanları
| Alan | Tip | Açıklama |
|---|---|---|
| code | string | ISO-4217 para birimi kodu veya altın kodu (GAU, CEYREK…) |
| buying / selling | number | Alış ve satış kuru |
| change / changePercent | number | Önceki kapanışa göre değişim |
| dayLow / dayHigh | number | Gün içi bant |
| source | string | Verinin kaynağı: market · tcmb · bank |
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?
E-ticaret çoklu para birimi
Sepet ve ürün fiyatlarını müşterinin para biriminde gösterin, kur farkı marjını otomatik ekleyin.
Muhasebe ve ERP entegrasyonu
Fatura tarihindeki TCMB kurunu otomatik çekerek kur farkı kayıtlarını oluşturun.
Fintech ve transfer uygulamaları
TCMB resmi kurunu referans alarak kur farkı ve raporlama akışlarını kurun. Banka gişe karşılaştırması protokol sonrası eklenir.
Kur alarmı botları
Belirlenen seviyeye ulaşıldığında Telegram/Slack bildirimi gönderen bir cron işi kurun.
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ı API için Özel Teklif Alın
Projenize ve veri kullanım hacminize özel kurumsal teklif ve entegrasyon desteği sunuyoruz.
Uygulamalı rehber
TCMB Döviz Kurlarını Node.js ve Python ile Çekme — çalışan kod örnekleriyle adım adım entegrasyon.