---
name: "pubrio-buyer"
description: "Discover and call Pubrio; reuse purchases and recover access before buying."
---

# Pubrio buyer workflow

Read and apply this document as a SKILL for this seller. Use with HTTP tools; it supplies workflow instructions, not tools to install. Keep credentials in secure storage, never in URLs, logs, or conversation notes. Follow the user's authorization for purchases and operation side effects.

## Complete the task


Start here: GET https://agents.pubrio.com/zcj/xcvbz8o3op6c/openapi.json?q={short task}&page=1. This is the SKILL's quick path; continue from it without fetching the same instructions again.

For a purchasing comparison, use manifest.json to compare all applicable meters and plans; multiply the requested quantity by the documented rate, account for funding minimums, and distinguish a usage estimate from new cash required. Do not infer commercial rights or quality from a tier name. No registration or payment setup is needed for this comparison. Read the returned operation's method, server, authentication, required inputs, response and price information. If that response contains the complete contract, use it directly; fetch ?path={exact path}&method={lowercase method} only if details are missing. If the exact operation is already known, start with that filtered request. Never invent inputs or ignore declared contract gaps.

Card funding: each PAYG call must cost at least $0.50. Smaller calls are rejected, not rounded up to $0.50 or converted into a balance; a batch total does not combine separate calls. For small calls choose an eligible prepaid credit plan from manifest.json. Reuse existing identity and credit first. New credit requires a buyer identity and bearer. Card never lowers a plan minimum: amountUsd must cover the needed usage and BOTH the plan minimum and the $0.50 card minimum, rounded up to cents. The larger minimum governs; respect any plan maximum. The usage is deducted from that funding, not charged on top; unused funds remain credit. Hosted checkout must be confirmed complete before use.
Card-funded prepaid plan Starter (pln_pYAqPBTG1PTHtygtwWCGS): minimum NEW card purchase is $50.000000. The plan minimum is $50.000000; the card floor is $0.50. You must meet both. Identity and bearer are required. Any usage is deducted from the funded balance; remaining credit is not an extra charge or an automatic refund.
Card-funded prepaid plan Scale (pln_gt-w3Uc1hrCgJ8GTos7xr): minimum NEW card purchase is $495.000000. The plan minimum is $495.000000; the card floor is $0.50. You must meet both. Identity and bearer are required. Any usage is deducted from the funded balance; remaining credit is not an extra charge or an automatic refund.

