altinapi için resmi Go SDK
Gerçek zamanlı altın fiyatları, döviz kurları, gümüş, platin, paladyum ve sarrafiye verisi — REST API ve WebSocket ile.
altinapi, Harem Altın ile aynı veri sağlayıcısından beslenir. Bu sayede uygulamanızda gösterdiğiniz fiyatlar, Harem Altın'da görünen fiyatlarla %100 örtüşür.
⚖️ Yasal not: altinapi bağımsız bir servistir. Harem Altın ile ortaklığı, iştiraki veya organik bir bağı yoktur. "Harem Altın" tescilli bir markadır; burada yalnızca veri kaynağının aynılığını belirtmek amacıyla karşılaştırma yapılmaktadır.
| altinapi | Diğer altın fiyat API'leri | |
|---|---|---|
| Veri kaynağı | Harem Altın ile aynı feed | Genelde LBMA / international ons |
| Sarrafiye desteği | ✅ Çeyrek, yarım, tam, ata, gremese | ❌ Yok |
| 22/14 ayar | ✅ Var | ❌ Yok |
| Gram altın (5/10/20/50/100 gr) | ✅ Var | ❌ Yok |
| Türk lirası pariteleri | ✅ 15+ döviz | |
| Gecikme | <1 saniye | 5-60 saniye (REST polling) |
| WebSocket | ✅ Socket.io | |
| Fiyatlandırma | $0 - $99/ay | $50 - $500/ay |
- 🥇 250+ sembol — Altın (gram & ons), gümüş, platin, paladyum, sarrafiye, döviz, parite
- ⚡ <1 saniye gecikme — Socket.io WebSocket ile anlık güncellemeler
- 🔒 Tam tip desteği — Struct'lar ve tip-güvenli handler'lar
- 🦫 Go 1.21+ — Modern Go, generics ile uyumlu
- 🌐 REST + WebSocket — Tek pakette
- 🪶 context.Context — Tüm REST çağrıları cancellation destekler
- 🔄 Otomatik reconnect — Exponential backoff dahil
go get github.com/altinapi/altinapi-gopackage main
import (
"context"
"fmt"
"log"
"github.com/altinapi/altinapi-go"
)
func main() {
client, err := altinapi.NewClient("hapi_API_KEYINIZ")
if err != nil {
log.Fatal(err)
}
ctx := context.Background()
// Tüm fiyatlar (Harem Altın ile aynı veri)
tumu, err := client.GetAllPrices(ctx)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Toplam sembol: %d\n", len(tumu.Data))
// Kategori bazlı — sadece döviz
doviz, _ := client.GetPricesByCategory(ctx, altinapi.CategoryDoviz)
for _, f := range doviz.Data {
fmt.Printf("%s: %v / %v\n", f.Symbol, f.Bid, f.Ask)
}
// Tek sembol — gram altın
altin, _ := client.GetPrice(ctx, "ALTIN")
fmt.Printf("Altın: %v – %v TL/gram\n", altin.Bid, altin.Ask)
// Sarrafiye — çeyrek altın
ceyrek, _ := client.GetPrice(ctx, "CEYREK_YENI")
fmt.Printf("Çeyrek altın: %v – %v TL\n", ceyrek.Bid, ceyrek.Ask)
}package main
import (
"fmt"
"os"
"os/signal"
"syscall"
"github.com/altinapi/altinapi-go"
)
func main() {
client, _ := altinapi.NewClient("hapi_API_KEYINIZ")
client.OnConnect(func() {
fmt.Println("✅ Bağlandı")
client.Subscribe([]string{"USDTRY", "ALTIN", "CEYREK_YENI"})
})
client.OnPrices(altinapi.EventPricesSnapshot, func(fiyatlar []altinapi.Price) {
fmt.Printf("İlk snapshot: %d sembol\n", len(fiyatlar))
})
client.OnPrices(altinapi.EventPricesUpdate, func(guncellemeler []altinapi.Price) {
for _, f := range guncellemeler {
// Harem Altın değişir değişmez sen de bilirsin
fmt.Printf("%s: %v / %v\n", f.Symbol, f.Bid, f.Ask)
}
})
client.OnDataStale(func() { fmt.Println("⚠️ Kaynak bağlantısı koptu") })
client.OnDataLive(func() { fmt.Println("✅ Kaynak bağlantısı geri geldi") })
client.Connect()
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
<-sigs
client.Disconnect()
}| Kategori (sabit) | Değer | Örnekler |
|---|---|---|
CategoryDoviz |
DOVIZ |
USDTRY, EURTRY, GBPTRY, CHFTRY |
CategoryMaden |
MADEN |
ALTIN, XAUUSD, GUMUSD, PLATIN, PALADYUM |
CategoryGramAltin |
GRAM ALTIN |
5 GR GRAM ALTIN, 10 GR GRAM ALTIN, ... |
CategorySarrafiye |
SARRAFIYE |
CEYREK_YENI, YARIM_YENI, TEK_YENI, ATA_YENI, AYAR22 |
CategoryParite |
PARITE |
EURUSD, GBPUSD, USDJPY |
altinapi şu senaryolarda kullanılır:
- Mikroservis backend'leri — gRPC veya HTTP servisinde anlık altın/döviz endpoint'i
- Trading bot'ları — Goroutine'lerde paralel arbitraj/fiyat takibi
- CLI araçları — Cobra/Viper ile altın/döviz CLI komutları
- Web scraper alternatifi — Daha güvenilir ve stabil veri kaynağı
- Background worker'lar — k6, cron job'lar ile periyodik fiyat raporu
- Kubernetes operator'leri — Anlık fiyat metric'lerini ConfigMap/Secret'a yazma
- gRPC gateway — Mobil/web istemciler için stream endpoint
| Opsiyon | Açıklama | Varsayılan |
|---|---|---|
WithBaseURL(string) |
REST base URL override | https://altinapi.com/api/v1 |
WithSocketURL(string) |
WebSocket URL override | https://altinapi.com |
WithTimeout(time.Duration) |
REST request timeout | 10 * time.Second |
WithHTTPClient(*http.Client) |
Özel HTTP client (testler için) | — |
| Metot | Dönüş | Açıklama |
|---|---|---|
GetAllPrices(ctx) |
*PricesResponse, error |
Tüm sembolleri getirir |
GetPricesByCategory(ctx, category) |
*PricesResponse, error |
Kategori bazlı filtre |
GetPrice(ctx, symbol) |
*Price, error |
Tek sembol fiyatı |
| Metot | Açıklama |
|---|---|
Connect() error |
Socket.io bağlantısı açar |
Disconnect() |
Bağlantıyı kapatır |
Subscribe([]string) error |
Belirli sembollere abone olur |
Unsubscribe([]string) error |
Aboneliği iptal eder |
OnConnect(func()) |
Bağlantı kurulduğunda |
OnDisconnect(func()) |
Bağlantı koptuğunda |
OnConnectError(func(error)) |
Bağlantı hatasında |
OnPrices(event, func([]Price)) |
snapshot/update için tip-güvenli handler |
OnDataStale(func()) |
Kaynak bağlantısı koptu |
OnDataLive(func()) |
Kaynak yeniden bağlandı |
IsConnected() bool |
Bağlantı durumu |
| Sabit | Veri | Ne zaman |
|---|---|---|
EventConnect |
— | Bağlantı kuruldu |
EventDisconnect |
— | Bağlantı kapandı |
EventPricesSnapshot |
[]Price |
Bağlantı anında — tüm güncel fiyatlar |
EventPricesUpdate |
[]Price |
Fiyat değişiminde |
EventDataStale |
— | Kaynak bağlantısı koptu |
EventDataLive |
— | Kaynak yeniden bağlandı |
EventConnectError |
error |
Bağlantı hatası |
import "errors"
altin, err := client.GetPrice(ctx, "GECERSIZ")
if err != nil {
var apiErr *altinapi.Error
if errors.As(err, &apiErr) {
fmt.Printf("[%d] %s\n", apiErr.StatusCode, apiErr.Message)
}
}| Kod | Anlamı |
|---|---|
401 |
API key eksik veya geçersiz |
403 |
Abonelik aktif değil |
404 |
Sembol veya kategori bulunamadı |
429 |
Rate limit aşıldı |
503 |
Kaynak bağlantısı kesildi (eski veri) |
| Plan | REST | WebSocket bağlantı |
|---|---|---|
| Ücretsiz Deneme | 30 / ay | — |
| Starter | 30 / dakika | — |
| Pro | 60 / dakika | 3 |
| Enterprise | Özel | 10 |
Çalıştırılabilir örnekler /examples klasöründe:
examples/rest— REST API kullanımıexamples/websocket— gerçek zamanlı akış
ALTINAPI_KEY=hapi_xxx go run ./examples/rest
ALTINAPI_KEY=hapi_xxx go run ./examples/websocketgo test ./...Hayır. altinapi bağımsız bir servistir. Harem Altın ile ortaklığı, iştiraki veya organik bir bağı yoktur. Fiyatlar birebir örtüşür çünkü aynı veri sağlayıcısından beslenir.
altinapi, "Harem Altın API'si" arayan geliştiriciler için bağımsız bir alternatif olarak konumlandırılır.
Evet. REST çağrıları context.Context desteği sayesinde gRPC handler içinde doğrudan kullanılabilir; WebSocket akışını ayrı bir goroutine'de tutup channel ile gRPC stream'e push edebilirsiniz.
Evet — REST çağrıları goroutine-safe'tir. WebSocket için handler'lar sync.Mutex ile korunur.
Şu an feed'imizde TCMB resmi kurları yer almıyor. İhtiyacınıza göre custom plan talep edebilirsiniz: support@altinapi.com
altinapi paketi şu aramalar için tasarlanmıştır:
altın fiyat API · altın fiyatları API · gram altın API · çeyrek altın API · sarrafiye API · döviz kuru API · döviz fiyat API · USDTRY API · EURTRY API · gerçek zamanlı altın fiyat · canlı altın fiyat API · Türkiye altın API · ons altın API · gümüş fiyat API · platin fiyat API · paladyum fiyat API · Harem Altın benzeri API · Harem Altın alternatif API · Harem API · Türkiye finans API · Go altın API · Go gold API · golang gold price API · Turkish gold price API · websocket altın akışı · go socket.io altın
Issue ve pull request'leriniz için: github.com/altinapi/altinapi-go
MIT © altinapi
- 🌐 Web sitesi: altinapi.com
- 📖 API Dokümantasyonu: altinapi.com/docs
- 🔑 Dashboard: altinapi.com/dashboard
- 📊 Durum: altinapi.com/status
- 💬 Destek: support@altinapi.com
Yasal Bildirim: altinapi bağımsız bir hizmettir. "Harem Altın" tescilli bir markadır ve bu pakette yalnızca veri kaynağının aynılığını belirtmek amacıyla — karşılaştırma ve bilgilendirme amaçlı (nominative fair use) — kullanılmıştır. Marka sahibi ile herhangi bir ortaklık, iştirak veya destekleme ilişkisi yoktur.