{"schemaVersion":"server402.catalog.search.v1","generatedAt":"2026-09-04T23:44:06Z","generatedAtBeijing":"2026-09-05 07:44:06 CST","timezone":"Asia/Shanghai","query":"mask-refinement","filters":{"limit":10},"total":3,"services":[{"id":"mask-refinement","canonicalId":"mask-refinement","internalServiceId":"aliyun-imageseg-refine-mask","name":"Refine Mask Image Segmentation","description":"Use this visual AI API when the task needs refining a cutout mask using the original image and mask. Send the schema keys exactly as listed (ImageURL, MaskImageURL); required parameters: ImageURL, MaskImageURL.","descriptionForModel":"Use this visual AI API when the task needs refining a cutout mask using the original image and mask. Send the schema keys exactly as listed (ImageURL, MaskImageURL); required parameters: ImageURL, MaskImageURL.","category":"image-segmentation","keywords":["RefineMask","阿里云分割抠图 Mask 精修","image segmentation","background removal","cutout","matting","mask generation","foreground extraction","refine","mask"],"useCases":["refining a cutout mask using the original image and mask","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"tags":["computer-vision","image-segmentation","background-removal"],"method":"POST","endpoint":"/api/tools/mask-refinement","legacyEndpoint":"/api/tools/aliyun-imageseg-refine-mask","endpointAliases":["/api/tools/mask-refinement","/api/tools/aliyun-imageseg-refine-mask"],"inputTypes":["object","string","uri"],"outputTypes":["object","string"],"inputSchema":{"description":"Use Alibaba Cloud RPC parameter names exactly, for example ImageURL, ImageUrl, Url, URL, JobId, or Tasks depending on the service.","properties":{"ImageURL":{"description":"Public http or https image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"},"MaskImageURL":{"description":"Public http or https auxiliary image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"}},"required":["ImageURL","MaskImageURL"],"type":"object"},"outputSchema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","data"],"type":"object"},"exampleRequest":{"ImageURL":"https://example.com/image.jpg","MaskImageURL":"https://example.com/mask-or-replacement.jpg"},"exampleResponse":{"code":"200","content":"","data":{"Action":"RefineMask","Result":"example result from Alibaba Cloud imageseg"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"amountMicros":200000,"currency":"XIAO","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"xiao-wallet","provider":"x402_xiao_wallet"},"quality":{"qualityScore":36,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:26Z","healthLatencyMs":107,"latencyMs":1338,"successRate":1,"callCount":1,"executionCount":1,"successCount":1,"errorCount":0,"paymentRequireds":0,"lastCallAt":"2026-09-04T22:31:58Z"},"discovery":{"toolName":"mask_refinement","searchText":"mask-refinement Refine Mask Image Segmentation Use this visual AI API when the task needs refining a cutout mask using the original image and mask. Send the schema keys exactly as listed (ImageURL, MaskImageURL); required parameters: ImageURL, MaskImageURL. Use this visual AI API when the task needs refining a cutout mask using the original image and mask. Send the schema keys exactly as listed (ImageURL, MaskImageURL); required parameters: ImageURL, MaskImageURL. image-segmentation object string uri object string computer-vision image-segmentation background-removal RefineMask 阿里云分割抠图 Mask 精修 image segmentation background removal cutout matting mask generation foreground extraction refine mask refining a cutout mask using the original image and mask Call one focused visual AI capability directly with JSON inputs Use public image or video URLs and structured parameters to get machine-readable results Pass parameter names exactly as listed in the input schema Only public http or https URLs and JSON/base64 text parameters are supported in this adapter Binary file upload is not exposed by this Server402 adapter Provider credentials and upstream permissions must be configured on the server /api/tools/mask-refinement","aliases":["Refine Mask Image Segmentation","image-segmentation","computer-vision","background-removal","RefineMask","阿里云分割抠图 Mask 精修","image segmentation","background removal","cutout","matting","mask generation","foreground extraction","refine","mask","mask-refinement","mask_refinement","/api/tools/mask-refinement"],"localeHints":["en","zh"],"useCases":["refining a cutout mask using the original image and mask","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"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 POST /api/tools/mask-refinement 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=\"mask-refinement\".","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"},"complexity":"moderate","typicalResponseTime":"1200ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["sky-replacement","image-segmentation-job-result","face-segmentation-parsing"],"requiredContext":["public-image-url","aliyun-credentials"],"errorExamples":[{"input":{},"error":"ImageURL is required","statusCode":400},{"input":{"ImageURL":"not-a-url"},"error":"ImageURL must be a valid http or https URL","statusCode":400}],"sla":{"uptime":"99.5%","maxLatency":"5000ms"},"matchScore":206,"matchTerms":["mask refinement","mask","refinement"],"why":"Matched mask refinement, mask, refinement for \"Refine Mask Image Segmentation\". Price is XIAO 0.2 per policy aliyun-viapi.","whyMatched":"Matched mask refinement, mask, refinement for \"Refine Mask Image Segmentation\". Price is XIAO 0.2 per policy aliyun-viapi."},{"id":"masked-face-comparison","canonicalId":"masked-face-comparison","internalServiceId":"aliyun-facebody-compare-face-with-mask","name":"Compare Face With Mask Face And Body Analysis","description":"Use this visual AI API when the task needs the visual analysis task described by action 比对戴口罩或遮挡场景下的人脸相似度。. Send the schema keys exactly as listed (ImageURLA, ImageURLB, QualityScoreThreshold); required parameters: ImageURLA, ImageURLB.","descriptionForModel":"Use this visual AI API when the task needs the visual analysis task described by action 比对戴口罩或遮挡场景下的人脸相似度。. Send the schema keys exactly as listed (ImageURLA, ImageURLB, QualityScoreThreshold); required parameters: ImageURLA, ImageURLB.","category":"face-body","keywords":["CompareFaceWithMask","阿里云人脸人体 口罩人脸比对","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","compare","face","with","mask"],"useCases":["the visual analysis task described by action 比对戴口罩或遮挡场景下的人脸相似度。","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"tags":["computer-vision","face-body","face-analysis","body-analysis"],"method":"POST","endpoint":"/api/tools/masked-face-comparison","legacyEndpoint":"/api/tools/aliyun-facebody-compare-face-with-mask","endpointAliases":["/api/tools/masked-face-comparison","/api/tools/aliyun-facebody-compare-face-with-mask"],"inputTypes":["object","number","string","uri"],"outputTypes":["object","string"],"inputSchema":{"description":"Use Alibaba Cloud RPC parameter names exactly, for example ImageURL, ImageUrl, Url, URL, JobId, or Tasks depending on the service.","properties":{"ImageURLA":{"description":"Public http or https image URL for one side of a paired-image request.","format":"uri","type":"string"},"ImageURLB":{"description":"Public http or https image URL for one side of a paired-image request.","format":"uri","type":"string"},"QualityScoreThreshold":{"description":"Alibaba Cloud RPC parameter QualityScoreThreshold.","type":"number"}},"required":["ImageURLA","ImageURLB"],"type":"object"},"outputSchema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","data"],"type":"object"},"exampleRequest":{"ImageURLA":"https://example.com/image.jpg","ImageURLB":"https://example.com/image.jpg"},"exampleResponse":{"code":"200","content":"","data":{"Action":"CompareFaceWithMask","Result":"example result from Alibaba Cloud facebody"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"amountMicros":200000,"currency":"XIAO","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"xiao-wallet","provider":"x402_xiao_wallet"},"quality":{"qualityScore":36,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:32Z","healthLatencyMs":107,"latencyMs":1096,"successRate":1,"callCount":1,"executionCount":1,"successCount":1,"errorCount":0,"paymentRequireds":0,"lastCallAt":"2026-09-04T22:35:27Z"},"discovery":{"toolName":"masked_face_comparison","searchText":"masked-face-comparison Compare Face With Mask Face And Body Analysis Use this visual AI API when the task needs the visual analysis task described by action 比对戴口罩或遮挡场景下的人脸相似度。. Send the schema keys exactly as listed (ImageURLA, ImageURLB, QualityScoreThreshold); required parameters: ImageURLA, ImageURLB. Use this visual AI API when the task needs the visual analysis task described by action 比对戴口罩或遮挡场景下的人脸相似度。. Send the schema keys exactly as listed (ImageURLA, ImageURLB, QualityScoreThreshold); required parameters: ImageURLA, ImageURLB. face-body object number string uri object string computer-vision face-body face-analysis body-analysis CompareFaceWithMask 阿里云人脸人体 口罩人脸比对 face detection body detection pose estimation face recognition liveness detection human analysis compare face with mask the visual analysis task described by action 比对戴口罩或遮挡场景下的人脸相似度。 Call one focused visual AI capability directly with JSON inputs Use public image or video URLs and structured parameters to get machine-readable results Pass parameter names exactly as listed in the input schema Only public http or https URLs and JSON/base64 text parameters are supported in this adapter Binary file upload is not exposed by this Server402 adapter Provider credentials and upstream permissions must be configured on the server /api/tools/masked-face-comparison","aliases":["Compare Face With Mask Face And Body Analysis","face-body","computer-vision","face-analysis","body-analysis","CompareFaceWithMask","阿里云人脸人体 口罩人脸比对","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","compare","face","with","mask","masked-face-comparison","masked_face_comparison","/api/tools/masked-face-comparison"],"localeHints":["en","zh"],"useCases":["the visual analysis task described by action 比对戴口罩或遮挡场景下的人脸相似度。","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"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 POST /api/tools/masked-face-comparison 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=\"masked-face-comparison\".","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"},"complexity":"moderate","typicalResponseTime":"1200ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["face-database-add-face","face-database-create-entity","face-template-create"],"requiredContext":["public-image-url","aliyun-credentials"],"errorExamples":[{"input":{},"error":"ImageURLA is required","statusCode":400},{"input":{"ImageURLA":"not-a-url"},"error":"ImageURLA must be a valid http or https URL","statusCode":400}],"sla":{"uptime":"99.5%","maxLatency":"5000ms"},"matchScore":27,"matchTerms":["mask"],"why":"Matched mask for \"Compare Face With Mask Face And Body Analysis\". Price is XIAO 0.2 per policy aliyun-viapi.","whyMatched":"Matched mask for \"Compare Face With Mask Face And Body Analysis\". Price is XIAO 0.2 per policy aliyun-viapi."},{"id":"face-attribute-recognition","canonicalId":"face-attribute-recognition","internalServiceId":"aliyun-facebody-recognize-face","name":"Recognize Face Face And Body Analysis","description":"Use this visual AI API when the task needs recognizing face attributes such as age, gender, expression, and mask status. Send the schema keys exactly as listed (Age, Beauty, Expression, Gender, Glass, Hat, ImageURL, Mask, MaxFaceNumber, Quality); required parameters: ImageURL.","descriptionForModel":"Use this visual AI API when the task needs recognizing face attributes such as age, gender, expression, and mask status. Send the schema keys exactly as listed (Age, Beauty, Expression, Gender, Glass, Hat, ImageURL, Mask, MaxFaceNumber, Quality); required parameters: ImageURL.","category":"face-body","keywords":["RecognizeFace","阿里云人脸人体 人脸属性识别","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","recognize","face","face attributes","face landmarks","face quality"],"useCases":["recognizing face attributes such as age, gender, expression, and mask status","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"tags":["computer-vision","face-body","face-analysis","body-analysis"],"method":"POST","endpoint":"/api/tools/face-attribute-recognition","legacyEndpoint":"/api/tools/aliyun-facebody-recognize-face","endpointAliases":["/api/tools/face-attribute-recognition","/api/tools/aliyun-facebody-recognize-face"],"inputTypes":["object","boolean","string","uri","number"],"outputTypes":["object","string"],"inputSchema":{"description":"Use Alibaba Cloud RPC parameter names exactly, for example ImageURL, ImageUrl, Url, URL, JobId, or Tasks depending on the service.","properties":{"Age":{"description":"Alibaba Cloud RPC parameter Age.","type":"boolean"},"Beauty":{"description":"Alibaba Cloud RPC parameter Beauty.","type":"boolean"},"Expression":{"description":"Alibaba Cloud RPC parameter Expression.","type":"boolean"},"Gender":{"description":"Alibaba Cloud RPC parameter Gender.","type":"boolean"},"Glass":{"description":"Alibaba Cloud RPC parameter Glass.","type":"boolean"},"Hat":{"description":"Alibaba Cloud RPC parameter Hat.","type":"boolean"},"ImageURL":{"description":"Public http or https image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"},"Mask":{"description":"Alibaba Cloud RPC parameter Mask.","type":"boolean"},"MaxFaceNumber":{"description":"Alibaba Cloud RPC parameter MaxFaceNumber.","type":"number"},"Quality":{"description":"Alibaba Cloud RPC parameter Quality.","type":"boolean"}},"required":["ImageURL"],"type":"object"},"outputSchema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","data"],"type":"object"},"exampleRequest":{"ImageURL":"https://example.com/image.jpg"},"exampleResponse":{"code":"200","content":"","data":{"Action":"RecognizeFace","Result":"example result from Alibaba Cloud facebody"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"amountMicros":200000,"currency":"XIAO","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"xiao-wallet","provider":"x402_xiao_wallet"},"quality":{"qualityScore":36,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:38Z","healthLatencyMs":107,"latencyMs":1253,"successRate":1,"callCount":1,"executionCount":1,"successCount":1,"errorCount":0,"paymentRequireds":0,"lastCallAt":"2026-09-04T22:32:55Z"},"discovery":{"toolName":"face_attribute_recognition","searchText":"face-attribute-recognition Recognize Face Face And Body Analysis Use this visual AI API when the task needs recognizing face attributes such as age, gender, expression, and mask status. Send the schema keys exactly as listed (Age, Beauty, Expression, Gender, Glass, Hat, ImageURL, Mask, MaxFaceNumber, Quality); required parameters: ImageURL. Use this visual AI API when the task needs recognizing face attributes such as age, gender, expression, and mask status. Send the schema keys exactly as listed (Age, Beauty, Expression, Gender, Glass, Hat, ImageURL, Mask, MaxFaceNumber, Quality); required parameters: ImageURL. face-body object boolean string uri number object string computer-vision face-body face-analysis body-analysis RecognizeFace 阿里云人脸人体 人脸属性识别 face detection body detection pose estimation face recognition liveness detection human analysis recognize face face attributes face landmarks face quality recognizing face attributes such as age, gender, expression, and mask status Call one focused visual AI capability directly with JSON inputs Use public image or video URLs and structured parameters to get machine-readable results Pass parameter names exactly as listed in the input schema Only public http or https URLs and JSON/base64 text parameters are supported in this adapter Binary file upload is not exposed by this Server402 adapter Provider credentials and upstream permissions must be configured on the server /api/tools/face-attribute-recognition","aliases":["Recognize Face Face And Body Analysis","face-body","computer-vision","face-analysis","body-analysis","RecognizeFace","阿里云人脸人体 人脸属性识别","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","recognize","face","face attributes","face landmarks","face quality","face-attribute-recognition","face_attribute_recognition","/api/tools/face-attribute-recognition"],"localeHints":["en","zh"],"useCases":["recognizing face attributes such as age, gender, expression, and mask status","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"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 POST /api/tools/face-attribute-recognition 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=\"face-attribute-recognition\".","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"},"complexity":"moderate","typicalResponseTime":"1200ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["face-database-add-face","face-database-create-entity","face-template-create"],"requiredContext":["public-image-url","aliyun-credentials"],"errorExamples":[{"input":{},"error":"ImageURL is required","statusCode":400},{"input":{"ImageURL":"not-a-url"},"error":"ImageURL must be a valid http or https URL","statusCode":400}],"sla":{"uptime":"99.5%","maxLatency":"5000ms"},"matchScore":17,"matchTerms":["mask"],"why":"Matched mask for \"Recognize Face Face And Body Analysis\". Price is XIAO 0.2 per policy aliyun-viapi.","whyMatched":"Matched mask for \"Recognize Face Face And Body Analysis\". Price is XIAO 0.2 per policy aliyun-viapi."}],"agents":[{"id":"mask-refinement","name":"Refine Mask Image Segmentation","description":"Use this visual AI API when the task needs refining a cutout mask using the original image and mask. Send the schema keys exactly as listed (ImageURL, MaskImageURL); required parameters: ImageURL, MaskImageURL.","endpoint":"/api/tools/mask-refinement","method":"POST","auth_type":"api_key + x402_xiao_wallet http_402","billing_method":"per_call","pricing":{"amountCents":20,"amountMicros":200000,"currency":"XIAO","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"description":"Use Alibaba Cloud RPC parameter names exactly, for example ImageURL, ImageUrl, Url, URL, JobId, or Tasks depending on the service.","properties":{"ImageURL":{"description":"Public http or https image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"},"MaskImageURL":{"description":"Public http or https auxiliary image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"}},"required":["ImageURL","MaskImageURL"],"type":"object"},"output_schema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","data"],"type":"object"},"tags":["computer-vision","image-segmentation","background-removal"],"category":"image-segmentation"},{"id":"masked-face-comparison","name":"Compare Face With Mask Face And Body Analysis","description":"Use this visual AI API when the task needs the visual analysis task described by action 比对戴口罩或遮挡场景下的人脸相似度。. Send the schema keys exactly as listed (ImageURLA, ImageURLB, QualityScoreThreshold); required parameters: ImageURLA, ImageURLB.","endpoint":"/api/tools/masked-face-comparison","method":"POST","auth_type":"api_key + x402_xiao_wallet http_402","billing_method":"per_call","pricing":{"amountCents":20,"amountMicros":200000,"currency":"XIAO","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"description":"Use Alibaba Cloud RPC parameter names exactly, for example ImageURL, ImageUrl, Url, URL, JobId, or Tasks depending on the service.","properties":{"ImageURLA":{"description":"Public http or https image URL for one side of a paired-image request.","format":"uri","type":"string"},"ImageURLB":{"description":"Public http or https image URL for one side of a paired-image request.","format":"uri","type":"string"},"QualityScoreThreshold":{"description":"Alibaba Cloud RPC parameter QualityScoreThreshold.","type":"number"}},"required":["ImageURLA","ImageURLB"],"type":"object"},"output_schema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","data"],"type":"object"},"tags":["computer-vision","face-body","face-analysis","body-analysis"],"category":"face-body"},{"id":"face-attribute-recognition","name":"Recognize Face Face And Body Analysis","description":"Use this visual AI API when the task needs recognizing face attributes such as age, gender, expression, and mask status. Send the schema keys exactly as listed (Age, Beauty, Expression, Gender, Glass, Hat, ImageURL, Mask, MaxFaceNumber, Quality); required parameters: ImageURL.","endpoint":"/api/tools/face-attribute-recognition","method":"POST","auth_type":"api_key + x402_xiao_wallet http_402","billing_method":"per_call","pricing":{"amountCents":20,"amountMicros":200000,"currency":"XIAO","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"description":"Use Alibaba Cloud RPC parameter names exactly, for example ImageURL, ImageUrl, Url, URL, JobId, or Tasks depending on the service.","properties":{"Age":{"description":"Alibaba Cloud RPC parameter Age.","type":"boolean"},"Beauty":{"description":"Alibaba Cloud RPC parameter Beauty.","type":"boolean"},"Expression":{"description":"Alibaba Cloud RPC parameter Expression.","type":"boolean"},"Gender":{"description":"Alibaba Cloud RPC parameter Gender.","type":"boolean"},"Glass":{"description":"Alibaba Cloud RPC parameter Glass.","type":"boolean"},"Hat":{"description":"Alibaba Cloud RPC parameter Hat.","type":"boolean"},"ImageURL":{"description":"Public http or https image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"},"Mask":{"description":"Alibaba Cloud RPC parameter Mask.","type":"boolean"},"MaxFaceNumber":{"description":"Alibaba Cloud RPC parameter MaxFaceNumber.","type":"number"},"Quality":{"description":"Alibaba Cloud RPC parameter Quality.","type":"boolean"}},"required":["ImageURL"],"type":"object"},"output_schema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","data"],"type":"object"},"tags":["computer-vision","face-body","face-analysis","body-analysis"],"category":"face-body"}],"demandCapture":{"queryRecorded":true,"demandBearing":true,"status":"published-service-matches","recommendedAction":"inspect-service-schema-and-call-for-payment","message":"This search query has been recorded as demand-bearing catalog search traffic. Use the published services first; if the service fit is incomplete, submit requestAccessBody so Server402 can prioritize the missing API.","requestAccessUrl":"https://x402vip.com/api/planned-services/request-access","requestAccessBody":{"query":"mask-refinement","serviceId":"","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: mask-refinement"},"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"]}}}}
