Ana Sayfa / Hızlı Başlangıç

Hızlı Başlangıç

Sıfırdan çalışan ilk isteğe 5 dakika. Anahtar alın, başlığı ekleyin, yanıtı işleyin.

İlk isteğiniz — 5 adım

Hesap açın ve anahtarınızı alın

Kayıt formunu doldurup e-postanızı doğrulayın. Panelin API Anahtarları sekmesinde APIBIR- ile başlayan anahtarınız hazır olur. İstediğiniz kadar anahtar üretebilir, her birine ayrı IP kısıtı ve kredi limiti tanımlayabilirsiniz.

Anahtarınızı tarayıcıda saklamayın. Anahtar sunucu tarafında, ortam değişkeninde tutulmalıdır. Frontend'den doğrudan çağrı yapmanız gerekiyorsa kendi backend'inizde bir proxy uç noktası açın veya panelden domain kısıtlı public token üretin.

Anahtarı ortam değişkenine yazın

export APIBIR_KEY="APIBIR-8f2c4b7e9a1d3c5f7b2e9d41"
$env:APIBIR_KEY = "APIBIR-8f2c4b7e9a1d3c5f7b2e9d41"
APIBIR_KEY=APIBIR-8f2c4b7e9a1d3c5f7b2e9d41
APIBIR_BASE=https://api.apibir.com/v1

İlk isteğinizi atın

Doğrulamanın çalıştığını görmek için kredi harcamayan /v1/ping ucunu kullanın.

curl -i "https://api.apibir.com/v1/ping" \
  -H "Authorization: apikey $APIBIR_KEY"
{
  "success": true,
  "message": "pong",
  "plan": "free",
  "creditsRemaining": 4998,
  "resetAt": "2026-09-01T00:00:00+03:00",
  "serverTime": "2026-08-07T10:44:02+03:00"
}

Gerçek bir veri çekin

Örnek olarak güncel dolar ve euro kurunu alalım:

curl "https://api.apibir.com/v1/fx/latest?symbols=USD,EUR" \
  -H "Authorization: apikey $APIBIR_KEY"
const BASE = "https://api.apibir.com/v1";

async function apibir(path, params = {}) {
  const url = new URL(BASE + path);
  Object.entries(params).forEach(([k, v]) => url.searchParams.set(k, v));

  const res = await fetch(url, {
    headers: { Authorization: `apikey ${process.env.APIBIR_KEY}` }
  });
  const json = await res.json();
  if (!json.success) throw new Error(json.error.message);
  return json.data;
}

const kurlar = await apibir("/fx/latest", { symbols: "USD,EUR" });
console.table(kurlar);
import os
import requests

BASE = "https://api.apibir.com/v1"
SESSION = requests.Session()
SESSION.headers["Authorization"] = f"apikey {os.environ['APIBIR_KEY']}"

def apibir(path, **params):
    r = SESSION.get(BASE + path, params=params, timeout=10)
    r.raise_for_status()
    body = r.json()
    if not body.get("success"):
        raise RuntimeError(body["error"]["message"])
    return body["data"]

for kur in apibir("/fx/latest", symbols="USD,EUR"):
    print(kur["code"], kur["selling"])

Yanıtı ve hataları yönetin

Her yanıt aynı zarfı kullanır. Üretimde success alanını kontrol edin, 429 durumunda üstel geri çekilme (exponential backoff) uygulayın.

async function apibirSafe(path, params, retry = 3) {
  const url = new URL("https://api.apibir.com/v1" + path);
  Object.entries(params || {}).forEach(([k, v]) => url.searchParams.set(k, v));

  for (let i = 0; i < retry; i++) {
    const res = await fetch(url, {
      headers: { Authorization: `apikey ${process.env.APIBIR_KEY}` }
    });

    if (res.status === 429) {
      const wait = Number(res.headers.get("Retry-After") || 2 ** i);
      await new Promise(r => setTimeout(r, wait * 1000));
      continue;
    }

    const json = await res.json();
    if (json.success) return json.data;

    // 4xx hataları tekrar denemeye değmez
    if (res.status < 500) throw new Error(`${json.error.code}: ${json.error.message}`);
  }
  throw new Error("apibir: yeniden deneme hakkı tükendi");
}
import time
import requests

def apibir_safe(path, retry=3, **params):
    for attempt in range(retry):
        r = SESSION.get(BASE + path, params=params, timeout=10)

        if r.status_code == 429:
            time.sleep(int(r.headers.get("Retry-After", 2 ** attempt)))
            continue

        body = r.json()
        if body.get("success"):
            return body["data"]

        if r.status_code < 500:
            raise RuntimeError(f"{body['error']['code']}: {body['error']['message']}")

    raise RuntimeError("apibir: yeniden deneme hakkı tükendi")

Sonraki adımlar

Ü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.