HTTP 402 Payment Required Nedir? Pay Per Crawl ve x402

Yayın tarihi:

13 dk okuma

Acar Diveroli
Yazar: Acar Diveroli
Crawler düğümünden çıkan rotalar ALLOW, BLOCK ve 402 işaretlerinde biter; tek mavi PAY rotası CHARGED sütununa ulaşır

Aylardır aynı haber sitesini tarayan bir crawler, kayıtlarına yeni bir yanıt yazmaya başlar: 402 Payment Required ve yanında bir crawler-price header'ı. Öte yandan bir geliştirici aynı üç rakamı Vercel'deki projesinde görür ya da bir Stripe çağrısı, crawler'larla hiçbir ilgisi olmayan bir 402 ile başarısız olur. Kod neredeyse web kadar eskidir, ama yakın zamana kadar onu gönderen sunucu yok denecek kadar azdı.

Bu yazıda 402'nin HTTP standardındaki anlamını, neden bu kadar uzun süre kullanılmadığını ve bugün nerelerde karşınıza çıktığını anlatıyoruz: Cloudflare'in pay per crawl sistemi, açık x402 protokolü, AWS WAF ve birkaç faturalama API'si. Ardından bir 402'nin crawler'da ya da yapay zekâ ajanında neyi değiştirmesi gerektiğine ve site sahiplerinin neye karar verebileceğine geçiyoruz. Sağlayıcılara ait bilgileri 6 Ekim 2026'da kendi sayfalarından kontrol ettik.

HTTP 402 Payment Required ne demek?

HTTP durum kodları, sunucunun her yanıtla birlikte gönderdiği üç haneli kodlardır: 200 "sayfa burada", 404 "böyle bir sayfa yok", 403 "bu sayfayı alamazsınız" demektir. 400 ile 499 arasındaki kodlar sorunun istemci tarafında olduğunu söyler. 402 de bu gruptadır, ama tanımı tek cümleden ibarettir: Haziran 2022 tarihli güncel HTTP standardı RFC 9110, kodun yalnızca "ileride kullanılmak üzere ayrıldığını" söyler.

Bu cümle Ocak 1997'ye, ilk HTTP/1.1 belirtimi RFC 2068'in 402'yi aynı sözlerle ayırdığı tarihe uzanır. W3C'nin 1994 tarihli bir durum kodları sayfası daha fazlasını tasarlamıştı: kabul edilen "ücretlendirme yöntemlerini" listeleyen bir 402 yanıtı ve istemcinin ödeme yapmak için geri gönderebileceği bir ChargeTo header'ı. Bu header hiçbir zaman bir standarda girmedi.

Standart bir gövde, bir header ya da bir ödeme yolu tanımlamadığı için bugün 402 gönderen her sistem kendi biçimini kendisi kurar. Tarayıcılar da bu koda özel bir şey yapmaz: 402 ile karşılaşan kişi, diğer 4xx hatalarında olduğu gibi sunucunun gönderdiği sayfayı görür.

402 neden bu kadar uzun süre kullanılmadı?

Bir durum kodu, ancak istemci ona göre bir şey yapabiliyorsa işe yarar. 401 alan istemci giriş yapabilir; 402 alan istemcinin ise tek bir HTTP alışverişi içinde ödeme yapabilmesi gerekir ve web tarihinin büyük bölümünde böyle bir yol yoktu. Ödemeler insanlar için tasarlanmış ödeme sayfalarından geçiyordu; ücretli içerik sunan siteler de normal bir 200 sayfası ve bir üyelik formuyla cevap veren ödeme duvarları kullanıyordu.

İki şey değişti. İsteklerin büyük bir kısmı artık yazılımlardan geliyor: eğitim ya da arama için sayfa toplayan AI crawler'ları ve bir kullanıcı adına sayfa açan yapay zekâ ajanları. Bunlar hiçbir insanın yetişemeyeceği hacimde sayfa okur ve o sayfaların masrafını karşılayan reklamları hiç görmez. Aynı dönemde imzalı bot kimlikleri sitelere kimin istek yaptığını söylemeye başladı; ödeme protokolleri de bir programın başka bir programa ödeme sayfası olmadan ödeme yapmasını mümkün kıldı.

Bugün 402 nerelerde karşınıza çıkar?

Her 402 crawler'larla ilgili değildir. Faturalama platformları bu kodu pay per crawl'dan çok önce, her biri kendi anlamıyla kullanıyordu:

