Altın API Dokümantasyon
Türk altın çeşitleri ve döviz pariteleri için REST API. Anlık tazelik, basit Bearer auth. Her kotasyon alis /satis alanlarıyla döner. Toplam 43 sembol (altın, sarrafiye, döviz, metaller).
Hızlı başlangıç
- Hesap oluşturun (e-posta + magic-link, parola yok).
- Panel · API sayfasından bir Free key üretin (1 tıkla).
- Anahtarı bir kez kopyalayın (tekrar gösterilmez), aşağıdaki örnekle ilk isteğinizi atın.
curl https://api.altinapps.com/data-api/v1/prices/ALTIN \ -H "Authorization: Bearer YOUR_API_KEY"
Kimlik doğrulama
Tüm endpoint'ler Authorization: Bearer <key> bekler. Anahtarınız "ala_" ile başlar; 32+ karakterdir. Bir kez gösterilir; kaybederseniz panelden iptal + yenisini üretin.
Güvenlik: Anahtarı sunucu env (process.env) veya secret store içinde tutun. Tarayıcı / mobil istemci direkt kullanmayın — kendi backend'inizden proxy'leyin.
Endpoints
Base URL: https://api.altinapps.com/data-api/v1
/prices{
"prices": [
{ "symbol": "ALTIN", "alis": 6676.90, "satis": 6809.08, "as_of": "2026-05-31T10:14:23.512Z" },
{ "symbol": "XAUUSD", "alis": 4539.57, "satis": 4540.63, "as_of": "2026-05-31T10:14:23.512Z" },
{ "symbol": "USDTRY", "alis": 45.5630, "satis": 46.0530, "as_of": "2026-05-31T10:14:23.512Z" }
]
}/prices/{symbol}{ "symbol": "ALTIN", "alis": 6676.90, "satis": 6809.08, "as_of": "2026-05-31T10:14:23.512Z" }/symbols{ "symbols": [ { "symbol": "ALTIN" }, { "symbol": "XAUUSD" }, { "symbol": "USDTRY" } ] }Semboller (43)
Sembol adları standarttır ve kaynak ne olursa olsun değişmez. Free paket 10 popüler sembole, Pro/Kurumsal tümüne erişir. Güncel listeyi /symbols ile çekin.
ALTINAYAR22AYAR14KULCEALTINCEYREK_YENICEYREK_ESKIYARIM_YENIYARIM_ESKITEK_YENITEK_ESKIATA_YENIATA_ESKIATA5_YENIATA5_ESKIGREMESE_YENIGREMESE_ESKIXAUUSDXAGUSDXPTUSDXPDUSDPLATINPALADYUMXAUXAGGUMTRYGUMUSDUSDTRYEURTRYGBPTRYCHFTRYCADTRYAUDTRYSARTRYJPYTRYNOKTRYSEKTRYDKKTRYEURUSDGBPUSDUSDCHFUSDCADAUDUSDUSDSARUSDJPYCode samples
Anahtarı env değişkene atın (örn. ALTINAPPS_KEY) ve aşağıdaki örneği kopyalayın.
# Tüm fiyatlar curl https://api.altinapps.com/data-api/v1/prices \ -H "Authorization: Bearer YOUR_API_KEY" # Tek sembol curl https://api.altinapps.com/data-api/v1/prices/ALTIN \ -H "Authorization: Bearer YOUR_API_KEY" # Sembol listesi (paket erişimine göre) curl https://api.altinapps.com/data-api/v1/symbols \ -H "Authorization: Bearer YOUR_API_KEY"
WebSocket stream
Gerçek-zamanlı tick fan-out. REST polling yerine sunucu tarafından push edilen anlık fiyat güncellemeleri.
Bağlantı
wss://api.altinapps.com/data-api/v1/stream— tüm sembollerwss://api.altinapps.com/data-api/v1/stream/{symbol}— tek sembol (server-side filter)
Auth (subprotocol)
API key Sec-WebSocket-Protocol header'ında altinapps.bearer.<key>formatında gönderilir. URL query param (?token=) kabul edilmez — token URL log'larında, browser history'de ve referer header'da sızar. Tüm modern WS client'ları (browser native, gorilla, ws, websockets) subprotocols parametresini destekler.
Mesaj formatı
Server her tick'i tek satırlık JSON olarak yollar:
{ "symbol": "ALTIN", "alis": 6676.90, "satis": 6809.08, "as_of": "2026-05-31T10:14:23.512Z" }Code samples
// Native WebSocket API — subprotocol ile auth (header set edilemez ama protocol set edilir).
const ws = new WebSocket(
'wss://api.altinapps.com/data-api/v1/stream',
['altinapps.bearer.' + YOUR_API_KEY]
);
ws.addEventListener('open', () => console.log('connected'));
ws.addEventListener('message', (e) => {
const tick = JSON.parse(e.data);
console.log(`${tick.symbol}: alis=${tick.alis} satis=${tick.satis}`);
});
ws.addEventListener('close', (e) => console.log('closed', e.code, e.reason));
// Tek sembol (sunucu tarafında filter — daha az bandwidth):
// new WebSocket('wss://api.altinapps.com/data-api/v1/stream/ALTIN', [...])Davranış & limitler
| Per-key simultan bağlantı | 1 (key = environment; 2. attempt 409 Conflict) |
| Heartbeat | 30sn ping, 60sn pong yoksa server disconnect |
| Slow consumer | Send buffer dolarsa o tick drop edilir; bağlantı açık kalır |
| Read limit | 4KB (abuse koruması — client zaten yazmıyor genelde) |
| Origin (browser) | CSRF: aynı origin whitelist; server-side client (Origin yok) izinli |
| Reconnect | Network kopmasında client tarafı exponential backoff önerilir (1, 2, 4, 8sn) |
Hata kodları
Rate limits & kotalar
| Paket | Sembol | Aylık istek | RPS |
|---|---|---|---|
| Free | 10 popüler | 1.000 | 5 |
| Pro | Tüm 43 | 1.000.000 | 60 |
| Kurumsal | Tüm 43 + WebSocket | Sınırsız (adil) | 600+ |
Her yanıtta X-RateLimit-Remaining + X-RateLimit-Reset header'ları döner. Aylık quota sıfırlama: ayın 1'i UTC 00:00.
Hata kodları
{"error":"unauthorized"}{"error":"forbidden","reason":"symbol_not_in_plan|quota_exceeded"}{"error":"unknown_symbol"}{"error":"rate_limit","retry_after_ms":1200}{"error":"stale_data","last_tick":"2026-05-25T10:12:01Z"}OpenAPI 3.1 spec
Makine-okunabilir API tanımı. Postman/Insomnia/Bruno gibi araçlara URL'i yapıştırarak hazır koleksiyon oluşturabilir, openapi-generatorile kendi diliniz için SDK üretebilirsiniz.
https://api.altinapps.com/openapi.yamlCross-origin fetch açık; SDK auto-gen ve API tool'ları doğrudan tüketebilir.
SDK'lar
Resmi SDK'lar açık kaynak (MIT). Şimdilik üstteki curl/Go/Node/PHP örnekleri yeterli — REST + Bearer.
Soru, hata, feature isteği?
E-posta: [email protected] · Durum: altinapps.com/status · Panel: altinapps.com/panel/data-api