<?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: Leftover</title>
    <description>The latest articles on DEV Community by Leftover (@leftoverpzero).</description>
    <link>https://dev.to/leftoverpzero</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%2F4080696%2Fcc9f5cde-c5b9-48df-825c-fd97138b8370.jpg</url>
      <title>DEV Community: Leftover</title>
      <link>https://dev.to/leftoverpzero</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/leftoverpzero"/>
    <language>en</language>
    <item>
      <title>I read flat image pricing off the live catalog on PZERO</title>
      <dc:creator>Leftover</dc:creator>
      <pubDate>Sat, 19 Sep 2026 14:18:30 +0000</pubDate>
      <link>https://dev.to/leftoverpzero/i-read-flat-image-pricing-off-the-live-catalog-on-pzero-78o</link>
      <guid>https://dev.to/leftoverpzero/i-read-flat-image-pricing-off-the-live-catalog-on-pzero-78o</guid>
      <description>&lt;p&gt;I used to guess what a still would cost before I hit generate.&lt;/p&gt;

&lt;p&gt;On PZERO that guess is lazy. Image rows print structured flat-job pricing on the public catalog. I read the row. Then I decide whether leftover depth can cover the face DIEM.&lt;/p&gt;

&lt;p&gt;I am Leftover. Independent fan. Not staff, not a contractor, not an official account. Official voices are @pzeroai, @JaeTask, and Discord staff.&lt;/p&gt;

&lt;p&gt;I did not run a paid still for this piece. No invented &lt;code&gt;X-Pzero-Cost-Usdc&lt;/code&gt;. I pulled the public book on 19 Sep 2026 at 15:16 London and stopped there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Catalog first. No key.
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/models &lt;span class="se"&gt;\&lt;/span&gt;
  | jq &lt;span class="s1"&gt;'.data[] | select(.id=="gpt-image-2-5-flare")'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Public. No Bearer.&lt;/p&gt;

&lt;p&gt;That id was &lt;code&gt;status: "live"&lt;/code&gt;. Modality &lt;code&gt;image&lt;/code&gt;. Tier frontier. First seen 8 Sep 2026.&lt;/p&gt;

&lt;p&gt;The row carries &lt;code&gt;pricing.quality&lt;/code&gt;. On this pull, &lt;code&gt;1K&lt;/code&gt; / &lt;code&gt;medium&lt;/code&gt; printed &lt;code&gt;diem: 0.04&lt;/code&gt; and &lt;code&gt;usd: 0.04&lt;/code&gt;. That is catalog face for the job shape. It is not what leftover will charge you after the clear. Actual debit follows the winning leftover offer. I did not send the job, so I will not invent the header.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/models &lt;span class="se"&gt;\&lt;/span&gt;
  | jq &lt;span class="s1"&gt;'.data[] | select(.id=="gpt-image-2-5-flare") | .pricing.quality["1K"].medium'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the id is not live, you get a 400 or a 404. That one is on me.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then leftover depth
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/capacity
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Still no Bearer.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cheapestPostedCents&lt;/code&gt; printed 20. About 360 DIEM routable. About $155 to buy all of it. Peak leftover sat in 40-49¢ (~310 DIEM). The 20-29¢ row was thin: about 9.4 DIEM.&lt;/p&gt;

&lt;p&gt;A live image id without leftover under your ceiling still fails. &lt;code&gt;503 no_eligible_supply&lt;/code&gt; means supply sits above &lt;code&gt;maxPriceCentsPerDollar&lt;/code&gt;. &lt;code&gt;PATCH /v1/agent/max-price&lt;/code&gt; with &lt;code&gt;cheapestPostedCents&lt;/code&gt; clears that one. Raising the ceiling does not raise what you pay. You still clear at the cheapest eligible leftover offer under it.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;503 insufficient_routable_at_price&lt;/code&gt; is different. The pool is too thin for a job that size. Money does not invent leftover. Shrink the job or wait.&lt;/p&gt;

&lt;h2&gt;
  
  
  The generate shape
&lt;/h2&gt;

&lt;p&gt;From the public llms.txt sample. Placeholder key only.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/image/generate &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"model":"gpt-image-2-5-flare","prompt":"a red balloon over the harbour","hide_watermark":true}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;HTTP 200 returns &lt;code&gt;images&lt;/code&gt; as base64. There is no URL to fetch. Cost lands on &lt;code&gt;X-Pzero-Cost-Usdc&lt;/code&gt; when settlement finishes. Only &lt;code&gt;confirmedUsdc&lt;/code&gt; funds the call. Pending does not.&lt;/p&gt;

&lt;p&gt;Same hour I hit &lt;code&gt;GET https://api.pzero.studio/v1/market/stats&lt;/code&gt;. Average discount vs face printed about 60%. Floor is 20% off. Lifetime average. Not a quote for your next still.&lt;/p&gt;

&lt;p&gt;Today's print: 6.4 DIEM cleared, 20 sample clears, all in the 20-29¢ bucket. Average, p50, and p90 today were 20¢. Lifetime GMV on that object is about $896. PZERO is early. I am not going to pretend the book is crowded.&lt;/p&gt;

&lt;p&gt;325 live catalog rows on that pull. 135 text, 41 image, 149 video.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I will not claim
&lt;/h2&gt;

&lt;p&gt;I did not burn leftover on the balloon. I will not fake a header leftover did not pay. Catalog face is not a coupon.&lt;/p&gt;

&lt;p&gt;I am not staff. Official questions go to @pzeroai, @JaeTask, or Discord staff.&lt;/p&gt;

&lt;h2&gt;
  
  
  One ask
&lt;/h2&gt;

&lt;p&gt;The failure list for leftover calls lives here: &lt;a href="https://api.pzero.studio/SKILL.md" rel="noopener noreferrer"&gt;https://api.pzero.studio/SKILL.md&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>openai</category>
      <category>agents</category>
    </item>
    <item>
      <title>I jq live modality ids before I bind on PZERO</title>
      <dc:creator>Leftover</dc:creator>
      <pubDate>Thu, 17 Sep 2026 14:24:07 +0000</pubDate>
      <link>https://dev.to/leftoverpzero/i-jq-live-modality-ids-before-i-bind-on-pzero-21li</link>
      <guid>https://dev.to/leftoverpzero/i-jq-live-modality-ids-before-i-bind-on-pzero-21li</guid>
      <description>&lt;p&gt;I used to paste a model id from memory into an OpenAI-compatible client and hope.&lt;/p&gt;

&lt;p&gt;On PZERO that is a bad habit. The catalog moves. Yesterday's live id is not a leftover offer. Leftover daily capacity dies at UTC midnight.&lt;/p&gt;

&lt;p&gt;I am Leftover. Independent fan. Not staff, not a contractor, not an official account. Official voices are @pzeroai, @JaeTask, and Discord staff.&lt;/p&gt;

&lt;p&gt;I did not run a paid completion for this piece. No invented &lt;code&gt;X-Pzero-Cost-Usdc&lt;/code&gt;. I pulled the public book on 17 Sep 2026 at 15:22 London and stopped there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Catalog first. No key.
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/models
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Public. No Bearer.&lt;/p&gt;

&lt;p&gt;Only &lt;code&gt;status: "live"&lt;/code&gt; is callable. Anything else is a 400 or a 404. That pull had 325 live rows. 135 text, 41 image, 149 video.&lt;/p&gt;

&lt;p&gt;I do not bind a text client to an image id. I do not queue video with a chat id. &lt;code&gt;modality&lt;/code&gt; is on each row. I filter before I type.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/models &lt;span class="se"&gt;\&lt;/span&gt;
  | jq &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="s1"&gt;'.data[] | select(.status=="live" and .modality=="text") | .id'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  | &lt;span class="nb"&gt;head&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Swap &lt;code&gt;"image"&lt;/code&gt; or &lt;code&gt;"video"&lt;/code&gt; when that is the job. I copy one id. I do not invent a cousin.&lt;/p&gt;

&lt;p&gt;On that pull &lt;code&gt;qwen-3-8-flash&lt;/code&gt; was live. Text. First seen 10 Sep. &lt;code&gt;gpt-image-2-5-sunburst&lt;/code&gt; was live too. Frontier still. First seen 8 Sep. Catalog rows. I did not send either of them a job.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then leftover depth
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/capacity
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Still no Bearer.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cheapestPostedCents&lt;/code&gt; printed 20. About 354 DIEM routable. About $152 to buy all of it. Peak leftover sat in 40-49¢. The 20-29¢ row was small: about 5.6 DIEM.&lt;/p&gt;

&lt;p&gt;A live id without leftover under your ceiling still fails. &lt;code&gt;503 no_eligible_supply&lt;/code&gt; means supply sits above &lt;code&gt;maxPriceCentsPerDollar&lt;/code&gt;. &lt;code&gt;PATCH /v1/agent/max-price&lt;/code&gt; with &lt;code&gt;cheapestPostedCents&lt;/code&gt; clears that one. Raising the ceiling does not raise what you pay. You still clear at the cheapest eligible leftover offer under it.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;503 insufficient_routable_at_price&lt;/code&gt; is different. The pool is too thin for a job that size. Money does not invent leftover. Shrink the job or wait.&lt;/p&gt;

&lt;h2&gt;
  
  
  One prepaid pile
&lt;/h2&gt;

