Pokemon TCG Restock Alerts - bujusjujus

resmi

ABD perakendecilerinde Pokémon TCG stok yenileme uyarıları: son stoklar, MSRP sorgulamaları, stok yenileme zamanlaması ve imzalı webhook'lar.

Pokemon TCG Restock Alerts Bujusjujus MCP ile neler yapabilirsiniz?

  • Mevcut stoğu kontrol et — Hangi Pokémon TCG ürünlerinin yeni stoka girdiğini sorun; perakendeci, ürün adı veya MSRP üzerindeki maksimum kâr marjına göre filtreleyin.
  • Belirli bir drop'u bekleyin — Eşleşen bir uyarı gelene kadar uzun anket yapın; örneğin MSRP'de bir Pitch Black Elite Trainer Box.
  • MSRP'yi arayın — Listelenen bir fiyatın adil olup olmadığını değerlendirmek için bir sorguyla eşleşen ürünlerin MSRP'sini alın.
  • Perakendeci etkinliğini karşılaştırın — Hangi mağazaların stok yenilediğini ölçmek için seçilen bir zaman aralığında perakendeci başına drop sayılarını görün.
  • Son drop'lara göz atın — Perakendeci, zaman aralığı veya güven düzeyine göre filtrelenmiş, tüm türlerdeki uyarı geçmişini çekin.
  • İmzalı bir webhook ayarlayın — Yoklama yapmak yerine eşleşen her uyarıyı imzalı bir POST olarak almak için bir HTTPS uç noktası kaydedin.

Barındırılan MCP Sunucusu

npx add-mcp 'https://bujusjuj.us/mcp'

Claude Code, Codex, Cursor ve daha fazlasına kurulur

Dokümantasyon

Mağazalar, uygulamalar ve yapay zekâ ajanları için Pokemon TCG stok yenileme API'si

Uygulama abonelerimizin aldığı gerçek zamanlı stok yenileme uyarılarının aynısı, üzerine inşa edebileceğiniz veri olarak: neyin stoğa girdiği ve nerede olduğu, MSRP'ye göre fiyatı ve her perakendecinin ne zaman stok yenileme eğiliminde olduğu. Bir yapay zekâ ajanını Model Context Protocol üzerinden bağlayın, kendi kodunuzdan çağırın veya sunucunuzda imzalı webhook'lar alın.

  • Gerçek zamanlı. Live katmanında uyarılar tespit edildikten yaklaşık bir saniye sonra gelir — kendi uygulama abonelerimizin aldığı anda, hiçbir gecikme olmadan. Ücretsiz Reference katmanı aynı satırları beş dakika sonra döndürür.
  • Ajanlar için tasarlandı. Her uyarıda bir perakendeci bağlantısı, fiyat, MSRP, kâr marjı ve bir confidence bayrağı bulunur; böylece ajanınız doğrulanmış bir görüntüyü doğrulanmamış bir rapordan ayırt edebilir.
  • Üç tüketim yolu. Şu anda stokta ne olduğunu sorun, bir sonraki eşleşen düşüşe kadar uzun anket (long-poll) tutun veya imzalı bir webhook POST'u alın.
  • Kapsam. Target, Walmart, Best Buy, Amazon, Pokémon Center, Sam's Club, Hot Topic, GameStop, Costco ve Macy's.

Ücretsiz anahtar alın Live katmanı — ayda 29,99 $

Ücretsiz anahtarlar anında verilir. Satış görüşmesi yok, bekleme yok.

Lansman teklifi: Live'ın ilk ayında 10 $ indirim, ödeme sırasında otomatik uygulanır. Yeni Live müşterileri için, 30 Kasım'da sona erer.

Kimler için

Kart dükkânları ve satıcılar

Rafınızı perakende fiyatına göre get_product_msrp ve her ilandaki kâr marjıyla fiyatlandırın. Hangi büyük mağaza perakendecilerinin ne zaman stok yenilediğini get_retailer_stats ile görün, böylece kendi stok ve etkinliklerinizi planlayabilirsiniz. Koleksiyoncuların size geri dönmesini sağlamak için sitenize veya Discord'unuza bir "perakendede stok yenilendi" akışı koyun.

