API Dokümantasyonu
Giriş
Hasfiyat API, kuyumcu ve döviz büroları için farklı kaynaklardan anlık altın ve döviz verilerini tek bir noktada toplar. REST API ve WebSocket Stream seçenekleri ile uygulamanıza en uygun veri akışını kolayca entegre edebilirsiniz.
Yüksek Hız
Fiyat değişimi yayımlandığı anda iletilir; yanıt süresi ağ koşullarına bağlıdır.
Çoklu Kaynak
Harem, Hakan, Nadir gibi farklı kaynakların verilerine tek bir API anahtarıyla erişirsiniz.
Kimlik Doğrulama
API isteklerinizi doğrulamak için Authorization başlığında API anahtarınızı (Bearer Token) kullanmanız gerekir. Anahtarlarınızı panelde API Erişimi sayfasından oluşturabilirsiniz.
GET /api/prices HTTP/1.1
Host: api.hasfiyat.com
Authorization: Bearer YOUR_API_KEYAynı anahtarı x-api-key başlığıyla da gönderebilirsiniz. Başlık ekleyemediğiniz araçlarda ?apikey= sorgu parametresi de kabul edilir; adres sunucu kayıtlarında görünebileceği için mümkünse başlık kullanın. WebSocket bağlantısında başlık gönderilemediği için anahtar bağlantı adresindeki token parametresiyle iletilir.
Güvenlik Uyarısı
API anahtarınızı asla istemci tarafında (frontend) açık bir şekilde paylaşmayın. İsteklerinizi her zaman kendi sunucunuz üzerinden yönlendirin.
REST API
Tüm bot verilerine tek bir uç nokta üzerinden erişebilirsiniz. Kaynak seçimi için `source` parametresini kullanın.
/api/pricesParametreler
| Ad | Tip | Açıklama |
|---|---|---|
| source | string | Veri kaynağı anahtarı. Boş bırakılırsa harem kullanılır. |
| symbols | string | Virgülle ayrılmış sembol listesi. Boş bırakılırsa kaynağın tüm kalemleri döner. |
| birim | 0 | 1 | birim=1 → her kaleme unit (birim) ve currency (para birimi) alanları eklenir. |
| ham | 0 | 1 | ham=1 → Fiyat Ayarı uygulanmış kalemlere rawBuy / rawSell (ayarsız değer) eklenir. |
| turetilmis | 0 | 1 | turetilmis=1 → sembol filtresi yokken türetilmiş kalemler de listeye eklenir. |
| stats | 0 | 1 | stats=1 → Harem kalemlerine günlük açılış, en yüksek, en düşük, önceki kapanış ve değişim (%) eklenir (Europe/Istanbul gününe göre). Diğer kaynaklarda stats alanı null döner. |
const url = "https://api.hasfiyat.com/api/prices?source=harem&symbols=GRAM,HAS";
const res = await fetch(url, { headers: { 'Authorization': 'Bearer YOUR_KEY' } });
console.log(await res.json());// Birim bilgisi, ayarsiz (ham) deger ve turetilmis kalem
const url = "https://api.hasfiyat.com/api/prices?source=harem&symbols=GRAM ALTIN,ALTIN/GÜMÜŞ&birim=1&ham=1";
const res = await fetch(url, { headers: { 'Authorization': 'Bearer YOUR_KEY' } });
const j = await res.json();
console.log(j.lastUpdate); // "2026-09-24T07:07:37.939Z" (mutlak an)
console.log(j.dataAgeMs, j.stale); // 178 false (goreli yas + bayatlik)
console.log(j.data[0]); // { title, buy, sell, unit, currency }/api/prices/{sembol}Tek bir kalemi döndürür; source parametresi burada da geçerlidir. Sembol adını URL kodlamasıyla yazın (boşluk %20, eğik çizgi %2F). Kalem bulunamazsa 404 döner.
const url = "https://api.hasfiyat.com/api/prices/" + encodeURIComponent("HAS ALTIN") + "?source=harem";
const res = await fetch(url, { headers: { Authorization: "Bearer YOUR_KEY" } });
console.log(await res.json());
// { source: "harem", data: { title: "HAS ALTIN", buy: "6.421,99", sell: "6.452,21" }, dataAgeMs, stale, lastUpdate }WebSocket Stream
WebSocket ile fiyatları sürekli sorgu atmadan, değiştikçe alırsınız. Bağlantı adresi tek satırdır; token REST'te kullandığınız API anahtarıdır, source değerleri aşağıdaki Kullanılabilir Kaynaklar listesindeki WS satırlarında yazar.
wss://api.hasfiyat.com/stream?source=harem&token=API_ANAHTARINIZ- Bağlantı açılınca seçtiğiniz kaynağın tüm kalemlerini içeren bir JSON dizisi gelir; her elemanda
title,buyvesellalanları bulunur. - Fiyat değiştikçe güncel dizi yeniden gönderilir, değişiklik yoksa mesaj gelmez. Her mesaj tam listedir; ihtiyacınız olan kalemleri istemci tarafında süzersiniz.
- Anahtar geçersizse, aktif paketiniz yoksa ya da
sourcetanınmıyorsa sunucu{"error": "..."}mesajı gönderir ve bağlantıyı 1008 koduyla kapatır. - Sunucu bağlantıyı canlı tutmak için 30 saniyede bir ping gönderir; tarayıcılar ve yaygın kütüphaneler buna kendiliğinden yanıt verir.
- Kopan bağlantı kendiliğinden yeniden kurulmaz; aşağıdaki örnekteki gibi artan beklemelerle yeniden bağlanın.
- WebSocket akışı aylık REST istek kotanızdan düşmez.
const url = "wss://api.hasfiyat.com/stream?source=harem&token=" + API_ANAHTARINIZ;
let bekleme = 1000;
let durdur = false;
function baglan() {
const ws = new WebSocket(url);
ws.onopen = () => { bekleme = 1000; };
ws.onmessage = (e) => {
const veri = JSON.parse(e.data);
if (Array.isArray(veri)) {
// [{ title: "HAS ALTIN", buy: "6.421,99", sell: "6.452,21" }, ...]
console.log(veri.length + " kalem güncel");
} else if (veri.error) {
console.error("Sunucu:", veri.error); // ör. geçersiz anahtar
durdur = true; // düzeltmeden yeniden deneme
}
};
ws.onclose = () => {
if (durdur) return;
setTimeout(baglan, bekleme);
bekleme = Math.min(bekleme * 2, 30000);
};
}
baglan();import asyncio, json, websockets
URL = "wss://api.hasfiyat.com/stream?source=harem&token=API_ANAHTARINIZ"
async def main():
# Kopma olursa kütüphane artan beklemelerle yeniden bağlanır
async for ws in websockets.connect(URL):
try:
async for mesaj in ws:
veri = json.loads(mesaj)
if isinstance(veri, list):
print(len(veri), "kalem güncel")
else:
print("Sunucu:", veri.get("error"))
return # ör. geçersiz anahtar: düzeltmeden yeniden deneme
except websockets.ConnectionClosed:
continue
asyncio.run(main())Tarayıcıdan doğrudan bağlanırsanız anahtar bağlantı adresinde görünür. Üretimde akışı kendi sunucunuzda alıp kullanıcılarınıza oradan dağıtmanız önerilir.
Tarihsel Veri
Harem kaynağındaki kalemler için günlük (1d) ve saatlik (1h) OHLC geçmişi sunulur. Günlük veri 4 Ekim 2026'dan itibaren birikir, saatlik veri son 45 gün saklanır. Bu uca yapılan istekler aylık REST kotanızdan düşer.
/api/prices/historyeşdeğeri: /api/prices/gecmisParametreler
| Ad | Tip | Açıklama |
|---|---|---|
| symbol | string | Tek kalem adı, ör. HAS ALTIN. Tüm kalemler için symbol=* yazın. |
| symbols | string | Virgülle ayrılmış birden çok kalem (en fazla 100). symbol yerine kullanılır. |
| period | 1d | 1h | Bar aralığı: günlük ya da saatlik. Varsayılan 1d. |
| from | YYYY-MM-DD | Başlangıç günü. Varsayılan: 1d için son 30 gün, 1h için son 2 gün. |
| to | YYYY-MM-DD | Bitiş günü (dahil). Varsayılan: bugün (Europe/Istanbul). |
| source | string | Şimdilik yalnızca harem; başka bir kaynak 400 döner. |
const url = "https://api.hasfiyat.com/api/prices/history?symbol=" + encodeURIComponent("HAS ALTIN") + "&period=1d&from=2026-10-19&to=2026-10-25";
const res = await fetch(url, { headers: { Authorization: "Bearer YOUR_KEY" } });
const j = await res.json();
console.log(j.count, j.partialLastBar); // bar sayısı, son bar henüz kapanmadıysa true
console.log(j.data[0]);
// { time: "2026-10-19", open: 6624.01, high: 6663.77, low: 6588.5, close: 6595.4,
// buy: { open: 6601.95, high: 6642.04, low: 6557.59, close: 6561.44 },
// timestamp: "2026-10-19T00:00:00+03:00", ts: 1792357200000 }- Barlar satış fiyatına göredir (
open,high,low,close); alış tarafı her barınbuyalanındadır. Değerler sayıdır. - Aralığın son günü bugünse son bar henüz kapanmamıştır ve
partialLastBaralanıtruedöner. - Tek istekte en fazla 366 gün (1d) ya da 31 gün (1h) döner; daha uzun bir aralık istenirse son günler verilir. Sayfalama yoktur, uzun dönemleri
from/topencereleriyle bölün. - Geçmiş, kaynağın kendi kalemlerini kapsar; GRAM ALTIN ve ALTIN/GÜMÜŞ gibi türetilmiş kalemler yer almaz. Kullanılabilir adları görmek için
symbol=*isteyin. - Panelde tanımladığınız Fiyat Ayarı geçmiş verisine uygulanmaz; değerler kaynağın ham fiyatlarıdır.
- Günün özet istatistikleri (önceki kapanış, açılış, en yüksek, en düşük, değişim %) için anlık uca
stats=1ekleyin.
Kota ve Hata Kodları
Aylık İstek Kotası
REST istekleri (liste, tek sembol ve tarihsel veri uçları) aylık kotayla sayılır. Kotanız paketinize göre belirlenir; güncel kullanımınızı ve kotanızı panelde görürsünüz. Kota dolduğunda istekler 429 ile yanıtlanır, yanıta X-Api-Quota: exceeded başlığı eklenir ve reddedilen istekler sayaca eklenmez. WebSocket akışı bu kotadan düşmez; fiyatları sık izliyorsanız REST'i döngüyle sorgulamak yerine WebSocket kullanın.
REST Hata Yanıtları
Hata gövdesinde insan okunur bir error mesajı ve kodunuzda kullanabileceğiniz makine okunur bir reason alanı bulunur. Kimlik doğrulama hatalarında isteğin geldiği IP de clientIp alanında döner.
{
"error": "API anahtarı gönderilmedi. İsteğe Authorization: Bearer <anahtar> veya x-api-key başlığı ekleyin.",
"reason": "no_key",
"clientIp": "203.0.113.10",
"domain": null
}| Kod | reason | Ne zaman | Ne yapmalı |
|---|---|---|---|
| 400 | — | Tarihsel veri ucunda eksik ya da geçersiz parametre (symbol yok, period 1d/1h dışında, from > to, harem dışı kaynak). | Parametreleri düzeltin. |
| 401 | no_key | API anahtarı gönderilmedi. | Authorization: Bearer ya da x-api-key başlığı ekleyin. |
| 401 | invalid_key | Anahtar geçersiz ya da pasif. | Panelde API Erişimi sayfasından anahtarı kontrol edin. |
| 401 | no_active_subscription | Aktif paket ya da deneme süresi yok. | Paket durumunuzu kontrol edin; yenilemeden sonra erişim en geç 1 dakika içinde açılır. |
| 404 | — | Tek sembol ucunda sembol bulunamadı (Symbol not found). | Sembol adını Semboller bölümünden kontrol edin. |
| 410 | source_retired | Artık sunulmayan bir kaynak istendi. | Yanıttaki öneriye göre başka bir kaynak seçin. |
| 429 | quota_exceeded | Aylık REST kotası doldu (X-Api-Quota: exceeded). | Yeni dönemi bekleyin ya da paketinizi yükseltin. |
| 500 | — | Beklenmeyen sunucu hatası. | Kısa bir beklemeyle yeniden deneyin. |
Tanınmayan bir source değeri hata döndürmez; boş liste (count: 0) gelir. Kaynak adını Kullanılabilir Kaynaklar listesinden kontrol edin.
WebSocket Hata Mesajları
WebSocket tarafında hata, bağlantı kapanmadan hemen önce gönderilen {"error": "..."} mesajıyla bildirilir; bağlantı 1008 koduyla kapanır.
| Missing token parameter for authentication | Bağlantı adresinde token parametresi yok. |
| Invalid or expired token | Anahtar geçersiz ya da pasif, veya hesabın aktif paketi yok. |
| Missing source parameter · Invalid source: … | source parametresi eksik ya da tanınmıyor. |
| Aktif abonelik gerekli. | Hesabın aktif paketi ya da deneme süresi yok. |
Webhook
Webhook ile sürekli sorgu atmadan, fiyat değiştiğinde ya da belirlediğiniz eşik aşıldığında sunucunuza imzalı bir HTTPS bildirimi gelir. Webhook'ları panelde Webhook'lar sayfasından eklersiniz: adres, kaynak, kalemler ve olay türü. Starter paketinde 2, Pro'da 5, Enterprise'da 20 webhook tanımlanabilir. Bildirimler aylık REST kotanızdan düşmez.
- Değerler REST ile aynıdır: kaynağın kalemleri, panelde tanımladığınız Fiyat Ayarı uygulanmış hâliyle gelir;
buy/sellTürkçe biçimli metindir (ör. "6.452,56"). - Yalnızca herkese açık
https://adresleri kabul edilir; yerel ve özel ağ adreslerine gönderim yapılmaz, yönlendirmeler (3xx) izlenmez. - Aktif paketiniz sona ererse gönderim durur; paket yenilenince kendiliğinden devam eder.
Olay Türleri
| price.update | Seçtiğiniz kalemlerden biri değiştiğinde. En sık gönderim aralığını siz seçersiniz (10 saniye ile 1 saat arası); değer değişmezse bildirim gelmez, değişirse aralıktan sık gönderilmez ve son değerler gelir. |
| price.threshold | Kural (kalem, alış/satış, üstüne çıkınca/altına inince, değer) sağlandığı anda bir kez. Değer koşulun dışına çıkıp yeniden sağlanırsa tekrar gönderilir; aynı kural en fazla dakikada bir tetiklenir. |
| webhook.test | Paneldeki Test Et düğmesiyle, güncel değerlerle tek seferlik gönderilir. |
Bildirim Gövdesi
Her bildirim POST ile application/json olarak gelir. price.update örneği:
{
"id": "evt_3kQx9vB2mT7sLp4aZ1yW",
"event": "price.update",
"createdAt": "2026-10-26T09:15:02.418Z",
"webhookId": "6650f0c2a1b2c3d4e5f60718",
"source": "harem",
"lastUpdate": "2026-10-26T09:15:01.902Z",
"stale": false,
"changed": ["HAS ALTIN"],
"data": [
{ "title": "HAS ALTIN", "buy": "6.430,22", "sell": "6.452,56" },
{ "title": "USD/TL", "buy": "49,851", "sell": "49,915" }
]
}price.threshold örneği (value, kuralın karşılaştırdığı sayısal değerdir):
{
"id": "evt_Q2b7Lm0Xc4Vt9sNw1aRk",
"event": "price.threshold",
"createdAt": "2026-10-26T09:20:11.031Z",
"webhookId": "6650f0c2a1b2c3d4e5f60719",
"source": "harem",
"lastUpdate": "2026-10-26T09:20:10.774Z",
"stale": false,
"rule": { "id": "6650f1d0a1b2c3d4e5f6071a", "symbol": "HAS ALTIN", "field": "sell", "op": "above", "value": 6450 },
"value": 6452.56,
"item": { "title": "HAS ALTIN", "buy": "6.430,22", "sell": "6.452,56" }
}Başlıklar ve İmza
| X-Hasfiyat-Event | Olay türü: price.update, price.threshold ya da webhook.test. |
| X-Hasfiyat-Delivery | Olay kimliği; gövdedeki id ile aynıdır ve yeniden denemelerde değişmez. |
| X-Hasfiyat-Timestamp | Gönderim zamanı (Unix saniye). İmzaya dahildir. |
| X-Hasfiyat-Signature | sha256= ile başlayan HMAC-SHA256(gizli anahtar, zaman + "." + ham gövde) değeri. |
| User-Agent | Hasfiyat-Webhook/1.0 |
İmzayı ham gövde üzerinden doğrulayın (JSON'u ayrıştırıp yeniden yazmayın), karşılaştırmayı sabit zamanlı yapın ve zaman damgası 5 dakikadan eski istekleri reddedin. Gizli anahtar (whsec_…) oluşturulurken bir kez gösterilir; panelden yenileyebilirsiniz.
// Node.js (Express)
const crypto = require("crypto");
app.post("/hasfiyat-webhook", express.raw({ type: "application/json" }), (req, res) => {
const zaman = req.get("X-Hasfiyat-Timestamp") || "";
const beklenen = "sha256=" + crypto
.createHmac("sha256", process.env.HASFIYAT_WEBHOOK_SECRET)
.update(zaman + "." + req.body)
.digest("hex");
const gelen = req.get("X-Hasfiyat-Signature") || "";
const gecerli = gelen.length === beklenen.length &&
crypto.timingSafeEqual(Buffer.from(gelen), Buffer.from(beklenen));
if (!gecerli || Math.abs(Date.now() / 1000 - Number(zaman)) > 300) return res.sendStatus(401);
res.sendStatus(200); // önce hemen 200 dönün
const olay = JSON.parse(req.body); // sonra işleyin; olay.id ile tekrarları ayıklayın
});<?php
$govde = file_get_contents('php://input');
$zaman = $_SERVER['HTTP_X_HASFIYAT_TIMESTAMP'] ?? '';
$beklenen = 'sha256=' . hash_hmac('sha256', $zaman . '.' . $govde, getenv('HASFIYAT_WEBHOOK_SECRET'));
if (!hash_equals($beklenen, $_SERVER['HTTP_X_HASFIYAT_SIGNATURE'] ?? '') || abs(time() - (int) $zaman) > 300) {
http_response_code(401);
exit;
}
http_response_code(200);
$olay = json_decode($govde, true); // $olay['id'] ile tekrarları ayıklayınimport hashlib, hmac, os, time
from flask import Flask, abort, request
app = Flask(__name__)
GIZLI = os.environ["HASFIYAT_WEBHOOK_SECRET"].encode()
@app.post("/hasfiyat-webhook")
def hasfiyat_webhook():
govde = request.get_data()
zaman = request.headers.get("X-Hasfiyat-Timestamp", "")
beklenen = "sha256=" + hmac.new(GIZLI, zaman.encode() + b"." + govde, hashlib.sha256).hexdigest()
if not hmac.compare_digest(beklenen, request.headers.get("X-Hasfiyat-Signature", "")):
abort(401)
if not zaman.isdigit() or abs(time.time() - int(zaman)) > 300:
abort(401)
olay = request.get_json() # olay["id"] ile tekrarları ayıklayın
return "", 200Teslim ve Yeniden Deneme
- 8 saniye içinde 2xx yanıt dönün. 2xx dışındaki yanıtlar (yönlendirmeler dahil) ve zaman aşımı başarısız sayılır.
- Başarısız bildirim 15 saniye, 1 dakika ve 5 dakika sonra yeniden denenir (toplam 4 deneme).
price.updateiçin arada daha yeni değer oluştuysa eski bildirim yeniden denenmez, yenisi gönderilir. - Aynı bildirim birden fazla gelebilir;
idalanını (ya daX-Hasfiyat-Deliverybaşlığını) saklayıp tekrarları yok sayın. - Adres 12 saat boyunca hiç başarılı yanıt vermezse webhook durdurulur; panelden yeniden etkinleştirirsiniz. Her webhook'un son teslimleri (durum kodu, süre, hata) panelde 7 gün görünür.
- İşi uzun süren uçlar, isteği hemen 200 ile kabul edip işi arka plana atmalıdır; yavaş uçlar yeniden denemeye ve tekrar gelen bildirimlere yol açar.
Kullanılabilir Kaynaklar
Semboller ve Birimler
Her kaynak kendi sembol adlandırmasını kullanır. Aşağıdaki listeler 24.09.2026 tarihinde canlı uçtan okunarak üretilmiştir. Bir sembolü tam adıyla istemeniz en kesin sonucu verir; tam eşleşme tutmazsa sistem normalize eşleme ve takma ad çözümlemesini sırayla dener.
Birim ve Para Birimi
Değerler Türkçe biçimli metindir (binlik ., ondalık , — örn. 6.692,74). Ondalık basamak sayısı kaynağın hassasiyetini korur. Birim bilgisi sembol adına gömülüdür; alan olarak almak için birim=1 parametresini ekleyin.
| unit | Anlamı | Örnek |
|---|---|---|
| gram | Gram başına fiyat | HAS ALTIN · KÜLÇE ALTIN · 22 AYAR · GÜMÜŞ TL |
| ons | Troy ons başına fiyat | ONS · GÜMÜŞ ONS · PLATİN ONS |
| kg | Kilogram başına fiyat | USD/KG · EUR/KG · GÜMÜŞ USD |
| adet | Adet başına fiyat | YENİ ÇEYREK · ESKİ TAM · 10 GRAM |
| birim | 1 birim döviz = kaç TL | USD/TL · EUR/TL · JPY/TL |
| oran | Birimsiz oran / parite | EUR/USD · GBP/USD · ALTIN/GÜMÜŞ |
| null | Birimi garanti edilmeyen sembol | — |
Tanınmayan bir sembolde unit ve currency alanları null döner — yanlış birim bildirilmez.
buy / sell Ne Anlama Gelir?
buy alış, sell satış değeridir; piyasa yapıcısının perspektifinden verilir. buy piyasanın sizden aldığı, sell piyasanın size sattığı fiyattır. Her zaman buy < sell olur; aradaki fark makastır.
Türetilmiş Kalemler
Bazı semboller kaynakta bulunmaz; bunları adıyla istediğinizde API tarafında üretiriz. Kaynakta aynı adlı kalem varsa kaynak her zaman otoritedir, türetme yapılmaz. Hesap için gereken veri eksikse kalem hiç üretilmez — uydurma değer dönmez.
GRAM ALTINgram · TRYKaynakta GRAM ALTIN yoksa KÜLÇE ALTIN değeri birebir kopyalanır; hesaplama yapılmaz.
symbols=GRAM ALTINsymbols=gram-altinsymbols=GRAMALTINALTIN/GÜMÜŞoranONS ve GÜMÜŞ ONS aynı yanıttan alınarak hesaplanır (eş zamanlı). Biri eksikse kalem üretilmez.
symbols=ALTIN/GÜMÜŞsymbols=ALTIN GUMUSsymbols=GOLDSILVERKaynak Bazlı Sembol Listeleri
Başlığa tıklayarak o kaynağın tüm sembollerini açabilirsiniz. Parantez içindeki değer birimdir.
Harem Altınsource=harem36 sembolyedekli besleme
Eşdeğer yazımlar: harem-altinharem-canliharem_v1harem_v2harem_v3harem-altin-v1harem-altin-v2harem-altin-v3
Anlık Altınsource=anlik36 sembol
Eşdeğer yazımlar: anlik-altinanlik-altin-fiyatlari
Nadir Dövizsource=nadir36 sembol
Eşdeğer yazımlar: nadir-doviz
Metal Altınsource=metal39 sembol
Eşdeğer yazımlar: metal-altin
Sağlamoğlusource=saglamoglu73 sembol
Akche Altınsource=akche30 sembol
Eşdeğer yazımlar: akche-altinmyakche
Fikri Şahinsource=fikri28 sembol
Eşdeğer yazımlar: fikri-sahinfikrisahin
Mayda Goldsource=mayda9 sembol
Eşdeğer yazımlar: mayda-altinmayda-gold
Şahap Altınsource=sahap17 sembol
Eşdeğer yazımlar: sahap-altin
Hakan Altınsource=hakan7 sembol
Eşdeğer yazımlar: hakan-altin
Hasfiyat Dövizsource=doviz81 sembol
Eşdeğer yazımlar: doviz-apidoviz-kurlarihasfiyat-dovizhasfiyatdoviz
Yanıt Başlıkları
Gövdeyi ayrıştırmadan veri sağlığını izlemek için bu başlıkları kullanabilirsiniz.
| X-Source | İsteğe fiilen hizmet veren besleme. Gövdedeki source alanı istenen anahtarı yansıtır. |
| X-Fallback | Yalnızca yedek beslemeye geçildiğinde 1 değeriyle eklenir. |
| X-Data-Age-Ms | Verinin önbelleğimizde tazelenmesinden bu yana geçen süre (ms). |
| X-Data-Stale | Veri yaşı 15 dakikayı aştıysa 1, aksi hâlde 0. |
| X-Data-Last-Update | Verinin yazıldığı mutlak an (ISO-8601). Gövdede lastUpdate alanı olarak da döner. |
| X-Symbol-Alias | Kaç sembolün takma ad çözümlemesiyle karşılandığı. |
| X-Derived | Yanıtta kaç türetilmiş kalem bulunduğu. |
| X-Api-Quota | Aylık REST kotası dolduğunda exceeded değeriyle eklenir (429 yanıtı). |
Pazaryeri Entegrasyonları
Hasfiyat paneli; altın ürün fiyatlarınızı 16 pazaryeri ve e-ticaret mağazasına canlı altın kuruna göre otomatik aktarır. Fiyatlar gramaj, emtia kaynağı ve marj oranınıza göre hesaplanır; tampon ve volatilite eşikleriyle gereksiz güncellemeler engellenir.
Desteklenen Platformlar
Fiyat Nasıl Hesaplanır?
Her ürün için gramaj ve baz emtia (HAS, GRAM, 22 ayar, çeyrek vb.) tanımlanır. Fiyat, seçtiğiniz kaynağın canlı değerinden hesaplanır; tampon (buffer) ve volatilite eşiği ile küçük dalgalanmalarda gereksiz güncelleme yapılmaz, marjınız korunur.
Senkronizasyon Modları
Test (Dry-run)
Hedef fiyatlar hesaplanır ve önizlenir; pazaryerine yazılmaz. Kurulumu güvenle doğrulamak için idealdir.
Canlı
Hesaplanan fiyatlar, belirlediğiniz sıklıkta pazaryerine otomatik olarak yazılır. Başlat/durdur kontrolü sizdedir.
Kurulum Adımları
- 1Panelde Pazaryerleri sayfasına gidin ve yeni entegrasyon ekleyin.
- 2Pazaryerini seçip kimlik bilgilerini (API anahtarı, mağaza adresi vb.) girin ve bağlantıyı doğrulayın.
- 3Ürünleri çekin, gramaj ve baz emtiayı eşleştirin; alış/satış marjınızı belirleyin.
- 4Test (Dry-run) modunda fiyatları önizleyin; doğruysa Canlı moda alıp gönderim sıklığını ayarlayın.
Pazaryeri eklemeden önce doğru ve güvenli kurulum için destek ekibimizle görüşmenizi öneririz.
BU SAYFADA