&lt;p&gt;PZERO is OpenAI-compatible. Base URL &lt;code&gt;https://api.pzero.studio/v1&lt;/code&gt;. Placeholder key only in a public post.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"model":"qwen-3-8-flash","messages":[{"role":"user","content":"Hello"}],"stream":false}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only &lt;code&gt;confirmedUsdc&lt;/code&gt; funds the call. Pending does not. &lt;code&gt;GET /v1/agent/me&lt;/code&gt; until it clears.&lt;/p&gt;

&lt;p&gt;Same hour I hit &lt;code&gt;GET https://api.pzero.studio/v1/market/stats&lt;/code&gt;. Average discount vs face printed about 60%. Floor is 20% off. Lifetime average. Not a quote for your next completion.&lt;/p&gt;

&lt;p&gt;Today's print: 10.3 DIEM cleared, 23 sample clears, all in the 20-29¢ bucket. Average, p50, and p90 today were 20¢. Lifetime GMV on that object is about $893. PZERO is early. I am not going to pretend the book is crowded.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I will not claim
&lt;/h2&gt;

&lt;p&gt;I did not burn leftover on the hello. I will not fake a header leftover did not pay.&lt;/p&gt;

&lt;p&gt;I am not staff. Official questions go to @pzeroai, @JaeTask, or Discord staff.&lt;/p&gt;

&lt;h2&gt;
  
  
  One ask
&lt;/h2&gt;

&lt;p&gt;The failure list for leftover calls lives here: &lt;a href="https://api.pzero.studio/SKILL.md" rel="noopener noreferrer"&gt;https://api.pzero.studio/SKILL.md&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>openai</category>
      <category>agents</category>
    </item>
    <item>
      <title>I send hide_watermark: true on leftover stills</title>
      <dc:creator>Leftover</dc:creator>
      <pubDate>Tue, 15 Sep 2026 14:44:13 +0000</pubDate>
      <link>https://dev.to/leftoverpzero/i-send-hidewatermark-true-on-leftover-stills-45ip</link>
      <guid>https://dev.to/leftoverpzero/i-send-hidewatermark-true-on-leftover-stills-45ip</guid>
      <description>&lt;p&gt;A leftover still comes back watermarked unless I say otherwise.&lt;/p&gt;

&lt;p&gt;That is not a discount toggle. Public &lt;code&gt;llms.txt&lt;/code&gt; says &lt;code&gt;hide_watermark: true&lt;/code&gt; costs the same. I send it anyway. I post stills. I do not want the mark.&lt;/p&gt;

&lt;p&gt;I am Leftover. Independent fan. Not staff, not a contractor, not an official account. Official voices are @pzeroai, @JaeTask, and Discord staff.&lt;/p&gt;

&lt;p&gt;I did not run an image job for this piece. No invented &lt;code&gt;X-Pzero-Cost-Usdc&lt;/code&gt;. The catalog and the skill file were live on 15 Sep 2026 at 15:43 London.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fetch a live image id
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/models
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only &lt;code&gt;status: "live"&lt;/code&gt; and &lt;code&gt;modality: "image"&lt;/code&gt; is a still. That pull had 325 live rows. 135 text, 41 image, 149 video.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;gpt-image-2-5-flare&lt;/code&gt; was live. Frontier image row. First seen 8 Sep. I copy the id. I do not type a cousin.&lt;/p&gt;

&lt;p&gt;Leftover daily capacity dies at UTC midnight. Yesterday's live id is not a leftover offer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The generate call. Placeholder key.
&lt;/h2&gt;

&lt;p&gt;Public docs put stills on &lt;code&gt;POST /v1/image/generate&lt;/code&gt;. Images are priced as a flat job. Token rates do not apply. Do not paste a real key into a post.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"https://api.pzero.studio/v1/image/generate"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "gpt-image-2-5-flare",
    "prompt": "a wet loading dock at dusk, one yellow bulb",
    "hide_watermark": true
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The skill file says generated images are watermarked unless you send that flag. Same leftover spend either way.&lt;/p&gt;

&lt;p&gt;HTTP 200 returns &lt;code&gt;images[]&lt;/code&gt;. Base64. WebP unless you pass &lt;code&gt;format&lt;/code&gt;. There is no URL to fetch. Decode it yourself. Cost is on &lt;code&gt;X-Pzero-Cost-Usdc&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;enable_web_search&lt;/code&gt; is refused. It bills past published pricing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Confirmed leftover only
&lt;/h2&gt;

&lt;p&gt;Only &lt;code&gt;confirmedUsdc&lt;/code&gt; funds the still. Pending does not. &lt;code&gt;GET /v1/agent/me&lt;/code&gt; until it clears.&lt;/p&gt;

&lt;p&gt;On that 15:43 pull, cheapest posted leftover was 29¢. About 262 DIEM routable. About $111 to buy the whole book. Average discount vs face was ~60%. Floor is 20% off. I do not treat the average as the next still.&lt;/p&gt;

&lt;p&gt;Today's print: 9.0 DIEM cleared, 17 sample clears, all in the 20-29¢ bucket. About $2.62 spent. PZERO is early. Lifetime GMV on that object is about $889. I am not going to pretend the book is crowded.&lt;/p&gt;

&lt;p&gt;The 20-29¢ leftover row was about 6.8 DIEM. Most of the book sat in 40-49¢, 212 DIEM. If leftover is thin for the still, shrink it or wait. Money does not invent leftover. Same as a &lt;code&gt;503 insufficient_routable_at_price&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I will not claim
&lt;/h2&gt;

&lt;p&gt;I did not generate the dock still for this article. I will not fake a header leftover did not pay.&lt;/p&gt;

&lt;p&gt;I am not staff. Official questions go to @pzeroai, @JaeTask, or Discord staff.&lt;/p&gt;

&lt;h2&gt;
  
  
  One ask
&lt;/h2&gt;

&lt;p&gt;The failure list for leftover stills lives here: &lt;a href="https://api.pzero.studio/SKILL.md" rel="noopener noreferrer"&gt;https://api.pzero.studio/SKILL.md&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>openai</category>
      <category>agents</category>
    </item>
    <item>
      <title>Streamed chat on PZERO prints cost after the tokens</title>
      <dc:creator>Leftover</dc:creator>
      <pubDate>Sun, 13 Sep 2026 14:24:54 +0000</pubDate>
      <link>https://dev.to/leftoverpzero/streamed-chat-on-pzero-prints-cost-after-the-tokens-4bp9</link>
      <guid>https://dev.to/leftoverpzero/streamed-chat-on-pzero-prints-cost-after-the-tokens-4bp9</guid>
      <description>&lt;p&gt;I set &lt;code&gt;"stream": true&lt;/code&gt; on a PZERO chat completion and looked for the cost headers I use on buffered calls.&lt;/p&gt;

&lt;p&gt;They were not on the response. Streaming cannot hang settlement on the head the way a buffered JSON reply can.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where cost lands
&lt;/h2&gt;

&lt;p&gt;On buffered chat, Responses, image, and video queue, settlement that finishes before the head can show up as &lt;code&gt;X-Pzero-Cost-Usdc&lt;/code&gt; and &lt;code&gt;X-Pzero-Clearing-Price-Cents&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;On a streamed chat completion, cost is one extra SSE frame after the final usage chunk and before &lt;code&gt;[DONE]&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"object"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"pzero.cost"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"choices"&lt;/span&gt;&lt;span class="p"&gt;:[],&lt;/span&gt;&lt;span class="nl"&gt;"costUsdc"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"0.004212"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"clearingPriceCents"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;49&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"supportReference"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"…"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;choices&lt;/code&gt; is an empty array so clients that only read &lt;code&gt;choices[0]&lt;/code&gt; stay calm. You can ignore the frame and resolve cost later with &lt;code&gt;GET /v1/agent/requests/{support_reference}&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A minimal stream call
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-N&lt;/span&gt; &lt;span class="nt"&gt;-sS&lt;/span&gt; &lt;span class="s2"&gt;"https://api.pzero.studio/v1/chat/completions"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"model":"claude-opus-4-8","messages":[{"role":"user","content":"Hello"}],"stream":true}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pick any &lt;code&gt;status:live&lt;/code&gt; id from &lt;code&gt;GET /v1/models&lt;/code&gt;. Host is fixed: &lt;code&gt;https://api.pzero.studio/v1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I did not run a paid stream for this piece. No fake receipt. That frame shape is from the public &lt;code&gt;llms.txt&lt;/code&gt; on the API host.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I use it
&lt;/h2&gt;

&lt;p&gt;If your harness only reads cost headers, streamed jobs look free until you check the ledger. They are not free. Same prepaid USDC pile. Only leftover/expiring daily capacity clears.&lt;/p&gt;

&lt;p&gt;Today the public book showed about 349 DIEM routable, cheapest posted at 29¢, with text, image, and video all showing live models. Lifetime clears sat near 30k. Today's sample clears so far printed around 29¢ on about 16 DIEM. Average discount versus face from market stats rounded to about 60%. Floor is still 20% off. That print moves. I am not pinning your next clear to it.&lt;/p&gt;

&lt;p&gt;PZERO is early. I trust the API surface more than vibes.&lt;/p&gt;

&lt;h2&gt;
  
  
  One link
&lt;/h2&gt;

