altinapps Altın API · v1

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ıç

  1. Hesap oluşturun (e-posta + magic-link, parola yok).
  2. Panel · API sayfasından bir Free key üretin (1 tıkla).
  3. 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

GET/prices
Tüm aktif semboller (paketinize göre). alış/satış + zaman damgası.
Örnek yanıt
{
  "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" }
  ]
}
GET/prices/{symbol}
Tek sembol (örn. ALTIN, XAUUSD, USDTRY).
Örnek yanıt
{ "symbol": "ALTIN", "alis": 6676.90, "satis": 6809.08, "as_of": "2026-05-31T10:14:23.512Z" }
GET/symbols
Paketinizin erişebileceği sembol listesi.
Örnek yanıt
{ "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.

Altın & ayar
ALTINAYAR22AYAR14KULCEALTIN
Sarrafiye (yeni / eski)
CEYREK_YENICEYREK_ESKIYARIM_YENIYARIM_ESKITEK_YENITEK_ESKIATA_YENIATA_ESKIATA5_YENIATA5_ESKIGREMESE_YENIGREMESE_ESKI
Kıymetli metal
XAUUSDXAGUSDXPTUSDXPDUSDPLATINPALADYUMXAUXAGGUMTRYGUMUSD
Döviz / TL
USDTRYEURTRYGBPTRYCHFTRYCADTRYAUDTRYSARTRYJPYTRYNOKTRYSEKTRYDKKTRY
Çapraz parite
EURUSDGBPUSDUSDCHFUSDCADAUDUSDUSDSARUSDJPY

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

Ultra ve Kurumsal paketler

Bağlantı

  • wss://api.altinapps.com/data-api/v1/stream — tüm semboller
  • wss://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)
Heartbeat30sn ping, 60sn pong yoksa server disconnect
Slow consumerSend buffer dolarsa o tick drop edilir; bağlantı açık kalır
Read limit4KB (abuse koruması — client zaten yazmıyor genelde)
Origin (browser)CSRF: aynı origin whitelist; server-side client (Origin yok) izinli
ReconnectNetwork kopmasında client tarafı exponential backoff önerilir (1, 2, 4, 8sn)

Hata kodları

401Subprotocol header eksik veya key geçersiz
403Paket WS'i desteklemiyor (Free/Pro) veya sembol erişim dışı
409Bu key için zaten aktif bir WS bağlantısı var (zombie 60sn'de temizlenir)

Rate limits & kotalar

PaketSembolAylık istekRPS
Free10 popüler1.0005
ProTüm 431.000.00060
KurumsalTüm 43 + WebSocketSı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ı

401Authorization header eksik veya geçersiz key.
{"error":"unauthorized"}
403Key revoked, sembol erişiminizde değil, veya quota dolmuş.
{"error":"forbidden","reason":"symbol_not_in_plan|quota_exceeded"}
404Bilinmeyen sembol.
{"error":"unknown_symbol"}
429Rate limit aşıldı (RPS bazlı; Pro: 60/sn, Kurumsal: 600/sn).
{"error":"rate_limit","retry_after_ms":1200}
503Upstream veri akışı kesintide veya stale (>60sn). Otomatik recover.
{"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.

openapi.yaml indir →https://api.altinapps.com/openapi.yaml

Cross-origin fetch açık; SDK auto-gen ve API tool'ları doğrudan tüketebilir.

SDK'lar

Go
github.com/altinapps/altinapps-go (yakında)
Node / TypeScript
@altinapps/api (yakında)
PHP
altinapps/api-php (yakında)

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