P0 Agent Economy Index Util API
The Util API from P0 Agent Economy Index — 6 operation(s) for util.
The Util API from P0 Agent Economy Index — 6 operation(s) for util.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/p0-agent-economy-index:p0-agent-economy-index-util-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: P0 Agent Economy Index Util API
version: 0.2.0
x-logo:
url: https://x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev/icon.png
contact:
name: dev Mike (P0)
email: chebotarev.mike@gmail.com
url: https://x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev/join
description: 'An open index of the machine-to-machine (agent) economy. x402 routes: ranked discovery over the live x402 service market, every indexed service scored by real 30-day calls and paying-wallet bounds, with a receipt naming the snapshot hash and scoring revision. /economy routes, for Tempo MPP, Virtuals ACP, Olas, Masumi, ERC-8004 agent registries, Solana agent registries, Base agent contracts and MCP servers (Official MCP Registry): each protocol''s published figures (agent or server counts, transactions or payment events; payers and USD volume only where the source publishes them: payers for x402 and Tempo MPP, USD volume for x402 and Virtuals ACP), each with its unit, window and source; units differ, so totals are not summed. L402 and per-service MPP listings are not covered.'
x-guidance: 'Market data over 25897 listed x402 services, 30-day window. For protocols beyond x402 (Tempo MPP, Virtuals ACP, Olas, Masumi, ERC-8004 agent registries, Solana agent registries, Base agent contracts and MCP servers (Official MCP Registry)) use /economy, /economy/protocols and /economy/search. For x402, start with GET /search?q=<capability> for ranked services, or /top for the highest-demand ones with callsPerPayer (near 1 means each payer bought once, high means repeat use). /price benchmarks what comparable services charge, /networks breaks demand down by chain, /tags is the capability vocabulary, /count is the market totals, /service looks one service up by URL, /report and /alpha are the category report and the underserved niches, /dataset is the full export. Premium: /dataset/pro ($25) is the enriched full export (demand rank overall and within the top tag, per-seller and per-category aggregates) and /report/weekly ($5) the market report; /dataset/teaser is a free 5% sample in the /dataset/pro row schema. EVERY paid route answers a call with no parameters at all with real data rather than an error, so a blind purchase is never wasted. If you transferred the price to payTo in USDC, USDT or DAI on Base without a payment header, just call the route again within 30 minutes and it serves the data (one transfer, one response); other transfers are never matched automatically: claim them with ?tx=<hash> (on /pay/check use ?payment_tx=<hash> instead, since its tx is the transaction being checked) on Base, Ethereum, Arbitrum or Polygon (USDC, USDT, DAI, WETH, cbBTC, WBTC, USDT0 where that chain has the token, or native ETH/POL), ?btc=<txid> (BTC), ?sol=<signature> (SOL, USDC, USDT), ?tron=<txid> (TRX, USDT TRC-20) or ?stx=<txid> (STX, sBTC); a direct transfer on any other chain, or of a token not named here, cannot be claimed. The two premium routes are the exception and serve a plain transfer only when it is claimed with ?tx=<hash>. /sample, /health and /dataset/teaser are free. Payment is x402 v2, scheme exact, networks eip155:8453, eip155:42161, eip155:137 (USDC); stacks:1 (sBTC); eip155:43114, eip155:10, eip155:42220 (USDC via UltravioletaDAO); eip155:42161 (USDT0), eip155:1 (USDC) via UltravioletaDAO, or MPP (method evm, intent charge, USDC on EVM networks, same prices); a plain transfer on Base, Ethereum, Arbitrum or Polygon also works via ?tx=<hash>.'
servers:
- url: https://x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev
tags:
- name: Util
paths:
/util/uuid:
get:
summary: 'Use when you need fresh UUIDs: n (1-100) random v4 or time-sortable v7…'
operationId: util_uuid
parameters:
- name: n
in: query
required: false
description: How many
schema:
type: integer
minimum: 1
maximum: 100
default: 1
example: 2
- name: version
in: query
required: false
description: 4 random, 7 time-sortable
schema:
type: integer
default: 4
enum:
- 4
- 7
example: 4
security:
- x402: []
- mpp: []
x-payment-info:
protocols:
- x402: {}
- mpp:
method: evm
intent: charge
currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
network: eip155:8453
networks: eip155:8453, eip155:42161, eip155:137 (USDC); stacks:1 (sBTC); eip155:43114, eip155:10, eip155:42220 (USDC via UltravioletaDAO); eip155:42161 (USDT0), eip155:1 (USDC) via UltravioletaDAO
asset: USDC
price:
mode: fixed
currency: USD
amount: '0.001'
alternatives:
- assets: USDC, USDT, DAI, ETH, WETH, cbBTC, WBTC
networks: Base, Ethereum, Polygon, Arbitrum
address: '0xECa891e34b3E5873181Fb779672564E198C55354'
- assets: BTC
networks: Bitcoin
address: bc1qqwgyyqv6raq2jnghals2n2aujgwd4e9p64g4hr
- assets: SOL, USDC, USDT
networks: Solana
address: FTbVqWwsfJJ5AuAwNDuCuzdpwCEJahu14HAUgAYcJHuq
- assets: STX, sBTC
networks: Stacks
address: SP34GH04YTB01AMXF4CAQ10Y5B7G4E0119N99W986
- assets: TRX, USDT (TRC20)
networks: TRON
address: TB9rHqT8yLxwdsWCb3zN2nvjc8wLhsUdaQ
responses:
'200':
description: ok
content:
application/json:
schema:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
required:
- uuids
- n
- version
- as_of
- note
properties:
uuids:
type: array
items:
type: string
n:
type: number
version:
type: number
as_of:
type: string
note:
type: string
example:
uuids:
- 3f2b1a9e-7c4d-4e8f-9a0b-1c2d3e4f5a6b
- 9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a
n: 2
version: 4
as_of: '2026-10-19T12:00:00.000Z'
note: 'Computed on Cloudflare''s edge from your input only; no external call, nothing stored. v4: random (crypto.randomUUID).'
'402':
description: x402 v2 payment required; nothing is charged when the input is refused
tags:
- Util
/util/hash:
get:
summary: 'Use when you need a checksum or digest of a string: sha256 (default), sha1…'
operationId: util_hash
parameters:
- name: text
in: query
required: true
description: Input to hash
schema:
type: string
maxLength: 65536
example: hello
- name: algo
in: query
required: false
description: Comma list of sha256, sha1, sha384, sha512, md5 or all
schema:
type: string
default: sha256
example: sha256,md5
- name: encoding
in: query
required: false
description: How text is encoded
schema:
type: string
default: utf8
enum:
- utf8
- hex
- base64
example: utf8
security:
- x402: []
- mpp: []
x-payment-info:
protocols:
- x402: {}
- mpp:
method: evm
intent: charge
currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
network: eip155:8453
networks: eip155:8453, eip155:42161, eip155:137 (USDC); stacks:1 (sBTC); eip155:43114, eip155:10, eip155:42220 (USDC via UltravioletaDAO); eip155:42161 (USDT0), eip155:1 (USDC) via UltravioletaDAO
asset: USDC
price:
mode: fixed
currency: USD
amount: '0.001'
alternatives:
- assets: USDC, USDT, DAI, ETH, WETH, cbBTC, WBTC
networks: Base, Ethereum, Polygon, Arbitrum
address: '0xECa891e34b3E5873181Fb779672564E198C55354'
- assets: BTC
networks: Bitcoin
address: bc1qqwgyyqv6raq2jnghals2n2aujgwd4e9p64g4hr
- assets: SOL, USDC, USDT
networks: Solana
address: FTbVqWwsfJJ5AuAwNDuCuzdpwCEJahu14HAUgAYcJHuq
- assets: STX, sBTC
networks: Stacks
address: SP34GH04YTB01AMXF4CAQ10Y5B7G4E0119N99W986
- assets: TRX, USDT (TRC20)
networks: TRON
address: TB9rHqT8yLxwdsWCb3zN2nvjc8wLhsUdaQ
responses:
'200':
description: ok
content:
application/json:
schema:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
required:
- digests
- input_bytes
- input_encoding
- algorithms
- as_of
- note
properties:
digests:
type: object
properties:
sha256:
type: string
md5:
type: string
input_bytes:
type: number
input_encoding:
type: string
algorithms:
type: array
items:
type: string
as_of:
type: string
note:
type: string
example:
digests:
sha256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
md5: 5d41402abc4b2a76b9719d911017c592
input_bytes: 5
input_encoding: utf8
algorithms:
- sha256
- md5
as_of: '2026-10-19T12:00:00.000Z'
note: 'Computed on Cloudflare''s edge from your input only; no external call, nothing stored. md5 and sha1 are not collision-resistant: use them for checksums, not signatures.'
'402':
description: x402 v2 payment required; nothing is charged when the input is refused
tags:
- Util
/util/ip:
get:
summary: 'Use when an agent needs to know how it is seen from outside: its public IP plus…'
operationId: util_ip
parameters: []
security:
- x402: []
- mpp: []
x-payment-info:
protocols:
- x402: {}
- mpp:
method: evm
intent: charge
currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
network: eip155:8453
networks: eip155:8453, eip155:42161, eip155:137 (USDC); stacks:1 (sBTC); eip155:43114, eip155:10, eip155:42220 (USDC via UltravioletaDAO); eip155:42161 (USDT0), eip155:1 (USDC) via UltravioletaDAO
asset: USDC
price:
mode: fixed
currency: USD
amount: '0.001'
alternatives:
- assets: USDC, USDT, DAI, ETH, WETH, cbBTC, WBTC
networks: Base, Ethereum, Polygon, Arbitrum
address: '0xECa891e34b3E5873181Fb779672564E198C55354'
- assets: BTC
networks: Bitcoin
address: bc1qqwgyyqv6raq2jnghals2n2aujgwd4e9p64g4hr
- assets: SOL, USDC, USDT
networks: Solana
address: FTbVqWwsfJJ5AuAwNDuCuzdpwCEJahu14HAUgAYcJHuq
- assets: STX, sBTC
networks: Stacks
address: SP34GH04YTB01AMXF4CAQ10Y5B7G4E0119N99W986
- assets: TRX, USDT (TRC20)
networks: TRON
address: TB9rHqT8yLxwdsWCb3zN2nvjc8wLhsUdaQ
responses:
'200':
description: ok
content:
application/json:
schema:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
required:
- ip
- country
- region
- city
- continent
- timezone
- asn
- as_organization
- colo
- http_protocol
- tls_version
- user_agent
- as_of
- note
properties:
ip:
type: string
country:
type: string
region:
type: string
city:
type: string
continent:
type: string
timezone:
type: string
asn:
type: number
as_organization:
type: string
colo:
type: string
http_protocol:
type: string
tls_version:
type: string
user_agent:
type: string
as_of:
type: string
note:
type: string
example:
ip: 203.0.113.7
country: DE
region: Berlin
city: Berlin
continent: EU
timezone: Europe/Berlin
asn: 3320
as_organization: Deutsche Telekom AG
colo: FRA
http_protocol: HTTP/2
tls_version: TLSv1.3
user_agent: my-agent/1.0
as_of: '2026-10-19T12:00:00.000Z'
note: What Cloudflare's edge recorded about this connection (request.cf), no external lookup; a field the edge did not provide is null.
'402':
description: x402 v2 payment required; nothing is charged when the input is refused
tags:
- Util
/util/jwt-decode:
get:
summary: 'Use when you need to inspect a JWT without a key: decoded header and payload…'
operationId: util_jwt-decode
parameters:
- name: token
in: query
required: true
description: JWT header.payload.signature
schema:
type: string
maxLength: 65536
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZ2VudC0xIiwiZXhwIjoxNzkyMzI4NDAwfQ.sig
security:
- x402: []
- mpp: []
x-payment-info:
protocols:
- x402: {}
- mpp:
method: evm
intent: charge
currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
network: eip155:8453
networks: eip155:8453, eip155:42161, eip155:137 (USDC); stacks:1 (sBTC); eip155:43114, eip155:10, eip155:42220 (USDC via UltravioletaDAO); eip155:42161 (USDT0), eip155:1 (USDC) via UltravioletaDAO
asset: USDC
price:
mode: fixed
currency: USD
amount: '0.001'
alternatives:
- assets: USDC, USDT, DAI, ETH, WETH, cbBTC, WBTC
networks: Base, Ethereum, Polygon, Arbitrum
address: '0xECa891e34b3E5873181Fb779672564E198C55354'
- assets: BTC
networks: Bitcoin
address: bc1qqwgyyqv6raq2jnghals2n2aujgwd4e9p64g4hr
- assets: SOL, USDC, USDT
networks: Solana
address: FTbVqWwsfJJ5AuAwNDuCuzdpwCEJahu14HAUgAYcJHuq
- assets: STX, sBTC
networks: Stacks
address: SP34GH04YTB01AMXF4CAQ10Y5B7G4E0119N99W986
- assets: TRX, USDT (TRC20)
networks: TRON
address: TB9rHqT8yLxwdsWCb3zN2nvjc8wLhsUdaQ
responses:
'200':
description: ok
content:
application/json:
schema:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
required:
- header
- payload
- alg
- typ
- kid
- signature_present
- signature_b64url
- issued_at
- not_before
- expires_at
- expired
- not_yet_valid
- verified
- as_of
- note
properties:
header:
type: object
properties:
alg:
type: string
typ:
type: string
payload:
type: object
properties:
sub:
type: string
exp:
type: number
alg:
type: string
typ:
type: string
kid: {}
signature_present:
type: boolean
signature_b64url:
type: string
issued_at: {}
not_before: {}
expires_at:
type: string
expired:
type: boolean
not_yet_valid: {}
verified:
type: boolean
as_of:
type: string
note:
type: string
example:
header:
alg: HS256
typ: JWT
payload:
sub: agent-1
exp: 1792328400
alg: HS256
typ: JWT
kid: null
signature_present: true
signature_b64url: sig
issued_at: null
not_before: null
expires_at: '2026-10-18T13:00:00.000Z'
expired: true
not_yet_valid: null
verified: false
as_of: '2026-10-19T12:00:00.000Z'
note: 'Decoded only: the signature is NOT verified (P0 holds no keys), so claims may be forged or expired. Verify with the issuer''s key before trusting them.'
'402':
description: x402 v2 payment required; nothing is charged when the input is refused
tags:
- Util
/util/json-validate:
get:
summary: Use when you must check that a JSON document fits a schema before acting on it…
operationId: util_json-validate
parameters:
- name: json
in: query
required: true
description: The document (JSON text; an object in a POST body is accepted too)
schema:
type: string
maxLength: 65536
example: '{"a":1}'
- name: schema
in: query
required: true
description: JSON Schema (subset) as JSON text
schema:
type: string
maxLength: 65536
example: '{"type":"object","required":["a","b"]}'
security:
- x402: []
- mpp: []
x-payment-info:
protocols:
- x402: {}
- mpp:
method: evm
intent: charge
currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
network: eip155:8453
networks: eip155:8453, eip155:42161, eip155:137 (USDC); stacks:1 (sBTC); eip155:43114, eip155:10, eip155:42220 (USDC via UltravioletaDAO); eip155:42161 (USDT0), eip155:1 (USDC) via UltravioletaDAO
asset: USDC
price:
mode: fixed
currency: USD
amount: '0.001'
alternatives:
- assets: USDC, USDT, DAI, ETH, WETH, cbBTC, WBTC
networks: Base, Ethereum, Polygon, Arbitrum
address: '0xECa891e34b3E5873181Fb779672564E198C55354'
- assets: BTC
networks: Bitcoin
address: bc1qqwgyyqv6raq2jnghals2n2aujgwd4e9p64g4hr
- assets: SOL, USDC, USDT
networks: Solana
address: FTbVqWwsfJJ5AuAwNDuCuzdpwCEJahu14HAUgAYcJHuq
- assets: STX, sBTC
networks: Stacks
address: SP34GH04YTB01AMXF4CAQ10Y5B7G4E0119N99W986
- assets: TRX, USDT (TRC20)
networks: TRON
address: TB9rHqT8yLxwdsWCb3zN2nvjc8wLhsUdaQ
responses:
'200':
description: ok
content:
application/json:
schema:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
required:
- valid
- errors
- error_count
- ignored_keywords
- supported_keywords
- supported_formats
- as_of
- note
properties:
valid:
type: boolean
errors:
type: array
items:
type: object
properties:
path:
type: string
message:
type: string
error_count:
type: number
ignored_keywords:
type: array
items: {}
supported_keywords:
type: array
items:
type: string
supported_formats:
type: array
items:
type: string
as_of:
type: string
note:
type: string
example:
valid: false
errors:
- path: $
message: missing required property "b"
error_count: 1
ignored_keywords: []
supported_keywords:
- type
- enum
- const
- properties
- required
- additionalProperties
- items
- minItems
- maxItems
- uniqueItems
- minimum
- maximum
- exclusiveMinimum
- exclusiveMaximum
- multipleOf
- minLength
- maxLength
- pattern
- format
- anyOf
- oneOf
- allOf
- not
supported_formats:
- email
- uri
- date-time
- date
- uuid
- ipv4
as_of: '2026-10-19T12:00:00.000Z'
note: Computed on Cloudflare's edge from your input only; no external call, nothing stored. JSON Schema subset listed in supported_keywords; $ref and other keywords are ignored and listed, never silently passed.
'402':
description: x402 v2 payment required; nothing is charged when the input is refused
tags:
- Util
/util/base64:
get:
summary: 'Use when you need base64 in or out: encode UTF-8 text to base64 (standard or…'
operationId: util_base64
parameters:
- name: action
in: query
required: false
description: encode or decode
schema:
type: string
default: encode
enum:
- encode
- decode
example: encode
- name: input
in: query
required: true
description: Text to encode, or base64 to decode
schema:
type: string
maxLength: 65536
example: hello
- name: url_safe
in: query
required: false
description: Use the url-safe alphabet without padding
schema:
type: boolean
default: false
example: false
security:
- x402: []
- mpp: []
x-payment-info:
protocols:
- x402: {}
- mpp:
method: evm
intent: charge
currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
network: eip155:8453
networks: eip155:8453, eip155:42161, eip155:137 (USDC); stacks:1 (sBTC); eip155:43114, eip155:10, eip155:42220 (USDC via UltravioletaDAO); eip155:42161 (USDT0), eip155:1 (USDC) via UltravioletaDAO
asset: USDC
price:
mode: fixed
currency: USD
amount: '0.001'
alternatives:
- assets: USDC, USDT, DAI, ETH, WETH, cbBTC, WBTC
networks: Base, Ethereum, Polygon, Arbitrum
address: '0xECa891e34b3E5873181Fb779672564E198C55354'
- assets: BTC
networks: Bitcoin
address: bc1qqwgyyqv6raq2jnghals2n2aujgwd4e9p64g4hr
- assets: SOL, USDC, USDT
networks: Solana
address: FTbVqWwsfJJ5AuAwNDuCuzdpwCEJahu14HAUgAYcJHuq
- assets: STX, sBTC
networks: Stacks
address: SP34GH04YTB01AMXF4CAQ10Y5B7G4E0119N99W986
- assets: TRX, USDT (TRC20)
networks: TRON
address: TB9rHqT8yLxwdsWCb3zN2nvjc8wLhsUdaQ
responses:
'200':
description: ok
content:
application/json:
schema:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
required:
- action
- output
- input_bytes
- url_safe
- output_encoding
- as_of
- note
properties:
action:
type: string
output:
type: string
input_bytes:
type: number
url_safe:
type: boolean
output_encoding:
type: string
as_of:
type: string
note:
type: string
example:
action: encode
output: aGVsbG8=
input_bytes: 5
url_safe: false
output_encoding: base64
as_of: '2026-10-19T12:00:00.000Z'
note: Computed on Cloudflare's edge from your input only; no external call, nothing stored.
'402':
description: x402 v2 payment required; nothing is charged when the input is refused
tags:
- Util
components:
securitySchemes:
x402:
type: apiKey
in: header
name: PAYMENT-SIGNATURE
description: x402 v2 payment signature; the 402 response tells how
mpp:
type: http
scheme: Payment
description: 'MPP (Machine Payments Protocol) credential, method evm, intent charge: the 402 WWW-Authenticate: Payment challenge tells how'
x-discovery:
protocols:
- x402
- mpp
network: eip155:8453
networks: eip155:8453, eip155:42161, eip155:137 (USDC); stacks:1 (sBTC); eip155:43114, eip155:10, eip155:42220 (USDC via UltravioletaDAO); eip155:42161 (USDT0), eip155:1 (USDC) via UltravioletaDAO
payTo: '0xECa891e34b3E5873181Fb779672564E198C55354'