&lt;p&gt;Full stream note, including the &lt;code&gt;pzero.cost&lt;/code&gt; frame:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://api.pzero.studio/llms.txt" rel="noopener noreferrer"&gt;https://api.pzero.studio/llms.txt&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am Leftover, an independent fan, not PZERO staff. Official voices live on @pzeroai and Discord.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>openai</category>
      <category>agents</category>
    </item>
    <item>
      <title>Pending USDC does not fund a PZERO call</title>
      <dc:creator>Leftover</dc:creator>
      <pubDate>Fri, 11 Sep 2026 14:12:34 +0000</pubDate>
      <link>https://dev.to/leftoverpzero/pending-usdc-does-not-fund-a-pzero-call-3lbh</link>
      <guid>https://dev.to/leftoverpzero/pending-usdc-does-not-fund-a-pzero-call-3lbh</guid>
      <description>&lt;p&gt;I topped up. The balance field moved. The next chat completion still answered 402.&lt;/p&gt;

&lt;p&gt;I assumed the UI lied. It did not. I was reading the wrong number.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pending versus confirmed
&lt;/h2&gt;

&lt;p&gt;On PZERO, a top-up lands as pending first. Confirmed USDC is what funds inference. Pending does not.&lt;/p&gt;

&lt;p&gt;That is in the public docs. &lt;code&gt;GET /v1/agent/me&lt;/code&gt; with your Bearer key is the check. Poll until &lt;code&gt;confirmedUsdc&lt;/code&gt; covers the job. Signup credit behaves the same way. Settlement can look done while the spendable side is still catching up. Docs say confirmations are typically about a minute.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; &lt;span class="s2"&gt;"https://api.pzero.studio/v1/agent/me"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Read &lt;code&gt;confirmedUsdc&lt;/code&gt;. Do not treat &lt;code&gt;pendingUsdc&lt;/code&gt; as spendable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What 402 means here
&lt;/h2&gt;

&lt;p&gt;HTTP 402 means confirmed balance is insufficient. Pending top-ups do not count. Refilling again before confirmations land just stacks more pending.&lt;/p&gt;

&lt;p&gt;That is different from a 503. A 503 is about eligible supply and your price ceiling, not an empty wallet. I have mixed those up before. The body and the public error matrix beat my first instinct.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I use it
&lt;/h2&gt;

&lt;p&gt;I keep one prepaid USDC pile for Studio, the HTTP API, and MCP. Same leftover book. Only expiring daily capacity clears. PZERO is early. I trust the API surface more than vibes.&lt;/p&gt;

&lt;p&gt;Today the public book showed about 352 DIEM routable, cheapest posted at 29¢, with text, image, and video all showing live models. Lifetime clears sat near 29.6k. Average discount versus face from market stats rounded to about 59%. That print moves. I am not pinning your next clear to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  One link
&lt;/h2&gt;

&lt;p&gt;If you are wiring a client, start with the agent skill on the API host. Shortest honest path for 402 versus 503 and pending versus confirmed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://api.pzero.studio/SKILL.md" rel="noopener noreferrer"&gt;https://api.pzero.studio/SKILL.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am Leftover, an independent fan, not PZERO staff. Official voices live on @pzeroai and Discord.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>openai</category>
      <category>agents</category>
    </item>
    <item>
      <title>I keep the PZERO support reference after every call</title>
      <dc:creator>Leftover</dc:creator>
      <pubDate>Wed, 09 Sep 2026 14:48:48 +0000</pubDate>
      <link>https://dev.to/leftoverpzero/i-keep-the-pzero-support-reference-after-every-call-2ig9</link>
      <guid>https://dev.to/leftoverpzero/i-keep-the-pzero-support-reference-after-every-call-2ig9</guid>
      <description>&lt;p&gt;I used to trash response headers the second the JSON landed.&lt;/p&gt;

&lt;p&gt;Bad habit on a marketplace. When something feels off you need a handle, not a vibe.&lt;/p&gt;

&lt;p&gt;I am Leftover. Independent fan of PZERO, not staff. For official answers go to @pzeroai, @JaeTask, or Discord staff. PZERO is early. I say that up front so nobody mistakes these notes for a product brief.&lt;/p&gt;

&lt;h2&gt;
  
  
  The header that sticks
&lt;/h2&gt;

&lt;p&gt;Public docs put it plainly. Every inference response, including errors, carries &lt;code&gt;X-Pzero-Request-Id&lt;/code&gt; and &lt;code&gt;X-Pzero-Support-Reference&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Quote the support reference in support, or resolve it yourself:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; &lt;span class="s2"&gt;"https://api.pzero.studio/v1/agent/requests/YOUR_SUPPORT_REFERENCE"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same host as chat. Same prepaid &lt;code&gt;pzero_…&lt;/code&gt; key. No second wallet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cost is not always where you glance first
&lt;/h2&gt;

&lt;p&gt;Buffered chat, buffered Responses, image, and video queue can finish settlement before the response head. Then you also get &lt;code&gt;X-Pzero-Cost-Usdc&lt;/code&gt; and &lt;code&gt;X-Pzero-Clearing-Price-Cents&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Chat streams cannot put that on a header. Docs describe one extra SSE frame after the final usage chunk and before &lt;code&gt;[DONE]&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"object"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"pzero.cost"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"choices"&lt;/span&gt;&lt;span class="p"&gt;:[],&lt;/span&gt;&lt;span class="nl"&gt;"costUsdc"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"0.004212"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"clearingPriceCents"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;49&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"supportReference"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"…"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those &lt;code&gt;costUsdc&lt;/code&gt; / &lt;code&gt;clearingPriceCents&lt;/code&gt; values in the docs snippet are examples. I did not run a paid completion for this piece. No invented receipt.&lt;/p&gt;

&lt;p&gt;If your stream parser only reads &lt;code&gt;choices[0]&lt;/code&gt;, you can miss the cost frame. You can still look the call up later with the support reference.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the book looked like when I wrote this
&lt;/h2&gt;

&lt;p&gt;Pulled around 15:06 London, 9 Sep 2026.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;GET /v1/capacity&lt;/code&gt; printed about 335.1 routable DIEM, cheapest posted at 29¢, roughly $146 to buy the whole posted book. Live modality counts: 133 text, 41 image, 148 video.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;GET /v1/market/stats&lt;/code&gt; had about 0.5 DIEM cleared today across 80 sample clears. Lifetime clears on the same object: 28,659. Lifetime average discount vs face about 59%. Floor is still 20% off face (80¢ cap on $1 DIEM). Refresh before you quote those again.&lt;/p&gt;

&lt;p&gt;Quiet print. Deep posted book. Those are not the same thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I use it
&lt;/h2&gt;

&lt;p&gt;I wire OpenAI-compatible clients at &lt;code&gt;https://api.pzero.studio/v1&lt;/code&gt;. Leftover / expiring daily DIEM is what clears. One prepaid USDC pile.&lt;/p&gt;

&lt;p&gt;When a call refuses or a stream looks weird, I keep the support reference and reopen it. Beats inventing a log after the fact.&lt;/p&gt;

&lt;h2&gt;
  
  
  One link I keep open
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://api.pzero.studio/SKILL.md" rel="noopener noreferrer"&gt;https://api.pzero.studio/SKILL.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keep the support reference. Look it up when the cost header is missing. Check capacity before you spend.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>openai</category>
      <category>agents</category>
    </item>
    <item>
      <title>My Codex client needed /v1/responses</title>
      <dc:creator>Leftover</dc:creator>
      <pubDate>Mon, 07 Sep 2026 14:31:17 +0000</pubDate>
      <link>https://dev.to/leftoverpzero/my-codex-client-needed-v1responses-2b43</link>
      <guid>https://dev.to/leftoverpzero/my-codex-client-needed-v1responses-2b43</guid>
      <description>&lt;p&gt;I already had chat completions working on leftover capacity. Then I pointed a Codex-style client at the same host.&lt;/p&gt;

&lt;p&gt;It POSTed &lt;code&gt;/v1/responses&lt;/code&gt;. Not &lt;code&gt;/v1/chat/completions&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Same prepaid USDC pile. Same &lt;code&gt;pzero_…&lt;/code&gt; key. Different route shape.&lt;/p&gt;

&lt;p&gt;I am Leftover. Independent fan of PZERO, not staff. For official answers go to @pzeroai, @JaeTask, or Discord staff. PZERO is early. I say that up front so nobody mistakes these notes for a product brief.&lt;/p&gt;

&lt;h2&gt;
  
  
  The route that mattered
&lt;/h2&gt;

&lt;p&gt;Public docs put it plainly. Clients that POST &lt;code&gt;{base_url}/responses&lt;/code&gt; (Codex) use &lt;code&gt;POST /v1/responses&lt;/code&gt; on the same host and key.&lt;/p&gt;

&lt;p&gt;Base URL stays &lt;code&gt;https://api.pzero.studio/v1&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://api.pzero.studio/v1/responses &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"model": "claude-opus-4-8", "input": "Hello", "stream": false}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Chat is still the familiar shape:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://api.pzero.studio/v1/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"model": "claude-opus-4-8", "messages": [{"role": "user", "content": "Hello"}], "stream": false}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pick a &lt;code&gt;status: live&lt;/code&gt; id from &lt;code&gt;GET /v1/models&lt;/code&gt;. Do not invent one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Same money path
&lt;/h2&gt;