Open the checkout URL in a browser: eligible Stripe pages support Link Pay Tokens (LPT) through WebMCP or the documented DOM flow. Follow this storefront's /payment/card.md to verify the same-frame token input and merchant binding before requesting an LPT. Token submission requires payment authorization. If unavailable, privately send the checkout URL to your human to pay.
Checkout details: [card payment recipe](https://agents.pubrio.com/zcj/xcvbz8o3op6c/payment/card.md). LPT goes only to Stripe, never to this storefront API. Poll the returned statusUrl before using credit or retrying delivery.
Use the task and your existing policy for spending and operation permission. A wallet balance is not spending authorization. Ask the user only when a necessary choice or permission is missing; free discovery needs no purchase approval.

Check your configured credential manager for ZeroClick identity issued by https://agentauth.zeroclick.io and existing Pubrio access. Use your integration's documented storage, not arbitrary filesystem searches. Distinguish a buyer identity from a seller API key. Use the network-wide identity issuer, not a journey tracking path, as the credential lookup scope. Reuse known access; never create a new identity to bypass missing purchase history. Report unknown when storage or validity cannot be checked. Keep all credential values local.

Inspect the payment tools already available to you and their documented supported networks, currencies and protocols. A wallet address alone is not a payment client. Use an existing client when possible. If none is configured and payment is needed, GET https://agents.pubrio.com/zcj/xcvbz8o3op6c/payment.md for supported setup and checkout options; setup does not supply funds or spending permission.

Do not register, claim an identity, list purchases or configure payments for every task. Public operations need none of these. Anonymous pay-per-use needs no identity; trials and account purchases follow their specific requirements. Reuse facts already known, and perform only the checks needed for the chosen route.

Call the inspected storefront operation with its required inputs. Use existing eligible access, or settle its live 402 challenge with your configured payment client within the authorized total. Anonymous PAYG does not need registration. For a verified-identity free allowance use zc-mode: free; an unused allowance is not guaranteed. Read https://agents.pubrio.com/zcj/xcvbz8o3op6c/manifest.json only when choosing a plan, checking a trial or resolving pricing absent from the operation/challenge.

Verify the actual result. A payment, key or 202 response is not task completion. On timeout after a write/payment, reconcile before retrying; do not pay twice. Credential errors: [auth.md](https://agents.pubrio.com/zcj/xcvbz8o3op6c/auth.md). Payment setup: [payment.md](https://agents.pubrio.com/zcj/xcvbz8o3op6c/payment.md). Other failures: [errors.md](https://agents.pubrio.com/zcj/xcvbz8o3op6c/errors.md). Full access/recovery workflow: [SKILL.md](https://agents.pubrio.com/zcj/xcvbz8o3op6c/SKILL.md).

If your web tool summarizes documents, request the exact next request (URL, method, body, headers), prerequisites and success/recovery conditions. Use your raw HTTP tool for schemas, JSON and authenticated requests; do not reconstruct omitted fields from a summary.



## Terms and privacy

Terms: by completing a purchase through this endpoint, whether directly or through an AI agent acting on your behalf, you agree to be bound by Pubrio's terms of service (https://www.pubrio.com/terms-of-service) and the platform's buyer terms of service (https://www.zeroclick.ai/legal/buyer-terms-of-service). Pubrio's privacy policy: https://www.pubrio.com/privacy-policy. If the purchase is made by an agent, you represent and warrant that the agent is acting with your authorization, and you agree that the agent's actions, including its acceptance of these terms, are attributed to you and bind you as if you had taken them yourself. Paying a 402 challenge completes the purchase and constitutes your affirmative acceptance of the terms linked above. The links travel in every payment challenge and receipt as `terms`.

- [terms of service](https://www.pubrio.com/terms-of-service)
- [privacy policy](https://www.pubrio.com/privacy-policy)
- [platform buyer terms of service](https://www.zeroclick.ai/legal/buyer-terms-of-service)

Review the applicable terms before authorizing payment or sending user data. Follow the acceptance requirements in the live challenge and [terms reference](https://agents.pubrio.com/zcj/xcvbz8o3op6c/terms.md).

## Contract details

Encode each query value once with URLSearchParams; encode service slugs as one path segment. Example: path=%2Fv1%2Fitems%2F%7Bid%7D&method=get. Follow info.x-next or Link for additional search results. Preserve /zcj/{id} prefixes. Resolve local $refs; use schema enum/const values for inputs, not service slugs or example identifiers.
Anonymous PAYG needs no registration or entitlement lookup on every call. Reuse existing eligible access when known. If MPP uses Authorization: Payment, send buyer identity in ZC-Agent-Authorization: Bearer. A buyer bearer is not a seller API key.

## Finish, retry, or ask for help

- For asynchronous work, retain the returned operation/status URL and follow its documented polling interval or retry hint. Stop on a documented terminal state; never invent a status endpoint. If no progress contract is available, report the accepted state and the missing completion information. [Full agent guide](https://agents.pubrio.com/zcj/xcvbz8o3op6c/llms-full.txt).
- A timeout or disconnect after a mutation is an uncertain result. Check its returned status or receipt first. Reuse an idempotency key only when the operation documents one; do not assume arbitrary requests are safe to replay. For platform errors, use the [error reference](https://agents.pubrio.com/zcj/xcvbz8o3op6c/errors.md); for seller errors, use the inspected response contract and seller documentation.
- For rate limits or transient failures, honor the documented retry hint and use bounded retries. Stop when the retry budget is exhausted, a required input is missing, or the response requires user action; explain the exact next step instead of retrying payment or key creation in a loop.
- Report the useful result, its completion state, any documented result/download links, and unresolved limitations. Distinguish completed, accepted/pending, and failed work. Report a charged amount only when confirmed by a receipt. Never include bearer tokens, seller keys, or other credentials in the final answer.
- Use [hand-off instructions](https://agents.pubrio.com/zcj/xcvbz8o3op6c/handoff.md) for seller links shared with a person so the referral is preserved.

## Access and recovery decisions

Read live responses each time access needs recovery. A failed identity check is not evidence that a purchase is absent.

| Condition | Next action and success signal |
| --- | --- |
| Missing buyer identity when required | For a human's credit or plan purchase, reuse an existing ZeroClick credential first. Otherwise use their signed-in Link account for identity as well as payment, sharing their email only if they agree. An empty or expired Link credential list means request a credential, not fall back to anonymous. Follow [Link identity setup](https://agents.pubrio.com/zcj/xcvbz8o3op6c/auth.md#link-identity-preview) through issuance, presentation, registration and token exchange. Anonymous auth remains available for agents acting on their own behalf with no human in the loop. Preserve existing purchases when recovering access. |
| Expired/invalid ZeroClick bearer (401) | Follow the [identity recipe](https://agents.pubrio.com/zcj/xcvbz8o3op6c/auth.md): POST [token exchange](https://agents.pubrio.com/zcj/xcvbz8o3op6c/oauth2/token), form fields grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer and assertion=<stored assertion>; success has access_token. On invalid_grant, POST [identity refresh](https://agents.pubrio.com/zcj/xcvbz8o3op6c/agent/identity) with {"type":"refresh","refresh_token":"<stored refresh token>"} for a claimed credential, securely replace the rotating credential, then exchange again. If refresh is unavailable, reconnect through the documented identity flow. Retry the original lookup; never infer no purchase from 401. |
| Valid entitlement | GET [entitlements](https://agents.pubrio.com/zcj/xcvbz8o3op6c/agent/entitlements), Authorization: Bearer <access_token>. A 200 returns entitlements with plan, status, period and remainingCreditUsd. Reuse applicable access; this list contains active entitlements, so an empty list does not prove no historical or pending account exists. |
| Verified-email requirement (403 verified_email_required) | Follow the claim step in the [identity recipe](https://agents.pubrio.com/zcj/xcvbz8o3op6c/auth.md), including the returned verification_uri and completion inputs claim_token and user_code. Re-exchange after claim, then resume the same action. Anonymous identity supports autonomous use where verification is not required; do not demand a human for those calls. |
| Exhausted credit / expired access | Inspect [entitlements](https://agents.pubrio.com/zcj/xcvbz8o3op6c/agent/entitlements) and current [catalog](https://agents.pubrio.com/zcj/xcvbz8o3op6c/manifest.json). For an eligible credit balance, POST returned topUpUrl with bearer and JSON amountUsd (decimal USD, at most six decimals); follow the live challenge. Success has extended=true and access. plan_not_extendable means this plan does not support credit top-up; inspect the applicable renewal/purchase contract instead. This is distinct from a missing identity. |
| No eligible access after recovery checks | Inspect [current plans](https://agents.pubrio.com/zcj/xcvbz8o3op6c/manifest.json) and the [purchase recipe](https://agents.pubrio.com/zcj/xcvbz8o3op6c/payment.md). Use the returned plan purchase URL/method (POST /plans/{planId}/purchase), buyer bearer, and documented JSON inputs: amountUsd when required by that plan; checkout when using the offered hosted card flow. Follow the live challenge within the user's authorization. Success has purchased=true and access; reuse the returned access. |

Detailed recipes: [agent guide](https://agents.pubrio.com/zcj/xcvbz8o3op6c/llms-full.txt). Keep the storefront origin and inspection URL for repeat use; recheck live prices, balances, account status, and contract changes. Respect Cache-Control; public instructions contain no buyer-specific state or credentials.

## Reference index

- [Buyer skill](https://agents.pubrio.com/zcj/xcvbz8o3op6c/SKILL.md): canonical copy of this workflow.
- [Discovery index](https://agents.pubrio.com/zcj/xcvbz8o3op6c/llms.txt): the short storefront directory.
- [Overview](https://agents.pubrio.com/zcj/xcvbz8o3op6c/overview.md): what this API is and a map of these documents.
- [Services and pricing](https://agents.pubrio.com/zcj/xcvbz8o3op6c/services): the catalog, one page per service with its full price matrix, how to call it, and the API reference.
- [How to pay](https://agents.pubrio.com/zcj/xcvbz8o3op6c/payment.md): the 402 flow and each rail (x402, MPP, card).
- [Error reference](https://agents.pubrio.com/zcj/xcvbz8o3op6c/errors.md): every error code and how to react.
- [Terms](https://agents.pubrio.com/zcj/xcvbz8o3op6c/terms.md): Pubrio's terms of service, Pubrio's privacy policy, the platform's buyer terms of service, and what paying means.
- [Identity](https://agents.pubrio.com/zcj/xcvbz8o3op6c/auth.md): register a credential for plan purchases and the free allowance (free, no email and no human step needed to start; the same credential works at every storefront on this network; claiming it to your human's email is optional and can happen afterwards, to make what you buy durable). Already registered? `GET https://agents.pubrio.com/zcj/xcvbz8o3op6c/agent/entitlements` with your bearer lists what you own here before you buy again. Pay-as-you-go needs none.
- [Hand off to a human](https://agents.pubrio.com/zcj/xcvbz8o3op6c/handoff.md): the tracked referral link for any Pubrio URL you give a person - never paste a raw seller URL.
- [Agent guide](https://agents.pubrio.com/zcj/xcvbz8o3op6c/llms-full.txt): The deep reference for anything the pages above do not cover.
- [Machine catalog](https://agents.pubrio.com/zcj/xcvbz8o3op6c/manifest.json): The same services, meters, plans, prices, and free included units as live JSON. Read it at call time; do not cache prices.
- [Full API spec](https://agents.pubrio.com/zcj/xcvbz8o3op6c/openapi.json): Navigation appears at both ends of every spec, including search results and pages. Use the current spec if it contains what you need. Otherwise, search with ?q=text or choose a relevant service spec from /services. For smaller valid specs use ?service=slug, ?page=1 (10 operations per page; follow info.x-next or the Link header if you need more results), ?q=text (keywords or a short natural-language description of the task; results ranked by relevance), or ?path=/exact/path (add &method=get to select one method). Filters combine. Byte ranges and gzip are supported.
- [x402 payment recipe](https://agents.pubrio.com/zcj/xcvbz8o3op6c/payment/x402.md)
- [MPP payment recipe](https://agents.pubrio.com/zcj/xcvbz8o3op6c/payment/mpp.md)
- [Card payment recipe](https://agents.pubrio.com/zcj/xcvbz8o3op6c/payment/card.md)

## Seller documentation

- [Storefront](https://agents.pubrio.com/zcj/xcvbz8o3op6c/): human-readable overview and plans.
- [Upstream docs](https://docs.pubrio.com/en/api-reference/introduction)
- [Upstream llms.txt](https://docs.pubrio.com/llms.txt)
- [Website](https://www.pubrio.com)

