{"callable":true,"canonicalCall":{"contentType":"application/json","endpoint":"https://x402vip.com/api/tools/face-attribute-recognition","method":"POST"},"links":{"catalogSearch":"https://x402vip.com/api/catalog/search?q=face-attribute-recognition","catalogSummary":"https://x402vip.com/api/catalog.summary.json","mcp":"https://x402vip.com/mcp","openapi":"https://x402vip.com/api/catalog/openapi.json","serviceLLMs":"https://x402vip.com/services/face-attribute-recognition/llms.txt"},"message":"This GET/HEAD response is a no-payment discovery probe. Use the declared method to receive HTTP 402 payment requirements, then retry the same request after payment.","nextActions":["If this service matches the task, call the canonical endpoint with the declared method and valid JSON input to receive HTTP 402 payment requirements.","If this service is not a fit, search /api/catalog/search?q=\u003ctask\u003e and inspect services[].whyMatched before choosing a tool.","If no published service fits, submit /api/agent-demand or POST /api/planned-services/request-access for a planned candidate."],"payment":{"flow":{"type":"http-402","createPayment":{"method":"POST","url":"https://x402vip.com/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":"https://x402vip.com/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"]}},"paymentHeader":"X-Payment-Token","provider":"x402_xiao_wallet","providerId":"xiao-wallet","x402Header":"PAYMENT-SIGNATURE"},"pricing":{"amountCents":20,"amountMicros":200000,"currency":"XIAO","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"schemaVersion":"server402.service-discovery.v1","schemas":{"input":{"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"},"inputUrl":"https://x402vip.com/schemas/services/face-attribute-recognition/invoke.input.schema.json","output":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","data"],"type":"object"},"outputUrl":"https://x402vip.com/schemas/services/face-attribute-recognition/invoke.output.schema.json"},"service":{"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"},"status":"discovery_only","type":"paid_service_discovery"}