Nerede402'nin anlamıNe yapmalı
Cloudflare pay per crawlSite bu AI crawler'ından sayfa başına ücret alıyorKayıtlıysanız ödeyin, değilseniz durun
x402 (Cloudflare, AWS WAF)Ödeme koşulları PAYMENT-REQUIRED header'ındax402 istemcisiyle ödeyin ya da durun
Stripe API"Request Failed": istek geçerli, ödeme başarısızHatadaki code alanını okuyun
VercelDEPLOYMENT_DISABLED: ödeme gerekliHesap sahibi kullanımı ve planı kontrol eder
npm publishScope'lu paketler varsayılan olarak özeldirnpm publish --access public kullanın
Diğer ücretli API'lerHesapta faturalama ya da kota sorunuAPI'nin hata belgelerine bakın

Stripe'ta tipik durum reddedilen karttır; decline_code alanı, kartı veren bankanın ödemeyi neden reddettiğini söyler. Vercel, ekip kullanım sınırlarını aştığında dağıtımı (deployment) devre dışı bırakır. npm'de özel paketler ücretli hesap gerektirir; bu yüzden --access public olmadan yayımlanan yeni bir @scope/ad paketi reddedilir. Bir web sitesi size 402 sayfası gösteriyorsa arkadaki ödeme sorununu yalnızca sitenin sahibi çözebilir; sorun çoğu zaman barındırma planıyla ilgilidir.

Pay per crawl nasıl çalışır?

Pay per crawl, Cloudflare'in AI crawler'larından istek başına ücret alınmasını sağlayan sistemidir. Temmuz 2025'te duyuruldu ve Cloudflare'in belgelerine göre hâlâ kapalı beta aşamasında. Cloudflare sitenin önünde ters proxy (reverse proxy) olarak durduğu için crawler'a, istek sitenin sunucusuna ulaşmadan cevap verebilir. Faturayı kesen taraf (merchant of record) olarak da parayı crawler'ın sahibinden tahsil edip siteye öder.

  1. Site sahibi fiyatı belirler. Cloudflare panelinde AI Crawl Control › Payments (Ödemeler) altında pay per crawl'u açar, alan adı için varsayılan bir fiyat girer ve her AI crawler'ı için Allow (izin ver), Charge (ücret al) ya da Block (engelle) seçer.
  2. Crawler kim olduğunu kanıtlar. Sahibi bir Cloudflare hesabı açar, faturalamayı Stripe üzerinden bağlar ve her isteği Web Bot Auth ile imzalar: Özel bir anahtar isteğin belirli kısımlarını imzalar, Signature-Input ve Signature header'ları sonucu taşır, açık anahtar da crawler sahibinin alan adında yayımlanır. İmza olmasaydı herkes kendini ödeme yapan bir crawler gibi gösterebilirdi.
  3. Ödeme niyeti taşımayan istek 402 alır; fiyat crawler-price header'ında yazar.
  4. Crawler fiyatı kabul eder. İsteği crawler-exact-price (tam olarak bu fiyat) ya da crawler-max-price (bu tavana kadar her fiyat) header'ıyla yeniden gönderir ve bu header'ı imzalanan kısımlara ekler; böylece yolda kimse onu değiştiremez.
  5. Cloudflare sayfayı verir: 200 yanıtındaki crawler-charged header'ı tahsil edilen tutarı gösterir.
  6. Bunun dışındaki her durum yine 402'dir; bu kez sorunu açıklayan bir crawler-error header'ı da gelir.

Cloudflare'in crawler sahipleri için hazırladığı rehber alışverişi şu değerlerle gösteriyor (imza header'ları çıkarıldı):

text
HTTP/2 402
crawler-price: USD 0.01

# crawler imzalı isteği şu header'la tekrarlar:
crawler-exact-price: USD 0.01

HTTP/2 200
crawler-charged: USD 0.01

Charge, Cloudflare ile faturalama ilişkisi olmayan crawler'lara da uygulanır. Bu crawler'lar ödeme yapamadığı için sonuç onlar açısından engellemeyle aynıdır; ancak 402, ücretli erişimin mümkün olduğunu onlara bildirir. Block ise isteği hiçbir fiyat sunmadan reddeder.

x402 nedir?

x402, 402 yanıtını makinelerin okuyabileceği bir faturaya dönüştüren açık bir ödeme protokolüdür. Protokolü Coinbase geliştirdi ve Linux Foundation'ın 2 Nisan 2026'da AWS, Cloudflare, Google, Stripe ve Visa gibi üyelerle kurduğu x402 Foundation'a devretti. Sürüm 2 belirtimi Apache-2.0 lisansıyla yayımlanıyor.