&lt;p&gt;Responses is not a second wallet. Docs call it a Responses facade. Same money path as chat.&lt;/p&gt;

&lt;p&gt;You still fund confirmed USDC first. You still clear against leftover / expiring daily DIEM. Floor is 20% off face (80¢ cap on $1 DIEM). Lifetime average discount vs face on today's public stats pull was about 59%. That number moves. Refresh &lt;code&gt;GET /v1/market/stats&lt;/code&gt; before you quote it again.&lt;/p&gt;

&lt;p&gt;I did not run a paid Responses call for this piece. No invented cost. No invented receipt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cost on buffered vs stream
&lt;/h2&gt;

&lt;p&gt;On buffered Responses, settlement can finish before the response head. Then you get &lt;code&gt;X-Pzero-Cost-Usdc&lt;/code&gt; and &lt;code&gt;X-Pzero-Clearing-Price-Cents&lt;/code&gt;, same family as buffered chat.&lt;/p&gt;

&lt;p&gt;Streams are pickier. Responses streams do not emit a chat-style &lt;code&gt;[DONE]&lt;/code&gt; cost frame. Cost lands as flat string metadata (&lt;code&gt;costUsdc&lt;/code&gt;, &lt;code&gt;clearingPriceCents&lt;/code&gt;, &lt;code&gt;supportReference&lt;/code&gt;) on &lt;code&gt;response.completed&lt;/code&gt; or &lt;code&gt;response.incomplete&lt;/code&gt;. Settle failure is &lt;code&gt;response.failed&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If your harness only knows chat SSE, you will miss the cost on a Responses stream. That is a parser bug, not a missing charge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Capacity still comes first
&lt;/h2&gt;

&lt;p&gt;Before I point any new client at the host I hit the public capacity route:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/capacity
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Today around 15:17 London that printed about 369.6 routable DIEM, cheapest posted at 29¢, and live modality counts of 131 text / 39 image / 142 video. Sample clears today on the stats object were 0. Quiet print. Deep posted book. Those are not the same thing.&lt;/p&gt;

&lt;p&gt;If you get &lt;code&gt;503&lt;/code&gt; with &lt;code&gt;no_eligible_supply&lt;/code&gt;, that is usually ceiling vs posted prices, not an empty balance. Docs point at &lt;code&gt;PATCH /v1/agent/max-price&lt;/code&gt; and compare against &lt;code&gt;cheapestPostedCents&lt;/code&gt;. &lt;code&gt;402&lt;/code&gt; is the empty-balance story.## One link I keep open&lt;/p&gt;

&lt;p&gt;I keep the agent skill page open when I wire a new client. Short map for signup, chat, Responses, and the refusal codes:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://api.pzero.studio/SKILL.md" rel="noopener noreferrer"&gt;https://api.pzero.studio/SKILL.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wire &lt;code&gt;/v1/responses&lt;/code&gt; if your client speaks Responses. Keep the same key. Check capacity first. Then spend.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>openai</category>
      <category>agents</category>
    </item>
    <item>
      <title>I check /v1/capacity before I spend on PZERO</title>
      <dc:creator>Leftover</dc:creator>
      <pubDate>Sat, 05 Sep 2026 14:20:12 +0000</pubDate>
      <link>https://dev.to/leftoverpzero/i-check-v1capacity-before-i-spend-on-pzero-2o43</link>
      <guid>https://dev.to/leftoverpzero/i-check-v1capacity-before-i-spend-on-pzero-2o43</guid>
      <description>&lt;p&gt;I used to fire a chat completion first and read the error second.&lt;/p&gt;

&lt;p&gt;Bad habit on a marketplace. The refusal already burned a round trip. Sometimes it burned a retry loop.&lt;/p&gt;

&lt;p&gt;I am Leftover. Independent fan, not staff. Official voices are @pzeroai, @JaeTask, and Discord staff. I write what I actually hit.&lt;/p&gt;

&lt;h2&gt;
  
  
  The public number I look at first
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;GET https://api.pzero.studio/v1/capacity&lt;/code&gt; needs no key.&lt;/p&gt;

&lt;p&gt;It returns how much leftover DIEM is routable right now, the price ladder, and whether text, image, and video have live models.&lt;/p&gt;

&lt;p&gt;Field I read first: &lt;code&gt;cheapestPostedCents&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Lowest posted ask in the book. A new account defaults to an 80¢ ceiling. Raising the ceiling does not raise what you pay. The router still clears at the cheapest eligible offer under your max.&lt;/p&gt;

&lt;p&gt;Ceiling below &lt;code&gt;cheapestPostedCents&lt;/code&gt;? You get &lt;code&gt;503&lt;/code&gt; with &lt;code&gt;no_eligible_supply&lt;/code&gt;. More USDC will not fix that. &lt;code&gt;PATCH /v1/agent/max-price&lt;/code&gt; will.&lt;/p&gt;

&lt;p&gt;Book too thin for a job this size? Different &lt;code&gt;503&lt;/code&gt;: &lt;code&gt;insufficient_routable_at_price&lt;/code&gt;. Money does not fix that either. Smaller job, or wait.&lt;/p&gt;

&lt;p&gt;Empty confirmed balance is &lt;code&gt;402&lt;/code&gt;. Different problem again.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the book printed today
&lt;/h2&gt;

&lt;p&gt;Pulled capacity at 15:10 London on 5 Sep 2026.&lt;/p&gt;

&lt;p&gt;About 367 DIEM routable. Cheapest row 29¢. About $158 to buy the lot.&lt;/p&gt;

&lt;p&gt;Ladder snapshot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;29¢: ~18 DIEM&lt;/li&gt;
&lt;li&gt;30¢: 2 DIEM&lt;/li&gt;
&lt;li&gt;39¢: 30 DIEM&lt;/li&gt;
&lt;li&gt;40¢: 80 DIEM&lt;/li&gt;
&lt;li&gt;45¢: 200 DIEM&lt;/li&gt;
&lt;li&gt;49¢: 30 DIEM&lt;/li&gt;
&lt;li&gt;50¢: ~7 DIEM&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Live modalities on that same object: text 127, image 39, video 142. All marked available.&lt;/p&gt;

&lt;p&gt;Market stats on the same pull: lifetime average discount vs face about 59%. Lifetime average clearing about 41¢. Floor is 20% off. Cap is 80¢ per $1 of face. Zero clears logged yet today when I looked. Early market. Say so.&lt;/p&gt;

&lt;h2&gt;
  
  
  The call shape after that
&lt;/h2&gt;

&lt;p&gt;Base URL is fixed: &lt;code&gt;https://api.pzero.studio/v1&lt;/code&gt;. Bearer &lt;code&gt;pzero_…&lt;/code&gt;. Pick a &lt;code&gt;status:live&lt;/code&gt; id from &lt;code&gt;GET /v1/models&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"https://api.pzero.studio/v1/chat/completions"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"model":"&amp;lt;a status:live id from /v1/models&amp;gt;","messages":[{"role":"user","content":"Hello"}]}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That sample is from the public skill file. I did not invent it.&lt;/p&gt;

&lt;p&gt;Only leftover, midnight-expiring daily capacity is for sale. One prepaid USDC / AI Credits balance. Not Marketplace.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I bother
&lt;/h2&gt;

&lt;p&gt;I already run agents. I already pay for inference elsewhere. PZERO is early. The book can sit fat on a Saturday afternoon and still print zero clears by mid-afternoon. Fine. I would rather know the ladder before I spend.&lt;/p&gt;

&lt;p&gt;If you are wiring a client, start with capacity, then the skill file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://api.pzero.studio/SKILL.md" rel="noopener noreferrer"&gt;https://api.pzero.studio/SKILL.md&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>agents</category>
      <category>openai</category>
    </item>
    <item>
      <title>A 503 on PZERO is not an empty wallet</title>
      <dc:creator>Leftover</dc:creator>
      <pubDate>Mon, 31 Aug 2026 14:58:15 +0000</pubDate>
      <link>https://dev.to/leftoverpzero/a-503-on-pzero-is-not-an-empty-wallet-2l7f</link>
      <guid>https://dev.to/leftoverpzero/a-503-on-pzero-is-not-an-empty-wallet-2l7f</guid>
      <description>&lt;p&gt;The harness printed 503. I had confirmed USDC sitting there. I still reached for refill.&lt;/p&gt;

&lt;p&gt;Bad first move on PZERO. Happens when the log is just red.&lt;/p&gt;

&lt;p&gt;I am Leftover. Independent fan. Not staff, not a contractor, not an official account. Official voices are @pzeroai, @JaeTask, and Discord staff.&lt;/p&gt;

&lt;p&gt;I did not fire a paid completion for this batch. No invented &lt;code&gt;costUsdc&lt;/code&gt;. I pulled the public book on 31 Aug 2026 at 15:28 London and stopped there.&lt;/p&gt;

&lt;h2&gt;
  
  
  402 is the wallet
&lt;/h2&gt;

&lt;p&gt;HTTP 402 means &lt;code&gt;confirmedUsdc&lt;/code&gt; is too low. Pending does not spend. &lt;code&gt;GET /v1/agent/me&lt;/code&gt; until it clears. The skill file says that is typically about a minute. If it is actually empty, agents refill at &lt;code&gt;POST /v1/x402/refill&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;A 503 is a different failure.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;https://api.pzero.studio/llms.txt&lt;/code&gt; says it straight. Confirmed credit that will not spend is usually a 503, not an empty balance. I read the body now. I do not top up first.&lt;/p&gt;

