altinapi Dokümantasyon

altinapi, gerçek zamanlı altın, döviz ve değerli metal fiyatları sağlayan bir REST API ve WebSocket servisidir. Aynı veri sağlayıcısından beslendiği için fiyatlar Harem Altın ile birebir örtüşür.

ℹ️ Base URL: https://altinapi.com/api/v1 · WebSocket: wss://altinapi.com

Hızlı Başlangıç

curl
# API key ile tüm fiyatları çek
curl -H "X-API-Key: hapi_YOUR_KEY" \
  https://altinapi.com/api/v1/prices

Kimlik Doğrulama

Tüm fiyat endpoint'leri için geçerli bir API key gereklidir. API key'inizi Dashboard'dan oluşturabilirsiniz.

Header ile (Önerilen)

http
GET /api/v1/prices HTTP/1.1
Host: altinapi.com
X-API-Key: hapi_YOUR_API_KEY

Query Parameter ile

curl
curl "https://altinapi.com/api/v1/prices?api_key=hapi_YOUR_KEY"

Rate Limits

İstekler dakika başına aşağıdaki sınırlara tabidir (kayan pencere):

PlanREST APIWebSocket Bağlantı
Ücretsiz Deneme1000/ay
Starter30/dk
Pro60/dk3
Enterprise60/dk10

Limit aşıldığında 429 Too Many Requests döner. Response header'larında limit bilgisi bulunur:

http
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 27
X-RateLimit-Reset: 1710000060

Fiyat Endpoints

⚠️ Tüm fiyat endpoint'leri için geçerli API key gereklidir.
GET /prices Tüm fiyatlar
curl
curl https://altinapi.com/api/v1/prices \
  -H "X-API-Key: hapi_YOUR_KEY"
Response
{
  "data": [
    {
      "symbol": "USDTRY",
      "category": "DOVIZ",
      "bid": 32.45,
      "ask": 32.48,
      "timestamp": 1710000000000
    },
    // ... tüm semboller
  ],
  "updatedAt": "2024-03-10T12:00:00.000Z",
  "stale": false
}
GET /prices/category/:category Kategori bazlı filtre

Geçerli kategoriler: DOVIZ, MADEN, PARITE, GRAM ALTIN, SARRAFIYE

curl
curl "https://altinapi.com/api/v1/prices/category/DOVIZ" \
  -H "X-API-Key: hapi_YOUR_KEY"
GET /prices/:symbol Tek sembol
curl
curl "https://altinapi.com/api/v1/prices/ALTIN" \
  -H "X-API-Key: hapi_YOUR_KEY"
Response
{
  "symbol": "ALTIN",
  "category": "MADEN",
  "bid": 2312.50,
  "ask": 2315.00,
  "timestamp": 1710000000000
}

WebSocket (Socket.io)

altinapi, gerçek zamanlı fiyat güncellemeleri için Socket.io kullanır. Bağlantı sırasında API key'inizi auth objesiyle gönderin.

javascript
// npm install socket.io-client
const { io } = require("socket.io-client");

const socket = io("https://altinapi.com", {
  auth: { api_key: "hapi_YOUR_KEY" }
});

socket.on("connect", () => {
  console.log("Bağlandı");
  // İsteğe bağlı: belirli sembollere subscribe
  socket.emit("subscribe", ["DOVIZ", "MADEN"]);
});

// Anlık snapshot (bağlantı anında gelir)
socket.on("prices:snapshot", (data) => {
  console.log("Snapshot:", data);
});

// Gerçek zamanlı güncellemeler
socket.on("prices:update", (update) => {
  console.log("Güncelleme:", update);
});

// Bağlantı durumu
socket.on("data:stale", () => console.log("Veri güncellenmemiş"));
socket.on("data:live", () => console.log("Veri canlı"));
python
# pip install "python-socketio[client]"
import socketio

sio = socketio.Client()

@sio.event
def connect():
    print("Bağlandı")
    sio.emit("subscribe", ["DOVIZ"])

@sio.on("prices:update")
def on_update(data):
    print("Güncelleme:", data)

@sio.on("prices:snapshot")
def on_snapshot(data):
    print("Snapshot:", data)

sio.connect(
    "https://altinapi.com",
    auth={"api_key": "hapi_YOUR_KEY"}
)
sio.wait()
php
// composer require elephox/socket-io-client
// Alternatif: REST API polling önerilir

// REST ile basit kullanım:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://altinapi.com/api/v1/prices");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "X-API-Key: hapi_YOUR_KEY"
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
print_r($data);

WebSocket Events

İstemciden → Sunucuya

EventPayloadAçıklama
subscribe["SEMBOL1", "SEMBOL2"]Belirli sembollere abone ol
unsubscribe["SEMBOL1", "SEMBOL2"]Aboneliği iptal et

Sunucudan → İstemciye