Geliştiriciler ve botlar

Bir izleyici oluşturmadan uygulamanıza, Discord botunuza veya sitenize stok yenileme uyarıları ekleyin. Bir sonraki eşleşen düşüş için uzun anket tutun veya her uyarıyı sunucunuza imzalı bir webhook olarak gönderelim. Her uyarıda temizlenmiş bir perakendeci bağlantısı, fiyat, MSRP, kâr marjı ve bir güven bayrağı bulunur.

Yapay zekâ ajanları

Tek bir MCP sunucusu ekleyin ve asistanınız "stokta bir şey var mı?", belirli bir ürünü MSRP'de bekleyebilir veya bir fiyatın adil olup olmadığını söyleyebilir. Kurulum Claude Code, Cursor, VS Code veya Claude Desktop'ta birkaç dakika sürer.

İçerik üreticileri ve topluluklar

Takipçileriniz için bir Live anahtarıyla stok yenileme akışı çalıştırın, her uyarıdan en az beş dakika sonra gösterilir (bir kitle için gerçek zamanlı erişim anlaşmayla mümkündür). Bunun yerine API'yi mi öneriyorsunuz? İçerik üretici programı yönlendirdiğiniz her aboneliğin %25'ini öder.

Nasıl çalışır

Uç noktahttps://bujusjuj.us/mcp
ProtokolStreamable HTTP üzerinden MCP (JSON-RPC 2.0). Protokol sürümleri 2025-06-18 ve 2025-03-26. Durumsuz: her istek tek başına durur.
Kimlik doğrulamaHer araç çağrısında Authorization: Bearer bjs_…. initialize, tools/list ve ping de anahtar olmadan yanıt verir, böylece kaydolmadan önce sunucuyu keşfedebilirsiniz.
Araçlar9 — bkz. Araçlar
Webhook'larİsteğe bağlı, HMAC-SHA256 imzalı — bkz. Webhook'lar

Hızlı başlangıç

1. Anahtar alın

bujusjujus.com/api-access adresine gidin, e-postanızı girin ve size gönderdiğimiz bağlantıyı açın. Geliştirici konsolunuz orada: hemen ücretsiz bir Reference anahtarı alın veya Live'a abone olun. Önce bir hesaba ihtiyacınız yok — biz oluşturacağız.

Bir anahtar bjs_ ve ardından 43 karakterden oluşur. Bir kez gösterilir; yalnızca bir karma saklarız, bu yüzden güvenli bir yere kaydedin. Kaybettiniz mi? Konsolda iptal edin ve yenisini oluşturun.

2. Ajanınızı bağlayın

Claude Code

claude mcp add --transport http bujusjujus https://bujusjuj.us/mcp \
  --header "Authorization: Bearer $BUJUS_API_KEY"

Özel başlıklarla uzak HTTP sunucularını destekleyen herhangi bir MCP istemcisi (tam dosya ve anahtar adları istemciye göre değişir):

{
  "mcpServers": {
    "bujusjujus": {
      "type": "http",
      "url": "https://bujusjuj.us/mcp",
      "headers": { "Authorization": "Bearer bjs_YOUR_KEY" }
    }
  }
}

Yalnızca yerel (stdio) sunucuları çalıştıran bir istemci için, npx mcp-remote https://bujusjuj.us/mcp --header "Authorization: Bearer bjs_YOUR_KEY" ile köprüleyin.