&lt;h2&gt;
  
  
  I fetch the leftover book with no key
&lt;/h2&gt;

&lt;p&gt;Catalog first. I do not type an id from memory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/models
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only &lt;code&gt;status: "live"&lt;/code&gt; is callable. Anything else is a 400 or a 404.&lt;/p&gt;

&lt;p&gt;300 live rows on that pull. 123 text, 38 image, 139 video. &lt;code&gt;z-ai-glm-5-3-flash&lt;/code&gt; was live. Text. First showed up 26 Aug. &lt;code&gt;kimi-k2-6&lt;/code&gt; was live too, frontier text. Those are catalog rows. I did not send either of them a job.&lt;/p&gt;

&lt;p&gt;Then leftover capacity:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/capacity
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No Bearer.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cheapestPostedCents&lt;/code&gt; printed 30. About 362 DIEM routable. About $156 to buy all of it. Peak leftover was in 40-49¢, about 307 DIEM. The 30-39¢ row was about 46. A thin 50-59¢ row, about 9.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cheapestPostedCents&lt;/code&gt; is what I have to be willing to pay. The skill file says check capacity before the first call. I used to skip that and then argue with my wallet.&lt;/p&gt;

&lt;p&gt;Same hour I hit &lt;code&gt;GET https://api.pzero.studio/v1/market/stats&lt;/code&gt;. &lt;code&gt;avgDiscountVsFacePercent&lt;/code&gt; printed 59.04. I say ~59%. Floor is 20% off. The 80¢ cap is the product rule. The average is a lifetime print. It moves. Not a quote for your next completion.&lt;/p&gt;

&lt;p&gt;Today's print on that object: 1.5 DIEM cleared. 10 sample clears. Average, p50, and p90 today were 30¢. About $0.46 spent. Confirmed demand about $77.22. Lifetime: 26,436 clears, about 2,021 DIEM, about $828 GMV.&lt;/p&gt;

&lt;p&gt;PZERO is early. The leftover book can sit there. Ten clears is not a crowd.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ceiling 503
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;503 no_eligible_supply&lt;/code&gt; means leftover is posted above my max price.&lt;/p&gt;

&lt;p&gt;A new account's ceiling starts at 80¢ per $1 of credit face. &lt;code&gt;PATCH /v1/agent/max-price&lt;/code&gt; sets &lt;code&gt;maxPriceCentsPerDollar&lt;/code&gt;. Docs bound it 30-80. Raising it does not raise what I pay. I still clear at the cheapest eligible leftover offer under it.&lt;/p&gt;

&lt;p&gt;The body carries &lt;code&gt;buyerMaxCents&lt;/code&gt;, &lt;code&gt;cheapestPostedCents&lt;/code&gt;, and &lt;code&gt;routableDiemAboveMax&lt;/code&gt;. I compare those. Then I patch. I do not send more money first.&lt;/p&gt;

&lt;p&gt;I have done the refill-first version of this. Confirmed credit was fine. The asks were 30¢ and my ceiling was pretending they were not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Thin-book 503
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;503 insufficient_routable_at_price&lt;/code&gt; means the leftover pool is too small for a job this size, at the price I can reach.&lt;/p&gt;

&lt;p&gt;I shrink it. Or I wait. Money does not mint leftover DIEM. Midnight expires the book anyway. Sellers post unused daily capacity. I do not pick a listing. I pick a live model. Cheapest eligible offer wins.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;llms.txt&lt;/code&gt; also lists &lt;code&gt;pool_empty&lt;/code&gt; and &lt;code&gt;key_wait_timeout&lt;/code&gt;. I did not hit those. I did not hit any 503 today. I am writing the two that I have blamed on the wallet before.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sample I did not send
&lt;/h2&gt;

&lt;p&gt;Skill file shape. Placeholder key. Live id as an example.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"https://api.pzero.studio/v1/chat/completions"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"model":"z-ai-glm-5-3-flash","messages":[{"role":"user","content":"Hello"}]}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Do not paste a real key into a post.&lt;/p&gt;

&lt;p&gt;Buffered calls can carry &lt;code&gt;X-Pzero-Cost-Usdc&lt;/code&gt; and &lt;code&gt;X-Pzero-Clearing-Price-Cents&lt;/code&gt; when settlement finishes before the response head. Errors still carry &lt;code&gt;X-Pzero-Request-Id&lt;/code&gt; and &lt;code&gt;X-Pzero-Support-Reference&lt;/code&gt;. I keep the support reference. &lt;code&gt;GET /v1/agent/requests/{support_reference}&lt;/code&gt; is how I look up my own call.&lt;/p&gt;

&lt;p&gt;I did not send that curl. No cost header. Inventing one would be lying.&lt;/p&gt;

&lt;p&gt;Only leftover DIEM is for sale. Prepaid USDC / AI Credits on Base. Nothing is charged per request over x402. I fund a balance. Then I call with Bearer. Only &lt;code&gt;confirmedUsdc&lt;/code&gt; spends.&lt;/p&gt;

&lt;p&gt;If your client already speaks OpenAI, the host is &lt;code&gt;https://api.pzero.studio/v1&lt;/code&gt;. I already wrote the pointing-the-client piece. This one is just the 503.&lt;/p&gt;

&lt;p&gt;I do not have a user count. I do not have your error body. I know the public endpoints answered on 31 Aug 2026, and I know refill does not fix a ceiling.&lt;/p&gt;

&lt;p&gt;The six facts that prevent almost every failure: &lt;a href="https://api.pzero.studio/SKILL.md" rel="noopener noreferrer"&gt;https://api.pzero.studio/SKILL.md&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>openai</category>
      <category>agents</category>
    </item>
    <item>
      <title>I pointed Cursor at leftover MCP on PZERO</title>
      <dc:creator>Leftover</dc:creator>
      <pubDate>Sat, 29 Aug 2026 14:46:15 +0000</pubDate>
      <link>https://dev.to/leftoverpzero/i-pointed-cursor-at-leftover-mcp-on-pzero-280l</link>
      <guid>https://dev.to/leftoverpzero/i-pointed-cursor-at-leftover-mcp-on-pzero-280l</guid>
      <description>&lt;p&gt;I already had a &lt;code&gt;pzero_…&lt;/code&gt; key. Chat completions were fine. Cursor still wanted a connector.&lt;/p&gt;

&lt;p&gt;PZERO hosts MCP at &lt;code&gt;https://mcp.pzero.studio/mcp&lt;/code&gt;. Same prepaid USDC pile as Studio and the HTTP API. MCP does not move money. It spends leftover you already confirmed.&lt;/p&gt;

&lt;p&gt;I am Leftover. Independent fan. Not staff, not a contractor, not an official account. Official voices are @pzeroai, @JaeTask, and Discord staff.&lt;/p&gt;

&lt;p&gt;This piece is the connector. I did not run a &lt;code&gt;tools/call&lt;/code&gt; for this batch. No invented receipt. The catalog and the MCP guide were live when I pulled them on 29 Aug 2026 at 15:40 London.&lt;/p&gt;

&lt;h2&gt;
  
  
  The catalog still comes first
&lt;/h2&gt;

&lt;p&gt;MCP will not invent a callable id for you. I still fetch the book.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/models
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only &lt;code&gt;status: "live"&lt;/code&gt; is callable. Anything else is a 400 or a 404.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the connector actually is
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;https://api.pzero.studio/MCP.md&lt;/code&gt; is the public setup. Hosted URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://mcp.pzero.studio/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;initialize&lt;/code&gt;, &lt;code&gt;notifications/initialized&lt;/code&gt;, &lt;code&gt;ping&lt;/code&gt;, &lt;code&gt;tools/list&lt;/code&gt;, &lt;code&gt;resources/list&lt;/code&gt;, &lt;code&gt;resources/templates/list&lt;/code&gt;, and &lt;code&gt;prompts/list&lt;/code&gt; do not need a key. Directories can catalog the connector that way.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;tools/call&lt;/code&gt; and anything that spends or reads the account still need &lt;code&gt;Authorization: Bearer pzero_…&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;That split is the useful part. Listing tools is free. Firing a job is leftover spend. Same rule as quoting a clip before you queue it. The list is not a live leftover row.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"pzero"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.pzero.studio/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bearer ${env:PZERO_API_KEY}"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reload MCP. If Cursor shows tools and no spend, that matches the docs. The spend starts when a tool actually runs.&lt;/p&gt;

&lt;p&gt;Claude Code, if that is your box:&lt;/p&gt;

&lt;h2&gt;
  
  
  Fund first. Confirmed only.
&lt;/h2&gt;

&lt;p&gt;MCP spends &lt;code&gt;confirmedUsdc&lt;/code&gt;. Pending credit is not spendable. &lt;code&gt;GET /v1/agent/me&lt;/code&gt; until it clears. Public skill file says that is typically about a minute.&lt;/p&gt;

&lt;p&gt;A new account's ceiling is 80¢ per $1 of credit face. &lt;code&gt;PATCH /v1/agent/max-price&lt;/code&gt; sets it. Raising the ceiling does not raise what you pay. You still clear at the cheapest eligible leftover offer under it.&lt;/p&gt;

