{"schemaVersion":"server402.catalog.search.v1","generatedAt":"2026-07-30T13:57:15Z","generatedAtBeijing":"2026-07-30 21:57:15 CST","timezone":"Asia/Shanghai","query":"weather","filters":{"limit":10},"total":1,"services":[{"id":"hk-weather","canonicalId":"hk-weather","name":"Hk Weather","displayName":"香港当前天气","description":"Get current weather in Hong Kong, including temperature, relative humidity, and wind speed, from Open-Meteo.","descriptionForModel":"Get current weather in Hong Kong, including temperature, relative humidity, and wind speed, from Open-Meteo.","category":"weather","keywords":["weather","current weather","Hong Kong weather","temperature","humidity","wind speed"],"useCases":["Check current weather","Answer weather questions about Hong Kong","Get simple weather data for testing"],"limitations":["Fixed location Hong Kong; depends on Open-Meteo availability"],"tags":["weather","hong kong","temperature","humidity","wind"],"method":"GET","endpoint":"/api/tools/hk-weather","endpointAliases":["/api/tools/hk-weather"],"inputTypes":["object"],"outputTypes":["object","string"],"inputSchema":{"properties":{},"type":"object"},"outputSchema":{"properties":{"current":{"type":"object"},"timezone":{"type":"string"}},"type":"object"},"exampleResponse":{"current":{"relative_humidity_2m":72,"temperature_2m":30.4,"time":"2026-05-28T16:15","wind_speed_10m":11.9},"timezone":"Asia/Hong_Kong"},"pricing":{"amountCents":5,"amountMicros":50000,"currency":"XIAO","policyId":"tiny-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"xiao-wallet","provider":"x402_xiao_wallet"},"quality":{"qualityScore":96,"healthStatus":"healthy","healthCheckedAt":"2026-05-28T08:27:28Z","healthLatencyMs":712,"latencyMs":315,"successRate":1,"callCount":8,"executionCount":8,"successCount":8,"errorCount":0,"paymentRequireds":0,"lastCallAt":"2026-07-29T12:03:31Z"},"discovery":{"toolName":"hk_weather","searchText":"hk-weather Hk Weather Get current weather in Hong Kong, including temperature, relative humidity, and wind speed, from Open-Meteo. Get current weather in Hong Kong, including temperature, relative humidity, and wind speed, from Open-Meteo. weather object object string weather hong kong temperature humidity wind weather current weather Hong Kong weather temperature humidity wind speed Check current weather Answer weather questions about Hong Kong Get simple weather data for testing Fixed location Hong Kong; depends on Open-Meteo availability /api/tools/hk-weather","aliases":["Hk Weather","weather","香港当前天气","hong kong","temperature","humidity","wind","current weather","Hong Kong weather","wind speed","hk-weather","hk_weather","/api/tools/hk-weather"],"localeHints":["en","zh"],"useCases":["Check current weather","Answer weather questions about Hong Kong","Get simple weather data for testing"],"limitations":["Fixed location Hong Kong; depends on Open-Meteo availability"],"paymentFlow":{"type":"http-402","createPayment":{"method":"POST","url":"/api/payments","bodySchema":{"properties":{"providerId":{"type":"string"},"serviceId":{"description":"Use the canonical service id from the catalog. Legacy internal ids remain accepted for backward compatibility.","type":"string"}},"required":["serviceId"],"type":"object"},"responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json paymentRequired","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json XIAO escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"XIAO","paymentNetwork":"xiao:internal"},"retry":{"when":"Retry after opening xiaopay.top, obtaining XIAO, and creating one XIAO accepts[] guarantee or after payment.status is paid and the token has remaining calls.","http":["Call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Open https://xiaopay.top to obtain XIAO, then create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","Retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Use POST /api/payments with serviceId when you need a reusable payment token, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","XIAO-capable agents should open xiaopay.top, obtain XIAO, create the AI wallet guarantee, and call the underlying HTTP endpoint with X402-Guarantee.","Clients that use paymentToken can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"paymentToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"xiao":["curl -i https://example.com/api/tools/timestamp","Open https://xiaopay.top, obtain XIAO, and create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}},"paymentHint":"Call GET /api/tools/hk-weather once to receive HTTP 402 with accepts[] requirements. Open https://xiaopay.top to obtain XIAO, create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId, then retry with X402-Guarantee. If you need the legacy reusable token flow, create a payment with POST /api/payments using serviceId=\"hk-weather\".","retryHint":"If the service returns HTTP 402, open https://xiaopay.top to obtain XIAO, then retry with X402-Guarantee for the guarantee flow or X-Payment-Token for the legacy token flow.","requiredState":"published, enabled"},"matchScore":124,"matchTerms":["weather"],"why":"Matched weather for \"Hk Weather\". Price is XIAO 0.05 per policy tiny-api.","whyMatched":"Matched weather for \"Hk Weather\". Price is XIAO 0.05 per policy tiny-api."}],"agents":[{"id":"hk-weather","name":"Hk Weather","description":"Get current weather in Hong Kong, including temperature, relative humidity, and wind speed, from Open-Meteo.","endpoint":"/api/tools/hk-weather","method":"GET","auth_type":"api_key + x402_xiao_wallet http_402","billing_method":"per_call","pricing":{"amountCents":5,"amountMicros":50000,"currency":"XIAO","policyId":"tiny-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"properties":{},"type":"object"},"output_schema":{"properties":{"current":{"type":"object"},"timezone":{"type":"string"}},"type":"object"},"tags":["weather","hong kong","temperature","humidity","wind"],"category":"weather"}],"demandCapture":{"queryRecorded":true,"demandBearing":true,"status":"published-and-planned-candidates","recommendedAction":"compare-published-services-and-request-missing-fit","message":"Published services and planned API candidates both matched. Prefer a published callable service when it fits; otherwise request early access for the planned candidate that better matches the task.","matchedPlannedServices":[{"id":"weather-api","name":"天气 API","category":"实时数据","availability":"可新增","status":"planned / early-access","servicePage":"https://x402vip.com/services/weather-api","llmsText":"https://x402vip.com/services/weather-api/llms.txt","requestAccessUrl":"https://x402vip.com/api/planned-services/request-access","candidateApiPaths":["https://x402vip.com/api/weather","https://x402vip.com/api/forecast","https://x402vip.com/api/tools/weather","https://x402vip.com/api/tools/weather-api"],"keywords":["weather-api","weather","天气 API","weather api","forecast api","天气","天气预报"],"matchRank":1,"matchReason":"Search query matched this planned demand candidate; request-access and candidate path visits are aggregated for launch prioritization."},{"id":"weather-search-api","name":"Weather Search API","category":"实时数据","availability":"可新增","status":"planned / early-access","servicePage":"https://x402vip.com/services/weather-search-api","llmsText":"https://x402vip.com/services/weather-search-api/llms.txt","requestAccessUrl":"https://x402vip.com/api/planned-services/request-access","candidateApiPaths":["https://x402vip.com/api/weather-search","https://x402vip.com/api/weather/search","https://x402vip.com/api/tools/weather-search","https://x402vip.com/api/tools/weather-search-api"],"keywords":["weather-search-api","weather-search","weather search","Weather Search API","Weather Search","Search Weather","weather","search weather","weather search api","search api weather","weather find","find weather","weather lookup","lookup weather","weather 检索","检索 weather","weather 搜索","搜索 weather","forecast","forecast search","search forecast","forecast search api","search api forecast","forecast find","find forecast","forecast lookup","lookup forecast","forecast 检索","检索 forecast","forecast 搜索","搜索 forecast","天气","天气 search","search 天气","天气 search api","search api 天气","天气 find","find 天气","天气 lookup","lookup 天气","天气 检索","检索 天气","天气 搜索","搜索 天气"],"matchRank":2,"matchReason":"Search query matched this planned demand candidate; request-access and candidate path visits are aggregated for launch prioritization."},{"id":"weather-extraction-api","name":"Weather Extraction API","category":"实时数据","availability":"可新增","status":"planned / early-access","servicePage":"https://x402vip.com/services/weather-extraction-api","llmsText":"https://x402vip.com/services/weather-extraction-api/llms.txt","requestAccessUrl":"https://x402vip.com/api/planned-services/request-access","candidateApiPaths":["https://x402vip.com/api/weather-extraction","https://x402vip.com/api/weather/extraction","https://x402vip.com/api/tools/weather-extraction","https://x402vip.com/api/tools/weather-extraction-api"],"keywords":["weather-extraction-api","weather-extraction","weather extraction","Weather Extraction API","Weather Extraction","Extraction Weather","weather","extraction weather","weather extract","extract weather","weather data extraction","data extraction weather","weather 提取","提取 weather","weather 抽取","抽取 weather","forecast","forecast extraction","extraction forecast","forecast extract","extract forecast","forecast data extraction","data extraction forecast","forecast 提取","提取 forecast","forecast 抽取","抽取 forecast","天气","天气 extraction","extraction 天气","天气 extract","extract 天气","天气 data extraction","data extraction 天气","天气 提取","提取 天气","天气 抽取","抽取 天气"],"matchRank":3,"matchReason":"Search query matched this planned demand candidate; request-access and candidate path visits are aggregated for launch prioritization."},{"id":"weather-parsing-api","name":"Weather Parsing API","category":"实时数据","availability":"可新增","status":"planned / early-access","servicePage":"https://x402vip.com/services/weather-parsing-api","llmsText":"https://x402vip.com/services/weather-parsing-api/llms.txt","requestAccessUrl":"https://x402vip.com/api/planned-services/request-access","candidateApiPaths":["https://x402vip.com/api/weather-parsing","https://x402vip.com/api/weather/parsing","https://x402vip.com/api/tools/weather-parsing","https://x402vip.com/api/tools/weather-parsing-api"],"keywords":["weather-parsing-api","weather-parsing","weather parsing","Weather Parsing API","Weather Parsing","Parsing Weather","weather","parsing weather","weather parse","parse weather","weather parser","parser weather","weather structured parsing","structured parsing weather","weather 解析","解析 weather","forecast","forecast parsing","parsing forecast","forecast parse","parse forecast","forecast parser","parser forecast","forecast structured parsing","structured parsing forecast","forecast 解析","解析 forecast","天气","天气 parsing","parsing 天气","天气 parse","parse 天气","天气 parser","parser 天气","天气 structured parsing","structured parsing 天气","天气 解析","解析 天气"],"matchRank":4,"matchReason":"Search query matched this planned demand candidate; request-access and candidate path visits are aggregated for launch prioritization."},{"id":"weather-summarization-api","name":"Weather Summarization API","category":"实时数据","availability":"可新增","status":"planned / early-access","servicePage":"https://x402vip.com/services/weather-summarization-api","llmsText":"https://x402vip.com/services/weather-summarization-api/llms.txt","requestAccessUrl":"https://x402vip.com/api/planned-services/request-access","candidateApiPaths":["https://x402vip.com/api/weather-summarization","https://x402vip.com/api/weather/summarization","https://x402vip.com/api/tools/weather-summarization","https://x402vip.com/api/tools/weather-summarization-api"],"keywords":["weather-summarization-api","weather-summarization","weather summarization","Weather Summarization API","Weather Summarization","Summarization Weather","weather","summarization weather","weather summarize","summarize weather","weather summary","summary weather","weather 摘要","摘要 weather","weather 总结","总结 weather","forecast","forecast summarization","summarization forecast","forecast summarize","summarize forecast","forecast summary","summary forecast","forecast 摘要","摘要 forecast","forecast 总结","总结 forecast","天气","天气 summarization","summarization 天气","天气 summarize","summarize 天气","天气 summary","summary 天气","天气 摘要","摘要 天气","天气 总结","总结 天气"],"matchRank":5,"matchReason":"Search query matched this planned demand candidate; request-access and candidate path visits are aggregated for launch prioritization."}],"requestAccessUrl":"https://x402vip.com/api/planned-services/request-access","requestAccessBody":{"query":"weather","serviceId":"weather-api","task":"Describe the exact input data, desired output schema, freshness, volume, budget, and whether a published service failed to fit.","useCase":"AI/Agent searched for: weather"},"plannedCatalogUrl":"https://x402vip.com/api/demand-capture","notes":["Every non-admin /api/catalog/search?q=... request is appended to natural_traffic.jsonl and aggregated in /api/admin/demand-intents.","Submitting requestAccessBody adds a stronger commercial/early-access signal than search alone.","Planned API candidates are not callable yet; use /api/catalog services for currently callable paid APIs."]},"nextActions":["Inspect services[].inputSchema, services[].outputSchema, services[].pricing, and services[].discovery.paymentFlow.","Call the selected /api/tools/* endpoint once without payment to receive HTTP 402 payment requirements, open xiaopay.top to obtain XIAO, then retry with X402-Guarantee.","If services are missing or too broad, inspect demandCapture.matchedPlannedServices.","POST demandCapture.requestAccessBody to demandCapture.requestAccessUrl to record a stronger early-access demand signal."],"payment":{"paymentHeader":"X-Payment-Token","createPayment":"/api/payments","verifyPayment":"/api/payments/{paymentId}","token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json paymentRequired","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json XIAO escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"XIAO","paymentNetwork":"xiao:internal"},"retry":{"when":"Retry after opening xiaopay.top, obtaining XIAO, and creating one XIAO accepts[] guarantee or after payment.status is paid and the token has remaining calls.","http":["Call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Open https://xiaopay.top to obtain XIAO, then create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","Retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Use POST /api/payments with serviceId when you need a reusable payment token, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","XIAO-capable agents should open xiaopay.top, obtain XIAO, create the AI wallet guarantee, and call the underlying HTTP endpoint with X402-Guarantee.","Clients that use paymentToken can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"paymentToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"xiao":["curl -i https://example.com/api/tools/timestamp","Open https://xiaopay.top, obtain XIAO, and create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]},"flow":{"type":"http-402","createPayment":{"method":"POST","url":"/api/payments","bodySchema":{"properties":{"providerId":{"type":"string"},"serviceId":{"description":"Use the canonical service id from the catalog. Legacy internal ids remain accepted for backward compatibility.","type":"string"}},"required":["serviceId"],"type":"object"},"responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json paymentRequired","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json XIAO escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"XIAO","paymentNetwork":"xiao:internal"},"retry":{"when":"Retry after opening xiaopay.top, obtaining XIAO, and creating one XIAO accepts[] guarantee or after payment.status is paid and the token has remaining calls.","http":["Call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Open https://xiaopay.top to obtain XIAO, then create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","Retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Use POST /api/payments with serviceId when you need a reusable payment token, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","XIAO-capable agents should open xiaopay.top, obtain XIAO, create the AI wallet guarantee, and call the underlying HTTP endpoint with X402-Guarantee.","Clients that use paymentToken can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"paymentToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"xiao":["curl -i https://example.com/api/tools/timestamp","Open https://xiaopay.top, obtain XIAO, and create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}}}}