HTTP üzerinden bir ödeme dört adımda gerçekleşir:

  1. İstemci bir kaynak ister.
  2. Sunucu 402 ve bir PAYMENT-REQUIRED header'ıyla cevap verir. Bu header, kabul edilen ödeme yollarını listeleyen, Base64 ile kodlanmış bir JSON taşır.
  3. İstemci cüzdanıyla bir ödeme yetkisi imzalar ve isteği PAYMENT-SIGNATURE header'ıyla yeniden gönderir.
  4. Sunucu ödemeyi doğrular ve tamamlar. Bunu genellikle /verify ve /settle uç noktaları olan bir aracı ödeme servisi (facilitator) üzerinden yapar, kaynağı da bir PAYMENT-RESPONSE header'ıyla birlikte gönderir. Adımlardan biri başarısız olursa cevap yine 402'dir.

Base64 kodu çözüldüğünde ödeme koşulları şöyle görünür (belirtimdeki örnekten kısaltıldı, adresler kırpıldı):

json
{
  "x402Version": 2,
  "resource": { "url": "https://api.example.com/premium-data" },
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:84532",
      "amount": "10000",
      "asset": "0x036C...CF7e",
      "payTo": "0x2096...287C",
      "maxTimeoutSeconds": 60
    }
  ]
}

scheme fiyatlandırma modelidir: sabit fiyat için exact, tavanı belli değişken fiyat için upto. network ödeme ağını belirtir; buradaki Base'in test ağıdır. amount dolar cinsinden değil, token'ın en küçük birimi cinsinden yazılır; payTo ise satıcının cüzdan adresidir. Eski istemcilerin hâlâ gönderdiği 1. sürüm bunların yerine X-PAYMENT ve X-PAYMENT-RESPONSE header'larını kullanıyordu.

Protokol kendini ağdan, token'dan ve para biriminden bağımsız olarak tanımlıyor; yapay zekâ ajanlarının araçları ve birbirlerini çağırmak için kullandığı iki protokol olan MCP ve A2A üzerinden de çalışıyor. Aşağıdaki uygulamalarda ödeme, değeri ABD dolarına sabitlenmiş bir stablecoin olan USDC ile yapılıyor. Bu bölüm protokolün nasıl çalıştığını anlatır; herhangi bir dijital parayı almak, tutmak ya da kullanmak için bir tavsiye değildir.

Cloudflare ve AWS bugün 402'yi nasıl kullanıyor?

AWS WAF. 15 Haziran 2026'dan beri AWS WAF, Amazon CloudFront arkasındaki sitelerde yapay zekâ trafiğinden ücret alabiliyor. Monetize eylemini kullanan bir kural, x402 koşullarını taşıyan bir 402 döndürür: USDC cinsinden istek başına fiyat, kabul edilen ağlar (Base ve Solana), yayıncının cüzdanı, bir zaman sınırı ve bir ödeme şeması. AWS belgelerine göre ödeme ancak sitenin sunucusu 2xx ile cevap verdikten sonra tamamlanır; yani başarısız bir sayfa için ücret ödenmez. Site sahipleri kimliğe göre fiyat belirleyebilir: örneğin doğrulanmış AI arama crawler'ları için bir fiyat, doğrulanmamış ajanlar için başka bir fiyat.

Cloudflare. Cloudflare 30 Eylül 2026'da iki beta daha açtı. Monetization Gateway, x402 ile ajanlardan istek, arama sorgusu ya da token başına ücret alır. Ödemeler Coinbase'in x402 Facilitator servisi üzerinden Base ağında USDC ile yapılır; kapalı beta yalnızca koşulları karşılayan ABD merkezli satıcılara ve alıcılara açık. Pay Per Use ise hiç 402 göndermez: Alıcı, içeriğin belirli bir kullanımı için fiyat teklif eder ve her kullanımı bildirir; Cloudflare de alıcıya fatura kesip yayıncıya ödeme yapar.

Pay per crawlx402 (Gateway, AWS WAF)Pay Per Use
Fiyat sinyalicrawler-price header'ıPAYMENT-REQUIRED header'ıÖnceden anlaşılan teklif
İstemcinin ihtiyacıWeb Bot Auth anahtarı, StripeÖdeme imzalayan bir cüzdanAlıcı anlaşması
Para nereden geçerCloudflareAracı servis üzerinden USDCCloudflare
ÜcretlendirilenHer başarılı taramaİstek, sorgu ya da tokenBildirilen her kullanım
Durum, 6 Ekim 2026Kapalı betaKapalı beta; AWS'de kullanımdaBeta

402, AI crawler'ları ve scraper'lar için ne anlama gelir?

402 ne bir kesinti ne de bir engeldir. Bir fiyattır ve doğru tepki iki tanedir: Crawler'ın sahibi kabul ettiyse sitenin yöntemiyle ödemek ya da o kaynağı istemeyi bırakmak.

  • 429 ya da 503'teki gibi yeniden denemeyin. O kodlar "sonra tekrar gel" der; 402 ise aynı cevabı tekrarlar. URL'yi, fiyat header'ını ve zamanı kaydedip devam edin.
  • Etrafından dolaşmaya çalışmayın. Fiyat bir IP adresine değil, crawler'ın kimliğine ve sitenin kurallarına bağlıdır. IP değiştirmek ya da imzayı kaldırmak, tanınan bir crawler'ı kimliği belirsiz bir bota çevirir; AWS de doğrulanmamış ajanlardan ücret alınmasına izin veriyor. Ücretli içeriği ödemeden almak ayrıca sitenin kullanım koşullarını çiğner.
  • Harcamaya tavan koyun. Pay per crawl'da crawler-max-price istek başına tavanı belirler. x402'de ajan herhangi bir şey imzalamadan önce cüzdanına bir bütçe ve onaylı siteler listesi tanımlayın.
  • Fiyatı Cloudflare'in diğer cevaplarından ayırın. Doğrulama sayfaları, engeller ve hız sınırları durum kodunda ve header'larda farklı görünür; Cloudflare scraper rehberimiz bunları kodda nasıl ayıracağınızı gösteriyor.

Bunların hepsinden önce robots.txt'yi okuyun. Pay per crawl onun yerini almaz: robots.txt'nin dışarıda bıraktığı bir yol, fiyatı ne olursa olsun istenmemelidir. robots.txt rehberimiz crawler'ların bu kuralları nasıl uyguladığını anlatıyor.

Proxy'lerin buradaki rolü pek çok kişinin sandığından dardır. Proxy, isteğin geçtiği yolu ve geldiği ülkeyi değiştirir; bu da yerel fiyatlar gibi konuma göre değişen, herkese açık sayfalar için önemlidir. Bir Residential Proxy, crawler'a sayfayı o ülkedeki bir ziyaretçinin gördüğü hâliyle gösterir. Ama crawler'ın bir ödeme sistemi karşısındaki kimliğini değiştirmez ve fiyatı olan bir sayfayı ücretsiz yapmaz.

Site sahipleri neye karar verebilir?

Site sahibi için 402, Allow ve Block seçeneklerinin yanına Charge'ı ekler. Allow, siteye okur getiren crawler'lara, örneğin arama motorlarına uygundur. Charge yalnızca isteklerini imzalayan ve faturalama ilişkisi olan crawler'lardan gelir sağlar; diğer bütün crawler'lar için Block gibi çalışır.

Ücret almak için sitenin önünde istekleri fiyatlandırabilen bir katman gerekir: Cloudflare (pay per crawl ya da Monetization Gateway) veya CloudFront ile birlikte AWS WAF. Sıradan bir barındırma hizmetindeki site de kendi kodundan 402 gönderebilir; ancak crawler'ları tanımanın ve parayı tahsil etmenin yolunu da kendisi bulmak zorunda kalır.

robots.txt ve llms.txt rollerini korur. robots.txt, crawler'lara hangi yolları tarayabileceklerini söyler. llms.txt ise yapay zekâ araçlarına sitenin kısa bir özetini ve önemli sayfalarını veren bir Markdown dosyasıdır; erişim ya da fiyat hakkında hiçbir şey söylemez. Ne işe yaradığını llms.txt rehberimizde anlattık. İki dosya da kimseden ücret alamaz.

Sınırlar ve açık sorular

  • Standart bir biçim yok. Cloudflare'in crawler-* header'ları ile x402'nin PAYMENT-* header'ları ayrı yöntemlerdir; crawler, ödeme yapmak istediği her yöntemi ayrı ayrı desteklemek zorundadır.
  • Sınırlı erişim. Bu programların çoğu kapalı beta aşamasında; Monetization Gateway yalnızca ABD'de kullanılabiliyor.
  • Ödeme altyapısı. x402 uygulamalarında ödeme bugün bir stablecoin ile yapılıyor. Cüzdan, vergi ve muhasebe kuralları ülkeden ülkeye değişir ve finans ile hukuk ekiplerinin konusudur.
  • Önce kimlik. Faturalama, isteklerin imzalı olduğunu varsayar. Web Bot Auth için hazırlanan IETF taslağı ancak 1 Eylül 2026'da çalışma grubu belgesi oldu.

