Skip to content

altinapi/altinapi-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

altinapi — Türkiye Altın & Döviz Fiyat API'si (Go SDK)

Go Reference Go Report Card Go version License: MIT

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.


🎯 Harem Altın ile Birebir Aynı Fiyat Verisi

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.

🔑 Ücretsiz API key al →


🚀 Niye altinapi?

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 ⚠️ Sınırlı
Gecikme <1 saniye 5-60 saniye (REST polling)
WebSocket ✅ Socket.io ⚠️ Genellikle yok
Fiyatlandırma $0 - $99/ay $50 - $500/ay

📦 Özellikler

  • 🥇 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

📥 Kurulum

go get github.com/altinapi/altinapi-go

⚡ Hızlı Başlangıç

REST API — Anlık Fiyat Sorgusu

package 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)
}

WebSocket — Gerçek Zamanlı Akış

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()
}

🏷️ Sembol Kategorileri

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

Tüm sembol listesi →


📚 Kullanım Senaryoları

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

📖 API Referansı

NewClient(apiKey string, opts ...Option) (*Client, error)

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)

REST Metotları

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ı

WebSocket Metotları

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

WebSocket Eventleri (sabitler)

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ı

⚠️ Hata Yönetimi

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 Limitleri

Plan REST WebSocket bağlantı
Ücretsiz Deneme 30 / ay
Starter 30 / dakika
Pro 60 / dakika 3
Enterprise Özel 10

Fiyatlandırma →


📂 Örnekler

Çalıştırılabilir örnekler /examples klasöründe:

ALTINAPI_KEY=hapi_xxx go run ./examples/rest
ALTINAPI_KEY=hapi_xxx go run ./examples/websocket

🧪 Test

go test ./...

❓ Sık Sorulan Sorular

Bu Harem Altın'ın resmi API'si mi?

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.

"Harem Altın API'si" arıyorum, bu uygun mu?

altinapi, "Harem Altın API'si" arayan geliştiriciler için bağımsız bir alternatif olarak konumlandırılır.

Go modülünü gRPC servisinde kullanabilir miyim?

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.

Concurrent kullanım güvenli mi?

Evet — REST çağrıları goroutine-safe'tir. WebSocket için handler'lar sync.Mutex ile korunur.

TCMB resmi kurları da var mı?

Şu an feed'imizde TCMB resmi kurları yer almıyor. İhtiyacınıza göre custom plan talep edebilirsiniz: support@altinapi.com


🏷️ Bu Paketin Aranabilirliği

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


🤝 Katkıda Bulunma

Issue ve pull request'leriniz için: github.com/altinapi/altinapi-go


📄 Lisans

MIT © altinapi


🔗 Bağlantılar


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.

About

🇹🇷 Harem Altın ile aynı veri | Türkiye'nin gerçek zamanlı altın, döviz, gümüş, platin & sarrafiye fiyat API'si — REST + WebSocket | Resmi Go SDK

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages