{"@context":"https://agenticresourcediscovery.org/context/v1","specVersion":"0.91","publisher":"hubvibe-io.com","displayName":"HubVibe: 37 Machine-Payable Dev Utilities and WCAG Audits","entries":[{"identifier":"urn:air:hubvibe-io.com:node:hubvibe","displayName":"HubVibe: 37 Machine-Payable Dev Utilities and WCAG Audits","type":"application/json","url":"https://hubvibe-io.com/.well-known/agent.json","description":"The node's own manifest: every audit and worker with price, input and output schema, the payment rails live on this deployment, rate limits, and how receipts work. Read this first; everything below is one route of it.","capabilities":["SiteAudit","WorkerNetwork","MachinePayable","Receipts"],"representativeQueries":["machine-payable API an agent can pay per call without an account","pay-per-call site audits and dev utilities over HTTP 402","what can I buy from this node and what does each call cost"],"tags":["hubvibe","http-402","pay-per-call","agents"],"metadata":{"openapi":"https://hubvibe-io.com/openapi.json","llms_txt":"https://hubvibe-io.com/llms.txt"},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:mcp:site-audits","displayName":"HubVibe site audits (MCP server)","type":"application/mcp-server-card+json","url":"https://hubvibe-io.com/mcp.json","description":"MCP server (Streamable HTTP) exposing the five deterministic site audits as tools: WCAG 2.1 via axe-core, SEO, security headers, performance, and the bundle. initialize and tools/list are free; tools/call is billed per call.","capabilities":["audit_wcag","audit_seo","audit_security","audit_performance","audit_bundle"],"representativeQueries":["MCP server with a website accessibility audit tool","MCP tool to check a URL for SEO and security header problems","run WCAG, SEO, security and performance audits from an MCP client"],"tags":["mcp","wcag","seo","security-headers","performance"],"metadata":{"endpoint":"https://hubvibe-io.com/mcp","protocol":"streamable-http"},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:api:openapi","displayName":"HubVibe: 37 Machine-Payable Dev Utilities and WCAG Audits (OpenAPI)","type":"application/openapi+json","url":"https://hubvibe-io.com/openapi.json","description":"OpenAPI 3.1 for every route on the node. Each paid route declares x-payment-info, a request example and a 200 response schema with example; every /work route's result keys are typed there.","capabilities":["OpenAPI","SiteAudit","WorkerNetwork"],"representativeQueries":["OpenAPI spec for a pay-per-call agent API","REST endpoints with x-payment-info for autonomous agents"],"tags":["openapi","rest","http-402"],"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:audit:wcag","displayName":"Site audit: wcag","type":"application/vnd.hubvibe.route+json","data":{"path":"/audit/wcag","method":"POST","url":"https://hubvibe-io.com/audit/wcag","price_usd":0.05,"payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","title":"Live URL or raw HTML to audit","properties":{"url":{"type":"string","format":"uri","description":"Live, fetchable http(s) URL to audit.","examples":["https://example.com"]},"html":{"type":"string","description":"Raw HTML source to audit instead of fetching a URL."}},"anyOf":[{"required":["url"]},{"required":["html"]}]},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","const":"ok","description":"Present only on a completed audit."},"pass":{"type":"boolean","description":"Whether every rule in this dimension passed."},"engine":{"type":"string","const":"axe-core"},"violations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"axe-core rule id."},"impact":{"type":["string","null"],"description":"axe-core impact level."},"help":{"type":["string","null"]},"help_url":{"type":"string","format":"uri"},"nodes_affected":{"type":"integer","minimum":0}},"required":["id"]}}},"required":["pass"]},"returns":"pass (bool), violations[] with id/impact/help/help_url/nodes_affected.","deterministic":true},"description":"Website accessibility audit (a11y, WCAG compliance check): WCAG 2.1 level A and AA conformance of any live URL or raw HTML, tested with axe-core in a real headless browser. Returns every violation with rule id, impact, help text and affected node count. Deterministic rules; a check that cannot run returns an error, never a pass.","capabilities":["audit_wcag","AuditWcag"],"representativeQueries":["check a website for WCAG 2.1 accessibility violations","run an axe-core accessibility audit on a URL","is this page accessible, and which rules does it fail"],"tags":["audit","wcag","deterministic","pay-per-call"],"metadata":{"price_usd":0.05,"path":"/audit/wcag","method":"POST","deterministic":true},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:audit:seo","displayName":"Site audit: seo","type":"application/vnd.hubvibe.route+json","data":{"path":"/audit/seo","method":"POST","url":"https://hubvibe-io.com/audit/seo","price_usd":0.05,"payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","title":"Live URL or raw HTML to audit","properties":{"url":{"type":"string","format":"uri","description":"Live, fetchable http(s) URL to audit.","examples":["https://example.com"]},"html":{"type":"string","description":"Raw HTML source to audit instead of fetching a URL."}},"anyOf":[{"required":["url"]},{"required":["html"]}]},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","const":"ok","description":"Present only on a completed audit."},"pass":{"type":"boolean","description":"Whether every rule in this dimension passed."},"findings":{"type":"array","description":"One entry per rule that did not pass. Empty when the check is clean.","items":{"type":"object","properties":{"id":{"type":"string","description":"Stable rule identifier."},"severity":{"type":"string","description":"Rule severity."},"detail":{"type":"string","description":"What failed and where."}},"required":["id"]}}},"required":["pass"]},"returns":"pass (bool), findings[] with id/severity/detail.","deterministic":true},"description":"SEO audit of a web page (on-page SEO check) for any live URL or raw HTML: title tag, meta description, H1 heading structure, canonical link, OpenGraph and social tags, JSON-LD structured data, html lang attribute. Rule-by-rule findings with severity and what is missing or malformed.","capabilities":["audit_seo","AuditSeo"],"representativeQueries":["on-page SEO audit of a web page","check title, meta description, canonical and structured data on a URL","what SEO problems does this page have"],"tags":["audit","seo","deterministic","pay-per-call"],"metadata":{"price_usd":0.05,"path":"/audit/seo","method":"POST","deterministic":true},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:audit:security","displayName":"Site audit: security","type":"application/vnd.hubvibe.route+json","data":{"path":"/audit/security","method":"POST","url":"https://hubvibe-io.com/audit/security","price_usd":0.05,"payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","title":"Live URL to audit","properties":{"url":{"type":"string","format":"uri","description":"Live, fetchable http(s) URL to audit.","examples":["https://example.com"]}},"required":["url"]},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","const":"ok","description":"Present only on a completed audit."},"pass":{"type":"boolean","description":"Whether every rule in this dimension passed."},"findings":{"type":"array","description":"One entry per rule that did not pass. Empty when the check is clean.","items":{"type":"object","properties":{"id":{"type":"string","description":"Stable rule identifier."},"severity":{"type":"string","description":"Rule severity."},"detail":{"type":"string","description":"What failed and where."}},"required":["id"]}}},"required":["pass"]},"returns":"pass (bool), findings[] with id/severity/detail.","deterministic":true},"description":"Security headers check for a website: audits HTTPS, HSTS, Content- Security-Policy (CSP), X-Content-Type-Options, X-Frame-Options / clickjacking protection, Referrer-Policy and CORS from the real HTTP response of any live URL. Findings with severity for what is missing. Header posture only, not a penetration test.","capabilities":["audit_security","AuditSecurity"],"representativeQueries":["check a site's security headers: HSTS, CSP, X-Content-Type-Options","security header audit of a URL","is this website missing security headers"],"tags":["audit","security","deterministic","pay-per-call"],"metadata":{"price_usd":0.05,"path":"/audit/security","method":"POST","deterministic":true},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:audit:performance","displayName":"Site audit: performance","type":"application/vnd.hubvibe.route+json","data":{"path":"/audit/performance","method":"POST","url":"https://hubvibe-io.com/audit/performance","price_usd":0.05,"payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","title":"Live URL to audit","properties":{"url":{"type":"string","format":"uri","description":"Live, fetchable http(s) URL to audit.","examples":["https://example.com"]}},"required":["url"]},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","const":"ok","description":"Present only on a completed audit."},"pass":{"type":"boolean","description":"Whether every rule in this dimension passed."},"metrics":{"type":"object","properties":{"dom_node_count":{"type":"integer","minimum":0},"total_bytes_transferred":{"type":"integer","minimum":0},"request_count":{"type":"integer","minimum":0}}},"findings":{"type":"array","description":"One entry per rule that did not pass. Empty when the check is clean.","items":{"type":"object","properties":{"id":{"type":"string","description":"Stable rule identifier."},"severity":{"type":"string","description":"Rule severity."},"detail":{"type":"string","description":"What failed and where."}},"required":["id"]}}},"required":["pass"]},"returns":"pass (bool), metrics{}, findings[] with id/severity/detail.","deterministic":true},"description":"Page speed and page weight audit of a web page from one real browser load: total bytes transferred, HTTP request count and DOM node count, measured rather than estimated, with findings when the page is heavy. Page-weight signals, not Core Web Vitals.","capabilities":["audit_performance","AuditPerformance"],"representativeQueries":["how heavy is this page: DOM size, bytes transferred, request count","page weight and request count audit of a URL"],"tags":["audit","performance","deterministic","pay-per-call"],"metadata":{"price_usd":0.05,"path":"/audit/performance","method":"POST","deterministic":true},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:audit:bundle","displayName":"Site audit: bundle","type":"application/vnd.hubvibe.route+json","data":{"path":"/audit/bundle","method":"POST","url":"https://hubvibe-io.com/audit/bundle","price_usd":0.15,"payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","title":"Live URL to audit","properties":{"url":{"type":"string","format":"uri","description":"Live, fetchable http(s) URL to audit.","examples":["https://example.com"]}},"required":["url"]},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","const":"ok","description":"Present only on a completed audit."},"pass":{"type":"boolean","description":"Whether every rule in this dimension passed."},"wcag":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","const":"ok","description":"Present only on a completed audit."},"pass":{"type":"boolean","description":"Whether every rule in this dimension passed."},"engine":{"type":"string","const":"axe-core"},"violations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"axe-core rule id."},"impact":{"type":["string","null"],"description":"axe-core impact level."},"help":{"type":["string","null"]},"help_url":{"type":"string","format":"uri"},"nodes_affected":{"type":"integer","minimum":0}},"required":["id"]}}},"required":["pass"]},"seo":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","const":"ok","description":"Present only on a completed audit."},"pass":{"type":"boolean","description":"Whether every rule in this dimension passed."},"findings":{"type":"array","description":"One entry per rule that did not pass. Empty when the check is clean.","items":{"type":"object","properties":{"id":{"type":"string","description":"Stable rule identifier."},"severity":{"type":"string","description":"Rule severity."},"detail":{"type":"string","description":"What failed and where."}},"required":["id"]}}},"required":["pass"]},"security":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","const":"ok","description":"Present only on a completed audit."},"pass":{"type":"boolean","description":"Whether every rule in this dimension passed."},"findings":{"type":"array","description":"One entry per rule that did not pass. Empty when the check is clean.","items":{"type":"object","properties":{"id":{"type":"string","description":"Stable rule identifier."},"severity":{"type":"string","description":"Rule severity."},"detail":{"type":"string","description":"What failed and where."}},"required":["id"]}}},"required":["pass"]},"performance":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","const":"ok","description":"Present only on a completed audit."},"pass":{"type":"boolean","description":"Whether every rule in this dimension passed."},"metrics":{"type":"object","properties":{"dom_node_count":{"type":"integer","minimum":0},"total_bytes_transferred":{"type":"integer","minimum":0},"request_count":{"type":"integer","minimum":0}}},"findings":{"type":"array","description":"One entry per rule that did not pass. Empty when the check is clean.","items":{"type":"object","properties":{"id":{"type":"string","description":"Stable rule identifier."},"severity":{"type":"string","description":"Rule severity."},"detail":{"type":"string","description":"What failed and where."}},"required":["id"]}}},"required":["pass"]}},"required":["pass"]},"returns":"pass (bool) plus wcag{}, seo{}, security{}, performance{} sub-results.","deterministic":true},"description":"Full website audit in one call: accessibility (WCAG 2.1 A/AA via axe-core), on-page SEO, HTTP security headers and page speed / page weight, from a single browser load of one URL. Cheaper than four separate calls; if any part cannot run, nothing is billed.","capabilities":["audit_bundle","AuditBundle"],"representativeQueries":["run accessibility, SEO, security and performance checks on a URL in one call","full site compliance audit of a page","gate a deployment on accessibility and SEO regressions"],"tags":["audit","bundle","deterministic","pay-per-call"],"metadata":{"price_usd":0.15,"path":"/audit/bundle","method":"POST","deterministic":true},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:chain.network","displayName":"Base network state (chain.network)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/chain/network","method":"POST","url":"https://hubvibe-io.com/work/chain/network","price_usd":0.02,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"input_example":{},"output_schema":{"type":"object","properties":{"network":{"type":"string","const":"base-mainnet","description":"Chain read."},"block_number":{"type":"integer","description":"Current head block number.","examples":[41230577]},"gas_price_wei":{"type":"string","description":"Current gas price in wei, as a decimal string.","examples":["12500000"]},"gas_price_gwei":{"type":"number","description":"Current gas price in gwei.","examples":[0.0125]}},"required":["network","block_number","gas_price_wei","gas_price_gwei"]},"output_example":{"network":"base-mainnet","block_number":41230577,"gas_price_wei":"12500000","gas_price_gwei":0.0125},"returns":"block_number, gas_price_wei, gas_price_gwei.","max_seconds":30,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Current Base mainnet block height and gas price, read live from a Base RPC node. Use to check chain liveness or time an on-chain action.","capabilities":["chain.network","ChainNetwork"],"representativeQueries":["what is the current block number on Base","current gas price on Base mainnet","is the Base chain live right now"],"tags":["base","blockchain","rpc","gas","network","utility","pay-per-call"],"metadata":{"price_usd":0.02,"tier":"utility","path":"/work/chain/network","method":"POST","compound":false,"max_seconds":30},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:chain.address","displayName":"Base address report (chain.address)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/chain/address","method":"POST","url":"https://hubvibe-io.com/work/chain/address","price_usd":0.05,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"address":{"type":"string","description":"0x-prefixed Base address."}},"required":["address"],"additionalProperties":false},"input_example":{"address":"0x837C40E2B4e976f43Ffb4451eE281A00fA9477dd"},"output_schema":{"type":"object","properties":{"address":{"type":"string","description":"The address queried.","examples":["0x837C40E2B4e976f43Ffb4451eE281A00fA9477dd"]},"network":{"type":"string","const":"base-mainnet","description":"Chain read."},"balance_wei":{"type":"string","description":"ETH balance in wei, as a decimal string.","examples":["1250000000000000000"]},"balance_eth":{"type":"number","description":"ETH balance.","examples":[1.25]},"transaction_count":{"type":"integer","description":"Nonce: transactions sent from this address.","examples":[42]},"is_contract":{"type":"boolean","description":"Whether code is deployed at the address.","examples":[false]},"code_size_bytes":{"type":"integer","description":"Deployed bytecode size; 0 for an externally owned account.","examples":[0]}},"required":["address","network","balance_wei","balance_eth","transaction_count","is_contract","code_size_bytes"]},"output_example":{"address":"0x837C40E2B4e976f43Ffb4451eE281A00fA9477dd","network":"base-mainnet","balance_wei":"1250000000000000000","balance_eth":1.25,"transaction_count":42,"is_contract":false,"code_size_bytes":0},"returns":"balance_wei, balance_eth, transaction_count, is_contract, code_size_bytes.","max_seconds":45,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Everything about one Base mainnet address in a single call: ETH balance, transaction count, and whether it is a contract or an externally owned account. Three chain reads folded into one answer.","capabilities":["chain.address","ChainAddress"],"representativeQueries":["ETH balance and transaction count of a Base address","is this Base address a contract or a wallet","look up an address on Base mainnet"],"tags":["base","blockchain","address","wallet","contract","utility","pay-per-call"],"metadata":{"price_usd":0.05,"tier":"utility","path":"/work/chain/address","method":"POST","compound":false,"max_seconds":45},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:chain.transaction","displayName":"Base transaction lookup (chain.transaction)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/chain/transaction","method":"POST","url":"https://hubvibe-io.com/work/chain/transaction","price_usd":0.05,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"hash":{"type":"string","description":"0x-prefixed transaction hash."}},"required":["hash"],"additionalProperties":false},"input_example":{"hash":"0xabababababababababababababababababababababababababababababababab"},"output_schema":{"type":"object","properties":{"hash":{"type":"string","description":"Transaction hash.","examples":["0xabababababababababababababababababababababababababababababababab"]},"network":{"type":"string","const":"base-mainnet","description":"Chain read."},"from":{"type":["string","null"],"description":"Sender.","examples":["0x837C40E2B4e976f43Ffb4451eE281A00fA9477dd"]},"to":{"type":["string","null"],"description":"Recipient; null for a contract creation.","examples":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"]},"value_wei":{"type":"string","description":"Value transferred in wei, as a decimal string.","examples":["0"]},"value_eth":{"type":"number","description":"Value transferred in ETH.","examples":[0.0]},"block_number":{"type":["integer","null"],"description":"Block the transaction was mined in; null while pending.","examples":[41230501]},"mined":{"type":"boolean","description":"Whether the transaction is in a block.","examples":[true]},"status":{"type":"string","enum":["success","failed","pending"],"description":"Receipt status.","examples":["success"]},"gas_used":{"type":"integer","description":"Gas used, from the receipt.","examples":[65231]},"log_count":{"type":"integer","description":"Number of logs emitted, from the receipt.","examples":[2]}},"required":["hash","network","from","to","value_wei","value_eth","block_number","mined","status"]},"output_example":{"hash":"0xabababababababababababababababababababababababababababababababab","network":"base-mainnet","from":"0x837C40E2B4e976f43Ffb4451eE281A00fA9477dd","to":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","value_wei":"0","value_eth":0.0,"block_number":41230501,"mined":true,"status":"success","gas_used":65231,"log_count":2},"returns":"from, to, value_eth, block_number, status, gas_used, log_count.","max_seconds":45,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"One Base mainnet transaction with its receipt folded in: sender, recipient, value, block, success or failure, and gas actually used.","capabilities":["chain.transaction","ChainTransaction"],"representativeQueries":["did this Base transaction succeed","look up a transaction hash on Base with its receipt","how much gas did a Base transaction use"],"tags":["base","blockchain","transaction","receipt","onchain","utility","pay-per-call"],"metadata":{"price_usd":0.05,"tier":"utility","path":"/work/chain/transaction","method":"POST","compound":false,"max_seconds":45},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:market.quote","displayName":"Crypto spot quote (market.quote)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/market/quote","method":"POST","url":"https://hubvibe-io.com/work/market/quote","price_usd":0.02,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"product_id":{"type":"string","description":"e.g. BTC-USD."}},"required":["product_id"],"additionalProperties":false},"input_example":{"product_id":"BTC-USD"},"output_schema":{"type":"object","properties":{"product_id":{"type":"string","description":"Coinbase product, base-quote.","examples":["BTC-USD"]},"price":{"type":"string","description":"Last trade price, as the exchange reports it.","examples":["97231.45"]},"price_change_24h_pct":{"type":["string","null"],"description":"24-hour percentage change.","examples":["1.82"]},"volume_24h":{"type":["string","null"],"description":"24-hour volume in the base currency.","examples":["14231.9"]},"base_currency":{"type":["string","null"],"description":"Base currency code.","examples":["BTC"]},"quote_currency":{"type":["string","null"],"description":"Quote currency code.","examples":["USD"]},"status":{"type":["string","null"],"description":"Product status as reported by the exchange.","examples":["online"]},"source":{"type":"string","const":"coinbase-advanced-trade-public","description":"Data source."}},"required":["product_id","price","source"],"description":"Live spot quote."},"output_example":{"product_id":"BTC-USD","price":"97231.45","price_change_24h_pct":"1.82","volume_24h":"14231.9","base_currency":"BTC","quote_currency":"USD","status":"online","source":"coinbase-advanced-trade-public"},"returns":"price, price_change_24h_pct, volume_24h, base/quote currency.","max_seconds":30,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Live spot price and 24-hour change for any Coinbase product (BTC-USD, ETH-USD and the rest), from Coinbase's public market data.","capabilities":["market.quote","MarketQuote"],"representativeQueries":["current BTC-USD price on Coinbase","24 hour price change and volume for ETH-USD","spot price of a crypto pair"],"tags":["market","price","crypto","coinbase","quote","utility","pay-per-call"],"metadata":{"price_usd":0.02,"tier":"utility","path":"/work/market/quote","method":"POST","compound":false,"max_seconds":30},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:market.prediction","displayName":"Prediction market probabilities (market.prediction)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/market/prediction","method":"POST","url":"https://hubvibe-io.com/work/market/prediction","price_usd":0.05,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Topic to match (optional)."},"limit":{"type":"integer","description":"1-50, default 10."}},"required":[],"additionalProperties":false},"input_example":{},"output_schema":{"type":"object","properties":{"query":{"type":["string","null"],"description":"The search query, or null for the top markets by volume.","examples":["bitcoin"]},"markets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Polymarket market id.","examples":["512345"]},"question":{"type":"string","description":"The market question.","examples":["Will BTC close above $100k on Dec 31?"]},"slug":{"type":"string","description":"Polymarket slug.","examples":["will-btc-close-above-100k"]},"active":{"type":"boolean","description":"Whether the market is active.","examples":[true]},"closed":{"type":"boolean","description":"Whether the market is closed.","examples":[false]},"end_date":{"type":["string","null"],"description":"ISO 8601 end date.","examples":["2026-12-31T00:00:00Z"]},"volume":{"type":["number","null"],"description":"Traded volume in USD.","examples":[1834520.5]},"liquidity":{"type":["number","null"],"description":"Liquidity in USD.","examples":[240310.2]},"implied_probabilities":{"type":"array","items":{"type":"object","properties":{"outcome":{"type":"string","description":"Outcome label.","examples":["Yes"]},"probability_pct":{"type":["number","null"],"description":"Implied probability in percent.","examples":[62.5]}},"required":["outcome"],"description":"One outcome and what the market prices it at."},"description":"Each outcome with its implied probability.","examples":[[{"outcome":"Yes","probability_pct":62.5},{"outcome":"No","probability_pct":37.5}]]}},"required":["id","question","implied_probabilities"],"description":"One prediction market."},"description":"Matching markets, highest volume first."},"count":{"type":"integer","description":"Number of markets returned.","examples":[1]},"source":{"type":"string","const":"polymarket-gamma","description":"Data source."},"note":{"type":"string","description":"What the numbers are and are not.","examples":["Implied probabilities are what the market is currently pricing, not a forecast by HubVibe."]}},"required":["query","markets","count","source","note"]},"output_example":{"query":"bitcoin","markets":[{"id":"512345","question":"Will BTC close above $100k on Dec 31?","slug":"will-btc-close-above-100k","active":true,"closed":false,"end_date":"2026-12-31T00:00:00Z","volume":1834520.5,"liquidity":240310.2,"implied_probabilities":[{"outcome":"Yes","probability_pct":62.5},{"outcome":"No","probability_pct":37.5}]}],"count":1,"source":"polymarket-gamma","note":"Implied probabilities are what the market is currently pricing, not a forecast by HubVibe."},"returns":"markets[] with question, implied_probabilities[], volume, end_date.","max_seconds":30,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Live prediction markets and the probabilities they currently imply, from Polymarket. Search by topic or take the highest-volume markets. Returns each outcome as a percentage, not a raw price.","capabilities":["market.prediction","MarketPrediction"],"representativeQueries":["what odds do prediction markets give on an event","top Polymarket markets by volume","implied probability of an outcome on Polymarket"],"tags":["prediction","forecast","probability","polymarket","odds","utility","pay-per-call"],"metadata":{"price_usd":0.05,"tier":"utility","path":"/work/market/prediction","method":"POST","compound":false,"max_seconds":30},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:extract.page","displayName":"Web page extraction (extract.page)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/extract/page","method":"POST","url":"https://hubvibe-io.com/work/extract/page","price_usd":0.1,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"url":{"type":"string","description":"http(s) URL to fetch."}},"required":["url"],"additionalProperties":false},"input_example":{"url":"https://example.com"},"output_schema":{"type":"object","properties":{"url":{"type":"string","description":"The URL requested.","examples":["https://example.com"]},"final_url":{"type":["string","null"],"description":"The URL after redirects.","examples":["https://example.com/"]},"title":{"type":["string","null"],"description":"Page title.","examples":["Example Domain"]},"description":{"type":["string","null"],"description":"Meta description.","examples":["Example Domain for documentation."]},"text":{"type":"string","description":"Readable text of the page.","examples":["Example Domain. This domain is for use in illustrative examples..."]},"text_chars":{"type":"integer","description":"Characters in `text`.","examples":[172]},"truncated":{"type":"boolean","description":"Whether the text was cut at the extraction limit.","examples":[false]},"links":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","description":"Anchor text.","examples":["Pricing"]},"href":{"type":"string","description":"Absolute href.","examples":["https://example.com/pricing"]}},"required":["href"],"description":"One link on the page."},"description":"Up to 100 links on the page.","examples":[[{"text":"More information...","href":"https://www.iana.org/domains/example"}]]},"javascript_rendered":{"type":"boolean","description":"Whether a real browser rendered the page first.","examples":[true]}},"required":["url","text","text_chars","truncated","links","javascript_rendered"]},"output_example":{"url":"https://example.com","final_url":"https://example.com/","title":"Example Domain","description":"Example Domain for documentation.","text":"Example Domain. This domain is for use in illustrative examples...","text_chars":172,"truncated":false,"links":[{"text":"More information...","href":"https://www.iana.org/domains/example"}],"javascript_rendered":true},"returns":"title, description, text, text_chars, links[], javascript_rendered.","max_seconds":90,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Fetch any web page and return its readable text, title, description and links, rendered in a real browser so JavaScript-built pages extract correctly. Falls back to direct fetch when rendering is unavailable.","capabilities":["extract.page","ExtractPage"],"representativeQueries":["extract the readable text and links from a web page","read a JavaScript-rendered page and return its content","get the title, description and text of a URL"],"tags":["extract","scrape","web","content","browser","utility","pay-per-call"],"metadata":{"price_usd":0.1,"tier":"utility","path":"/work/extract/page","method":"POST","compound":false,"max_seconds":90},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:llm.analyze","displayName":"Analyse text (llm.analyze)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/llm/analyze","method":"POST","url":"https://hubvibe-io.com/work/llm/analyze","price_usd":0.25,"tier":"standard","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"text":{"type":"string","description":"Material to analyse."},"question":{"type":"string","description":"What to answer. Optional."}},"required":["text"],"additionalProperties":false},"input_example":{"text":"HubVibe sells machine-payable site audits at $0.05 per call."},"output_schema":{"type":"object","properties":{"question":{"type":"string","description":"The question asked of the material.","examples":["What does it sell, and at what price?"]},"answer":{"type":"string","description":"The answer, from the material only; says so when the material does not contain it.","examples":["It sells machine-payable site audits at $0.05 per call."]},"model":{"type":"string","description":"The model that produced the answer.","examples":["gemini-2.5-flash"]},"input_chars":{"type":"integer","description":"Characters of material analysed.","examples":[61]},"tokens":{"type":"object","properties":{"prompt":{"type":"integer","description":"Prompt tokens billed by the provider.","examples":[312]},"output":{"type":"integer","description":"Output tokens billed by the provider.","examples":[88]}},"required":["prompt","output"],"description":"Token usage for the call."}},"required":["question","answer","model","input_chars","tokens"]},"output_example":{"question":"What does it sell, and at what price?","answer":"It sells machine-payable site audits at $0.05 per call.","model":"gemini-2.5-flash","input_chars":61,"tokens":{"prompt":312,"output":88}},"returns":"answer, model, tokens{prompt,output}.","max_seconds":150,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Answer a specific question about text you supply, using Gemini. Answers only from the material given and says so explicitly when the material does not contain the answer, rather than guessing.","capabilities":["llm.analyze","LlmAnalyze"],"representativeQueries":["answer a question about this text using only the text","summarize the key points of a document","analyze provided material without guessing beyond it"],"tags":["llm","analysis","gemini","summarize","reasoning","standard","pay-per-call"],"metadata":{"price_usd":0.25,"tier":"standard","path":"/work/llm/analyze","method":"POST","compound":false,"max_seconds":150},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:llm.extract","displayName":"Extract fields as JSON (llm.extract)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/llm/extract","method":"POST","url":"https://hubvibe-io.com/work/llm/extract","price_usd":0.25,"tier":"standard","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"text":{"type":"string"},"fields":{"type":"array","items":{"type":"string"},"description":"Field names to extract."}},"required":["text","fields"],"additionalProperties":false},"input_example":{"text":"HubVibe sells machine-payable site audits at $0.05 per call.","fields":["title","pricing"]},"output_schema":{"type":"object","properties":{"fields":{"type":"object","properties":{},"required":[],"description":"Exactly the requested field names; null where the material does not state a value.","additionalProperties":true,"examples":[{"title":"HubVibe","pricing":"$0.05 per call"}]},"model":{"type":"string","description":"The model that produced the answer.","examples":["gemini-2.5-flash"]},"tokens":{"type":"object","properties":{"prompt":{"type":"integer","description":"Prompt tokens billed by the provider.","examples":[312]},"output":{"type":"integer","description":"Output tokens billed by the provider.","examples":[88]}},"required":["prompt","output"],"description":"Token usage for the call."}},"required":["fields","model","tokens"]},"output_example":{"fields":{"title":"HubVibe","pricing":"$0.05 per call"},"model":"gemini-2.5-flash","tokens":{"prompt":312,"output":88}},"returns":"fields{} with one key per requested field.","max_seconds":150,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Pull named fields out of text and return them as a JSON object with exactly the keys you asked for. Fields the text does not state come back as null instead of being invented.","capabilities":["llm.extract","LlmExtract"],"representativeQueries":["extract named fields from text as JSON","pull structured data out of unstructured text","turn a document into a JSON object with these keys"],"tags":["extract","structured","json","fields","parsing","standard","pay-per-call"],"metadata":{"price_usd":0.25,"tier":"standard","path":"/work/llm/extract","method":"POST","compound":false,"max_seconds":150},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:data.query","displayName":"Run a BigQuery query (data.query)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/data/query","method":"POST","url":"https://hubvibe-io.com/work/data/query","price_usd":0.5,"tier":"standard","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"sql":{"type":"string","description":"Read-only SELECT or WITH query."},"max_scan_gib":{"type":"number","description":"Optional scan ceiling."}},"required":["sql"],"additionalProperties":false},"input_example":{"sql":"SELECT name, SUM(number) AS n FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name ORDER BY n DESC LIMIT 5"},"output_schema":{"type":"object","properties":{"sql":{"type":"string","description":"The SQL that ran.","examples":["SELECT name, SUM(number) AS n FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name ORDER BY n DESC LIMIT 5"]},"columns":{"type":"array","items":{"type":"string","description":"Column name.","examples":["name"]},"description":"Result column names, in order.","examples":[["name","n"]]},"rows":{"type":"array","items":{"type":"object","properties":{},"required":[],"description":"One row keyed by column name.","additionalProperties":true,"examples":[{"name":"James","n":4942431}]},"description":"Result rows, keyed by column name.","examples":[[{"name":"James","n":4942431}]]},"row_count":{"type":"integer","description":"Rows returned (capped).","examples":[5]},"total_rows":{"type":"integer","description":"Rows the query produced before the cap.","examples":[5]},"truncated":{"type":"boolean","description":"Whether rows were cut at the cap.","examples":[false]},"gib_processed":{"type":"number","description":"Gibibytes BigQuery scanned; the metered cost basis.","examples":[0.012]},"cache_hit":{"type":"boolean","description":"Whether BigQuery served it from cache (no bytes billed).","examples":[false]}},"required":["sql","columns","rows","row_count","total_rows","truncated","gib_processed","cache_hit"]},"output_example":{"sql":"SELECT name, SUM(number) AS n FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name ORDER BY n DESC LIMIT 5","columns":["name","n"],"rows":[{"name":"James","n":4942431}],"row_count":5,"total_rows":5,"truncated":false,"gib_processed":0.012,"cache_hit":false},"returns":"columns[], rows[], row_count, gib_processed, cache_hit.","max_seconds":180,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Execute a read-only BigQuery SQL query, including against Google's public datasets, and get the rows back as JSON. Every query is dry-run first and refused if it would scan more than the byte ceiling, so cost is bounded before anything runs.","capabilities":["data.query","DataQuery"],"representativeQueries":["run read-only SQL against a BigQuery public dataset","query a BigQuery table and return rows","execute a SELECT on BigQuery with a scan limit"],"tags":["bigquery","sql","data","query","analytics","standard","pay-per-call"],"metadata":{"price_usd":0.5,"tier":"standard","path":"/work/data/query","method":"POST","compound":false,"max_seconds":180},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:data.question","displayName":"Answer a question from a dataset (data.question)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/data/question","method":"POST","url":"https://hubvibe-io.com/work/data/question","price_usd":5.0,"tier":"advanced","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"question":{"type":"string"},"table":{"type":"string","description":"Fully qualified: project.dataset.table."},"columns":{"type":"array","items":{"type":"string"},"description":"Optional column hints."}},"required":["question","table"],"additionalProperties":false},"input_example":{"question":"What does it sell, and at what price?","table":"bigquery-public-data.usa_names.usa_1910_2013"},"output_schema":{"type":"object","properties":{"question":{"type":"string","description":"The question asked.","examples":["Which five names were given most often?"]},"table":{"type":"string","description":"The table queried.","examples":["bigquery-public-data.usa_names.usa_1910_2013"]},"answer":{"type":"string","description":"The answer, read from the rows; states the figures.","examples":["James (4,942,431), John (4,834,422), ..."]},"sql":{"type":"string","description":"The SQL the model wrote and that ran.","examples":["SELECT name, SUM(number) AS n FROM ... LIMIT 5"]},"columns":{"type":"array","items":{"type":"string","description":"Column name.","examples":["name"]},"description":"Result column names, in order.","examples":[["name","n"]]},"rows":{"type":"array","items":{"type":"object","properties":{},"required":[],"description":"One row keyed by column name.","additionalProperties":true,"examples":[{"name":"James","n":4942431}]},"description":"Result rows, keyed by column name.","examples":[[{"name":"James","n":4942431}]]},"row_count":{"type":"integer","description":"Rows returned.","examples":[5]},"gib_processed":{"type":"number","description":"Gibibytes BigQuery scanned; the metered cost basis.","examples":[0.012]},"model":{"type":"string","description":"The model that produced the answer.","examples":["gemini-2.5-flash"]}},"required":["question","table","answer","sql","columns","rows","row_count","gib_processed","model"]},"output_example":{"question":"Which five names were given most often?","table":"bigquery-public-data.usa_names.usa_1910_2013","answer":"James (4,942,431), John (4,834,422), ...","sql":"SELECT name, SUM(number) AS n FROM ... LIMIT 5","columns":["name","n"],"rows":[{"name":"James","n":4942431}],"row_count":5,"gib_processed":0.012,"model":"gemini-2.5-flash"},"returns":"answer, sql, columns[], rows[], gib_processed.","max_seconds":240,"composes":["llm.analyze","data.query"],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}","buyer_note":"This call costs $5.00, above the $1.00 per-payment default spend cap in the x402 client libraries. Raise the cap before paying -- Python: client.set_spend_controls({'max_amount_per_payment': '$5.00'}); TypeScript: new x402Client({ spendControls: { maxAmountPerPayment: '$5.00' } }). Coinbase's x402_pay tool takes max_amount per call instead."},"description":"Ask a question in plain language about any BigQuery table, including Google's public datasets, and get a written answer with the SQL and the rows it came from. Writes the query, runs it under a byte ceiling, and reads the result back as an analysis.","capabilities":["data.question","DataQuestion","LlmAnalyze","DataQuery"],"representativeQueries":["answer a question about a BigQuery table in plain language","natural language to SQL against a dataset and explain the result","ask a data question and get the figures with the SQL that produced them"],"tags":["bigquery","analysis","data","question","sql","advanced","pay-per-call"],"metadata":{"price_usd":5.0,"tier":"advanced","path":"/work/data/question","method":"POST","compound":true,"max_seconds":240},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:research.brief","displayName":"Research brief on a URL (research.brief)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/research/brief","method":"POST","url":"https://hubvibe-io.com/work/research/brief","price_usd":5.0,"tier":"advanced","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"url":{"type":"string"},"question":{"type":"string","description":"Optional; defaults to an overview."}},"required":["url"],"additionalProperties":false},"input_example":{"url":"https://example.com"},"output_schema":{"type":"object","properties":{"url":{"type":"string","description":"The page read.","examples":["https://example.com"]},"final_url":{"type":["string","null"],"description":"The URL after redirects.","examples":["https://example.com/"]},"title":{"type":["string","null"],"description":"Page title.","examples":["Example Domain"]},"question":{"type":"string","description":"The question answered.","examples":["What does this page offer, who is it for, and what is the pricing?"]},"brief":{"type":"string","description":"The answer, from the page only.","examples":["The page is a placeholder domain reserved for documentation examples..."]},"source":{"type":"object","properties":{"text_chars":{"type":"integer","description":"Characters of readable text extracted.","examples":[8421]},"truncated":{"type":"boolean","description":"Whether the text was cut at the extraction limit.","examples":[false]},"javascript_rendered":{"type":"boolean","description":"Whether a real browser rendered the page first.","examples":[true]}},"required":["text_chars","truncated","javascript_rendered"],"description":"How the page was read."},"model":{"type":"string","description":"The model that produced the answer.","examples":["gemini-2.5-flash"]}},"required":["url","question","brief","source","model"]},"output_example":{"url":"https://example.com","final_url":"https://example.com/","title":"Example Domain","question":"What does this page offer, who is it for, and what is the pricing?","brief":"The page is a placeholder domain reserved for documentation examples...","source":{"text_chars":8421,"truncated":false,"javascript_rendered":true},"model":"gemini-2.5-flash"},"returns":"brief, title, final_url, source{}, model.","max_seconds":200,"composes":["extract.page","llm.analyze"],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}","buyer_note":"This call costs $5.00, above the $1.00 per-payment default spend cap in the x402 client libraries. Raise the cap before paying -- Python: client.set_spend_controls({'max_amount_per_payment': '$5.00'}); TypeScript: new x402Client({ spendControls: { maxAmountPerPayment: '$5.00' } }). Coinbase's x402_pay tool takes max_amount per call instead."},"description":"Read any web page and get a written answer to your question about it. Renders the page in a real browser, extracts the content, and analyses it in one paid call. Answers only from the page, and says when the page does not contain the answer.","capabilities":["research.brief","ResearchBrief","ExtractPage","LlmAnalyze"],"representativeQueries":["read a web page and write a brief answering a question about it","what does this website offer, who is it for and what does it cost","summarize a URL with the source disclosed"],"tags":["research","brief","web","analysis","competitive","advanced","pay-per-call"],"metadata":{"price_usd":5.0,"tier":"advanced","path":"/work/research/brief","method":"POST","compound":true,"max_seconds":200},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:research.page_facts","displayName":"Structured facts from a URL (research.page_facts)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/research/page_facts","method":"POST","url":"https://hubvibe-io.com/work/research/page_facts","price_usd":5.0,"tier":"advanced","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"url":{"type":"string"},"fields":{"type":"array","items":{"type":"string"}}},"required":["url","fields"],"additionalProperties":false},"input_example":{"url":"https://example.com","fields":["title","pricing"]},"output_schema":{"type":"object","properties":{"url":{"type":"string","description":"The page read.","examples":["https://example.com"]},"final_url":{"type":["string","null"],"description":"The URL after redirects.","examples":["https://example.com/"]},"title":{"type":["string","null"],"description":"Page title.","examples":["Example Domain"]},"fields":{"type":"object","properties":{},"required":[],"description":"Exactly the requested field names; null where the page does not state a value.","additionalProperties":true,"examples":[{"title":"Example Domain","pricing":null}]},"model":{"type":"string","description":"The model that produced the answer.","examples":["gemini-2.5-flash"]}},"required":["url","fields","model"]},"output_example":{"url":"https://example.com","final_url":"https://example.com/","title":"Example Domain","fields":{"title":"Example Domain","pricing":null},"model":"gemini-2.5-flash"},"returns":"fields{} with one key per requested field, plus title and final_url.","max_seconds":200,"composes":["extract.page","llm.extract"],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}","buyer_note":"This call costs $5.00, above the $1.00 per-payment default spend cap in the x402 client libraries. Raise the cap before paying -- Python: client.set_spend_controls({'max_amount_per_payment': '$5.00'}); TypeScript: new x402Client({ spendControls: { maxAmountPerPayment: '$5.00' } }). Coinbase's x402_pay tool takes max_amount per call instead."},"description":"Read any web page and return exactly the fields you name as JSON -- pricing, contact, product names, whatever you ask for. Fields the page does not state come back null rather than invented. Built for pipelines that need a fixed shape.","capabilities":["research.page_facts","ResearchPageFacts","ExtractPage","LlmExtract"],"representativeQueries":["extract specific facts from a web page as JSON fields","get the pricing, contact and product fields from a URL","structured facts about a company from its website"],"tags":["extract","structured","web","facts","enrichment","advanced","pay-per-call"],"metadata":{"price_usd":5.0,"tier":"advanced","path":"/work/research/page_facts","method":"POST","compound":true,"max_seconds":200},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:market.intel","displayName":"Market intelligence read (market.intel)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/market/intel","method":"POST","url":"https://hubvibe-io.com/work/market/intel","price_usd":5.0,"tier":"advanced","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"product_id":{"type":"string","description":"e.g. BTC-USD. Default BTC-USD."},"query":{"type":"string","description":"Prediction-market topic. Optional."},"question":{"type":"string","description":"Optional analysis question."},"limit":{"type":"integer"}},"required":[],"additionalProperties":false},"input_example":{},"output_schema":{"type":"object","properties":{"product_id":{"type":"string","description":"Spot product read.","examples":["BTC-USD"]},"spot":{"type":"object","properties":{"product_id":{"type":"string","description":"Coinbase product, base-quote.","examples":["BTC-USD"]},"price":{"type":"string","description":"Last trade price, as the exchange reports it.","examples":["97231.45"]},"price_change_24h_pct":{"type":["string","null"],"description":"24-hour percentage change.","examples":["1.82"]},"volume_24h":{"type":["string","null"],"description":"24-hour volume in the base currency.","examples":["14231.9"]},"base_currency":{"type":["string","null"],"description":"Base currency code.","examples":["BTC"]},"quote_currency":{"type":["string","null"],"description":"Quote currency code.","examples":["USD"]},"status":{"type":["string","null"],"description":"Product status as reported by the exchange.","examples":["online"]},"source":{"type":"string","const":"coinbase-advanced-trade-public","description":"Data source."}},"required":["product_id","price","source"],"description":"Live spot quote."},"prediction_markets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Polymarket market id.","examples":["512345"]},"question":{"type":"string","description":"The market question.","examples":["Will BTC close above $100k on Dec 31?"]},"slug":{"type":"string","description":"Polymarket slug.","examples":["will-btc-close-above-100k"]},"active":{"type":"boolean","description":"Whether the market is active.","examples":[true]},"closed":{"type":"boolean","description":"Whether the market is closed.","examples":[false]},"end_date":{"type":["string","null"],"description":"ISO 8601 end date.","examples":["2026-12-31T00:00:00Z"]},"volume":{"type":["number","null"],"description":"Traded volume in USD.","examples":[1834520.5]},"liquidity":{"type":["number","null"],"description":"Liquidity in USD.","examples":[240310.2]},"implied_probabilities":{"type":"array","items":{"type":"object","properties":{"outcome":{"type":"string","description":"Outcome label.","examples":["Yes"]},"probability_pct":{"type":["number","null"],"description":"Implied probability in percent.","examples":[62.5]}},"required":["outcome"],"description":"One outcome and what the market prices it at."},"description":"Each outcome with its implied probability.","examples":[[{"outcome":"Yes","probability_pct":62.5},{"outcome":"No","probability_pct":37.5}]]}},"required":["id","question","implied_probabilities"],"description":"One prediction market."},"description":"Matching prediction markets, highest volume first."},"analysis":{"type":"string","description":"What the two sources together do and do not support.","examples":["Spot is up 1.8% on the day while the top market prices a year-end close above $100k at 62%..."]},"model":{"type":"string","description":"The model that produced the answer.","examples":["gemini-2.5-flash"]},"disclaimer":{"type":"string","description":"Not investment advice.","examples":["Market data and implied probabilities only. Not investment advice and not a forecast by HubVibe."]}},"required":["product_id","spot","prediction_markets","analysis","model","disclaimer"]},"output_example":{"product_id":"BTC-USD","spot":{"product_id":"BTC-USD","price":"97231.45","price_change_24h_pct":"1.82","volume_24h":"14231.9","base_currency":"BTC","quote_currency":"USD","status":"online","source":"coinbase-advanced-trade-public"},"prediction_markets":[{"id":"512345","question":"Will BTC close above $100k on Dec 31?","slug":"will-btc-close-above-100k","active":true,"closed":false,"end_date":"2026-12-31T00:00:00Z","volume":1834520.5,"liquidity":240310.2,"implied_probabilities":[{"outcome":"Yes","probability_pct":62.5},{"outcome":"No","probability_pct":37.5}]}],"analysis":"Spot is up 1.8% on the day while the top market prices a year-end close above $100k at 62%...","model":"gemini-2.5-flash","disclaimer":"Market data and implied probabilities only. Not investment advice and not a forecast by HubVibe."},"returns":"spot{}, prediction_markets[], analysis, disclaimer.","max_seconds":200,"composes":["market.quote","market.prediction","llm.analyze"],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}","buyer_note":"This call costs $5.00, above the $1.00 per-payment default spend cap in the x402 client libraries. Raise the cap before paying -- Python: client.set_spend_controls({'max_amount_per_payment': '$5.00'}); TypeScript: new x402Client({ spendControls: { maxAmountPerPayment: '$5.00' } }). Coinbase's x402_pay tool takes max_amount per call instead."},"description":"Combine a live crypto spot quote with live prediction-market probabilities on the same subject and get them analysed together in one call. Market data and implied probabilities only -- not investment advice.","capabilities":["market.intel","MarketIntel","MarketQuote","MarketPrediction","LlmAnalyze"],"representativeQueries":["what do spot and prediction markets together say about bitcoin","market sentiment read combining Coinbase price and Polymarket odds","reconcile a crypto price with prediction market probabilities"],"tags":["market","intelligence","prediction","crypto","sentiment","advanced","pay-per-call"],"metadata":{"price_usd":5.0,"tier":"advanced","path":"/work/market/intel","method":"POST","compound":true,"max_seconds":200},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:search.web","displayName":"Web search (search.web)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/search/web","method":"POST","url":"https://hubvibe-io.com/work/search/web","price_usd":0.1,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"query":{"type":"string"}},"required":["query"],"additionalProperties":false},"input_example":{"query":"x402 payment protocol"},"output_schema":{"type":"object","properties":{"query":{"type":"string","description":"The query searched.","examples":["x402 payment protocol"]},"answer":{"type":"string","description":"Grounded answer with the sources it drew on.","examples":["x402 is an HTTP-native payment protocol that uses the 402 status code..."]},"sources":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"Source URL.","examples":["https://www.x402.org/"]},"title":{"type":["string","null"],"description":"Source title.","examples":["x402"]}},"required":["url"]},"description":"Web sources the answer is grounded in."},"search_queries_used":{"type":"array","items":{"type":"string","description":"A query the grounding step issued.","examples":["x402 protocol"]},"description":"Search queries the grounding step actually ran.","examples":[["x402 protocol"]]},"model":{"type":"string","description":"The model that produced the answer.","examples":["gemini-2.5-flash"]}},"required":["query","answer","sources","search_queries_used","model"]},"output_example":{"query":"x402 payment protocol","answer":"x402 is an HTTP-native payment protocol that uses the 402 status code...","sources":[{"url":"https://www.x402.org/","title":"x402"}],"search_queries_used":["x402 protocol"],"model":"gemini-2.5-flash"},"returns":"query, answer, sources[{url,title}], search_queries_used[], model.","max_seconds":60,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"A live web search, answered from current Google Search results with the sources it used. Grounded, not the model's own memory.","capabilities":["search.web","SearchWeb"],"representativeQueries":["search the web and answer with sources","live web search with citations for a question","find recent web results about a topic"],"tags":["search","web","google","grounding","current","utility","pay-per-call"],"metadata":{"price_usd":0.1,"tier":"utility","path":"/work/search/web","method":"POST","compound":false,"max_seconds":60},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:llm.generate","displayName":"Raw text completion (llm.generate)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/llm/generate","method":"POST","url":"https://hubvibe-io.com/work/llm/generate","price_usd":0.25,"tier":"standard","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"prompt":{"type":"string","description":"The prompt."},"system":{"type":"string","description":"Optional system message."},"max_tokens":{"type":"integer","description":"1-4096, default 1024."},"temperature":{"type":"number","description":"0-2, default 0.7."},"provider":{"type":"string","description":"Optional: gemini or anthropic."},"model":{"type":"string","description":"Optional: a specific model from that provider."}},"required":["prompt"],"additionalProperties":false},"input_example":{"prompt":"A beehive built from circuit boards, isometric illustration"},"output_schema":{"type":"object","properties":{"text":{"type":"string","description":"The completion.","examples":["Here is a short poem about bees..."]},"model":{"type":"string","description":"The model used.","examples":["gemini-2.5-flash"]},"provider":{"type":"string","description":"The provider that served it.","examples":["gemini"]},"finish_reason":{"type":["string","null"],"description":"Why generation stopped.","examples":["STOP"]},"usage":{"type":"object","properties":{"input_tokens":{"type":"integer","description":"Input tokens.","examples":[14]},"output_tokens":{"type":"integer","description":"Output tokens.","examples":[96]}},"required":["input_tokens","output_tokens"],"description":"Token usage."}},"required":["text","model","provider","usage"]},"output_example":{"text":"Here is a short poem about bees...","model":"gemini-2.5-flash","provider":"gemini","finish_reason":"STOP","usage":{"input_tokens":14,"output_tokens":96}},"returns":"text, model, provider, finish_reason, usage{input_tokens,output_tokens}.","max_seconds":120,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"A raw completion from a large language model: your prompt, your system message, your provider and model choice among what this deployment has configured (Gemini; Claude on Vertex once Model Garden access is enabled). Unlike llm.analyze, nothing is prescribed about the shape of the answer.","capabilities":["llm.generate","LlmGenerate"],"representativeQueries":["generate text from a prompt with a chosen model","raw LLM completion with a system prompt","run a prompt on Gemini or Claude and return the text"],"tags":["llm","generate","completion","gemini","claude","inference","standard","pay-per-call"],"metadata":{"price_usd":0.25,"tier":"standard","path":"/work/llm/generate","method":"POST","compound":false,"max_seconds":120},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:code.execute","displayName":"Execute Python (code.execute)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/code/execute","method":"POST","url":"https://hubvibe-io.com/work/code/execute","price_usd":0.25,"tier":"standard","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"],"additionalProperties":false},"input_example":{"code":"print(sum(range(10)))"},"output_schema":{"type":"object","properties":{"code":{"type":"string","description":"The code that ran.","examples":["print(sum(range(10)))"]},"output":{"type":"string","description":"Captured stdout/stderr.","examples":["45\n"]},"outcome":{"type":"string","description":"Sandbox outcome code.","examples":["OUTCOME_OK"]},"summary":{"type":["string","null"],"description":"The model's one-line summary of the run.","examples":["Printed the sum 45."]},"model":{"type":"string","description":"The model that produced the answer.","examples":["gemini-2.5-flash"]}},"required":["code","output","outcome","model"]},"output_example":{"code":"print(sum(range(10)))","output":"45\n","outcome":"OUTCOME_OK","summary":"Printed the sum 45.","model":"gemini-2.5-flash"},"returns":"code, output, outcome, summary, model.","max_seconds":90,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Run Python code in Google's own hosted sandbox and get the executed code, its output, and the outcome back. Not run in this service's own infrastructure.","capabilities":["code.execute","CodeExecute"],"representativeQueries":["run this Python code and return the output","execute a script in a sandbox","compute a result by running code"],"tags":["code","execute","sandbox","python","compute","standard","pay-per-call"],"metadata":{"price_usd":0.25,"tier":"standard","path":"/work/code/execute","method":"POST","compound":false,"max_seconds":90},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:image.generate","displayName":"Generate an image (image.generate)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/image/generate","method":"POST","url":"https://hubvibe-io.com/work/image/generate","price_usd":0.5,"tier":"standard","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"prompt":{"type":"string"},"aspect_ratio":{"type":"string","description":"1:1, 3:4, 4:3, 16:9 or 9:16. Default 1:1."}},"required":["prompt"],"additionalProperties":false},"input_example":{"prompt":"A beehive built from circuit boards, isometric illustration"},"output_schema":{"type":"object","properties":{"prompt":{"type":"string","description":"The prompt.","examples":["A beehive built from circuit boards, isometric illustration"]},"aspect_ratio":{"type":"string","description":"Aspect ratio generated.","examples":["1:1"]},"image_base64":{"type":"string","description":"The image, base64.","examples":["iVBORw0KGgo..."]},"mime_type":{"type":"string","description":"Image MIME type.","examples":["image/png"]},"model":{"type":"string","description":"Image model.","examples":["imagen-4.0-generate-001"]}},"required":["prompt","aspect_ratio","image_base64","mime_type","model"]},"output_example":{"prompt":"A beehive built from circuit boards, isometric illustration","aspect_ratio":"1:1","image_base64":"iVBORw0KGgo...","mime_type":"image/png","model":"imagen-4.0-generate-001"},"returns":"prompt, aspect_ratio, image_base64, mime_type, model.","max_seconds":100,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Generate one image from a text prompt using Imagen 4. Returns the image as base64-encoded bytes.","capabilities":["image.generate","ImageGenerate"],"representativeQueries":["generate an image from a text prompt","create an illustration with Imagen","text to image at a given aspect ratio"],"tags":["image","generate","imagen","media","visual","standard","pay-per-call"],"metadata":{"price_usd":0.5,"tier":"standard","path":"/work/image/generate","method":"POST","compound":false,"max_seconds":100},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:speech.synthesize","displayName":"Text to speech (speech.synthesize)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/speech/synthesize","method":"POST","url":"https://hubvibe-io.com/work/speech/synthesize","price_usd":0.25,"tier":"standard","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"text":{"type":"string"},"voice":{"type":"string","description":"e.g. en-US-Standard-C. Optional."}},"required":["text"],"additionalProperties":false},"input_example":{"text":"HubVibe sells machine-payable site audits at $0.05 per call."},"output_schema":{"type":"object","properties":{"text_chars":{"type":"integer","description":"Characters synthesised.","examples":[58]},"voice":{"type":"string","description":"Voice used.","examples":["en-US-Neural2-C"]},"audio_base64":{"type":"string","description":"The audio, base64.","examples":["UklGRi4AAABXQVZF..."]},"mime_type":{"type":"string","description":"Audio MIME type.","examples":["audio/mpeg"]}},"required":["text_chars","voice","audio_base64","mime_type"]},"output_example":{"text_chars":58,"voice":"en-US-Neural2-C","audio_base64":"UklGRi4AAABXQVZF...","mime_type":"audio/mpeg"},"returns":"text_chars, voice, audio_base64, mime_type.","max_seconds":60,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Convert text to spoken audio (MP3) using Google Cloud Text-to-Speech.","capabilities":["speech.synthesize","SpeechSynthesize"],"representativeQueries":["convert text to speech audio","generate an MP3 voice-over from text","text to speech with a named voice"],"tags":["speech","tts","voice","audio","media","standard","pay-per-call"],"metadata":{"price_usd":0.25,"tier":"standard","path":"/work/speech/synthesize","method":"POST","compound":false,"max_seconds":60},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:speech.transcribe","displayName":"Speech to text (speech.transcribe)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/speech/transcribe","method":"POST","url":"https://hubvibe-io.com/work/speech/transcribe","price_usd":0.25,"tier":"standard","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"audio_base64":{"type":"string","description":"Base64-encoded audio, any common format."},"language_code":{"type":"string","description":"BCP-47, default en-US."}},"required":["audio_base64"],"additionalProperties":false},"input_example":{"audio_base64":"aGVsbG8="},"output_schema":{"type":"object","properties":{"transcript":{"type":"string","description":"The transcript.","examples":["hello world"]},"language_code":{"type":"string","description":"Language recognised.","examples":["en-US"]},"confidence":{"type":["number","null"],"description":"Mean recognition confidence, 0-1; null when the engine gives none.","examples":[0.94]},"model":{"type":"string","description":"Recognition model.","examples":["latest_short"]}},"required":["transcript","language_code","model"]},"output_example":{"transcript":"hello world","language_code":"en-US","confidence":0.94,"model":"latest_short"},"returns":"transcript, language_code, confidence, model.","max_seconds":75,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Transcribe up to 60 seconds / 10MB of audio using Google Cloud Speech-to-Text. Longer audio is refused before payment; this is the synchronous API only.","capabilities":["speech.transcribe","SpeechTranscribe"],"representativeQueries":["transcribe a short audio clip to text","speech to text for a base64 WAV file","what is said in this audio"],"tags":["speech","stt","transcribe","audio","media","standard","pay-per-call"],"metadata":{"price_usd":0.25,"tier":"standard","path":"/work/speech/transcribe","method":"POST","compound":false,"max_seconds":75},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:data.forecast","displayName":"Forecast a time series (data.forecast)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/data/forecast","method":"POST","url":"https://hubvibe-io.com/work/data/forecast","price_usd":10.0,"tier":"premium","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"table":{"type":"string","description":"project.dataset.table"},"timestamp_col":{"type":"string"},"data_col":{"type":"string"},"horizon":{"type":"integer","description":"Periods to forecast, default 10."},"id_cols":{"type":"array","items":{"type":"string"},"description":"Optional: forecast multiple series at once."},"max_scan_gib":{"type":"number"}},"required":["table","timestamp_col","data_col"],"additionalProperties":false},"input_example":{"table":"bigquery-public-data.covid19_nyt.us_states","timestamp_col":"date","data_col":"confirmed_cases","id_cols":["state_name"]},"output_schema":{"type":"object","properties":{"table":{"type":"string","description":"Source table.","examples":["bigquery-public-data.covid19_nyt.us_states"]},"timestamp_col":{"type":"string","description":"Timestamp column.","examples":["date"]},"data_col":{"type":"string","description":"Value column forecast.","examples":["confirmed_cases"]},"horizon":{"type":"integer","description":"Forecast points requested.","examples":[10]},"columns":{"type":"array","items":{"type":"string","description":"AI.FORECAST output column.","examples":["forecast_timestamp"]},"description":"AI.FORECAST output columns.","examples":[["state_name","forecast_timestamp","forecast_value","confidence_level","prediction_interval_lower_bound","prediction_interval_upper_bound","ai_forecast_status"]]},"rows":{"type":"array","items":{"type":"object","properties":{},"required":[],"description":"One forecast point.","additionalProperties":true,"examples":[{"state_name":"Texas","forecast_timestamp":"2023-03-24 00:00:00","forecast_value":"8631745.2","confidence_level":"0.95"}]},"description":"Forecast rows.","examples":[[{"state_name":"Texas","forecast_timestamp":"2023-03-24 00:00:00","forecast_value":"8631745.2","confidence_level":"0.95"}]]},"row_count":{"type":"integer","description":"Rows returned.","examples":[10]},"gib_processed":{"type":"number","description":"Gibibytes BigQuery scanned; the metered cost basis.","examples":[0.012]}},"required":["table","timestamp_col","data_col","horizon","columns","rows","row_count","gib_processed"]},"output_example":{"table":"bigquery-public-data.covid19_nyt.us_states","timestamp_col":"date","data_col":"confirmed_cases","horizon":10,"columns":["state_name","forecast_timestamp","forecast_value","confidence_level","prediction_interval_lower_bound","prediction_interval_upper_bound","ai_forecast_status"],"rows":[{"state_name":"Texas","forecast_timestamp":"2023-03-24 00:00:00","forecast_value":"8631745.2","confidence_level":"0.95"}],"row_count":10,"gib_processed":0.012},"returns":"table, timestamp_col, data_col, horizon, columns[], rows[], row_count, gib_processed.","max_seconds":200,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}","buyer_note":"This call costs $10.00, above the $1.00 per-payment default spend cap in the x402 client libraries. Raise the cap before paying -- Python: client.set_spend_controls({'max_amount_per_payment': '$10.00'}); TypeScript: new x402Client({ spendControls: { maxAmountPerPayment: '$10.00' } }). Coinbase's x402_pay tool takes max_amount per call instead."},"description":"Forecast a time series in a BigQuery table with Google's pretrained TimesFM model (AI.FORECAST) -- no model to train. Point it at the table and the timestamp/value columns.","capabilities":["data.forecast","DataForecast"],"representativeQueries":["forecast a time series stored in BigQuery","predict the next values of a daily metric with TimesFM","time series forecast from a table with a date and value column"],"tags":["bigquery","forecast","timeseries","timesfm","data","premium","pay-per-call"],"metadata":{"price_usd":10.0,"tier":"premium","path":"/work/data/forecast","method":"POST","compound":false,"max_seconds":200},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:data.anomalies","displayName":"Detect anomalies in a time series (data.anomalies)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/data/anomalies","method":"POST","url":"https://hubvibe-io.com/work/data/anomalies","price_usd":10.0,"tier":"premium","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"history_table":{"type":"string","description":"project.dataset.table"},"target_table":{"type":"string","description":"project.dataset.table"},"timestamp_col":{"type":"string"},"data_col":{"type":"string"},"anomaly_prob_threshold":{"type":"number","description":"0.5-0.999, default 0.95."},"id_cols":{"type":"array","items":{"type":"string"},"description":"Optional: one series per value of these columns."},"max_scan_gib":{"type":"number"}},"required":["history_table","target_table","timestamp_col","data_col"],"additionalProperties":false},"input_example":{"history_table":"bigquery-public-data.covid19_nyt.us_states","target_table":"bigquery-public-data.covid19_nyt.us_states","timestamp_col":"date","data_col":"confirmed_cases","id_cols":["state_name"]},"output_schema":{"type":"object","properties":{"history_table":{"type":"string","description":"Table the forecast is fitted on.","examples":["bigquery-public-data.covid19_nyt.us_states"]},"target_table":{"type":"string","description":"Table checked for anomalies.","examples":["bigquery-public-data.covid19_nyt.us_states"]},"timestamp_col":{"type":"string","description":"Timestamp column.","examples":["date"]},"data_col":{"type":"string","description":"Value column.","examples":["confirmed_cases"]},"anomaly_prob_threshold":{"type":"number","description":"Probability threshold used.","examples":[0.95]},"columns":{"type":"array","items":{"type":"string","description":"AI.DETECT_ANOMALIES output column.","examples":["is_anomaly"]},"description":"AI.DETECT_ANOMALIES output columns.","examples":[["state_name","date","confirmed_cases","is_anomaly","lower_bound","upper_bound","anomaly_probability"]]},"rows":{"type":"array","items":{"type":"object","properties":{},"required":[],"description":"One checked point.","additionalProperties":true,"examples":[{"state_name":"Texas","date":"2023-03-20","confirmed_cases":"8631000","is_anomaly":"false","anomaly_probability":"0.12"}]},"description":"Checked rows with their anomaly flag.","examples":[[{"state_name":"Texas","date":"2023-03-20","confirmed_cases":"8631000","is_anomaly":"false","anomaly_probability":"0.12"}]]},"row_count":{"type":"integer","description":"Rows returned.","examples":[10]},"gib_processed":{"type":"number","description":"Gibibytes BigQuery scanned; the metered cost basis.","examples":[0.012]}},"required":["history_table","target_table","timestamp_col","data_col","anomaly_prob_threshold","columns","rows","row_count","gib_processed"]},"output_example":{"history_table":"bigquery-public-data.covid19_nyt.us_states","target_table":"bigquery-public-data.covid19_nyt.us_states","timestamp_col":"date","data_col":"confirmed_cases","anomaly_prob_threshold":0.95,"columns":["state_name","date","confirmed_cases","is_anomaly","lower_bound","upper_bound","anomaly_probability"],"rows":[{"state_name":"Texas","date":"2023-03-20","confirmed_cases":"8631000","is_anomaly":"false","anomaly_probability":"0.12"}],"row_count":10,"gib_processed":0.012},"returns":"history_table, target_table, timestamp_col, data_col, anomaly_prob_threshold, columns[], rows[], row_count, gib_processed.","max_seconds":200,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}","buyer_note":"This call costs $10.00, above the $1.00 per-payment default spend cap in the x402 client libraries. Raise the cap before paying -- Python: client.set_spend_controls({'max_amount_per_payment': '$10.00'}); TypeScript: new x402Client({ spendControls: { maxAmountPerPayment: '$10.00' } }). Coinbase's x402_pay tool takes max_amount per call instead."},"description":"Detect anomalies in a target table's time series against a history table, using AI.DETECT_ANOMALIES (TimesFM). Both tables share the same timestamp and value column names.","capabilities":["data.anomalies","DataAnomalies"],"representativeQueries":["detect anomalies in a time series in BigQuery","flag unusual values in a daily metric against its history","anomaly detection on a table with a timestamp column"],"tags":["bigquery","anomaly","timeseries","timesfm","data","premium","pay-per-call"],"metadata":{"price_usd":10.0,"tier":"premium","path":"/work/data/anomalies","method":"POST","compound":false,"max_seconds":200},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:verify.claims","displayName":"Verify claims against sources (verify.claims)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/verify/claims","method":"POST","url":"https://hubvibe-io.com/work/verify/claims","price_usd":5.0,"tier":"advanced","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"claims":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"type":"string"}}},"required":["claims","sources"],"additionalProperties":false},"input_example":{"claims":["HubVibe sells machine-payable site audits."],"sources":["https://example.com"]},"output_schema":{"type":"object","properties":{"claims":{"type":"array","items":{"type":"string","description":"A claim, as given.","examples":["HubVibe sells machine-payable site audits."]},"description":"The claims checked, in order.","examples":[["HubVibe sells machine-payable site audits."]]},"verdicts":{"type":"array","items":{"type":"object","properties":{"claim":{"type":"string","description":"The claim, as given.","examples":["HubVibe sells machine-payable site audits."]},"verdict":{"type":"string","enum":["SUPPORTED","CONTRADICTED","UNSUPPORTED"],"description":"Whether the sources support, contradict, or do not address the claim.","examples":["SUPPORTED"]},"quote":{"type":["string","null"],"description":"The sentence the verdict rests on; null when UNSUPPORTED.","examples":["Every check is priced per call over HTTP 402."]},"source_n":{"type":["integer","null"],"description":"Which source (by n) the quote is from; null when UNSUPPORTED.","examples":[1]}},"required":["claim","verdict"],"description":"One claim and its verdict."},"description":"One verdict per claim, same order."},"sources_read":{"type":"array","items":{"type":"object","properties":{"n":{"type":"integer","description":"Citation number used as [n] in the text.","examples":[1]},"url":{"type":"string","description":"Source URL.","examples":["https://example.com/about"]},"title":{"type":["string","null"],"description":"Page title, when the page had one.","examples":["About Example"]}},"required":["n","url"],"description":"One source the answer cites."},"description":"Sources read, numbered as cited in source_n."},"sources_unread":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"Source that could not be read.","examples":["https://example.com/paywalled"]},"reason":{"type":"string","description":"Why it could not be read.","examples":["HTTP 403 from the target"]}},"required":["url","reason"],"description":"A source that was found but not read; disclosed, never silently dropped."},"description":"Sources that could not be read, with the reason.","examples":[[]]},"model":{"type":"string","description":"The model that produced the answer.","examples":["gemini-2.5-flash"]}},"required":["claims","verdicts","sources_read","sources_unread","model"]},"output_example":{"claims":["HubVibe sells machine-payable site audits."],"verdicts":[{"claim":"HubVibe sells machine-payable site audits.","verdict":"SUPPORTED","quote":"Every check is priced per call over HTTP 402.","source_n":1}],"sources_read":[{"n":1,"url":"https://example.com/about","title":"About Example"}],"sources_unread":[],"model":"gemini-2.5-flash"},"returns":"claims[], verdicts[{claim,verdict,quote,source_n}], sources_read[], sources_unread[], model.","max_seconds":200,"composes":["extract.page"],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}","buyer_note":"This call costs $5.00, above the $1.00 per-payment default spend cap in the x402 client libraries. Raise the cap before paying -- Python: client.set_spend_controls({'max_amount_per_payment': '$5.00'}); TypeScript: new x402Client({ spendControls: { maxAmountPerPayment: '$5.00' } }). Coinbase's x402_pay tool takes max_amount per call instead."},"description":"Check up to 10 specific claims against up to 4 specific source URLs. Each claim comes back SUPPORTED, CONTRADICTED or UNSUPPORTED, with the quote the verdict is based on.","capabilities":["verify.claims","VerifyClaims","ExtractPage"],"representativeQueries":["fact-check these claims against these source URLs","does this source support or contradict a statement","verify claims with the quote each verdict rests on"],"tags":["verify","fact-check","claims","sources","research","advanced","pay-per-call"],"metadata":{"price_usd":5.0,"tier":"advanced","path":"/work/verify/claims","method":"POST","compound":true,"max_seconds":200},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:research.web","displayName":"Research brief from live web search (research.web)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/research/web","method":"POST","url":"https://hubvibe-io.com/work/research/web","price_usd":5.0,"tier":"advanced","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"question":{"type":"string"},"max_sources":{"type":"integer","description":"1-4, default 3."}},"required":["question"],"additionalProperties":false},"input_example":{"question":"What does it sell, and at what price?"},"output_schema":{"type":"object","properties":{"question":{"type":"string","description":"The question researched.","examples":["What is the x402 payment protocol?"]},"answer":{"type":"string","description":"Cited answer; every claim carries [n].","examples":["x402 is an HTTP-native payment standard built on the 402 status code [1]..."]},"sources":{"type":"array","items":{"type":"object","properties":{"n":{"type":"integer","description":"Citation number used as [n] in the text.","examples":[1]},"url":{"type":"string","description":"Source URL.","examples":["https://example.com/about"]},"title":{"type":["string","null"],"description":"Page title, when the page had one.","examples":["About Example"]}},"required":["n","url"],"description":"One source the answer cites."},"description":"Sources read, numbered as cited."},"partial":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"Source that could not be read.","examples":["https://example.com/paywalled"]},"reason":{"type":"string","description":"Why it could not be read.","examples":["HTTP 403 from the target"]}},"required":["url","reason"],"description":"A source that was found but not read; disclosed, never silently dropped."},"description":"Sources found but not read, with the reason.","examples":[[]]},"model":{"type":"string","description":"The model that produced the answer.","examples":["gemini-2.5-flash"]}},"required":["question","answer","sources","partial","model"]},"output_example":{"question":"What is the x402 payment protocol?","answer":"x402 is an HTTP-native payment standard built on the 402 status code [1]...","sources":[{"n":1,"url":"https://example.com/about","title":"About Example"}],"partial":[],"model":"gemini-2.5-flash"},"returns":"question, answer, sources[{n,url,title}], partial[], model.","max_seconds":220,"composes":["search.web","extract.page","llm.analyze"],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}","buyer_note":"This call costs $5.00, above the $1.00 per-payment default spend cap in the x402 client libraries. Raise the cap before paying -- Python: client.set_spend_controls({'max_amount_per_payment': '$5.00'}); TypeScript: new x402Client({ spendControls: { maxAmountPerPayment: '$5.00' } }). Coinbase's x402_pay tool takes max_amount per call instead."},"description":"Answer a question from a live web search: search, read the top sources, and get a cited answer with every claim tied to [n] source numbers.","capabilities":["research.web","ResearchWeb","SearchWeb","ExtractPage","LlmAnalyze"],"representativeQueries":["research a question on the live web with numbered citations","cited answer from several web sources","find and read sources to answer a research question"],"tags":["research","search","web","citations","brief","advanced","pay-per-call"],"metadata":{"price_usd":5.0,"tier":"advanced","path":"/work/research/web","method":"POST","compound":true,"max_seconds":220},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:research.company","displayName":"Research and verify a company (research.company)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/research/company","method":"POST","url":"https://hubvibe-io.com/work/research/company","price_usd":10.0,"tier":"premium","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"company":{"type":"string"},"max_sources":{"type":"integer","description":"1-4, default 4."}},"required":["company"],"additionalProperties":false},"input_example":{"company":"Anthropic"},"output_schema":{"type":"object","properties":{"company":{"type":"string","description":"The company researched.","examples":["Anthropic"]},"report":{"type":"string","description":"Cited brief: what it does, products, notable facts; thin or conflicting evidence is called out.","examples":["Anthropic is an AI safety company that builds the Claude model family [1]..."]},"sources":{"type":"array","items":{"type":"object","properties":{"n":{"type":"integer","description":"Citation number used as [n] in the text.","examples":[1]},"url":{"type":"string","description":"Source URL.","examples":["https://example.com/about"]},"title":{"type":["string","null"],"description":"Page title, when the page had one.","examples":["About Example"]}},"required":["n","url"],"description":"One source the answer cites."},"description":"Sources read, numbered as cited."},"partial":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"Source that could not be read.","examples":["https://example.com/paywalled"]},"reason":{"type":"string","description":"Why it could not be read.","examples":["HTTP 403 from the target"]}},"required":["url","reason"],"description":"A source that was found but not read; disclosed, never silently dropped."},"description":"Sources found but not read, with the reason.","examples":[[]]},"model":{"type":"string","description":"The model that produced the answer.","examples":["gemini-2.5-flash"]}},"required":["company","report","sources","partial","model"]},"output_example":{"company":"Anthropic","report":"Anthropic is an AI safety company that builds the Claude model family [1]...","sources":[{"n":1,"url":"https://example.com/about","title":"About Example"}],"partial":[],"model":"gemini-2.5-flash"},"returns":"company, report, sources[{n,url,title}], partial[], model.","max_seconds":220,"composes":["search.web","extract.page","llm.analyze"],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}","buyer_note":"This call costs $10.00, above the $1.00 per-payment default spend cap in the x402 client libraries. Raise the cap before paying -- Python: client.set_spend_controls({'max_amount_per_payment': '$10.00'}); TypeScript: new x402Client({ spendControls: { maxAmountPerPayment: '$10.00' } }). Coinbase's x402_pay tool takes max_amount per call instead."},"description":"A research brief on a company from live web sources: what it does, its products, and anything notable, cited to [n] source numbers, with thin or conflicting evidence disclosed rather than papered over.","capabilities":["research.company","ResearchCompany","SearchWeb","ExtractPage","LlmAnalyze"],"representativeQueries":["research a company from live web sources with citations","what does this company do, what does it sell, anything notable","company due diligence brief with sources"],"tags":["research","company","kyb","business-intelligence","verification","premium","pay-per-call"],"metadata":{"price_usd":10.0,"tier":"premium","path":"/work/research/company","method":"POST","compound":true,"max_seconds":220},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:monitor.snapshot","displayName":"Save a monitoring baseline (monitor.snapshot)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/monitor/snapshot","method":"POST","url":"https://hubvibe-io.com/work/monitor/snapshot","price_usd":0.5,"tier":"standard","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"url":{"type":"string","description":"http(s) URL to fetch."}},"required":["url"],"additionalProperties":false},"input_example":{"url":"https://example.com"},"output_schema":{"type":"object","properties":{"url":{"type":"string","description":"The URL baselined.","examples":["https://example.com"]},"title":{"type":["string","null"],"description":"Page title at snapshot time.","examples":["Example Domain"]},"text_chars":{"type":"integer","description":"Characters of readable text captured.","examples":[172]},"content_hash":{"type":"string","description":"sha256 of the readable text, hex.","examples":["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]},"note":{"type":"string","description":"What to do next.","examples":["Baseline saved. Call monitor.check on this URL later to see what changed."]}},"required":["url","text_chars","content_hash","note"]},"output_example":{"url":"https://example.com","title":"Example Domain","text_chars":172,"content_hash":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","note":"Baseline saved. Call monitor.check on this URL later to see what changed."},"returns":"url, title, text_chars, content_hash, note.","max_seconds":90,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Fetch a page and save it as the baseline for monitor.check. Call this once, then monitor.check later to see what changed.","capabilities":["monitor.snapshot","MonitorSnapshot"],"representativeQueries":["save a baseline of a web page to detect changes later","start monitoring a URL for content changes"],"tags":["monitor","baseline","change-detection","web","standard","pay-per-call"],"metadata":{"price_usd":0.5,"tier":"standard","path":"/work/monitor/snapshot","method":"POST","compound":false,"max_seconds":90},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:monitor.check","displayName":"Check a page against its baseline (monitor.check)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/monitor/check","method":"POST","url":"https://hubvibe-io.com/work/monitor/check","price_usd":0.5,"tier":"standard","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"url":{"type":"string","description":"http(s) URL to fetch."}},"required":["url"],"additionalProperties":false},"input_example":{"url":"https://example.com"},"output_schema":{"type":"object","properties":{"url":{"type":"string","description":"The URL checked.","examples":["https://example.com"]},"title":{"type":["string","null"],"description":"Page title now.","examples":["Example Domain"]},"changed":{"type":"boolean","description":"Whether the readable text differs from the baseline.","examples":[true]},"baseline_age_seconds":{"type":"number","description":"Seconds since the baseline was taken.","examples":[86400]},"change_summary":{"type":"string","description":"What changed, in words; or that nothing did.","examples":["The pricing section now lists a $0.15 bundle; the headline is unchanged."]},"model":{"type":"string","description":"Model that summarised the diff; present only when something changed.","examples":["gemini-2.5-flash"]}},"required":["url","changed","baseline_age_seconds","change_summary"]},"output_example":{"url":"https://example.com","title":"Example Domain","changed":true,"baseline_age_seconds":86400,"change_summary":"The pricing section now lists a $0.15 bundle; the headline is unchanged.","model":"gemini-2.5-flash"},"returns":"url, title, changed, baseline_age_seconds, change_summary, model.","max_seconds":150,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Re-fetch a page monitor.snapshot was called on, and get back whether it changed and a summary of what changed.","capabilities":["monitor.check","MonitorCheck"],"representativeQueries":["has this web page changed since the last check","summarize what changed on a monitored page","diff a URL against its saved baseline"],"tags":["monitor","change-detection","diff","web","standard","pay-per-call"],"metadata":{"price_usd":0.5,"tier":"standard","path":"/work/monitor/check","method":"POST","compound":false,"max_seconds":150},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:security.mcp_inspect","displayName":"Inspect an MCP endpoint (security.mcp_inspect)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/security/mcp_inspect","method":"POST","url":"https://hubvibe-io.com/work/security/mcp_inspect","price_usd":5.0,"tier":"advanced","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"url":{"type":"string","description":"http(s) URL to fetch."}},"required":["url"],"additionalProperties":false},"input_example":{"url":"https://example.com"},"output_schema":{"type":"object","properties":{"url":{"type":"string","description":"The MCP endpoint inspected.","examples":["https://mcp.example.com/mcp"]},"reachable":{"type":"boolean","description":"Whether the server answered the MCP initialize handshake.","examples":[true]},"requires_auth":{"type":"boolean","description":"Whether an unauthenticated initialize was refused.","examples":[false]},"initialize_status":{"type":"integer","description":"HTTP status of the initialize call.","examples":[200]},"protocol_version":{"type":["string","null"],"description":"MCP protocol version the server negotiated.","examples":["2025-06-18"]},"server_name":{"type":["string","null"],"description":"serverInfo.name.","examples":["example-mcp"]},"server_version":{"type":["string","null"],"description":"serverInfo.version.","examples":["1.0.0"]},"tool_count":{"type":"integer","description":"Tools listed.","examples":[3]},"tools":{"type":"array","items":{"type":"object","properties":{"name":{"type":["string","null"],"description":"Tool name.","examples":["get_weather"]},"description":{"type":["string","null"],"description":"Tool description.","examples":["Current weather for a city."]},"annotations":{"description":"The tool's annotations object, as served.","type":["object","null"],"examples":[{"readOnlyHint":true}]}},"required":["name"],"description":"One tool the inspected server lists."},"description":"Every tool listed, with its annotations."},"tools_without_readonly_annotation":{"type":"array","items":{"type":"string","description":"A tool name.","examples":["delete_records"]},"description":"Tools that do not declare readOnlyHint: the ones an agent should treat as able to change state.","examples":[["delete_records"]]},"tools_error":{"type":["string","null"],"description":"Why tools/list failed, when it did.","examples":[null]}},"required":["url","reachable","requires_auth","initialize_status","tool_count","tools","tools_without_readonly_annotation"]},"output_example":{"url":"https://mcp.example.com/mcp","reachable":true,"requires_auth":false,"initialize_status":200,"protocol_version":"2025-06-18","server_name":"example-mcp","server_version":"1.0.0","tool_count":3,"tools":[{"name":"get_weather","description":"Current weather for a city.","annotations":{"readOnlyHint":true}}],"tools_without_readonly_annotation":["delete_records"],"tools_error":null},"returns":"reachable, requires_auth, protocol_version, tool_count, tools[], tools_without_readonly_annotation[].","max_seconds":45,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}","buyer_note":"This call costs $5.00, above the $1.00 per-payment default spend cap in the x402 client libraries. Raise the cap before paying -- Python: client.set_spend_controls({'max_amount_per_payment': '$5.00'}); TypeScript: new x402Client({ spendControls: { maxAmountPerPayment: '$5.00' } }). Coinbase's x402_pay tool takes max_amount per call instead."},"description":"Probe a customer-specified MCP server's initialize handshake and tools/list: whether it requires authentication, what protocol version it speaks, and which of its tools are not marked read-only.","capabilities":["security.mcp_inspect","SecurityMcpInspect"],"representativeQueries":["inspect an MCP server for auth and which tools can change state","audit a remote MCP endpoint's tools and annotations","does this MCP server require authentication"],"tags":["security","mcp","audit","inspect","tools","advanced","pay-per-call"],"metadata":{"price_usd":5.0,"tier":"advanced","path":"/work/security/mcp_inspect","method":"POST","compound":false,"max_seconds":45},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:fetch.raw","displayName":"Raw HTTP fetch (fetch.raw)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/fetch/raw","method":"POST","url":"https://hubvibe-io.com/work/fetch/raw","price_usd":0.1,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"url":{"type":"string","description":"http(s) URL to fetch."}},"required":["url"],"additionalProperties":false},"input_example":{"url":"https://example.com"},"output_schema":{"type":"object","properties":{"url":{"type":"string","description":"The URL requested.","examples":["https://example.com"]},"final_url":{"type":["string","null"],"description":"The URL after redirects.","examples":["https://example.com/"]},"status":{"type":"integer","description":"HTTP status the target returned; any status is a completed fetch.","examples":[200]},"content_type":{"type":["string","null"],"description":"Content-Type header.","examples":["text/html; charset=UTF-8"]},"bytes":{"type":"integer","description":"Response body size in bytes.","examples":[1256]},"text":{"type":["string","null"],"description":"Body text for textual content types; null for binary.","examples":["<!doctype html><html>..."]},"truncated":{"type":"boolean","description":"Whether `text` was cut at the fetch limit.","examples":[false]},"headers":{"type":"object","properties":{},"required":[],"description":"Response headers, lower-cased names.","additionalProperties":{"type":"string"},"examples":[{"content-type":"text/html; charset=UTF-8","cache-control":"max-age=604800"}]}},"required":["url","status","bytes","truncated","headers"]},"output_example":{"url":"https://example.com","final_url":"https://example.com/","status":200,"content_type":"text/html; charset=UTF-8","bytes":1256,"text":"<!doctype html><html>...","truncated":false,"headers":{"content-type":"text/html; charset=UTF-8","cache-control":"max-age=604800"}},"returns":"url, final_url, status, content_type, bytes, text, truncated, headers{}.","max_seconds":60,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Fetch any URL and get back exactly what the server sent: status code, headers, and body. Unlike extract.page, every status code is a result, not a failure -- a 404 or 500 from the target is delivered as one.","capabilities":["fetch.raw","FetchRaw"],"representativeQueries":["fetch a URL and return the raw status, headers and body","what HTTP status and headers does this URL return","download the raw HTML of a page without rendering"],"tags":["fetch","http","raw","status","headers","utility","pay-per-call"],"metadata":{"price_usd":0.1,"tier":"utility","path":"/work/fetch/raw","method":"POST","compound":false,"max_seconds":60},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:chain.rpc","displayName":"Base RPC passthrough (chain.rpc)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/chain/rpc","method":"POST","url":"https://hubvibe-io.com/work/chain/rpc","price_usd":0.05,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"method":{"type":"string","description":"e.g. eth_call, eth_getLogs."},"params":{"type":"array","description":"JSON-RPC positional params. Default []."}},"required":["method"],"additionalProperties":false},"input_example":{"method":"eth_blockNumber"},"output_schema":{"type":"object","properties":{"method":{"type":"string","description":"The JSON-RPC method called.","examples":["eth_blockNumber"]},"endpoint":{"type":"string","description":"The RPC endpoint that answered.","examples":["https://mainnet.base.org"]},"result":{"description":"The chain's `result`, verbatim, when the call succeeded.","examples":["0x2751f11"]},"error":{"description":"The chain's JSON-RPC error object, verbatim, when it answered with one (a revert reason, an unknown block). Either `result` or `error` is present.","type":["object","null"],"examples":[{"code":-32000,"message":"execution reverted"}]}},"required":["method","endpoint"]},"output_example":{"method":"eth_blockNumber","endpoint":"https://mainnet.base.org","result":"0x2751f11","error":{"code":-32000,"message":"execution reverted"}},"returns":"method, result or error, endpoint.","max_seconds":30,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"A generic allowlisted read-only JSON-RPC call to Base mainnet: your method, your params. A JSON-RPC error (a revert reason, 'block not found') comes back as the result, not a failure -- it is the chain's own answer to exactly this call.","capabilities":["chain.rpc","ChainRpc"],"representativeQueries":["call eth_getLogs on Base for a contract","raw JSON-RPC read against Base mainnet","eth_call a view function on Base"],"tags":["base","blockchain","rpc","jsonrpc","advanced","utility","pay-per-call"],"metadata":{"price_usd":0.05,"tier":"utility","path":"/work/chain/rpc","method":"POST","compound":false,"max_seconds":30},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:market.rates","displayName":"Currency exchange rates (market.rates)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/market/rates","method":"POST","url":"https://hubvibe-io.com/work/market/rates","price_usd":0.02,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"currency":{"type":"string","description":"e.g. USD, ETH, BTC."}},"required":["currency"],"additionalProperties":false},"input_example":{"currency":"USD"},"output_schema":{"type":"object","properties":{"currency":{"type":"string","description":"Base currency of the table.","examples":["USD"]},"rates":{"type":"object","properties":{},"required":[],"description":"Exchange rate per currency code, as decimal strings.","additionalProperties":{"type":"string"},"examples":[{"EUR":"0.92","GBP":"0.78","BTC":"0.0000103"}]},"source":{"type":"string","const":"coinbase-exchange-rates","description":"Data source."}},"required":["currency","rates","source"]},"output_example":{"currency":"USD","rates":{"EUR":"0.92","GBP":"0.78","BTC":"0.0000103"},"source":"coinbase-exchange-rates"},"returns":"currency, rates{}.","max_seconds":20,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Coinbase's exchange-rate table for one base currency against every currency it quotes -- crypto and fiat.","capabilities":["market.rates","MarketRates"],"representativeQueries":["exchange rates for USD against every currency","how much is one EUR in BTC","current fiat and crypto exchange rate table"],"tags":["market","rates","currency","exchange","coinbase","utility","pay-per-call"],"metadata":{"price_usd":0.02,"tier":"utility","path":"/work/market/rates","method":"POST","compound":false,"max_seconds":20},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:market.ticker","displayName":"Crypto ticker (market.ticker)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/market/ticker","method":"POST","url":"https://hubvibe-io.com/work/market/ticker","price_usd":0.02,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"product_id":{"type":"string","description":"e.g. BTC-USD."}},"required":["product_id"],"additionalProperties":false},"input_example":{"product_id":"BTC-USD"},"output_schema":{"type":"object","properties":{"product_id":{"type":"string","description":"Coinbase product, base-quote.","examples":["BTC-USD"]},"price":{"type":["string","null"],"description":"Last trade price.","examples":["97231.45"]},"bid":{"type":["string","null"],"description":"Best bid.","examples":["97230.10"]},"ask":{"type":["string","null"],"description":"Best ask.","examples":["97232.80"]},"volume":{"type":["string","null"],"description":"24-hour volume in the base currency.","examples":["14231.9"]},"time":{"type":["string","null"],"description":"Exchange timestamp, ISO 8601.","examples":["2026-09-22T04:10:12.345Z"]},"source":{"type":"string","const":"coinbase-exchange","description":"Data source."}},"required":["product_id","price","bid","ask","source"]},"output_example":{"product_id":"BTC-USD","price":"97231.45","bid":"97230.10","ask":"97232.80","volume":"14231.9","time":"2026-09-22T04:10:12.345Z","source":"coinbase-exchange"},"returns":"product_id, price, bid, ask, volume, time.","max_seconds":20,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Live bid, ask and volume for one Coinbase product, from an independent market-data host to market.quote -- a genuine second source, not the same read twice.","capabilities":["market.ticker","MarketTicker"],"representativeQueries":["best bid and ask for BTC-USD","live order book top of book for a Coinbase product","bid ask spread on ETH-USD"],"tags":["market","ticker","bid","ask","coinbase","utility","pay-per-call"],"metadata":{"price_usd":0.02,"tier":"utility","path":"/work/market/ticker","method":"POST","compound":false,"max_seconds":20},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:prediction.market","displayName":"Prediction market by slug (prediction.market)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/prediction/market","method":"POST","url":"https://hubvibe-io.com/work/prediction/market","price_usd":0.05,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"slug":{"type":"string","description":"The market's Polymarket slug."}},"required":["slug"],"additionalProperties":false},"input_example":{"slug":"example-prediction-market-slug"},"output_schema":{"type":"object","properties":{"slug":{"type":"string","description":"The slug queried.","examples":["will-btc-close-above-100k"]},"market":{"type":"object","properties":{"id":{"type":"string","description":"Polymarket market id.","examples":["512345"]},"question":{"type":"string","description":"The market question.","examples":["Will BTC close above $100k on Dec 31?"]},"slug":{"type":"string","description":"Polymarket slug.","examples":["will-btc-close-above-100k"]},"active":{"type":"boolean","description":"Whether the market is active.","examples":[true]},"closed":{"type":"boolean","description":"Whether the market is closed.","examples":[false]},"end_date":{"type":["string","null"],"description":"ISO 8601 end date.","examples":["2026-12-31T00:00:00Z"]},"volume":{"type":["number","null"],"description":"Traded volume in USD.","examples":[1834520.5]},"liquidity":{"type":["number","null"],"description":"Liquidity in USD.","examples":[240310.2]},"implied_probabilities":{"type":"array","items":{"type":"object","properties":{"outcome":{"type":"string","description":"Outcome label.","examples":["Yes"]},"probability_pct":{"type":["number","null"],"description":"Implied probability in percent.","examples":[62.5]}},"required":["outcome"],"description":"One outcome and what the market prices it at."},"description":"Each outcome with its implied probability.","examples":[[{"outcome":"Yes","probability_pct":62.5},{"outcome":"No","probability_pct":37.5}]]}},"required":["id","question","implied_probabilities"],"description":"One prediction market."},"source":{"type":"string","const":"polymarket-gamma","description":"Data source."}},"required":["slug","market","source"]},"output_example":{"slug":"will-btc-close-above-100k","market":{"id":"512345","question":"Will BTC close above $100k on Dec 31?","slug":"will-btc-close-above-100k","active":true,"closed":false,"end_date":"2026-12-31T00:00:00Z","volume":1834520.5,"liquidity":240310.2,"implied_probabilities":[{"outcome":"Yes","probability_pct":62.5},{"outcome":"No","probability_pct":37.5}]},"source":"polymarket-gamma"},"returns":"slug, market{question,implied_probabilities[],...}.","max_seconds":20,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"One named Polymarket market, looked up by its exact slug, with its current implied probabilities.","capabilities":["prediction.market","PredictionMarket"],"representativeQueries":["look up a Polymarket market by slug","current probabilities for a specific prediction market"],"tags":["prediction","polymarket","slug","market","odds","utility","pay-per-call"],"metadata":{"price_usd":0.05,"tier":"utility","path":"/work/prediction/market","method":"POST","compound":false,"max_seconds":20},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:prediction.events","displayName":"Prediction market events (prediction.events)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/prediction/events","method":"POST","url":"https://hubvibe-io.com/work/prediction/events","price_usd":0.05,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"limit":{"type":"integer","description":"1-50, default 10."}},"required":[],"additionalProperties":false},"input_example":{},"output_schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Event id.","examples":["24011"]},"title":{"type":"string","description":"Event title.","examples":["Bitcoin price on December 31"]},"slug":{"type":"string","description":"Event slug.","examples":["bitcoin-price-on-december-31"]},"volume":{"type":["number","null"],"description":"Traded volume in USD.","examples":[5230100.0]},"end_date":{"type":["string","null"],"description":"ISO 8601 end date.","examples":["2026-12-31T00:00:00Z"]},"market_count":{"type":"integer","description":"Markets grouped under this event.","examples":[6]}},"required":["id","title","slug","market_count"],"description":"One event."},"description":"Events, highest volume first."},"count":{"type":"integer","description":"Number of events returned.","examples":[1]},"source":{"type":"string","const":"polymarket-gamma","description":"Data source."}},"required":["events","count","source"]},"output_example":{"events":[{"id":"24011","title":"Bitcoin price on December 31","slug":"bitcoin-price-on-december-31","volume":5230100.0,"end_date":"2026-12-31T00:00:00Z","market_count":6}],"count":1,"source":"polymarket-gamma"},"returns":"events[{id,title,slug,volume,end_date,market_count}], count.","max_seconds":20,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Live Polymarket events -- groupings of related markets -- ranked by volume.","capabilities":["prediction.events","PredictionEvents"],"representativeQueries":["list the biggest prediction market events right now","which Polymarket events have the most volume"],"tags":["prediction","polymarket","events","market","odds","utility","pay-per-call"],"metadata":{"price_usd":0.05,"tier":"utility","path":"/work/prediction/events","method":"POST","compound":false,"max_seconds":20},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:maps.places","displayName":"Search places (maps.places)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/maps/places","method":"POST","url":"https://hubvibe-io.com/work/maps/places","price_usd":0.1,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"query":{"type":"string","description":"What to find, e.g. 'coffee near the Ferry Building'."},"region_code":{"type":"string","description":"Optional ISO 3166-1 alpha-2 bias."}},"required":["query"],"additionalProperties":false},"input_example":{"query":"x402 payment protocol"},"output_schema":{"type":"object","properties":{"query":{"type":"string","description":"The place query.","examples":["coffee near Union Square, San Francisco"]},"result":{"description":"Places found, in Google Maps Grounding Lite's own response shape.","type":"object","examples":[{"places":[{"name":"Blue Bottle Coffee","formattedAddress":"66 Mint St, San Francisco, CA"}]}]}},"required":["query","result"]},"output_example":{"query":"coffee near Union Square, San Francisco","result":{"places":[{"name":"Blue Bottle Coffee","formattedAddress":"66 Mint St, San Francisco, CA"}]}},"returns":"query, result (places found, per Maps Grounding Lite's own shape).","max_seconds":40,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Search for places -- businesses, addresses, points of interest -- via Google's managed Maps Grounding Lite MCP server. Requires the operator to enable the Maps Grounding Lite API and set a key; unavailable until then.","capabilities":["maps.places","MapsPlaces"],"representativeQueries":["find places matching a query near a location","search for restaurants or shops in a city","look up a business on Google Maps"],"tags":["maps","places","search","google","geospatial","utility","pay-per-call"],"metadata":{"price_usd":0.1,"tier":"utility","path":"/work/maps/places","method":"POST","compound":false,"max_seconds":40},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:maps.route","displayName":"Compute a route (maps.route)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/maps/route","method":"POST","url":"https://hubvibe-io.com/work/maps/route","price_usd":0.1,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"origin":{"type":"string"},"destination":{"type":"string"},"travel_mode":{"type":"string","description":"DRIVE, WALK, BICYCLE or TRANSIT. Default DRIVE."}},"required":["origin","destination"],"additionalProperties":false},"input_example":{"origin":"San Francisco, CA","destination":"Oakland, CA"},"output_schema":{"type":"object","properties":{"origin":{"type":"string","description":"Origin as given.","examples":["San Francisco, CA"]},"destination":{"type":"string","description":"Destination as given.","examples":["Oakland, CA"]},"travel_mode":{"type":"string","enum":["DRIVE","WALK","BICYCLE","TRANSIT"],"description":"Travel mode used.","examples":["DRIVE"]},"result":{"description":"The route, in Google Maps Grounding Lite's own response shape.","type":"object","examples":[{"routes":[{"distanceMeters":19870,"duration":"1362s"}]}]}},"required":["origin","destination","travel_mode","result"]},"output_example":{"origin":"San Francisco, CA","destination":"Oakland, CA","travel_mode":"DRIVE","result":{"routes":[{"distanceMeters":19870,"duration":"1362s"}]}},"returns":"origin, destination, travel_mode, result (route, per Maps Grounding Lite's own shape).","max_seconds":40,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Directions and travel time between two places, via Google's managed Maps Grounding Lite MCP server.","capabilities":["maps.route","MapsRoute"],"representativeQueries":["driving route and duration between two addresses","how long does it take to walk from A to B","transit directions between two places"],"tags":["maps","route","directions","google","geospatial","utility","pay-per-call"],"metadata":{"price_usd":0.1,"tier":"utility","path":"/work/maps/route","method":"POST","compound":false,"max_seconds":40},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:maps.weather","displayName":"Weather at a location (maps.weather)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/maps/weather","method":"POST","url":"https://hubvibe-io.com/work/maps/weather","price_usd":0.1,"tier":"utility","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"],"additionalProperties":false},"input_example":{"location":"San Francisco, CA"},"output_schema":{"type":"object","properties":{"location":{"type":"string","description":"Location as given.","examples":["San Francisco, CA"]},"result":{"description":"Current conditions, in Google Maps Grounding Lite's own response shape.","type":"object","examples":[{"temperature":{"degrees":17.2,"unit":"CELSIUS"},"weatherCondition":{"type":"PARTLY_CLOUDY"}}]}},"required":["location","result"]},"output_example":{"location":"San Francisco, CA","result":{"temperature":{"degrees":17.2,"unit":"CELSIUS"},"weatherCondition":{"type":"PARTLY_CLOUDY"}}},"returns":"location, result (weather, per Maps Grounding Lite's own shape).","max_seconds":40,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}"},"description":"Current or forecast weather at a named place, via Google's managed Maps Grounding Lite MCP server.","capabilities":["maps.weather","MapsWeather"],"representativeQueries":["current weather at a location","what is the temperature in a city right now"],"tags":["maps","weather","forecast","google","geospatial","utility","pay-per-call"],"metadata":{"price_usd":0.1,"tier":"utility","path":"/work/maps/weather","method":"POST","compound":false,"max_seconds":40},"version":"1.4.1"},{"identifier":"urn:air:hubvibe-io.com:work:video.generate","displayName":"Generate a video (video.generate)","type":"application/vnd.hubvibe.route+json","data":{"path":"/work/video/generate","method":"POST","url":"https://hubvibe-io.com/work/video/generate","price_usd":10.0,"tier":"premium","payment":"HTTP 402 per call; rails as listed in /.well-known/agent.json","input_schema":{"type":"object","properties":{"prompt":{"type":"string"},"aspect_ratio":{"type":"string","description":"16:9 or 9:16. Default 16:9."},"duration_seconds":{"type":"integer","description":"4, 6 or 8. Default 6."},"generate_audio":{"type":"boolean","description":"Default false."}},"required":["prompt"],"additionalProperties":false},"input_example":{"prompt":"A single bee landing on a circuit-board flower, slow motion"},"output_schema":{"type":"object","properties":{"prompt":{"type":"string","description":"The prompt.","examples":["A single bee landing on a circuit-board flower, slow motion"]},"aspect_ratio":{"type":"string","description":"Aspect ratio generated.","examples":["16:9"]},"duration_seconds":{"type":"integer","description":"Clip length in seconds.","examples":[4]},"video_base64":{"type":["string","null"],"description":"The video, base64, when returned inline.","examples":["AAAAIGZ0eXBpc29t..."]},"gcs_uri":{"type":["string","null"],"description":"Cloud Storage URI, when the provider stored it instead.","examples":[null]},"mime_type":{"type":"string","description":"Video MIME type.","examples":["video/mp4"]},"model":{"type":"string","description":"Video model.","examples":["veo-3.0-generate-001"]}},"required":["prompt","aspect_ratio","duration_seconds","mime_type","model"]},"output_example":{"prompt":"A single bee landing on a circuit-board flower, slow motion","aspect_ratio":"16:9","duration_seconds":4,"video_base64":"AAAAIGZ0eXBpc29t...","gcs_uri":null,"mime_type":"video/mp4","model":"veo-3.0-generate-001"},"returns":"prompt, aspect_ratio, duration_seconds, video_base64 or gcs_uri, mime_type, model.","max_seconds":240,"composes":[],"receipt":"https://hubvibe-io.com/work/receipts/{receipt_id}","buyer_note":"This call costs $10.00, above the $1.00 per-payment default spend cap in the x402 client libraries. Raise the cap before paying -- Python: client.set_spend_controls({'max_amount_per_payment': '$10.00'}); TypeScript: new x402Client({ spendControls: { maxAmountPerPayment: '$10.00' } }). Coinbase's x402_pay tool takes max_amount per call instead."},"description":"Generate a short video from a text prompt using Veo. Off by default: enabled only once the operator has confirmed the configured Veo model resolves on this project (see the provider module for why).","capabilities":["video.generate","VideoGenerate"],"representativeQueries":["generate a short video clip from a text prompt","text to video with Veo","create a four second video from a description"],"tags":["video","generate","veo","media","visual","premium","pay-per-call"],"metadata":{"price_usd":10.0,"tier":"premium","path":"/work/video/generate","method":"POST","compound":false,"max_seconds":240},"version":"1.4.1"}]}