Sık yapılan hatalar

  • 402'yi bir döngü içinde yeniden denemek, sanki geçici bir aşırı yüklenmeymiş gibi.
  • 402'yi engel sanıp IP'yi ya da user agent'ı değiştirmek.
  • Bir ajanın x402 ödemelerini harcama tavanı ya da onaylı site listesi olmadan imzalamasına izin vermek.
  • Ödeme yapamayan crawler'lara Charge uygulayıp gelir beklemek: Onlar için Charge bir engeldir.
  • Stripe'ın 402'sini "ödeme yapmalısınız" diye okumak: Stripe buna "Request Failed" (istek başarısız) der; tipik nedeni reddedilen karttır.

Karar rehberi

DurumunuzNe yapmalı
Crawler'ınız crawler-price ile 402 alıyorDurun ya da kayıtlıysanız Cloudflare üzerinden ödeyin
Ajanınız PAYMENT-REQUIRED ile 402 alıyorYalnızca belirlenen bütçe ve site listesi içinde ödeyin; aksi hâlde durun
Stripe, Vercel ya da npm 402 döndürüyorÖdemeyi, planı ya da paket erişimini düzeltin (SSS'ye bakın)
AI crawler'larının sayfalarınız için ödeme yapmasını istiyorsunuzPay per crawl, Monetization Gateway ve AWS WAF'ı karşılaştırın
AI crawler'larını yalnızca dışarıda tutmak istiyorsunuzrobots.txt ve engelleme kullanın; ödeme sistemine gerek yok

Sıkça sorulan sorular

402 Payment Required ne demek?

Sunucu, kaynağı vermeden önce ödeme istiyor demektir. HTTP standardı kodu ayırır ama nasıl ödeneceğini söylemez; bu yüzden her sistem kendi header'larını ekler: pay per crawl için crawler-price, x402 için PAYMENT-REQUIRED.

402 bir hata mıdır?

İstemci tarafındaki sorunlar için kullanılan 4xx grubundadır ve tarayıcılar onu her hata sayfası gibi gösterir. Ücretli erişime göre kurulmuş bir crawler için ise sıradan bir adımdır: fiyat, ödeme, sayfa.

402 Payment Required hatası nasıl çözülür?

Kodu kimin gönderdiğine bağlıdır. Stripe'ta hata kodunu okuyun; Vercel'de ekibinizin kullanımını ve planını kontrol edin; npm'de scope'lu paketleri --access public ile yayımlayın. Bir web sitesi size 402 gösteriyorsa sorunu yalnızca sitenin sahibi çözebilir.

401, 402 ve 403 arasındaki fark nedir?

401, sunucunun sizden kimlik doğrulaması, yani giriş ya da API anahtarı istediği anlamına gelir. 402 ödeme istediğini söyler. 403 ise isteği anladığını ama yerine getirmeyi reddettiğini, ortada bir fiyat da olmadığını bildirir.

x402 kullanmak için kripto para gerekir mi?

Belirtim başka ağlara ve para birimlerine de yer bırakıyor; ancak bugün çalışan uygulamalar, yani AWS WAF ve Cloudflare'in Monetization Gateway'i, ödemeyi USDC ile alıyor. Bu yüzden ödeme yapan istemcinin USDC tutan bir cüzdana ihtiyacı var. Bu bir tavsiye değil, sistemlerin nasıl çalıştığının açıklamasıdır.

Proxy ile 402 aşılabilir mi?

Hayır. Fiyat bir IP adresine değil, crawler'ın kimliğine ve sitenin kurallarına bağlıdır. Kimliğinizi gizlemek, ödeme yapan bir istemciyi kimliği belirsiz bir bota çevirir ve sitenin koşullarını çiğner. Ödemek istemiyorsanız sayfayı istemeyi bırakın.

Özet

HTTP 402 Payment Required 1997'de ayrıldı ve tanımsız bırakıldı; pay per crawl, x402, AWS WAF ve Cloudflare'in Monetization Gateway'i ona nihayet bir görev verdi. Bir crawler ya da ajan için 402 bir fiyattır: Ya bütçe içinde ödersiniz ya da durursunuz. Site sahibine ise Allow ve Block'un yanında Charge seçeneğini sunar; robots.txt'nin yerine değil, yanında. Stripe, Vercel ve npm aynı kodu kendi faturalama sorunları için kullanır; bu yüzden önce header'lara bakın. Fiyatı olmayan, herkese açık verileri toplamak için veri kazıma sayfamıza göz atabilirsiniz.

ChatGPT'ye sorClaude'a sor