EventPayloadAçıklama
prices:snapshotArray<Price>Bağlantı anında tüm fiyatlar
prices:updateArray<Price>Gerçek zamanlı güncellemeler
data:staleKaynak bağlantısı koptu
data:liveKaynak bağlantısı yeniden kuruldu

Price Nesnesi

TypeScript
interface Price {
  symbol: string;      // örn: "USDTRY", "ALTIN"
  category: string;    // "DOVIZ" | "MADEN" | "PARITE" | "GRAM ALTIN" | "SARRAFIYE"
  bid: number;         // Alış fiyatı
  ask: number;         // Satış fiyatı
  timestamp: number;   // Unix timestamp (ms)
}

Sembol Listesi

Toplam 66 sembol, 5 kategori. Semboller büyük/küçük harf duyarsızdır.

Maden (MADEN) — 19 sembol

SembolAçıklama
ALTINAltın (TL/gram)
XAUUSDAltın (USD/ons)
XAUUSDSAltın (USD/ons, spot)
XAUEURAltın (EUR/ons)
XAUXAGAltın / Gümüş Oranı
GUMTRYGümüş (TL/gram)
GUMUSDGümüş (USD/ons)
XAGUSDGümüş (USD/ons)
KXAGUSDGümüş (USD/kg)
PLATINPlatin (TL)
XPTUSDPlatin (USD/ons)
PALADYUMPaladyum (TL)
XPDUSDPaladyum (USD/ons)
PARUSDAltın parite (USD)
PAREURAltın parite (EUR)
PARGBPAltın parite (GBP)
PARCHFAltın parite (CHF)
FARKAltın fark değeri
VADE FARKVadeli altın fark değeri

Gram Altın (GRAM ALTIN) — 5 sembol

SembolAçıklama
5 GR GRAM ALTIN5 gram altın
10 GR GRAM ALTIN10 gram altın
20 GR GRAM ALTIN20 gram altın
50 GR GRAM ALTIN50 gram altın
100 GR GRAM ALTIN100 gram altın

Sarrafiye (SARRAFIYE) — 15 sembol

SembolAçıklama
CEYREK_YENIÇeyrek Altın (Yeni Cumhuriyet)
CEYREK_ESKIÇeyrek Altın (Eski Cumhuriyet)
YARIM_YENIYarım Altın (Yeni Cumhuriyet)
YARIM_ESKIYarım Altın (Eski Cumhuriyet)
TEK_YENITam Altın (Yeni Cumhuriyet)
TEK_ESKITam Altın (Eski Cumhuriyet)
ATA_YENIAta Altın (Yeni)
ATA_ESKIAta Altın (Eski)
ATA5_YENI5'li Ata Altın (Yeni)
ATA5_ESKI5'li Ata Altın (Eski)
GREMESE_YENIGremese Altın (Yeni)
GREMESE_ESKIGremese Altın (Eski)
AYAR2222 Ayar Bilezik Altın
AYAR1414 Ayar Altın
KULCEALTINKülçe Altın

Döviz (DOVIZ) — 16 sembol

SembolAçıklama
USDTRYAmerikan Doları / Türk Lirası
EURTRYEuro / Türk Lirası
GBPTRYİngiliz Sterlini / Türk Lirası
CHFTRYİsviçre Frangı / Türk Lirası
AUDTRYAvustralya Doları / Türk Lirası
CADTRYKanada Doları / Türk Lirası
JPYTRYJapon Yeni / Türk Lirası
SARTRYSuudi Riyali / Türk Lirası
DKKTRYDanimarka Kronu / Türk Lirası
NOKTRYNorveç Kronu / Türk Lirası
SEKTRYİsveç Kronu / Türk Lirası
EURGBPEuro / İngiliz Sterlini
EURCHFEuro / İsviçre Frangı
EURUSDSEuro / ABD Doları (spot)
XUSDTRYUSD/TRY (çapraz kur)
FARKEUREUR bazlı fark değeri

Parite (PARITE) — 11 sembol

SembolAçıklama
EURUSDEuro / ABD Doları
GBPUSDİngiliz Sterlini / ABD Doları
AUDUSDAvustralya Doları / ABD Doları
USDCHFABD Doları / İsviçre Frangı
USDCADABD Doları / Kanada Doları
USDJPYABD Doları / Japon Yeni
USDSARABD Doları / Suudi Riyali
USDDKKABD Doları / Danimarka Kronu
USDNOKABD Doları / Norveç Kronu
USDSEKABD Doları / İsveç Kronu
USDRUBABD Doları / Rus Rublesi

Hata Kodları

HTTP KoduHataAçıklama
400Bad RequestGeçersiz istek parametresi
401UnauthorizedAPI key eksik veya geçersiz
403ForbiddenAbonelik aktif değil / IP kısıtlaması
404Not FoundSembol bulunamadı
429Too Many RequestsRate limit aşıldı
503Service UnavailableKaynak bağlantısı kesildi (stale veri)
Error Response
{
  "error": "Açıklayıcı hata mesajı"
}