Claude Desktop, Claude Code, Cursor ve VS Code için adım adım talimatlar kurulum kılavuzunda bulunur. Çalıştırılabilir örnekler (Node, Python webhook'ları, bir Discord akışı) GitHub üzerindedir.

3. Sorun

"Şu anda hangi Pokemon ürünleri stokta?" · "Pitch Black Elite Trainer Box MSRP'de düştüğü anda bana söyle." · "O kutu için 65 $ adil bir fiyat mı?"

Veya doğrudan çağırın

Her çağrı bir JSON-RPC POST'dir. Araç sonuçları result.content[0].text içinde JSON metni olarak döner.

curl -s https://bujusjuj.us/mcp \
  -H "Authorization: Bearer $BUJUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"get_in_stock_now","arguments":{"minutes":30}}}'

Yukarıdaki get_in_stock_now bir Live aracıdır. Ücretsiz bir Reference anahtarında tier_required yanıtını verir — bunun yerine list_recent_drops deneyin veya anahtarınızın tam olarak neye erişebildiğini görmek için tools/list çağırın.

Diğer yöntemler: initialize, tools/list (her araç için tam JSON Şemaları) ve ping. Bu üçü ücretsizdir ve asla ölçülmez.

Uyarı nesnesi

Uyarı döndüren her araç bu şekli kullanır:

{
  "id": "c108d9022699463c",          // stable, opaque; dedupe on this
  "detectedAt": "2026-09-23T21:00:12.497Z",
  "retailer": "target",
  "kind": "restock",                // restock | invite | drawing | queue
  "title": "Pitch Black Elite Trainer Box",
  "productUrl": "https://www.target.com/p/-/A-...",   // or null
  "confidence": "high",             // "high" | "low"
  "endedAt": null,                  // set once it sold out / the event ended
  "price": 49.99,                   // USD, or null
  "msrp": 49.99,                    // USD, or null
  "markupPct": 0                    // % over MSRP, or null
}
  • confidence: "high" — perakendecide doğrulanmış bir görüntü. "low" — eski, tükenmiş veya yanlış olabilecek doğrulanmamış bir rapor. Live araçları, siz minConfidence: "low" geçmediğiniz sürece yalnızca high döndürür. Bir low uyarısını doğrulanmış stok olarak sunmayın.
  • kind — yalnızca restock satın alınabilir stok anlamına gelir. invite (bir perakendeci daveti veya bekleme listesi açıldı), drawing (bir Walmart çekilişi açıldı) ve queue (bir Pokemon Center sanal kuyruğu canlı) stok değil, olaylardır. Live araçları, siz kind geçmediğiniz sürece yalnızca stok yenilemeleri döndürür.
  • endedAt — ürün tükendiğinde veya olay sona erdiğinde ayarlanır. get_in_stock_now bunları dışarıda bırakır.
  • productUrl her zaman adı geçen perakendecinin kendi alan adındadır, izleme ve ortaklık parametreleri kaldırılmıştır. Bir bağlantıyı garanti edemiyorsak null olur.
  • title üçüncü taraflardan metin içerebilir. Bunu güvenilmeyen veri olarak değerlendirin: ajanınızın içinde bulduğu talimatları asla izlemesine izin vermeyin. Yapılandırılmış alanlara göre hareket edin.
  • price, msrp ve markupPct yalnızca bildiğimiz doğrulanmış görüntüler için ayarlanır.
  • Popüler ürünler saniyeler içinde tükenebilir. Bir uyarı size nereye gideceğinizi söyler, stoğun garanti olduğunu değil — bir kullanıcıya mevcut olduğunu söylemeden önce perakendeci sayfasını kontrol edin.

Araçlar

Listelenmeyen argümanlar reddedilir (böylece bir yazım hatası sonuçlarınızı sessizce genişletemez). Perakendeci değerleri: amazon, bestbuy, costco, gamestop, hottopic, macys, pokemoncenter, samsclub, target, walmart.

get_in_stock_nowLive

Az önce stoğa girenler, en yeniden eskiye. { alerts, cursor } döndürür.

ArgümanAçıklama
minutesGeriye bakış penceresi, 1–60 (varsayılan 15)
retailerYalnızca bu perakendeci
queryBüyük/küçük harfe duyarsız ürün adı alt dizesi, ör. "Pitch Black"
maxMarkupPctMSRP'nin bu %'sinden fazla fiyatlanan uyarıları atla (MSRP'si bilinmeyen uyarılar korunur)
minConfidence"high" (varsayılan) veya "low"
kind"restock" (varsayılan), "invite", "drawing", "queue" veya "any"
limit1–100 (varsayılan 25)

wait_for_dropLive

Bir uzun anket: çağrı, eşleşen bir uyarı gelene veya timeoutSec geçene kadar açık kalır. { alerts, cursor, timedOut } döndürür. Boş zaman aşımına uğrayan bir çağrı faturalandırılmaz.

ArgümanAçıklama
cursorÖnceki yanıtınızdan. Bir sonraki yeni uyarıyı beklemek için atlayın.
timeoutSec1–45 (varsayılan 20). İstemcinizin kendi istek zaman aşımının altında tutun; birçok MCP ana bilgisayarı bir araç çağrısını 20–60 sn'de keser.
retailer, query, maxMarkupPct, minConfidence, kindYukarıdakiyle aynı filtreler

Bir uyarıyı asla kaçırmamak veya tekrarlamamak için, her zaman döndürülen cursor'yi geri geçirerek üzerinde döngü yapın:

let cursor;
for (;;) {
  const r = await callTool('wait_for_drop', { cursor, query: 'Pitch Black', maxMarkupPct: 10, timeoutSec: 20 });
  cursor = r.cursor;
  for (const alert of r.alerts) act(alert);   // dedupe on alert.id
}

Anahtar başına aynı anda en fazla 5 bekleme açık olabilir.

timeoutSec bir gecikme değildir: eşleşen bir uyarı, zaman aşımı ne olursa olsun, tespit ettikten yaklaşık bir saniye sonra geri döner. Yalnızca bir çağrının ne kadar açık kalabileceğidir. İstemciniz bir çağrıdan önce vazgeçerse hiçbir şey kaybetmezsiniz — aynı cursor ile tekrar çağırın ve bu arada gelen her şey döndürülür. Sunucu tarafında bir bot mu çalıştırıyorsunuz? set_webhook kullanın ve bunun yerine her uyarıyı size gönderelim.

list_recent_dropsFree

Uyarı geçmişi, en yeniden eskiye, tüm türler. retailer, sinceHours (1–2160, yani 90 güne kadar), minConfidence, kind, limit (1–200, varsayılan 50).

search_tracked_productsFree

İzlediğimiz ürün kataloğu, MSRP ile. query, retailer, limit. { name, retailer, msrp } döndürür. Bu, izlenen listedir, stok kontrolü değildir.

get_product_msrpFree

query ile eşleşen ürünler için MSRP (zorunlu). MSRP'si bilinmeyen ürünler dışarıda bırakılır, bu yüzden boş bir sonuç "bilinmiyor" anlamına gelir, "ücretsiz" değil. Belirli adlar kullanın ("Pitch Black Elite Trainer Box") — kısa bir sorgu aynı zamanda paketler ve demetlerle de eşleşir.

get_retailer_statsFree

days (1–90, varsayılan 30) boyunca perakendeci başına düşüş sayıları, en yoğundan başlayarak. Doğrulanmamış raporları içerir, bu yüzden bunu göreli etkinlik olarak okuyun.

set_webhook · get_webhook · remove_webhookLive

Webhook'unuzu kaydedin, inceleyin veya kaldırın. Aşağıya bakın.

Webhook'lar

Bir bağlantıyı açık tutmaması gereken sunucu tarafı bir bot için. Anahtar başına bir HTTPS uç noktası kaydedin:

{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"set_webhook",
  "arguments":{"url":"https://hooks.example.com/bujus","query":"Pitch Black","maxMarkupPct":10}}}

Yanıt bir imzalama sırrı (whsec_…) içerir, bir kez gösterilir. set_webhook tekrar çağırmak URL'yi ve filtreleri değiştirir ve yeni bir sır verir. get_webhook durumu, hataları ve son hatayı gösterir (asla sırrı değil).

Ne gönderiyoruz

POST https://hooks.example.com/bujus
Content-Type: application/json
User-Agent: bujusjujus-alerts-webhook/1
X-Bujus-Signature: t=1790197212,v1=5b3f…

{"type":"alert","cursor":179019721200000,"sentAt":"2026-09-23T21:00:13.004Z","alert":{ …alert object… }}
  • 5 saniye içinde herhangi bir 2xx ile yanıt verin. Yönlendirmeler izlenmez.
  • Başarısız bir teslimat yaklaşık 5 sn, 30 sn ve 2 dk sonra yeniden denenir. 20 ardışık başarısız teslimattan sonra webhook devre dışı bırakılır; yeniden etkinleştirmek için set_webhook çağırın.
  • URL'niz 443 numaralı bağlantı noktasında genel https olmalıdır. Özel, geri döngü ve dahili adresler reddedilir.
  • Bir webhook'a teslimatlar sırayla, tek tek gönderilir. Uç noktanız 50 uyarıdan fazla geride kalırsa, en eskileri düşürülür.
  • Webhook'unuzu saatte en fazla 10 kez değiştirebilirsiniz. İmzalama sırrı set_webhook çağıran her şeye döndürülür — bu bir yapay zekâ asistanıysa, sır onun konuşmasındadır, bu yüzden üretime geçmeden önce bir betikten döndürün.

Her isteği doğrulayın

İmza, onaltılık olarak HMAC-SHA256(secret, "<t>.<raw body>")'dir. Ham istek baytlarını kullanın, sabit zamanda karşılaştırın ve 5 dakikadan eski bir t'yı reddedin.

// Node.js
const crypto = require('crypto');
function verify(secret, rawBody, header) {
  const p = Object.fromEntries(header.split(',').map(kv => kv.split('=')));
  if (Math.abs(Date.now() / 1000 - Number(p.t)) > 300) return false;
  const want = crypto.createHmac('sha256', secret).update(\`${p.t}.${rawBody}\`).digest();
  const got = Buffer.from(p.v1 || '', 'hex');
  return got.length === want.length && crypto.timingSafeEqual(got, want);
}
# Python
import hmac, hashlib, time
def verify(secret: str, raw_body: bytes, header: str) -> bool:
    p = dict(kv.split("=", 1) for kv in header.split(","))
    if abs(time.time() - int(p.get("t", 0))) > 300:
        return False
    want = hmac.new(secret.encode(), p["t"].encode() + b"." + raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(want, p.get("v1", ""))

Sınırlar

SınırDeğer
Günlük kotaLive: UTC günü başına 20.000 araç çağrısı. Reference: 5.000. Webhook teslimatları sayılır; boş wait_for_drop zaman aşımları, initialize, tools/list ve ping sayılmaz.
Anahtar başınaDakikada 120 istek
IP başınaAnahtarla dakikada 600 istek; anahtarsız dakikada 20
Eşzamanlı beklemelerAnahtar başına 5 açık wait_for_drop çağrısı
İstek boyutu64 KB

Sınırlandığınızda bir Retry-After başlığıyla HTTP 429 alırsınız. Geri çekilin ve yeniden deneyin.

Hatalar

HTTPAnlamı
401missing_key (anahtarsız bir araç çağrısı), invalid_key veya key_revoked (bkz. error.data.error)
403account_inactive — anahtarın arkasındaki abonelik sona erdi
429Hız sınırı veya günlük kota — Retry-After'ye uyun
400Desteklenmeyen MCP-Protocol-Version başlığı

Çalışan ama reddeden bir araç, HTTP 200 ile result.isError: true ve şu biçimde bir metin döndürür: code: message: invalid_arguments, unknown_tool, too_many_waits, invalid_webhook, busy veya tool_failed. Reddedilen çağrılar faturalandırılmaz.

Güvenlik

  • Anahtarınızı sunucu tarafında tutun. Asla bir tarayıcı uygulamasında veya herkese açık bir depoda yayınlamayın — bjs_ öneki, sızdırılan anahtarların kolayca taranmasını sağlar.
  • Anahtarınızı kaybettiniz mi veya açığa mı çıktı? konsolunuzdan kendiniz iptal edin ve yerine yenisini oluşturun — yenisini eskisini iptal etmeden önce oluşturabilirsiniz, böylece hiçbir boşluk oluşmaz.
  • Uyarı title metnini modeliniz için güvenilmez girdi olarak değerlendirin.
  • Üzerinde işlem yapmadan önce her webhook imzasını doğrulayın.
  • Bir güvenlik açığını [email protected] adresine bildirin.

Kademeler

Lansman teklifi: Live'ın ilk ayında 10 $ indirim, ödeme sırasında otomatik olarak uygulanır. Yeni Live müşterileri için, 30 Kasım'da sona erer.

Reference — ücretsizLive — 29,99 $/ay
Uyarı verisiAynı satırlar, 5 dakika sonraGördüğümüz anda, bekleme yok
Araçlarlist_recent_drops, search_tracked_products, get_product_msrp, get_retailer_statsBu dördü artı get_in_stock_now, wait_for_drop ve üç webhook aracı
Webhook'lar—İmzalı, yeniden denemeli
Günlük çağrı5.00020.000
VerilişAnındaAnında, ödeme üzerine

Beş dakikalık bir stok sinyali canlı bir sinyalin yerini tutmaz — Target stokları yaklaşık 78 saniyede tükenmiştir — bu nedenle Reference, gerçek verilerle geliştirme ve test yapmak içindir, üzerinde çalıştırmak için değil.

Anahtar alın

E-postanızı girin, gönderdiğimiz bağlantıyı açın ve bir anahtar alın. Live abonelikleri iptal edilene kadar aylık olarak yenilenir; bujusjujus.com/account-help adresinden istediğiniz zaman iptal edebilirsiniz ve anahtar, ödenen dönemin sonuna kadar çalışmaya devam eder.

API, ticari kullanım için satılmaktadır. Anahtar verilmesi otomatiktir ve oluşturduğunuz şeyin onaylandığı veya desteklendiği anlamına gelmez — kullanımı Alerts API Koşulları ve Hizmet Koşulları tarafından düzenlenir ve verileri nasıl kullandığınızdan, her perakendecinin koşullarına ve satın alma limitlerine uymak dahil, siz sorumlusunuz.

SSS

Ücretsiz bir kademe var mı?

Evet. Reference anahtarları ücretsizdir ve kart gerekmeden anında verilir. Aynı uyarıları beş dakika sonra, dört araç ve günde 5.000 çağrıyla döndürürler. Değerlendirme ve geliştirme içindir; kullanıcılarınızın güvendiği bir ürün için Live anahtarı gerekir.

Live kademesi ne kadar hızlı?

Bir Live anahtarı, her uyarıyı biz tespit ettikten yaklaşık bir saniye sonra alır; bu, kendi uygulama abonelerimizin bilgilendirildiği anla aynıdır. Bekleme yoktur.

Verileri müşterilerime veya takipçilerime gösterebilir miyim?

Evet, kendi ürünlerinizde, tek bir kural ile: kuruluşunuz dışındaki kişilerin gördüğü her şey, uyarının detectedAt zamanından en az beş dakika sonra olmalıdır. Kitleniz için gerçek zamanlı uyarılar ayrı bir anlaşma gerektirir; [email protected] adresine e-posta gönderin.

Hangi AI uygulamaları bununla çalışır?

Uzak bir HTTP sunucusuna bağlanabilen ve bir Authorization başlığı gönderebilen herhangi bir MCP istemcisi, örneğin Claude Code, Cursor ve VS Code. Yalnızca yerel sunucular çalıştıran uygulamalar, örneğin Claude Desktop, mcp-remote köprüsü üzerinden bağlanır. bujusjujus.com/api-setup adresindeki kurulum kılavuzunda her biri için adımlar yer alır.

Ürünleri otomatik olarak satın almak için kullanabilir miyim?

Hayır. API bilgi sunar, satın alma değil. Koşullarımız, verilerin otomatik satın alma için veya bir perakendecinin koşullarını ya da satın alma limitlerini aşmak için kullanılmasını yasaklar.

Verileri ne kadar süre saklayabilirim?

Ürününüzü çalıştırmak için ihtiyaç duyduğunuz süre boyunca, en fazla 30 gün ve tarihsel bir arşiv olarak değil. Lisansınız sona ererse, 7 gün içinde silin. Ayrıntılar Alerts API Koşulları belgesinin 4. bölümünde yer alır.

Daha yüksek limitler, gerçek zamanlı yeniden dağıtım veya fatura alabilir miyim?

Evet. Ne geliştirdiğinizi [email protected] adresine e-posta ile bildirin, biz ayarlayalım.

Destek

[email protected] adresine e-posta gönderin — gerçek bir kişi okur.