{"schemaVersion":"server402.catalog.search.v1","generatedAt":"2026-06-05T19:09:19Z","generatedAtBeijing":"2026-06-06 03:09:19 CST","timezone":"Asia/Shanghai","query":"celebrity-recognition","filters":{"limit":10},"total":62,"services":[{"id":"celebrity-recognition","canonicalId":"celebrity-recognition","internalServiceId":"aliyun-facebody-detect-celebrity","name":"Detect Celebrity 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 (ImageURL); required parameters: ImageURL.","descriptionForModel":"Use this visual AI API when the task needs the visual analysis task described by action 识别图片中的公众人物或明星。. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL.","category":"face-body","keywords":["DetectCelebrity","阿里云人脸人体 明星识别","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","detect","celebrity"],"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/celebrity-recognition","legacyEndpoint":"/api/tools/aliyun-facebody-detect-celebrity","endpointAliases":["/api/tools/celebrity-recognition","/api/tools/aliyun-facebody-detect-celebrity"],"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"}},"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":"DetectCelebrity","Result":"example result from Alibaba Cloud facebody"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"currency":"USD","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":40,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:33Z","healthLatencyMs":104,"latencyMs":104,"successRate":1,"callCount":0,"executionCount":0,"successCount":0,"errorCount":0,"paymentRequireds":0},"discovery":{"toolName":"celebrity_recognition","searchText":"celebrity-recognition Detect Celebrity 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 (ImageURL); required parameters: ImageURL. Use this visual AI API when the task needs the visual analysis task described by action 识别图片中的公众人物或明星。. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL. face-body object string uri object string computer-vision face-body face-analysis body-analysis DetectCelebrity 阿里云人脸人体 明星识别 face detection body detection pose estimation face recognition liveness detection human analysis detect celebrity 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/celebrity-recognition","aliases":["Detect Celebrity Face And Body Analysis","face-body","computer-vision","face-analysis","body-analysis","DetectCelebrity","阿里云人脸人体 明星识别","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","detect","celebrity","celebrity-recognition","celebrity_recognition","/api/tools/celebrity-recognition"],"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"},"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"},"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 x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"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":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["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"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, 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/celebrity-recognition once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"celebrity-recognition\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for 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":196,"matchTerms":["celebrity recognition","celebrity","recognition"],"why":"Matched celebrity recognition, celebrity, recognition for \"Detect Celebrity Face And Body Analysis\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"image-recognition-job-result","canonicalId":"image-recognition-job-result","internalServiceId":"aliyun-imagerecog-get-async-job-result","name":"Get Async Job Result Image Recognition","description":"Use this visual AI API when the task needs querying asynchronous image recognition job results. Send the schema keys exactly as listed (JobId); required parameters: JobId.","descriptionForModel":"Use this visual AI API when the task needs querying asynchronous image recognition job results. Send the schema keys exactly as listed (JobId); required parameters: JobId.","category":"image-recognition","keywords":["GetAsyncJobResult","阿里云图像识别 图像识别异步结果查询","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","get","async","job","result"],"useCases":["querying asynchronous image recognition job results","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-recognition","image-tagging"],"method":"POST","endpoint":"/api/tools/image-recognition-job-result","legacyEndpoint":"/api/tools/aliyun-imagerecog-get-async-job-result","endpointAliases":["/api/tools/image-recognition-job-result","/api/tools/aliyun-imagerecog-get-async-job-result"],"inputTypes":["object","string"],"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":{"JobId":{"description":"Alibaba Cloud asynchronous job ID.","type":"string"}},"required":["JobId"],"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":{"JobId":"example-job-id"},"exampleResponse":{"code":"200","content":"","data":{"Action":"GetAsyncJobResult","Result":"example result from Alibaba Cloud imagerecog"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"currency":"USD","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":38,"healthStatus":"","successRate":1,"callCount":0,"executionCount":0,"successCount":0,"errorCount":0,"paymentRequireds":0},"discovery":{"toolName":"image_recognition_job_result","searchText":"image-recognition-job-result Get Async Job Result Image Recognition Use this visual AI API when the task needs querying asynchronous image recognition job results. Send the schema keys exactly as listed (JobId); required parameters: JobId. Use this visual AI API when the task needs querying asynchronous image recognition job results. Send the schema keys exactly as listed (JobId); required parameters: JobId. image-recognition object string object string computer-vision image-recognition image-tagging GetAsyncJobResult 阿里云图像识别 图像识别异步结果查询 image recognition image classification image tagging scene recognition visual labels computer vision get async job result querying asynchronous image recognition job results 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/image-recognition-job-result","aliases":["Get Async Job Result Image Recognition","image-recognition","computer-vision","image-tagging","GetAsyncJobResult","阿里云图像识别 图像识别异步结果查询","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","get","async","job","result","image-recognition-job-result","image_recognition_job_result","/api/tools/image-recognition-job-result"],"localeHints":["en","zh"],"useCases":["querying asynchronous image recognition job results","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"},"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"},"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 x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"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":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["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"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, 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/image-recognition-job-result once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"image-recognition-job-result\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"complex","typicalResponseTime":"800ms","cacheable":false,"idempotent":true,"outputFormat":"json","relatedServices":["waste-classification","fruit-detection","image-element-detection"],"requiredContext":["job-id","aliyun-credentials"],"errorExamples":[{"input":{},"error":"jobId is required","statusCode":400}],"sla":{"uptime":"99.5%","maxLatency":"5000ms"},"matchScore":54,"matchTerms":["recognition"],"why":"Matched recognition for \"Get Async Job Result Image Recognition\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"vehicle-type-recognition","canonicalId":"vehicle-type-recognition","internalServiceId":"aliyun-imagerecog-recognize-vehicle-type","name":"Recognize Vehicle Type Image Recognition","description":"Use this visual AI API when the task needs recognizing vehicle types in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL.","descriptionForModel":"Use this visual AI API when the task needs recognizing vehicle types in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL.","category":"image-recognition","keywords":["RecognizeVehicleType","阿里云图像识别 车型识别","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","recognize","vehicle","type","vehicle detection","traffic analysis","car detection","license plate","number plate","road scene"],"useCases":["recognizing vehicle types in an image","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-recognition","image-tagging"],"method":"POST","endpoint":"/api/tools/vehicle-type-recognition","legacyEndpoint":"/api/tools/aliyun-imagerecog-recognize-vehicle-type","endpointAliases":["/api/tools/vehicle-type-recognition","/api/tools/aliyun-imagerecog-recognize-vehicle-type"],"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"}},"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":"RecognizeVehicleType","Result":"example result from Alibaba Cloud imagerecog"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"currency":"USD","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":40,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:17Z","healthLatencyMs":81,"latencyMs":81,"successRate":1,"callCount":0,"executionCount":0,"successCount":0,"errorCount":0,"paymentRequireds":0},"discovery":{"toolName":"vehicle_type_recognition","searchText":"vehicle-type-recognition Recognize Vehicle Type Image Recognition Use this visual AI API when the task needs recognizing vehicle types in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL. Use this visual AI API when the task needs recognizing vehicle types in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL. image-recognition object string uri object string computer-vision image-recognition image-tagging RecognizeVehicleType 阿里云图像识别 车型识别 image recognition image classification image tagging scene recognition visual labels computer vision recognize vehicle type vehicle detection traffic analysis car detection license plate number plate road scene recognizing vehicle types in an image 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/vehicle-type-recognition","aliases":["Recognize Vehicle Type Image Recognition","image-recognition","computer-vision","image-tagging","RecognizeVehicleType","阿里云图像识别 车型识别","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","recognize","vehicle","type","vehicle detection","traffic analysis","car detection","license plate","number plate","road scene","vehicle-type-recognition","vehicle_type_recognition","/api/tools/vehicle-type-recognition"],"localeHints":["en","zh"],"useCases":["recognizing vehicle types in an image","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"},"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"},"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 x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"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":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["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"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, 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/vehicle-type-recognition once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"vehicle-type-recognition\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1200ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["waste-classification","fruit-detection","image-element-detection"],"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":37,"matchTerms":["recognition"],"why":"Matched recognition for \"Recognize Vehicle Type Image Recognition\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"image-color-recognition","canonicalId":"image-color-recognition","internalServiceId":"aliyun-imagerecog-recognize-image-color","name":"Recognize Image Color Image Recognition","description":"Use this visual AI API when the task needs recognizing dominant colors, palettes, and color distribution. Send the schema keys exactly as listed (ColorCount, Url); required parameters: Url.","descriptionForModel":"Use this visual AI API when the task needs recognizing dominant colors, palettes, and color distribution. Send the schema keys exactly as listed (ColorCount, Url); required parameters: Url.","category":"image-recognition","keywords":["RecognizeImageColor","阿里云图像识别 图片色板识别","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","recognize","image","color"],"useCases":["recognizing dominant colors, palettes, and color distribution","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-recognition","image-tagging"],"method":"POST","endpoint":"/api/tools/image-color-recognition","legacyEndpoint":"/api/tools/aliyun-imagerecog-recognize-image-color","endpointAliases":["/api/tools/image-color-recognition","/api/tools/aliyun-imagerecog-recognize-image-color"],"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":{"ColorCount":{"description":"Alibaba Cloud RPC parameter ColorCount.","type":"number"},"Url":{"description":"Public http or https image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"}},"required":["Url"],"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":{"Url":"https://example.com/image.jpg"},"exampleResponse":{"code":"200","content":"","data":{"Action":"RecognizeImageColor","Result":"example result from Alibaba Cloud imagerecog"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"currency":"USD","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":40,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:16Z","healthLatencyMs":107,"latencyMs":107,"successRate":1,"callCount":0,"executionCount":0,"successCount":0,"errorCount":0,"paymentRequireds":0},"discovery":{"toolName":"image_color_recognition","searchText":"image-color-recognition Recognize Image Color Image Recognition Use this visual AI API when the task needs recognizing dominant colors, palettes, and color distribution. Send the schema keys exactly as listed (ColorCount, Url); required parameters: Url. Use this visual AI API when the task needs recognizing dominant colors, palettes, and color distribution. Send the schema keys exactly as listed (ColorCount, Url); required parameters: Url. image-recognition object number string uri object string computer-vision image-recognition image-tagging RecognizeImageColor 阿里云图像识别 图片色板识别 image recognition image classification image tagging scene recognition visual labels computer vision recognize image color recognizing dominant colors, palettes, and color distribution 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/image-color-recognition","aliases":["Recognize Image Color Image Recognition","image-recognition","computer-vision","image-tagging","RecognizeImageColor","阿里云图像识别 图片色板识别","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","recognize","image","color","image-color-recognition","image_color_recognition","/api/tools/image-color-recognition"],"localeHints":["en","zh"],"useCases":["recognizing dominant colors, palettes, and color distribution","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"},"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"},"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 x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"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":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["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"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, 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/image-color-recognition once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"image-color-recognition\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1200ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["waste-classification","fruit-detection","image-element-detection"],"requiredContext":["public-image-url","aliyun-credentials"],"errorExamples":[{"input":{},"error":"Url is required","statusCode":400},{"input":{"Url":"not-a-url"},"error":"Url must be a valid http or https URL","statusCode":400}],"sla":{"uptime":"99.5%","maxLatency":"5000ms"},"matchScore":37,"matchTerms":["recognition"],"why":"Matched recognition for \"Recognize Image Color Image Recognition\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"scene-recognition","canonicalId":"scene-recognition","internalServiceId":"aliyun-imagerecog-recognize-scene","name":"Recognize Scene Image Recognition","description":"Use this visual AI API when the task needs recognizing scene categories in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL.","descriptionForModel":"Use this visual AI API when the task needs recognizing scene categories in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL.","category":"image-recognition","keywords":["RecognizeScene","阿里云图像识别 场景识别","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","recognize","scene"],"useCases":["recognizing scene categories in an image","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-recognition","image-tagging"],"method":"POST","endpoint":"/api/tools/scene-recognition","legacyEndpoint":"/api/tools/aliyun-imagerecog-recognize-scene","endpointAliases":["/api/tools/scene-recognition","/api/tools/aliyun-imagerecog-recognize-scene"],"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"}},"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":"RecognizeScene","Result":"example result from Alibaba Cloud imagerecog"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"currency":"USD","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":40,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:16Z","healthLatencyMs":107,"latencyMs":107,"successRate":1,"callCount":0,"executionCount":0,"successCount":0,"errorCount":0,"paymentRequireds":0},"discovery":{"toolName":"scene_recognition","searchText":"scene-recognition Recognize Scene Image Recognition Use this visual AI API when the task needs recognizing scene categories in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL. Use this visual AI API when the task needs recognizing scene categories in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL. image-recognition object string uri object string computer-vision image-recognition image-tagging RecognizeScene 阿里云图像识别 场景识别 image recognition image classification image tagging scene recognition visual labels computer vision recognize scene recognizing scene categories in an image 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/scene-recognition","aliases":["Recognize Scene Image Recognition","image-recognition","computer-vision","image-tagging","RecognizeScene","阿里云图像识别 场景识别","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","recognize","scene","scene-recognition","scene_recognition","/api/tools/scene-recognition"],"localeHints":["en","zh"],"useCases":["recognizing scene categories in an image","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"},"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"},"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 x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"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":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["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"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, 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/scene-recognition once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"scene-recognition\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1200ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["waste-classification","fruit-detection","image-element-detection"],"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":37,"matchTerms":["recognition"],"why":"Matched recognition for \"Recognize Scene Image Recognition\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"image-style-recognition","canonicalId":"image-style-recognition","internalServiceId":"aliyun-imagerecog-recognize-image-style","name":"Recognize Image Style Image Recognition","description":"Use this visual AI API when the task needs recognizing the visual style of an image. Send the schema keys exactly as listed (Url); required parameters: Url.","descriptionForModel":"Use this visual AI API when the task needs recognizing the visual style of an image. Send the schema keys exactly as listed (Url); required parameters: Url.","category":"image-recognition","keywords":["RecognizeImageStyle","阿里云图像识别 图片风格识别","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","recognize","image","style"],"useCases":["recognizing the visual style of an image","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-recognition","image-tagging"],"method":"POST","endpoint":"/api/tools/image-style-recognition","legacyEndpoint":"/api/tools/aliyun-imagerecog-recognize-image-style","endpointAliases":["/api/tools/image-style-recognition","/api/tools/aliyun-imagerecog-recognize-image-style"],"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":{"Url":{"description":"Public http or https image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"}},"required":["Url"],"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":{"Url":"https://example.com/image.jpg"},"exampleResponse":{"code":"200","content":"","data":{"Action":"RecognizeImageStyle","Result":"example result from Alibaba Cloud imagerecog"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"currency":"USD","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":40,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:16Z","healthLatencyMs":108,"latencyMs":108,"successRate":1,"callCount":0,"executionCount":0,"successCount":0,"errorCount":0,"paymentRequireds":0},"discovery":{"toolName":"image_style_recognition","searchText":"image-style-recognition Recognize Image Style Image Recognition Use this visual AI API when the task needs recognizing the visual style of an image. Send the schema keys exactly as listed (Url); required parameters: Url. Use this visual AI API when the task needs recognizing the visual style of an image. Send the schema keys exactly as listed (Url); required parameters: Url. image-recognition object string uri object string computer-vision image-recognition image-tagging RecognizeImageStyle 阿里云图像识别 图片风格识别 image recognition image classification image tagging scene recognition visual labels computer vision recognize image style recognizing the visual style of an image 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/image-style-recognition","aliases":["Recognize Image Style Image Recognition","image-recognition","computer-vision","image-tagging","RecognizeImageStyle","阿里云图像识别 图片风格识别","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","recognize","image","style","image-style-recognition","image_style_recognition","/api/tools/image-style-recognition"],"localeHints":["en","zh"],"useCases":["recognizing the visual style of an image","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"},"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"},"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 x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"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":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["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"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, 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/image-style-recognition once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"image-style-recognition\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1200ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["waste-classification","fruit-detection","image-element-detection"],"requiredContext":["public-image-url","aliyun-credentials"],"errorExamples":[{"input":{},"error":"Url is required","statusCode":400},{"input":{"Url":"not-a-url"},"error":"Url must be a valid http or https URL","statusCode":400}],"sla":{"uptime":"99.5%","maxLatency":"5000ms"},"matchScore":37,"matchTerms":["recognition"],"why":"Matched recognition for \"Recognize Image Style Image Recognition\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"food-recognition","canonicalId":"food-recognition","internalServiceId":"aliyun-imagerecog-recognize-food","name":"Recognize Food Image Recognition","description":"Use this visual AI API when the task needs recognizing dishes or food in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL.","descriptionForModel":"Use this visual AI API when the task needs recognizing dishes or food in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL.","category":"image-recognition","keywords":["RecognizeFood","阿里云图像识别 菜品识别","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","recognize","food"],"useCases":["recognizing dishes or food in an image","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-recognition","image-tagging"],"method":"POST","endpoint":"/api/tools/food-recognition","legacyEndpoint":"/api/tools/aliyun-imagerecog-recognize-food","endpointAliases":["/api/tools/food-recognition","/api/tools/aliyun-imagerecog-recognize-food"],"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"}},"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":"RecognizeFood","Result":"example result from Alibaba Cloud imagerecog"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"currency":"USD","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":40,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:15Z","healthLatencyMs":115,"latencyMs":115,"successRate":1,"callCount":0,"executionCount":0,"successCount":0,"errorCount":0,"paymentRequireds":0},"discovery":{"toolName":"food_recognition","searchText":"food-recognition Recognize Food Image Recognition Use this visual AI API when the task needs recognizing dishes or food in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL. Use this visual AI API when the task needs recognizing dishes or food in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL. image-recognition object string uri object string computer-vision image-recognition image-tagging RecognizeFood 阿里云图像识别 菜品识别 image recognition image classification image tagging scene recognition visual labels computer vision recognize food recognizing dishes or food in an image 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/food-recognition","aliases":["Recognize Food Image Recognition","image-recognition","computer-vision","image-tagging","RecognizeFood","阿里云图像识别 菜品识别","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","recognize","food","food-recognition","food_recognition","/api/tools/food-recognition"],"localeHints":["en","zh"],"useCases":["recognizing dishes or food in an image","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"},"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"},"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 x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"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":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["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"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, 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/food-recognition once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"food-recognition\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1200ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["waste-classification","fruit-detection","image-element-detection"],"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":37,"matchTerms":["recognition"],"why":"Matched recognition for \"Recognize Food Image Recognition\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"ad-image-tagging","canonicalId":"ad-image-tagging","internalServiceId":"aliyun-imagerecog-tagging-ad-image","name":"Tagging Ad Image Image Recognition","description":"Use this visual AI API when the task needs generating labels for advertising images. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL.","descriptionForModel":"Use this visual AI API when the task needs generating labels for advertising images. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL.","category":"image-recognition","keywords":["TaggingAdImage","阿里云图像识别 广告图片标签识别","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","tagging","ad","image","image tags","visual tagging","content labels"],"useCases":["generating labels for advertising images","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-recognition","image-tagging"],"method":"POST","endpoint":"/api/tools/ad-image-tagging","legacyEndpoint":"/api/tools/aliyun-imagerecog-tagging-ad-image","endpointAliases":["/api/tools/ad-image-tagging","/api/tools/aliyun-imagerecog-tagging-ad-image"],"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"}},"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":"TaggingAdImage","Result":"example result from Alibaba Cloud imagerecog"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"currency":"USD","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":90,"healthStatus":"healthy","healthCheckedAt":"2026-06-03T13:57:17Z","healthLatencyMs":149,"latencyMs":149,"successRate":1,"callCount":0,"executionCount":0,"successCount":0,"errorCount":0,"paymentRequireds":0},"discovery":{"toolName":"ad_image_tagging","searchText":"ad-image-tagging Tagging Ad Image Image Recognition Use this visual AI API when the task needs generating labels for advertising images. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL. Use this visual AI API when the task needs generating labels for advertising images. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL. image-recognition object string uri object string computer-vision image-recognition image-tagging TaggingAdImage 阿里云图像识别 广告图片标签识别 image recognition image classification image tagging scene recognition visual labels computer vision tagging ad image image tags visual tagging content labels generating labels for advertising images 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/ad-image-tagging","aliases":["Tagging Ad Image Image Recognition","image-recognition","computer-vision","image-tagging","TaggingAdImage","阿里云图像识别 广告图片标签识别","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","tagging","ad","image","image tags","visual tagging","content labels","ad-image-tagging","ad_image_tagging","/api/tools/ad-image-tagging"],"localeHints":["en","zh"],"useCases":["generating labels for advertising images","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"},"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"},"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 x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"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":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["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"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, 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/ad-image-tagging once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"ad-image-tagging\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1200ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["waste-classification","fruit-detection","image-element-detection"],"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":29,"matchTerms":["recognition"],"why":"Matched recognition for \"Tagging Ad Image Image Recognition\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"fruit-detection","canonicalId":"fruit-detection","internalServiceId":"aliyun-imagerecog-detect-fruits","name":"Detect Fruits Image Recognition","description":"Use this visual AI API when the task needs detecting fruit objects in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL.","descriptionForModel":"Use this visual AI API when the task needs detecting fruit objects in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL.","category":"image-recognition","keywords":["DetectFruits","阿里云图像识别 水果检测","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","detect","fruits"],"useCases":["detecting fruit objects in an image","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-recognition","image-tagging"],"method":"POST","endpoint":"/api/tools/fruit-detection","legacyEndpoint":"/api/tools/aliyun-imagerecog-detect-fruits","endpointAliases":["/api/tools/fruit-detection","/api/tools/aliyun-imagerecog-detect-fruits"],"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"}},"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":"DetectFruits","Result":"example result from Alibaba Cloud imagerecog"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"currency":"USD","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":40,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:14Z","healthLatencyMs":80,"latencyMs":80,"successRate":1,"callCount":0,"executionCount":0,"successCount":0,"errorCount":0,"paymentRequireds":0},"discovery":{"toolName":"fruit_detection","searchText":"fruit-detection Detect Fruits Image Recognition Use this visual AI API when the task needs detecting fruit objects in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL. Use this visual AI API when the task needs detecting fruit objects in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL. image-recognition object string uri object string computer-vision image-recognition image-tagging DetectFruits 阿里云图像识别 水果检测 image recognition image classification image tagging scene recognition visual labels computer vision detect fruits detecting fruit objects in an image 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/fruit-detection","aliases":["Detect Fruits Image Recognition","image-recognition","computer-vision","image-tagging","DetectFruits","阿里云图像识别 水果检测","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","detect","fruits","fruit-detection","fruit_detection","/api/tools/fruit-detection"],"localeHints":["en","zh"],"useCases":["detecting fruit objects in an image","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"},"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"},"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 x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"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":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["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"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, 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/fruit-detection once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"fruit-detection\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1200ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["waste-classification","image-element-detection","id-photo-quality-check"],"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":29,"matchTerms":["recognition"],"why":"Matched recognition for \"Detect Fruits Image Recognition\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"id-photo-quality-check","canonicalId":"id-photo-quality-check","internalServiceId":"aliyun-imagerecog-evaluate-certificate-quality","name":"Evaluate Certificate Quality Image Recognition","description":"Use this visual AI API when the task needs evaluating ID photo quality. Send the schema keys exactly as listed (ImageURL, Type); required parameters: ImageURL.","descriptionForModel":"Use this visual AI API when the task needs evaluating ID photo quality. Send the schema keys exactly as listed (ImageURL, Type); required parameters: ImageURL.","category":"image-recognition","keywords":["EvaluateCertificateQuality","阿里云图像识别 证件照质量审核","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","evaluate","certificate","quality"],"useCases":["evaluating ID photo quality","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-recognition","image-tagging"],"method":"POST","endpoint":"/api/tools/id-photo-quality-check","legacyEndpoint":"/api/tools/aliyun-imagerecog-evaluate-certificate-quality","endpointAliases":["/api/tools/id-photo-quality-check","/api/tools/aliyun-imagerecog-evaluate-certificate-quality"],"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"},"Type":{"description":"Alibaba Cloud RPC parameter Type.","type":"string"}},"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":"EvaluateCertificateQuality","Result":"example result from Alibaba Cloud imagerecog"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"currency":"USD","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":40,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:15Z","healthLatencyMs":80,"latencyMs":80,"successRate":1,"callCount":0,"executionCount":0,"successCount":0,"errorCount":0,"paymentRequireds":0},"discovery":{"toolName":"id_photo_quality_check","searchText":"id-photo-quality-check Evaluate Certificate Quality Image Recognition Use this visual AI API when the task needs evaluating ID photo quality. Send the schema keys exactly as listed (ImageURL, Type); required parameters: ImageURL. Use this visual AI API when the task needs evaluating ID photo quality. Send the schema keys exactly as listed (ImageURL, Type); required parameters: ImageURL. image-recognition object string uri object string computer-vision image-recognition image-tagging EvaluateCertificateQuality 阿里云图像识别 证件照质量审核 image recognition image classification image tagging scene recognition visual labels computer vision evaluate certificate quality evaluating ID photo quality 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/id-photo-quality-check","aliases":["Evaluate Certificate Quality Image Recognition","image-recognition","computer-vision","image-tagging","EvaluateCertificateQuality","阿里云图像识别 证件照质量审核","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","evaluate","certificate","quality","id-photo-quality-check","id_photo_quality_check","/api/tools/id-photo-quality-check"],"localeHints":["en","zh"],"useCases":["evaluating ID photo quality","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"},"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"},"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 x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"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":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["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"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, 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/id-photo-quality-check once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"id-photo-quality-check\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1200ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["waste-classification","fruit-detection","image-element-detection"],"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":29,"matchTerms":["recognition"],"why":"Matched recognition for \"Evaluate Certificate Quality Image Recognition\". Price is USD 0.20 per policy aliyun-viapi."}],"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 x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"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":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["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"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, 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"},"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"},"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 x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"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":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["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"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, 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"]}}}}
