Ana Sayfa / API Kataloğu / Döviz Kurları API

Döviz Kurları API

TCMB resmi günlük alış/satış kurları

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

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

GET/fx/latestTCMB günlük kur listesi
GET/fx/convertİki para birimi arasında tutar çevirme
GET/fx/tcmbTCMB resmi günlük kur bülteni
GET/fx/banksBanka gişe kurları (protokol sonrası)

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
basestringopsiyonelReferans para birimi. Varsayılan TRY
symbolsstringopsiyonelVirgülle ayrılmış kod listesi. Örn: USD,EUR,GBP
sourcestringopsiyoneltcmb (varsayılan), market ve bank (lisans/protokol sonrası)
bankstringopsiyonelsource=bank iken banka kodu. Örn: ziraat
amountnumberopsiyonel/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.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/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ı

AlanTipAçıklama
codestringISO-4217 para birimi kodu veya altın kodu (GAU, CEYREK…)
buying / sellingnumberAlış ve satış kuru
change / changePercentnumberÖnceki kapanışa göre değişim
dayLow / dayHighnumberGün içi bant
sourcestringVerinin 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

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?

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.

Döviz Kurları API için Özel Teklif Alın

Projenize ve veri kullanım hacminize özel kurumsal teklif ve entegrasyon desteği sunuyoruz.

Otomasyon Hizmetleri