GTIN Data Hub
Dokümantasyon

API — beş dakikada ilk isteğiniz.

REST, JSON, tek anahtar. Aşağıdaki her uç canlıdır ve örnekler gerçek yanıt biçimini gösterir.

Bir çağrı hangi kapılardan geçer?src/app.ts’teki gerçek sıra
AnahtarAuthorizationbaşlığı401 unauthorizedHız sınırıdakikalıkistek hakkı429 rate_limitKota kapısıaylık kalemhakkı402 kota_dolduDoğrulamamod-10 + GS1önek400 invalid_gtinYanıtJSON ya daCSVHER ÇAĞRI BU SIRAYLA GEÇERKesikli çizgi: kapıdan geçemezse dönen kod. Kısmi sonuç yok — kota yetmiyorsa iş tamamen reddedilir.

Kapılar bu sırayla çalışır: kimliği çözülemeyen istek kotaya hiç dokunmaz, kotası yetmeyen istek doğrulamaya hiç girmez. Kısmi sonuç yoktur — 100 kalemlik iş 40 kalem kaldıysa tamamen reddedilir; yarım sonucu tam sonuç gibi vermek en kötüsü olurdu.

1 · Anahtar alın

Panele girin, API Anahtarları ekranından üretin. Ham anahtar yalnız bir kez gösterilir; veritabanında sadece SHA-256 özeti durur, kaybedilirse yenisi üretilir.

Anahtar üretmek yönetici yetkisi ister. Bir API anahtarıyla yeni anahtar üretilemez — sızan tek bir anahtar sonsuz sayıda kalıcı anahtara dönüşmesin diye.

2 · Kimlik doğrulama

Anahtarı iki başlıktan biriyle gönderin.

HTTPİstek başlığı
x-api-key: gtin_live_XXXXXXXXXXXX
— ya da —
Authorization: Bearer gtin_live_XXXXXXXXXXXX
Anahtarsız istek 401 döner. Panelden gelen istekler oturum çerezini kullanır; anahtar gerekmez.

3 · Tek numara

Bir numara nasıl çözümlenir?tek istekte
4006381333931GS1 önekinumarayı kimin verdiğişirket koduGS1 üyesi işletmeürün koduişletmenin kendi atamasıkontrolmod-10 ile hesaplanır

Yanıttaki issuer alanı bu öneki karşılar. Dikkat: önek menşe ülke değildir; numarayı kimin verdiğini gösterir.

Kontrol basamağı nasıl bulunur?GS1 mod-10
rakamağırlıkçarpım4×140×300×106×3183×138×3241×113×393×133×399×193×39toplam 89 → 10 − (89 mod 10) = 1son hane 1 ile aynı → numara tutarlı

Sayfadaki bu hesap elle yazılmadı; ürünün kullandığı aynı kuralla üretildi. Geçersiz bir numarada size “geçersiz” demekle kalmayıp olması gereken rakamı söylememizin sebebi bu.

GET/v1/gtins/{gtin}
{
  "input": "4006381333931",
  "compact": "4006381333931",
  "valid": true,
  "type": "GTIN-13",
  "gtin14": "04006381333931",
  "checkDigit": "1",
  "expectedCheckDigit": "1",
  "issues": [],
  "issuer": {
    "prefix": "400-440",
    "issuer": "GS1 Germany",
    "countryCode": "DE",
    "kind": "company"
  },
  "product": null
}
AlanNe
validKontrol basamağı GS1 mod-10 kuralına uyuyor mu.
typeGTIN-8, GTIN-12, GTIN-13, GTIN-14.
gtin1414 haneli karşılığı — eşleştirme için bunu kullanın.
expectedCheckDigitGeçersizse olması gereken rakam.
issuesSorun kodları; geçerliyse boş dizi.
issuerNumarayı veren GS1 kuruluşu, ülke ve önek. Tahsis edilmemiş önekte null.
productSizin kataloğunuzdan ad, marka, kategori, görsel. Kataloğunuzda yoksa null.

4 · Toplu doğrulama

JSON listesi ya da doğrudan CSV gövdesi. Tek işte 10.000 numaraya kadar.