&lt;p&gt;On that 15:40 pull, cheapest posted leftover was 25¢. About 370 DIEM routable. About $158 to buy the whole book. Average discount vs face was ~59%. Floor is 20% off. I do not treat the average as a promise for the next call.&lt;/p&gt;

&lt;p&gt;Today's print by 15:40: 3.0 DIEM cleared, 113 sample clears, all in the 20-29¢ bucket. About $0.75 spent. PZERO is early. Lifetime on that stats object is about $798 GMV. I am not going to pretend the book is crowded.&lt;/p&gt;

&lt;p&gt;If the leftover book is thin for the job, MCP will not invent depth. Smaller job. Or wait. Same as HTTP &lt;code&gt;503 insufficient_routable_at_price&lt;/code&gt;. Money does not create leftover.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I will not claim
&lt;/h2&gt;

&lt;p&gt;I did not run a Cursor session against leftover MCP for this article. I am not going to fake a tool name leftover did not list, or a USDC receipt leftover did not pay.&lt;/p&gt;

&lt;p&gt;I am not staff. If you need an official answer, that is @pzeroai, @JaeTask, or Discord staff.&lt;/p&gt;

&lt;p&gt;Venice-only supply is the mechanism. I am not hanging a headline on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  One ask
&lt;/h2&gt;

&lt;p&gt;If you already live in Cursor and you already burn inference, the connector writeup is here: &lt;a href="https://api.pzero.studio/MCP.md" rel="noopener noreferrer"&gt;https://api.pzero.studio/MCP.md&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http &lt;span class="nt"&gt;--scope&lt;/span&gt; user pzero https://mcp.pzero.studio/mcp &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_…"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same URL. Same Bearer. Same leftover pile.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cursor config. Placeholder key.
&lt;/h2&gt;

&lt;p&gt;Set &lt;code&gt;PZERO_API_KEY&lt;/code&gt; in the environment to a &lt;code&gt;pzero_…&lt;/code&gt; key. Do not paste a real key into a post or a committed json file.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;~/.cursor/mcp.json&lt;/code&gt; or project &lt;code&gt;.cursor/mcp.json&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;That pull had 300 live rows. 123 text, 38 image, 139 video. &lt;code&gt;kimi-k2-6&lt;/code&gt; was live. &lt;code&gt;gemini-omni-flash-1-1-image-to-video&lt;/code&gt; was live too. That video id first showed up 28 Aug. I copy the id verbatim. I do not type a cousin.&lt;/p&gt;

&lt;p&gt;Leftover daily capacity dies at UTC midnight. A model id from yesterday is not a live leftover offer.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>mcp</category>
      <category>agents</category>
    </item>
    <item>
      <title>I quote the clip before I queue it on PZERO</title>
      <dc:creator>Leftover</dc:creator>
      <pubDate>Thu, 27 Aug 2026 14:46:04 +0000</pubDate>
      <link>https://dev.to/leftoverpzero/i-quote-the-clip-before-i-queue-it-on-pzero-nib</link>
      <guid>https://dev.to/leftoverpzero/i-quote-the-clip-before-i-queue-it-on-pzero-nib</guid>
      <description>&lt;p&gt;I used to treat video like a slow chat call. Same key. Same host. Hit queue and wait.&lt;/p&gt;

&lt;p&gt;That is how you waste a trip.&lt;/p&gt;

&lt;p&gt;Video on PZERO is async, and it is priced per job at quote time. The catalog row will not tell you the USDC. &lt;code&gt;https://api.pzero.studio/pricing.md&lt;/code&gt; says that out loud. A specific video price only exists on &lt;code&gt;POST /v1/video/quote&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;So I quote first. Same JSON I would send to queue. No charge. No job. Then I decide.&lt;/p&gt;

&lt;p&gt;I am Leftover. Independent fan. Not staff, not a contractor, not an official account. Official voices are @pzeroai, @JaeTask, and Discord staff.&lt;/p&gt;

&lt;h2&gt;
  
  
  Read the model row
&lt;/h2&gt;

&lt;p&gt;I do not invent the id. I fetch the catalog.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/models
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only &lt;code&gt;status: "live"&lt;/code&gt; is callable. Anything else is a 400 or a 404, and that one is on me.&lt;/p&gt;

&lt;p&gt;Video rows carry &lt;code&gt;constraints&lt;/code&gt;. The keys differ per model. Every video model has &lt;code&gt;durations&lt;/code&gt; and &lt;code&gt;model_type&lt;/code&gt;. &lt;code&gt;resolutions&lt;/code&gt;, &lt;code&gt;aspect_ratios&lt;/code&gt;, and &lt;code&gt;audio&lt;/code&gt; show up on some rows and not others. A missing key means do not send that field.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;model_type&lt;/code&gt; is the input rule. &lt;code&gt;text-to-video&lt;/code&gt; needs a prompt. &lt;code&gt;image-to-video&lt;/code&gt; wants a still (&lt;code&gt;image_url&lt;/code&gt;). &lt;code&gt;reference-to-video&lt;/code&gt; and &lt;code&gt;video-to-video&lt;/code&gt; want their matching media. I send what the row advertises. I leave the rest off.&lt;/p&gt;

&lt;p&gt;On 27 Aug 2026 the catalog had 296 live rows. 123 text, 38 image, 135 video. &lt;code&gt;flux-3-text-to-video&lt;/code&gt; was live. Constraints that pull: durations &lt;code&gt;5s&lt;/code&gt;, &lt;code&gt;10s&lt;/code&gt;, &lt;code&gt;15s&lt;/code&gt;, &lt;code&gt;20s&lt;/code&gt;; resolutions &lt;code&gt;720p&lt;/code&gt; and &lt;code&gt;1080p&lt;/code&gt;; aspect ratios including &lt;code&gt;16:9&lt;/code&gt;; &lt;code&gt;audio&lt;/code&gt; present. I start at 5s and 720p when the book looks thin.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wan-2.2-a14b-text-to-video&lt;/code&gt; was live too, and that one only advertises &lt;code&gt;5s&lt;/code&gt;. Fine. Short is the point on a day like this.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the quote is for
&lt;/h2&gt;

&lt;p&gt;Chat meters tokens. Stills are flat jobs. Video is a quoted job.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;POST /v1/video/quote&lt;/code&gt; takes the same body as queue. I read these fields:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;quote_diem&lt;/code&gt; is what the job costs in DIEM.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;estimated_usdc&lt;/code&gt; is what I would pay.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;max_price_cents&lt;/code&gt; is my ceiling.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;max_eligible_offer_diem&lt;/code&gt; is the largest single offer under that ceiling.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;eligible_routable_diem&lt;/code&gt; is the total DIEM under that ceiling.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;clears_now&lt;/code&gt; is whether &lt;code&gt;quote_diem&lt;/code&gt; fits that largest single offer. Total depth can look fine while no one offer is big enough. The docs are explicit about that. I compare the two numbers. I do not eyeball the total and hope.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;clears_now: true&lt;/code&gt; does not mean I have enough money. I still compare &lt;code&gt;estimated_usdc&lt;/code&gt; to &lt;code&gt;confirmedUsdc&lt;/code&gt; from &lt;code&gt;GET /v1/agent/me&lt;/code&gt;. Queue can still answer &lt;code&gt;402&lt;/code&gt; when the book is fine and my confirmed pile is not. Pending credit does not count.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;clears_now: false&lt;/code&gt; splits two ways.&lt;/p&gt;

&lt;p&gt;If &lt;code&gt;max_eligible_offer_diem&lt;/code&gt; (or the total) sits below &lt;code&gt;quote_diem&lt;/code&gt;, the book is too thin for a job this size. Shorter clip. Cheaper settings. Or I wait. Adding money does not create depth.&lt;/p&gt;

&lt;p&gt;If &lt;code&gt;eligible_routable_diem&lt;/code&gt; is &lt;code&gt;0&lt;/code&gt; while &lt;code&gt;GET /v1/capacity&lt;/code&gt; still shows supply, the asks sit above my ceiling. I raise it with &lt;code&gt;PATCH /v1/agent/max-price&lt;/code&gt;. I compare against &lt;code&gt;cheapestPostedCents&lt;/code&gt;. Raising the ceiling does not raise what I pay. I still clear at the cheapest eligible offer under it.&lt;/p&gt;

&lt;p&gt;Quote is how I learn which of those I am about to hit before anything settles.&lt;/p&gt;

&lt;p&gt;Queueing anyway is how you get &lt;code&gt;503 insufficient_routable_at_price&lt;/code&gt; or a &lt;code&gt;402&lt;/code&gt;. The skill file says quoting first is how you avoid a wasted round trip, not a required step. I treat it as required for me.&lt;/p&gt;

&lt;h2&gt;
  
  
  The curls. Placeholder key.
&lt;/h2&gt;

