<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: gibrancorbin11-hub</title>
    <description>The latest articles on DEV Community by gibrancorbin11-hub (@gibrancorbin11hub).</description>
    <link>https://dev.to/gibrancorbin11hub</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4054037%2Fba72f9a8-2341-4791-bec1-daf313866ac0.png</url>
      <title>DEV Community: gibrancorbin11-hub</title>
      <link>https://dev.to/gibrancorbin11hub</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gibrancorbin11hub"/>
    <language>en</language>
    <item>
      <title>GPTBot is hammering your API. Block it, or charge it?</title>
      <dc:creator>gibrancorbin11-hub</dc:creator>
      <pubDate>Thu, 30 Jul 2026 00:49:03 +0000</pubDate>
      <link>https://dev.to/gibrancorbin11hub/gptbot-is-hammering-your-api-block-it-or-charge-it-16mp</link>
      <guid>https://dev.to/gibrancorbin11hub/gptbot-is-hammering-your-api-block-it-or-charge-it-16mp</guid>
      <description>&lt;p&gt;Check your logs for last month. Filter user-agents for GPTBot, ClaudeBot, PerplexityBot, Google-Extended, bingbot. For most SaaS apps and content APIs in 2026 that's now a real percentage of total requests — traffic you pay to serve, from callers who never convert, never see an ad, never subscribe.&lt;/p&gt;

&lt;p&gt;The reflex is robots.txt or a blocklist. Three problems:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Blocking is leaky. Polite bots honor robots.txt; the traffic that costs you most doesn't announce itself.&lt;/li&gt;
&lt;li&gt;Blocking is blunt. Some agent traffic is your future distribution — an AI assistant citing your data to a user who becomes a customer.&lt;/li&gt;
&lt;li&gt;Blocking earns $0. The traffic has value to the caller. Blocked value is just destroyed, not captured.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There's now a third option, because two standards landed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Web Bot Auth&lt;/strong&gt; (RFC 9421 profile): agents cryptographically sign requests; you verify against the operator's published keys. Identity stops being a user-agent string anyone can type.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP 402 + x402&lt;/strong&gt;: a machine-readable "this costs $0.002, here's how to pay" that agents can settle without a human in the loop.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which turns your bot problem into a pricing decision per lane:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Verified, signed agents&lt;/strong&gt; → charge per call on the routes that cost you money. They're businesses; API fees are a line item to them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Declared-but-unsigned bots&lt;/strong&gt; → cheap tier or tight rate limits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Undisclosed automation&lt;/strong&gt; → paywall or block. Sneaking shouldn't be free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Humans&lt;/strong&gt; → free, always. They never see any of this.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wiring it by hand means reading RFC 9421, fetching and caching key directories, building the signature base, and handling replays. Or:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="nx"&gt;wayleave&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Wayleave&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;directories&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://agents.example/keys&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;k1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;pubkey&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;pricedPaths&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/api/expensive&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.002&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nf"&gt;express&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One middleware line. Agents get a 402 with a price; your users notice nothing. The interesting question stops being "how do I stop bots" and becomes "what's my agent traffic worth" — and that's a much better problem to have.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the middleware doesn't do
&lt;/h2&gt;

&lt;p&gt;It prices the request. It doesn't keep your books.&lt;/p&gt;

&lt;p&gt;Charging per crossing means knowing what you're owed: a durable record of every billable request, deduplicated, attributed to a cryptographic agent identity rather than an IP guess, and turned into something you can invoice against. The middleware emits a usage event for each priced call and hands it to you. What happens next is your problem — a queue, a table, a reconciliation job.&lt;/p&gt;

&lt;p&gt;I'm considering building the other half: a hosted meter that receives those events, keeps the ledger, handles key directory fetching and rotation, and produces billing records per agent operator. Never touching your funds — settlement stays on a payment rail you choose. The meter is the meter, not a middleman.&lt;/p&gt;

&lt;p&gt;It isn't built. Not a beta, not a private preview — unbuilt. Whether it gets built depends on whether people running real agent traffic actually want it, so there's a list:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;→ &lt;a href="https://wayleave.dev" rel="noopener noreferrer"&gt;wayleave.dev&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One email if it becomes real, nothing otherwise. There's one optional question on the form — roughly how much agent traffic you see — and that answer is worth more to me than the signup.&lt;/p&gt;

&lt;p&gt;The middleware is free and finished today either way:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i wayleave
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;MIT, zero dependencies, source at &lt;a href="https://github.com/gibrancorbin11-hub/wayleave" rel="noopener noreferrer"&gt;github.com/gibrancorbin11-hub/wayleave&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>node</category>
      <category>webdev</category>
      <category>api</category>
    </item>
  </channel>
</rss>