POST/v1/batches
Content-Type: application/json

{ "gtins": ["4006381333931", "8690504045618"] }

— ya da CSV gövdesi (text/csv): GTIN sütunu otomatik bulunur —
Ne yapar
POST /v1/batchesİşi başlatır, 202 ve iş kimliği döner.
GET /v1/batchesSon işleri listeler.
GET /v1/batches/{id}Durum ve ilerleme.
GET /v1/batches/{id}/resultsSonuçlar; offset ve limit ile sayfalanır.
GET /v1/batches/{id}/result.csvTamamını CSV olarak indirir.
Sonuçlar kalıcıdır — servis yeniden başlasa bile kaybolmaz. 60 dakika saklanır.

5 · Kendi kataloğunuz

Yüklediğiniz alanlar her sorguda product içinde döner. Katalog yüklemek kotadan düşmez.

CSVBeklenen sütunlar
gtin,urun_adi,marka,kategori,gorsel_url
4006381333931,STABILO BOSS Fosforlu Kalem,STABILO,Kırtasiye,https://...
8690504045618,Çikolatalı Gofret 36 g,Örnek Marka,Gıda,
SütunZorunluNot
gtinevetHerhangi bir GTIN biçimi; 14 haneye normalleştirilir.
urun_adihayırEn fazla 300 karakter.
markahayır
kategorihayırSerbest metin.
gorsel_urlhayırYalnız https kabul edilir.

6 · Kullanım ve kota

GET/v1/usage
{ "requests": 128, "items": 4210 }

GET /v1/usage/daily günlük kırılımı verir. İstek ile kalem farklıdır: 100 numaralık bir toplu iş 1 istek ama 100 kalemdir; faturalama kalem üzerinden yapılır.

Yanıt kodları

Altı kod. Hepsi gövdede bir error anahtarıyla gelir; hiçbiri sessizce boş sonuç döndürmez.

Ne zaman hangi kod?geçersiz numara da 200’dür
200— hata yokgeçerli ya da geçersiz, ikisi de 200’dür400invalid_gtinnumara okunamadı ya da uzunluk tutmuyor401unauthorizedanahtar yok, yanlış ya da süresi dolmuş402kota_dolduaylık kalem hakkı bitti403abonelik_yokhesapta etkin paket yok429rate_limit_exceededdakikalık istek hakkı aşıldı

Kafa karıştıran nokta: geçersiz bir numara hata değildir. Çağrı başarılıdır, yanıt valid: false der. 400 ancak numara hiç okunamadığında döner.

Kotanızı yanıttan okuyun

Sormanıza gerek yok; her yanıt kalan hakkınızı taşır. Kotanın bittiğini 402 ile öğrenmek zorunda değilsiniz.

Her yanıtta dönen başlıklarsürpriz kesinti olmasın diye
x-ratelimit-remainingbu dakika kalan istekx-ratelimit-resetsayacın sıfırlanacağı anx-quota-remainingbu dönem kalan kalemx-quota-limitdönem toplam hakkıx-quota-resetdönemin bittiği tarih

7 · Sınırlar ve hatalar

KodNe zamanNe yapmalı
400Gövde ya da CSV okunamadı.Alan adlarını ve biçimi kontrol edin.
401Anahtar yok, yanlış ya da iptal edilmiş.Panelden yeni anahtar üretin.
403Yetki yetersiz (ör. üye anahtar üretemez).Yönetici yetkisi gerekir.
413Toplu iş 10.000 kalemi aştı.Listeyi bölün.
429Dakikalık istek ya da kalem sınırı aşıldı. retry-after başlığındaki süre kadar bekleyin.
kota_dolduAylık kalem hakkınız bitti. Paketi yükseltin ya da dönem başını bekleyin.
503Aynı anda çok fazla açık toplu iş.Kısa süre sonra tekrar deneyin.

Yanıt başlıklarında kalan hakkınız gelir: x-ratelimit-remaining, x-item-ratelimit-remaining.

Anahtarınızı alın

Panele girin, API Anahtarları ekranından üretin. Hesabınız yoksa kurum yöneticiniz açar.

Panele giriş