Nuvi REST API
Tüm Nuvi platformu için REST uçları — Medusa v2 ticaret yüzeyi, her modül için Nuvi uzantıları (blog, sayfa, form, medya, arama, marka, tema, yerelleştirme, kur, metafield, yönlendirme, etkinlik, seyahat, abonelik, teklif, e-posta pazarlama, izleme, çerez onayı), sosyal giriş (Google, Apple, Facebook, GitHub, Microsoft) ve /admin/ai/* + /v1/* uçlarından erişilen, kendi model anahtarınla (OpenAI, Gemini, DeepL, ElevenLabs) veya kullandıkça öde kredileriyle çalışan 24 yetenekli AI asistan.
Kimlik Doğrulama
Storefront çağrıları publishable API anahtarı ile (`x-publishable-api-key` header) yetkilendirilir. Müşteri kapsamlı çağrılar Medusa v2 auth uçlarından alınan JWT bearer ekler. Admin çağrıları admin JWT ister.
/auth/customer/emailpassE-posta + parola ile müşteri JWT oluştur
/auth/customer/emailpass/registerYeni müşteri kaydı oluştur
/auth/sessionMevcut oturumu sonlandır
Ürünler
Standart Medusa v2 ürün uçları. Varyant, fiyat ve stok satır içi döner. Tam metin arama için ayrı /store/search ucunu kullan (MeiliSearch ile).
/store/productsFiltre ile ürün listele (koleksiyon, kategori, bölge, fiyat aralığı)
/store/products/:idTek ürünü id ya da handle ile getir
/store/product-templatesAdmin ürün editörü için ürün şablonlarını listele
/store/collectionsÜrün koleksiyonlarını listele (Medusa varsayılan)
/store/categoriesÜrün kategorilerini listele (Medusa varsayılan)
/store/products/:product_id/reviewsBir ürünün onaylı yorumlarını listele (sayfalı, sıralı)
/store/products/:product_id/reviewsYeni yorum gönder (moderasyona kadar pending)
Arama
Ürün, blog yazısı, sayfa ve turlarda birleşik arama (MeiliSearch). Yazım hatası dostu, facet destekli, medyan <50ms.
/store/searchTüm indekslenmiş kaynaklarda tam metin arama
Sepet & Ödeme
Standart Medusa sepet uçları + etkinlik bileti ve tur rezervasyonu için Nuvi uzantıları. Ödeme oturumları kendi Stripe / Iyzico hesabına karşı kurulur.
/store/cartsBoş sepet oluştur
/store/carts/:id/line-itemsÜrün satır öğesi ekle
/store/carts/:id/event-itemsEtkinlik biletini satır öğesi olarak ekle (Nuvi)
/store/carts/:id/event-items/:lineItemIdEtkinlik bileti satır öğesini kaldır
/store/carts/:id/tour-itemsTur rezervasyonu satır öğesi ekle (Nuvi)
/store/carts/:id/tour-items/:lineItemIdTur satır öğesini kaldır
/store/carts/:id/payment-sessionsMevcut sağlayıcılar için ödeme oturumu kur
/store/carts/:id/completeSepeti siparişe dönüştür
/store/checkout-configAktif ödeme yapılandırması: aktif alanlar, ödeme sağlayıcıları, kargo seçenekleri
/store/payment-configBölge bazlı ödeme sağlayıcı yapılandırması
/store/bank-infoStorefront için havale ödeme talimatları
Siparişler
Standart Medusa sipariş uçları + müşteri tarafı iptal ucu.
/store/orders/meYetkili müşterinin siparişlerini listele
/store/orders/:idSiparişi id ile getir
/store/orders/:id/cancelSiparişi iptal et (iptal süresi içinde)
Müşteriler
Standart Medusa müşteri uçları. Yetkili müşteri kendi profilini ve adreslerini yönetebilir.
/store/customers/meMevcut müşteri profilini getir
/store/customers/meProfil alanlarını güncelle
/store/customers/me/addressesKargo adresi ekle
Abonelikler (tekrarlayan)
Abonelik modülü uçları — mevcut planları listele, müşteri aboneliği oluştur / yönet, yaşam döngüsü işlemleri (duraklat, devam et, plan değiştir, iptal).
/store/subscription-plansMevcut abonelik planlarını listele
/store/subscriptionsYetkili müşterinin aboneliklerini listele
/store/subscriptionsYeni abonelik oluştur
/store/subscriptions/:idAboneliği getir
/store/subscriptions/checkoutAbonelik checkout'u başlat (ödeme oturumu oluşturur)
/store/subscriptions/:id/pauseAktif aboneliği duraklat
/store/subscriptions/:id/resumeDuraklatılmış aboneliği devam ettir
/store/subscriptions/:id/change-planFarklı plana geç (prorate edilir)
/store/subscriptions/:id/cancelAboneliği iptal et
Teklif (B2B)
Quote modülünün müşteri tarafı uçları — ISG / B2B teklif talebi gönder, açık teklif kataloğuna bak, üretilen PDF'i indir.
/store/quote-requestsÜrün + özel alanlarla teklif talebi gönder
/store/quote-requests/:quote_number/pdfÜretilen teklif PDF'ini indir
/store/quote-requests/isg-configAçık ISG fiyatlandırma yapılandırması (hizmet, baz ücret, lokasyon çarpanları)
/store/quote-servicesDropdown seçici için teklif edilebilir hizmetleri listele
Blog
Page modülünden açık blog içeriği. Dil farkındalığı ile, taslak ve zamanlanmış yazılar otomatik filtrelenir.
/store/blog-postsYayınlanan yazıları listele (dil farkındalığı ile)
/store/blog-posts/:slugYazı gövdesi + temizlenmiş HTML getir
/store/blog-posts/:slug/commentsYazıya yapılmış yorumları listele
/store/blog-posts/:slug/commentsYeni yorum gönder (moderasyondan geçer)
/store/blog-categoriesKategorileri yazı sayılarıyla listele
/store/blog-categories/:slugTek kategoriyi ve yazılarını getir
/store/blog-tagsEtiketleri yazı sayılarıyla listele
/store/blog-tags/:slugTek etiketi ve yazılarını getir
/store/blog-authors/:idYazar profili ve yayınladığı yazılar
Sayfa
SEO meta'lı statik CMS sayfaları. Hazır HTML gövdesi içerir.
/store/pagesYayınlanan tüm sayfaları listele
/store/pages/:slugSlug ile statik sayfayı getir
Formlar
Açık form tanımları ve gönderim ucu. Formlar adminde yapılandırılır, her yere gömülebilir.
/store/forms/:slugForm tanımını getir (alanlar, doğrulama, yönlendirme)
/store/forms/popupAktif pop-up formu getir (varsa)
/store/form-submissionsForm gönder (opsiyonel spam token + reCAPTCHA ile)
Medya
Medya varlıklarına açık salt-okunur erişim — storefront'un meta ile görsel render etmesi için.
/store/media/:idTek varlığı ID ile getir (URL, boyut, alt metin)
E-posta Pazarlama
Liste abonelikleri, çıkış akışları ve müşteri portalının kullandığı açık inbox önizleme ucu.
/store/email-subscribeE-postayı listeye abone et (opsiyonel double opt-in ile)
/store/email-unsubscribeToken ile listeden çık (tek tıklama linki)
/store/email-unsubscribeÇıkışı onayla ve sebep kaydet
/store/newsletterBülten kayıt (anasayfa / footer widget'ları)
İzleme pikselleri
E-posta açılma + tıklama izleme uçları + genel event ingest. Açılma takibi 1×1 GIF döner; tıklama takibi hedefe 302 yönlendirir.
/store/track/open/:campaignId/:subscriberIdE-posta açılmasını piksel ile takip et
/store/track/click/:campaignId/:subscriberIdTıklama takibi yönlendirmesi
/store/track/eventsGenel analitik event girişi (page_view, add_to_cart, …)
Tema & Menüler
Aktif tema, bölüm tanımları ve çözülmüş menülere salt-okunur erişim — storefront'un dinamik sayfa render'ı için.
/store/themeAktif tema: token, bölüm, ayar
/store/menus/:handleBir handle için çözülmüş menü öğeleri (main-menu, footer-menu, …)
Marka
Marka kimliği (logo, renk, tipografi, sosyal bağlantılar, iletişim) — temaların sayfalar arası görsel tutarlılığı için.
/store/brandAktif mağaza için çözülmüş marka ayarları
Yerelleştirme
Aktif mağaza için mevcut diller ve alan bazlı çeviri override'ları.
/store/localesAktif dilleri listele (varsayılan + RTL bayrağı ile)
/store/translationsBir kaynak tipi için toplu çeviri override'larını getir
Para Birimi
Storefront'a verilen canlı kur. Kaynaklar: manuel override, ECB ve Frankfurter (otomatik failover).
/store/currency-ratesYapılandırılmış her döviz çifti için aktif kur
/store/exchange-ratesHam kur anlık görüntüsü (`base` parametresi ile)
Metafield'ler
Shopify tarzı tipli özel alanlar; ürün, sipariş, müşteri ve istediğin özel kaynağa eklenebilir.
/store/metafields/:resource_type/:resource_idBelirli bir kaynağa bağlı metafield'leri listele
Yönlendirmeler
Storefront edge'ine verilen aktif 301 / 302 yönlendirmeler. Storefront middleware'i göç haritalarına bunu kullanır.
/store/redirectsTüm aktif yönlendirmeleri listele (kaynak, hedef, statü kodu)
Etkinlikler
Açık etkinlik uçları — etkinlikleri listele, tek etkinliğe git, mevcut biletleri listele, müşterinin kayıtlarını gör.
/store/eventsYayınlanan etkinlikleri listele (dil + bölge farkındalığı ile)
/store/events/:slugTek etkinliği program + konuşmacılarla getir
/store/events/:slug/ticketsBilet varyantlarını ve kalan stoğu listele
/store/events/my-registrationsYetkili müşterinin kayıtlı etkinlikleri
Seyahat — tur & destinasyon
Travel modülü uçları — tur, destinasyon, kategori listele; tur yorumu gönder / oku.
/store/toursYayınlanan turları listele (destinasyon, süre, fiyat filtreleri)
/store/tours/:slugTek turu güzergah + kalkışlarla getir
/store/tours/:slug/reviewsTur için onaylı yorumları listele
/store/tours/:slug/reviewsYeni yorum gönder (moderasyondan geçer)
/store/destinationsSeyahat destinasyonlarını listele
/store/destinations/:slugTek destinasyonu ilgili turlarla getir
/store/tour-categoriesTur kategorilerini listele
Hizmet Rezervasyonu
Hizmet tabanlı işletmeler için genel rezervasyon ucu — randevu, danışma, atölye saati.
/store/service-bookingsBir hizmet için rezerve edilebilir saatleri listele
/store/service-bookingsYeni rezervasyon oluştur
AI Asistan
Güçlü AI modellerini bağla — kendi OpenAI, Gemini, DeepL veya ElevenLabs anahtarını getir ya da kullandıkça öde kredileri kullan. Asistan 24 yetenek paketiyle (skill) gelir — mağaza kurulumu, e-ticaret editörü, tema editörü, pazarlama yöneticisi, SEO denetçisi, görsel üretici ve daha fazlası. Tam yetenek kataloğu /ai-skills'te. Üç entegrasyon yolu: (1) /admin/ai/* altındaki admin-yetkili proxy'ler ürün içi AI özellikleri için, (2) /v1/* altındaki doğrudan nuvi-agent API sunucu-sunucu işler için (Bearer NUVI_AGENT_API_KEY, asla tarayıcıya açma), (3) çoklu-aksiyon onay akışları için SSE üzerinden gerçek zamanlı streaming varyant.
/admin/ai/chatTek-tur sohbet — mesaj + sessionId gönder, yanıt al. Intent'i otomatik algılar, doğru skill'i çalıştırır.
/admin/ai/chat/streamSSE streaming sohbet — artımlı tokenlar + istemcinin onaylaması/reddetmesi gereken aksiyon planı eventleri yayar
/admin/ai/chat/stream/:streamId/approveBekleyen çoklu-aksiyon planını onayla (yürütmeye geçer)
/admin/ai/chat/stream/:streamId/rejectBekleyen planı reddet (yürütme atlanır, yan etki yok)
/admin/ai/skillsMevcut 24 skill'i kategori, örnek ve ikon adı ile listele
/admin/ai/skills-configMağaza başına skill aktivasyonu (operatörün bu tenant için açtığı skill'ler)
/admin/ai/store-contextAsistanın kullandığı mağaza-farkındalıklı context (katalog boyutu, kurlar, locale, yapılandırılmış modüller)
/admin/ai/translateTek seferlik LLM çeviri — input string + hedef locale, çevrilmiş string döner. Admin'in 11 dil i18n pipeline'ı kullanır.
/admin/ai/voice/blogBlog yazısı için AI seslendirme üret (tamamlandığında audio URL döner)
/admin/ai/voice/synthesize-chunkAnlık tek parça sentez (artımlı editör oynatması sırasında)
/admin/ai/marketing/social/draftBrief'ten AI sosyal post (caption + hashtag) taslağı üretir
/admin/ai/marketing/social/publishBir taslağı bağlı sosyal hesaba yayınla (Facebook, Instagram, ...)
/admin/ai/marketing/social/scheduleBir taslağı ileri tarihli yayınlamak için planla
/admin/ai/marketing/metrics/dashboardÇapraz kanal kampanya metrikleri (Google Ads, Meta) — harcama, gösterim, dönüşüm
/v1/chatDoğrudan nuvi-agent sohbet — NUVI_AGENT_API_KEY ile Bearer auth (yalnızca sunucu)
/v1/chat/streamSSE stream varyantı — çoklu aksiyon onay akış eventleri
/v1/extract-actionsDoğal dilden yapılandırılmış aksiyonları çıkar (yürütme yok, sadece plan)
/v1/skills24 skill'in hepsini metadata ile listele (id, kategori, model_tier, ikon)
/v1/setup-statusTenant onboarding durumu — hangi skill'ler yapılandırıldı, hangileri credentials bekliyor
Webhook (yol haritası)
Dış event gönderimi yakın vadeli yol haritasında. Bugün, yerleşik workflow motoru üzerinden iç event'lere abone olabilirsin. Aşağıdaki şekil planlanan imzalı payload formatı — HMAC-SHA256 (`x-nuvi-signature` header).
order.placedSepet siparişe dönüştüğünde tetiklenir
order.payment_capturedÖdeme tahsil edildiğinde tetiklenir
order.fulfilment_shippedHazırlama kargolandığında tetiklenir
customer.createdYeni müşteri kaydında tetiklenir
subscription.renewedHer başarılı yenileme döngüsünde tetiklenir
quote.submittedMüşteri teklif talebi gönderdiğinde tetiklenir
Hatalar
Tüm hatalar `code`, `message`, `type` alanları ile JSON olarak döner. HTTP statü standartlara uyar: 400 doğrulama, 401 yetki, 403 izin, 404 bulunamadı, 429 rate-limit, 5xx sunucu.
Rate limit
Storefront çağrıları: IP başına 60 req/sn. Admin çağrıları: token başına 30 req/sn. Soft-fail yanıtları `Retry-After` ve `X-RateLimit-Remaining` header'larını içerir — geri çekil ve tekrar dene.
Suistimal koruması
Açık POST uçları (form gönderimi, blog yorumları, teklif talebi, bülten kaydı) storefront tarafından verilen anti-spam token gerektirir ve reCAPTCHA Enterprise'tan geçer. Geçerli token'ı olmayan çağrılar 403 döner. Admin JWT'ni asla istemci kodda paylaşma — sunucuda tut, kendi backend'inden proxy yap.
API ile geliştir
Panelden publishable API anahtarı al, beş dakikada entegrasyona başla. JS, Python ve PHP için native SDK'lar yakında — REST bugün her yerde çalışır.
Sosyal Giriş
Tenant başına OAuth 2.0 / OpenID Connect — Google, Apple, Facebook, GitHub ve Microsoft. Storefront akışı `/auth/social/{provider}/start`'a yönlendirerek başlatır; sağlayıcı `/auth/social/{provider}/callback`'e döner ve müşteri JWT'si storefront cookie'sine yazılır. Apple `response_mode=form_post` (POST callback) kullanır. State + PKCE Redis'te 10 dakika TTL ile saklanır.
/store/auth/social/:provider/startOAuth akışını başlat — `{ authorization_url }` döner
/store/auth/social/:provider/callbackCode + state takası → `{ token, customer_id, is_new_link, return_to }`. Token'ı storefront'una `nuvi_customer_token` cookie olarak yaz.
/store/auth/social/apple/callbackApple form_post varyantı — aynı yanıt şekli, body `application/x-www-form-urlencoded`
/store/auth/social/linked-accountsYetkili müşterinin bağlı sağlayıcılarını listele (avatar, email, last_login_at). Müşteri JWT'si gerekir.
/store/auth/social/linked-accounts/:idBir sağlayıcının bağlantısını kaldır. Linked-account kayıtları müşteri bazlıdır; başka müşterinin kaydına erişim 404 döner.