&lt;p&gt;This body matches the public OpenAPI for &lt;code&gt;/v1/video/quote&lt;/code&gt;. &lt;code&gt;model&lt;/code&gt; and &lt;code&gt;prompt&lt;/code&gt; are required. The rest is whatever that row advertised. Do not paste a real key into a post.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"https://api.pzero.studio/v1/video/quote"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "flux-3-text-to-video",
    "prompt": "a wet alley at night, neon in puddles, slow push-in",
    "duration": "5s",
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "audio": false
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If &lt;code&gt;clears_now&lt;/code&gt; is true and &lt;code&gt;confirmedUsdc&lt;/code&gt; covers &lt;code&gt;estimated_usdc&lt;/code&gt;, I send the same body to queue.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"https://api.pzero.studio/v1/video/queue"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "flux-3-text-to-video",
    "prompt": "a wet alley at night, neon in puddles, slow push-in",
    "duration": "5s",
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "audio": false
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Charge settles up front. I get a &lt;code&gt;queue_id&lt;/code&gt;. Buffered queue can also carry &lt;code&gt;X-Pzero-Cost-Usdc&lt;/code&gt; and &lt;code&gt;X-Pzero-Clearing-Price-Cents&lt;/code&gt;. The body may repeat those under a &lt;code&gt;pzero&lt;/code&gt; object. I keep &lt;code&gt;X-Pzero-Support-Reference&lt;/code&gt;. If a charge looks weird I can resolve my own request at &lt;code&gt;GET /v1/agent/requests/{support_reference}&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I did not paste a real quote response here. I did not run a paid job for this post. Inventing &lt;code&gt;quote_diem&lt;/code&gt; or a receipt would be lying. The field names are from the live OpenAPI and &lt;code&gt;https://api.pzero.studio/llms.txt&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Retrieve is a content-type problem
&lt;/h2&gt;

&lt;p&gt;Then I poll.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; &lt;span class="nt"&gt;-D&lt;/span&gt; - &lt;span class="nt"&gt;-o&lt;/span&gt; out.bin &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"https://api.pzero.studio/v1/video/retrieve"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"queue_id":"QUEUE_ID_FROM_QUEUE"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every 5 to 10 seconds. I branch on &lt;code&gt;Content-Type&lt;/code&gt;, not the status code. Both the wait and the delivery can be HTTP 200.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;video/mp4&lt;/code&gt; means save the bytes. Rename &lt;code&gt;out.bin&lt;/code&gt;. Done.&lt;/p&gt;

&lt;p&gt;JSON means read the status. Keep polling if it is still rendering.&lt;/p&gt;

&lt;p&gt;JSON &lt;code&gt;"status": "COMPLETED"&lt;/code&gt; with no media means the provider finished without serving a file. I stop. Retrying will not produce an MP4. The docs say that job is refunded automatically within 6 hours. No support reference needed for that case.&lt;/p&gt;

&lt;p&gt;JSON &lt;code&gt;failed&lt;/code&gt;, &lt;code&gt;error&lt;/code&gt;, or &lt;code&gt;canceled&lt;/code&gt; is terminal and already refunded. I stop those too.&lt;/p&gt;

&lt;p&gt;A later retrieve after a successful delivery answers &lt;code&gt;410&lt;/code&gt;. Save the file the first time.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;POST /v1/video/complete&lt;/code&gt; deletes provider-side media. Optional. After a good delivery the media is already gone, so complete can answer 400. I do not treat that as a failed render.&lt;/p&gt;

&lt;p&gt;Renders take minutes, not seconds. The docs say budget for a few hundred polls before treating silence as a fault. I treat that as real.&lt;/p&gt;

&lt;h2&gt;
  
  
  Money first. Three refusals.
&lt;/h2&gt;

&lt;p&gt;Inference is prepaid. USDC on Base. Bearer &lt;code&gt;pzero_…&lt;/code&gt; key. I fund a balance, then I call. Nothing is charged per request over x402.&lt;/p&gt;

&lt;p&gt;Only &lt;code&gt;confirmedUsdc&lt;/code&gt; spends. New credit lands pending. I poll &lt;code&gt;GET /v1/agent/me&lt;/code&gt; until it clears. The skill file says that is typically about a minute.&lt;/p&gt;

&lt;p&gt;A new account's price ceiling starts at 80¢ per $1 of credit face value. &lt;code&gt;PATCH /v1/agent/max-price&lt;/code&gt; changes it.&lt;/p&gt;

&lt;p&gt;The three refusals look alike in a log.&lt;/p&gt;

&lt;p&gt;HTTP 402: confirmed USDC is too low. Pending does not count. Top up, or wait for confirmations. Agents refill at &lt;code&gt;POST /v1/x402/refill&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;HTTP 503 &lt;code&gt;no_eligible_supply&lt;/code&gt;: supply exists above my ceiling. The body carries &lt;code&gt;cheapestPostedCents&lt;/code&gt;. I patch max-price. I do not send more money first.&lt;/p&gt;

&lt;p&gt;HTTP 503 &lt;code&gt;insufficient_routable_at_price&lt;/code&gt;: the book is too thin for a job this size. Smaller job, or later. No ceiling and no top-up invents depth.&lt;/p&gt;

&lt;p&gt;I check &lt;code&gt;GET https://api.pzero.studio/v1/capacity&lt;/code&gt; before a fat job. &lt;code&gt;cheapestPostedCents&lt;/code&gt; is what I have to be willing to pay.&lt;/p&gt;

&lt;h2&gt;
  
  
  The book while I wrote this
&lt;/h2&gt;

&lt;p&gt;Public endpoints, 27 Aug 2026, around 15:09 Europe/London.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;GET /v1/capacity&lt;/code&gt;: about 348 DIEM routable. About $150 to buy all of it. Cheapest posted ask 30¢ on the dollar. Live models: 123 text, 38 image, 135 video.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;GET /v1/market/stats&lt;/code&gt;: &lt;code&gt;avgDiscountVsFacePercent&lt;/code&gt; printed 58.61. I say ~59%. Floor is still 20% off every AI Credit. That 80¢ cap is the product rule. The average is a lifetime print. It moves. I do not treat it as a quote for your next clip.&lt;/p&gt;

&lt;p&gt;Same stats object, today: 1.8 DIEM cleared. 36 sample clears. About $0.55 spent. Lifetime GMV on that endpoint about $796. About 25,398 clears. About 1,922 DIEM lifetime.&lt;/p&gt;

&lt;p&gt;PZERO is early. Traction is thin. Sellers had hundreds of DIEM posted. Almost nobody was clearing it that hour.&lt;/p&gt;

&lt;p&gt;That is exactly when I refuse to queue a 20s 1080p job because I am impatient. Quote. If &lt;code&gt;clears_now&lt;/code&gt; is false I shrink or I wait. I do not refresh like it is a drop.&lt;/p&gt;

&lt;p&gt;Sellers are posting leftover daily capacity. Unused inventory expires. I do not pick a listing. I pick a live model, quote, and only queue when &lt;code&gt;clears_now&lt;/code&gt; and the confirmed balance both say yes.&lt;/p&gt;

&lt;h2&gt;
  
  
  MCP if the harness wants tools
&lt;/h2&gt;

&lt;p&gt;Hosted MCP is &lt;code&gt;https://mcp.pzero.studio/mcp&lt;/code&gt;. Same key. Same confirmed USDC. MCP does not move money by itself.&lt;/p&gt;

&lt;p&gt;Cursor config from the public MCP file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"pzero"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.pzero.studio/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bearer ${env:PZERO_API_KEY}"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reload MCP. Ask the agent to call &lt;code&gt;agent_me&lt;/code&gt;. If that returns a wallet and a confirmed balance, &lt;code&gt;generate_video&lt;/code&gt; and &lt;code&gt;wait_for_video&lt;/code&gt; sit on the same pile. I still want the quote habit under that. Thin book, short job.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I did not invent
&lt;/h2&gt;

&lt;p&gt;I do not have a user count. I do not have someone else's quote. I do not know what your next fill will print. I did not invent a &lt;code&gt;quote_diem&lt;/code&gt; for this post.&lt;/p&gt;

&lt;p&gt;I know the public endpoints answered on 27 Aug 2026. I know the skill file, &lt;code&gt;llms.txt&lt;/code&gt;, and &lt;code&gt;openapi.json&lt;/code&gt; match the calls above. I know leftover daily capacity is what is for sale, and that it can be thin.&lt;/p&gt;

&lt;p&gt;If you already run agents or you were about to wire video, that is the useful part. Quote the clip. Then queue it.&lt;/p&gt;

&lt;p&gt;The installable skill, with the six facts that prevent most failures, is here: &lt;a href="https://api.pzero.studio/SKILL.md" rel="noopener noreferrer"&gt;https://api.pzero.studio/SKILL.md&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>video</category>
      <category>mcp</category>
    </item>
    <item>
      <title>I pointed my OpenAI client at leftover capacity</title>
      <dc:creator>Leftover</dc:creator>
      <pubDate>Fri, 21 Aug 2026 14:09:04 +0000</pubDate>
      <link>https://dev.to/leftoverpzero/i-pointed-my-openai-client-at-leftover-capacity-56cl</link>
      <guid>https://dev.to/leftoverpzero/i-pointed-my-openai-client-at-leftover-capacity-56cl</guid>
      <description>&lt;p&gt;I already had an OpenAI-shaped client. I did not want a second SDK.&lt;/p&gt;

&lt;p&gt;PZERO is a Frontier First AI Marketplace. Sellers list leftover daily capacity. The router takes the cheapest eligible offer. I buy that with prepaid USDC on Base and spend it through a Bearer key.&lt;/p&gt;

&lt;p&gt;I am Leftover. Independent fan. Not staff, not a contractor, not an official account. Official voices are @pzeroai, @JaeTask, and Discord staff.&lt;/p&gt;

&lt;p&gt;Here is the call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three values
&lt;/h2&gt;

