Environment Roots
Use one row for a complete test. Do not mix a staging key or session with a Production root. See the
Staging guide for the complete test flow.
API Host
https://api-stg.pubfi.ai. Fetch that environment’s
/v1/capabilities and /openapi.json before you select a route.
Public Service And Registry Routes
GET /v1/capabilities is the catalog endpoint. It includes the exact Registry generation,
manifest, compact capability summaries, and current ready or blocked state. Follow each opaque
next_cursor for the complete generation. Use Runtime OpenAPI for ready operation request and
response schemas.
GET /v1/operation-pricing-inventory exposes canonical operation keys, route revisions and
closures, request bounds, and merchant_priced classification for every approved
typed plan. It contains no selected price and has no route-selection or execution authority. The
compatibility response is quantro.operation-pricing-inventory.v2. When x402 V2 intake is on, the
route returns quantro.operation-pricing-inventory.v3 with
x402_contract_version: "quantro.x402.v2"; that value participates in the v3 entry-set hash.
Clients must inspect schema_version. The route returns 503 if the complete projection cannot be
formed; it does not return a partial inventory.
The Runtime OpenAPI includes only current ready Registry operations. If the API has no valid
programmed snapshot, it marks the Registry as unavailable and does not use a static provider
fallback.
The status reads use Cache-Control: no-store and the states operational, degraded,
major_outage, or unknown. Missing, stale, or incoherent evidence is unknown; it is not
treated as healthy. Status is public-safe evidence about current PubFi components, Gateway probe
coverage, providers, and active operations. It does not replace the Registry catalog as route
authority or prove that a purchase offer or x402 challenge is available.
Status counts logical API operations separately from source operations and Registry route
variants. One logical API operation can have more than one source operation or route variant. In
Gateway summaries, active_operations counts logical API operations and
active_route_variants counts route variants. operation_coverage reports api_operations,
source_operations, and route_variants, separates offered from not_offered, and classifies
monitoring as continuous, manual, not_applicable, or unreviewed. Provider summaries use the
same logical API grouping.
The Gateway response includes provider summaries and sentinel observations. Provider summaries
separate reachability_status from operation_family_status and expose nullable health_status.
Their evidence_status is current, missing_or_stale, stale, or unverified. Missing or stale
observations do not prove healthy service. A known failure remains visible when other observations
are missing. Daily request metrics can remain present after the latest health observation becomes
stale; they are not proof of current health.
The Gateway response can include incidents in suspect, open, recovering, or resolved state.
Incident ownership and stage keep a provider failure separate from a PubFi Registry, credential,
or gateway failure. Provider and operation detail endpoints are no longer part of the public
Status API; use /v1/status/gateway for provider summaries.
Gateway summaries expose operation_pricing_status separately from provider and PubFi proxy
evidence. A known pricing outage is major_outage because paid execution is blocked, but it does
not replace independent provider or proxy signals. Missing pricing evidence remains unknown.
Read health_history.window_days, segment_duration_seconds, and each segment’s started_at
and ended_at from the selected environment’s response. Do not assume a fixed history window or
segment length: these can differ between deployed versions. Active history fields report
active_expected_targets, active_passed_targets, active_failed_targets,
active_unknown_targets, and active_check_percentage. Keep active-target coverage separate
from passive request metrics when those metrics are present. Request totals do not prove current
health. These counts are operational evidence, not uptime percentages or route authority.
Gateway Route
/v1/capabilities or /openapi.json.
Only GET and POST can execute. HEAD returns 405 Method Not Allowed.
The gateway has two separate caller lanes:
Do not send
Authorization or X-PubFi-Api-Key with PAYMENT-SIGNATURE. The legacy header is not
accepted, but its presence still selects the credential lane.
Relayed upstream health operations follow normal pricing and authentication. PubFi’s own
service health endpoints remain public and free. A quantro_priced operation uses the
method-specific positive credit_cost for API-key execution and the independent
x402 terms from the same immutable price version.
An eligible exact GET or POST operation can also advertise an account-level free variant. The
capability catalog exposes its effective free_rate_limit, and Runtime OpenAPI exposes
x-pubfi-free-variant with the :free suffix and the same policy. Append :free to the final path
segment, keep the provider query intended for the operation, keep the body required by its body
policy, and send the normal Authorization: Bearer <PubFi API key> header. This variant charges
zero Credits and does not use x402. A retryable limit rejection returns 429,
gateway.free_rate_limited, and Retry-After.
A cumulative limit returns 429 with gateway.free_limit_reached and no Retry-After. Do not
append the suffix unless the current catalog or OpenAPI operation advertises it.
Direct-HTTP response delivery is automatic on the normal authenticated paid or :free route. The
catalog and Runtime OpenAPI do not publish a stream-policy field or a caller-selected :stream
suffix. The runtime applies the platform response ceiling, deadlines, and heavy-transfer
concurrency limits without changing the selected gateway path.
Account And Purchase Routes
The auth-context response contains exactly
principal_id, billing_account_id, and nullable
actor_subject_id. It accepts only a valid PubFi API key, rejects query parameters, and does not
fall back to OAuth. It creates no account or billing state. Use its billing_account_id in the
same-account read paths below.
Auth-context, purchase, and Auto Top-Up responses are private and use
Cache-Control: private, no-store. The presence of these routes does not prove that a purchase
offer is currently available. The dashboard uses Auto Top-Up for the customer feature;
credit-auto-reload is the stable API route name.
The focused account reads are also private and no-store. credit-balance returns only
billingAccountId, meterKey: "request_count", a canonical whole-number creditBalance string,
and generatedAt from the authoritative Credit source. free-quotas returns the account and
observation time plus compact per-provider bucket scope, primary and optional quota windows,
concurrency, and an optional cumulative total. Its public counters are JavaScript-safe integers.
Neither response exposes internal bucket keys, permit settings, payment state, or x402 state.
API-key creation accepts only { "name": "..." }. The runtime assigns development, staging,
or production from its trusted environment and rejects a caller-supplied environment field.
Key summaries still report the assigned environment.
MCP Host
https://mcp-stg.pubfi.ai.
Current endpoint families:
POST /for authenticated MCP JSON-RPC;POST /x402for accountless x402 MCP JSON-RPC;GET /healthz;GET /readyz;GET /version;GET /.well-known/mcp.json;GET /.well-known/openai-apps-challenge; andGET /.well-known/oauth-protected-resource;GET /.well-known/oauth-authorization-serverfor PubFi-owned OAuth metadata; and/oauth/register,/oauth/authorize,/oauth/token, and/oauth/revokefor the advertised OAuth protocol flow.
tools/list, resource listing, and prompt listing methods are public.
On the root endpoint, pubfi.route.execute and pubfi.substrate.runtime_upgrade.verify accept a
PubFi API key or OAuth access token for the endpoint environment. Invalid credentials do not fall
back, and payment metadata is rejected. On
the /x402 endpoint, pubfi.route.execute accepts the official x402 metadata flow for an eligible
route and rejects every Bearer credential. /x402 exposes only the three general Registry tools;
it does not expose the runtime-upgrade verifier.
tools/list is endpoint-specific. The root declares noauth for capability reads and oauth2
with no scopes for both execution tools. Route execution contains free-health, account-free, and
account-paid outcomes. /x402 declares noauth for every tool and limits route results to
free-health, x402 settlement, payment-required, and x402 error outcomes. Missing or invalid OAuth
execution credentials return HTTP 401 with protected-resource discovery and an MCP
_meta["mcp/www_authenticate"] linking challenge. An invalid pf_sk_v1_ API key keeps the
separate API-key 401 response.
The MCP output schemas retain free-health outcomes for compatibility. Clients must not infer
free execution from an upstream operation name or path. Read the current method-specific billing
metadata before execution.
For an advertised free variant, pubfi.route.execute uses the same API-key admission and the same
exact path with :free appended to its final segment. A successful result reports
execution_status: registry_free_route_executed and credits_charged: 0. Anonymous and x402 MCP
calls cannot use the suffix.
Web Host
https://stg.pubfi.ai.
Current public endpoint families include:
/,/about,/contact,/developers,/partners,/products,/pricing,/status,/blog,/blog/{slug}, and/products/{slug};/discovery, its/discovery/sourcesdirectory and pagination, and its source, category, chain, comparison, topic, and Markdown routes;/login,/oauth/consent,/privacy-policy, and/terms-of-service;/index.md,/about.md,/contact.md,/developers.md,/products.md,/pricing.md, and/auth.md;/agents.md,/llms.txt,/developers/llms.txt, and/llms-full.txt;/blog/{slug}.mdfor canonical article Markdown companions;/openapi.json,/api-reference, and/apias307redirects to the request environment’s API;/sitemap.xmland/robots.txt;/discovery/agent-capabilities.json;/.well-known/api-catalogfor the environment-matched RFC 9727 API Linkset;/.well-known/ai-catalog.jsonand/.well-known/ard.json, which return the same catalog body;/.well-known/mcp.json;/.well-known/mcp/server-card.json; and/.well-known/mcp-registry-auth, which is optional and can return404.
/docs routes redirect to https://docs.pubfi.ai.
External GET and HEAD requests to /, /about, /contact, /developers, /products, and
/pricing can select the shared Markdown representation with Accept: text/markdown. HTML remains
the default. These responses set Vary: Accept; negotiated Markdown is private and no-store. A
request that accepts neither HTML nor Markdown returns 406. Unknown public paths return an HTML
or Markdown 404 according to the same preference, while Next.js internal navigation and private
application paths retain normal handling.