Pokemon TCG Restock Alerts - bujusjujus
resmiABD 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
confidencebayrağı 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ç nokta | https://bujusjuj.us/mcp |
|---|---|
| Protokol | Streamable 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ğrulama | Her 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çlar | 9 — 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ı, sizminConfidence: "low"geçmediğiniz sürece yalnızcahighdöndürür. Birlowuyarısını doğrulanmış stok olarak sunmayın.kind— yalnızcarestocksatın alınabilir stok anlamına gelir.invite(bir perakendeci daveti veya bekleme listesi açıldı),drawing(bir Walmart çekilişi açıldı) vequeue(bir Pokemon Center sanal kuyruğu canlı) stok değil, olaylardır. Live araçları, sizkindgeç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_nowbunları dışarıda bırakır.productUrlher 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 edemiyorsaknullolur.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,msrpvemarkupPctyalnı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üman | Açıklama |
|---|---|
minutes | Geriye bakış penceresi, 1–60 (varsayılan 15) |
retailer | Yalnızca bu perakendeci |
query | Büyük/küçük harfe duyarsız ürün adı alt dizesi, ör. "Pitch Black" |
maxMarkupPct | MSRP'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" |
limit | 1–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üman | Açıklama |
|---|---|
cursor | Önceki yanıtınızdan. Bir sonraki yeni uyarıyı beklemek için atlayın. |
timeoutSec | 1–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, kind | Yukarı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
2xxile 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
httpsolmalı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ır | Değer |
|---|---|
| Günlük kota | Live: 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şına | Dakikada 120 istek |
| IP başına | Anahtarla dakikada 600 istek; anahtarsız dakikada 20 |
| Eşzamanlı beklemeler | Anahtar başına 5 açık wait_for_drop çağrısı |
| İstek boyutu | 64 KB |
Sınırlandığınızda bir Retry-After başlığıyla HTTP 429 alırsınız. Geri çekilin ve yeniden deneyin.
Hatalar
| HTTP | Anlamı |
|---|---|
401 | missing_key (anahtarsız bir araç çağrısı), invalid_key veya key_revoked (bkz. error.data.error) |
403 | account_inactive — anahtarın arkasındaki abonelik sona erdi |
429 | Hız sınırı veya günlük kota — Retry-After'ye uyun |
400 | Desteklenmeyen 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ı
titlemetnini 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 — ücretsiz | Live — 29,99 $/ay | |
|---|---|---|
| Uyarı verisi | Aynı satırlar, 5 dakika sonra | Gördüğümüz anda, bekleme yok |
| Araçlar | list_recent_drops, search_tracked_products, get_product_msrp, get_retailer_stats | Bu dördü artı get_in_stock_now, wait_for_drop ve üç webhook aracı |
| Webhook'lar | — | İmzalı, yeniden denemeli |
| Günlük çağrı | 5.000 | 20.000 |
| Veriliş | Anında | Anı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.
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.