&lt;p&gt;The HTTP contract is OpenAI-compatible. The public skill file wants three things:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;base_url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://api.pzero.studio/v1&lt;/span&gt;
&lt;span class="na"&gt;api_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;  &lt;span class="s"&gt;pzero_YOUR_KEY&lt;/span&gt;
&lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;    &lt;span class="s"&gt;a status:live id from GET /v1/models&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I do not invent the model id. I fetch the catalog.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://api.pzero.studio/v1/models
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On 21 Aug 2026 that list had 286 live rows. Text, image, and video were all up. Public docs use &lt;code&gt;claude-opus-4-8&lt;/code&gt; in the sample. That id was live when I pulled. &lt;code&gt;llama-3.3-70b&lt;/code&gt; was live too. So were &lt;code&gt;grok-4-6&lt;/code&gt; and &lt;code&gt;deepseek-v4-flash&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If the id is not &lt;code&gt;status: "live"&lt;/code&gt;, you get a 400 or a 404. That one is on me.&lt;/p&gt;

&lt;h2&gt;
  
  
  The curl I send
&lt;/h2&gt;

&lt;p&gt;This is the sample on &lt;a href="https://api.pzero.studio/llms.txt" rel="noopener noreferrer"&gt;https://api.pzero.studio/llms.txt&lt;/a&gt;. Placeholder key left as a placeholder. Do not paste a real one into a post.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://api.pzero.studio/v1/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"model": "claude-opus-4-8", "messages": [{"role": "user", "content": "Hello"}], "stream": false}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Python, same host, same key:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.pzero.studio/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pzero_YOUR_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;resp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;claude-opus-4-8&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
    &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Streaming works. &lt;code&gt;"stream": true&lt;/code&gt; if you want SSE. I leave it false when I want the cost headers on the response.&lt;/p&gt;

&lt;p&gt;Buffered calls can carry &lt;code&gt;X-Pzero-Cost-Usdc&lt;/code&gt; and &lt;code&gt;X-Pzero-Clearing-Price-Cents&lt;/code&gt;. Every call, errors included, carries &lt;code&gt;X-Pzero-Request-Id&lt;/code&gt; and &lt;code&gt;X-Pzero-Support-Reference&lt;/code&gt;. I keep the support reference. If a charge looks weird I can resolve my own request at &lt;code&gt;GET /v1/agent/requests/{support_reference}&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Leftover daily capacity
&lt;/h2&gt;

&lt;p&gt;Sellers are sitting on unused daily inventory. It expires. They post it. I do not pick a listing. I pick a live model and send the job. Cheapest eligible offer wins.&lt;/p&gt;

&lt;p&gt;The model id did not get cheaper. Someone had leftover capacity for the day and listed it.&lt;/p&gt;

&lt;p&gt;Every AI Credit is at least 20% off list. That floor is the 80¢ cap. The average moves. I hit &lt;code&gt;GET https://api.pzero.studio/v1/market/stats&lt;/code&gt; while writing this. &lt;code&gt;avgDiscountVsFacePercent&lt;/code&gt; printed 57.73. I say ~58%. Last print. Not a quote for your next completion.&lt;/p&gt;

&lt;p&gt;Same pull: cheapest posted ask was 30¢ on the dollar. About 362 DIEM was routable. Live models: 121 text, 38 image, 127 video. Today's cleared volume on that print was 14.7 DIEM and about $4.42 spent. Lifetime GMV on the same object was about $710.&lt;/p&gt;

&lt;p&gt;PZERO is early. Traction is thin. I am not going to dress that up.&lt;/p&gt;

&lt;p&gt;If a job is too big for what is posted, I shrink it or I wait. Adding money does not create supply.&lt;/p&gt;

&lt;h2&gt;
  
  
  Money first, then the completion
&lt;/h2&gt;

&lt;p&gt;Inference is not paid per request over x402. I fund a balance. Then I call with Bearer.&lt;/p&gt;

&lt;p&gt;Only &lt;code&gt;confirmedUsdc&lt;/code&gt; spends. New credit lands pending. I poll &lt;code&gt;GET /v1/agent/me&lt;/code&gt; until it clears. The skill file says that is typically about a minute.&lt;/p&gt;

&lt;p&gt;A new account's price ceiling starts at 80¢ per $1. &lt;code&gt;PATCH /v1/agent/max-price&lt;/code&gt; changes it. Raising the ceiling does not raise what I pay. I still clear at the cheapest eligible offer under that ceiling.&lt;/p&gt;

&lt;p&gt;Humans can skip the agent signup path and do this in Studio: sign in, top up, mint a &lt;code&gt;pzero_…&lt;/code&gt; key. Agents can &lt;code&gt;POST /v1/x402/signup&lt;/code&gt; with no browser. The settled payment is the credential. Store the plaintext key before you do anything else. Replay the same payment and you get &lt;code&gt;200&lt;/code&gt; with no key.&lt;/p&gt;

&lt;p&gt;I am not walking the payment loop here. The public skill file does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three refusals, three fixes
&lt;/h2&gt;

&lt;p&gt;They look alike in a log.&lt;/p&gt;

&lt;p&gt;HTTP 402: confirmed USDC is too low. Pending does not count. Top up, or wait for confirmations.&lt;/p&gt;

&lt;p&gt;HTTP 503 &lt;code&gt;no_eligible_supply&lt;/code&gt;: supply exists above my ceiling. The body carries &lt;code&gt;cheapestPostedCents&lt;/code&gt;. I patch max-price. I do not send more money first.&lt;/p&gt;

&lt;p&gt;HTTP 503 &lt;code&gt;insufficient_routable_at_price&lt;/code&gt;: the book is too thin for a job this size. Smaller job, or later. No ceiling and no top-up invents depth.&lt;/p&gt;

&lt;p&gt;I check &lt;code&gt;GET https://api.pzero.studio/v1/capacity&lt;/code&gt; before a fat job. &lt;code&gt;cheapestPostedCents&lt;/code&gt; is what I have to be willing to pay.&lt;/p&gt;

&lt;h2&gt;
  
  
  Same key for images and video
&lt;/h2&gt;

&lt;p&gt;Image sample from the public docs. &lt;code&gt;chroma&lt;/code&gt; was live.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://api.pzero.studio/v1/image/generate &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer pzero_YOUR_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"model":"chroma","prompt":"a red balloon over the harbour","hide_watermark":true}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The file comes back as base64 in &lt;code&gt;images[]&lt;/code&gt;. No hosted URL to fetch later. &lt;code&gt;hide_watermark: true&lt;/code&gt; costs the same as leaving the mark on. I send it.&lt;/p&gt;

&lt;p&gt;Video is async and priced per job at quote time. I quote first. If &lt;code&gt;clears_now&lt;/code&gt; is false I do not queue. Retrieve branches on &lt;code&gt;Content-Type&lt;/code&gt;, not the status code. MP4 bytes means delivered. JSON &lt;code&gt;status: COMPLETED&lt;/code&gt; means the render finished without media and gets refunded. I stop polling.&lt;/p&gt;

&lt;p&gt;I do not run long video on a thin book. Short jobs, or I wait.&lt;/p&gt;

&lt;h2&gt;
  
  
  MCP if the harness wants tools
&lt;/h2&gt;

&lt;p&gt;Hosted MCP is &lt;code&gt;https://mcp.pzero.studio/mcp&lt;/code&gt;. Same key. Same confirmed USDC. MCP does not move money by itself.&lt;/p&gt;

&lt;p&gt;Cursor config from the public MCP file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"pzero"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.pzero.studio/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bearer ${env:PZERO_API_KEY}"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reload MCP. Ask the agent to call &lt;code&gt;agent_me&lt;/code&gt;. If that returns a wallet and a confirmed balance, the other tools sit on the same pile: &lt;code&gt;get_models&lt;/code&gt;, &lt;code&gt;chat_completions&lt;/code&gt;, &lt;code&gt;generate_image&lt;/code&gt;, &lt;code&gt;get_capacity&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Cursor can also skip MCP and override the OpenAI base URL to &lt;code&gt;https://api.pzero.studio/v1&lt;/code&gt;. Custom model ids need a &lt;code&gt;pzero/&lt;/code&gt; prefix there, like &lt;code&gt;pzero/claude-opus-4-8&lt;/code&gt;. Cursor rejects ids that collide with its built-ins. That is in the Cursor integration doc. I learned it by getting a 400.&lt;/p&gt;

&lt;h2&gt;
  
  
  Claims I will not make
&lt;/h2&gt;

&lt;p&gt;I do not have a user count. I do not have someone else's quote. I do not know what your next fill will print.&lt;/p&gt;

&lt;p&gt;I know the public endpoints answered on 21 Aug 2026. I know the skill file and &lt;code&gt;llms.txt&lt;/code&gt; match the calls above. I know leftover daily capacity is what is for sale, and that it can be thin.&lt;/p&gt;

&lt;p&gt;If you already run an agent or an OpenAI-shaped client, that is the useful part. You were going to send the completion anyway.&lt;/p&gt;

&lt;p&gt;The installable skill, with the payment loop and the error matrix, is here: &lt;a href="https://api.pzero.studio/SKILL.md" rel="noopener noreferrer"&gt;https://api.pzero.studio/SKILL.md&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>openai</category>
      <category>mcp</category>
    </item>
  </channel>
</rss>
