{"schemaVersion":"server402.catalog.search.v1","generatedAt":"2026-06-03T23:51:22Z","query":"facial-expression-recognition","filters":{"limit":10},"total":63,"services":[{"id":"facial-expression-recognition","canonicalId":"facial-expression-recognition","internalServiceId":"aliyun-facebody-recognize-expression","name":"Recognize Expression Face And Body Analysis","description":"Use this visual AI API when the task needs recognizing facial expressions 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 facial expressions in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL.","category":"face-body","keywords":["RecognizeExpression","阿里云人脸人体 表情识别","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","recognize","expression","emotion recognition","facial expression"],"useCases":["recognizing facial expressions 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","face-body","face-analysis","body-analysis"],"method":"POST","endpoint":"/api/tools/facial-expression-recognition","legacyEndpoint":"/api/tools/aliyun-facebody-recognize-expression","endpointAliases":["/api/tools/facial-expression-recognition","/api/tools/aliyun-facebody-recognize-expression"],"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":"RecognizeExpression","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":5,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:37Z","healthLatencyMs":102,"successRate":0,"callCount":2,"executionCount":2,"successCount":0,"errorCount":2,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:09:42Z"},"discovery":{"toolName":"facial_expression_recognition","searchText":"facial-expression-recognition Recognize Expression Face And Body Analysis Use this visual AI API when the task needs recognizing facial expressions in an image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL. Use this visual AI API when the task needs recognizing facial expressions in an image. 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 RecognizeExpression 阿里云人脸人体 表情识别 face detection body detection pose estimation face recognition liveness detection human analysis recognize expression emotion recognition facial expression recognizing facial expressions 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/facial-expression-recognition","aliases":["Recognize Expression Face And Body Analysis","face-body","computer-vision","face-analysis","body-analysis","RecognizeExpression","阿里云人脸人体 表情识别","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","recognize","expression","emotion recognition","facial expression","facial-expression-recognition","facial_expression_recognition","/api/tools/facial-expression-recognition"],"localeHints":["en","zh"],"useCases":["recognizing facial expressions 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":{"X-Payment-Required":"true","X-Payment-Token":"payment.token"},"bodySchema":{"properties":{"error":{"type":"string"},"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"}},"required":["error","payment"],"type":"object"}},"retry":{"when":"Retry after payment.status is paid and the token has remaining calls.","http":["Call POST /api/payments with serviceId to create a payment if the first service call returned 402.","Complete or verify payment using GET /api/payments/{paymentId}.","Retry the original /api/tools/* request with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Complete or verify payment using the returned payment.paymentId.","Call the same MCP tool again with paymentToken set to payment.token."],"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":"Create a payment with POST /api/payments using serviceId=\"facial-expression-recognition\", then pass the returned token in X-Payment-Token or MCP paymentToken.","retryHint":"If the service returns HTTP 402, complete or verify the payment and retry the same request with the payment token.","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":249,"matchTerms":["facial expression recognition","facial","expression","recognition"],"why":"Matched facial expression recognition, facial, expression, recognition for \"Recognize Expression 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":4,"healthStatus":"","successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:25Z"},"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":{"X-Payment-Required":"true","X-Payment-Token":"payment.token"},"bodySchema":{"properties":{"error":{"type":"string"},"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"}},"required":["error","payment"],"type":"object"}},"retry":{"when":"Retry after payment.status is paid and the token has remaining calls.","http":["Call POST /api/payments with serviceId to create a payment if the first service call returned 402.","Complete or verify payment using GET /api/payments/{paymentId}.","Retry the original /api/tools/* request with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Complete or verify payment using the returned payment.paymentId.","Call the same MCP tool again with paymentToken set to payment.token."],"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":"Create a payment with POST /api/payments using serviceId=\"image-recognition-job-result\", then pass the returned token in X-Payment-Token or MCP paymentToken.","retryHint":"If the service returns HTTP 402, complete or verify the payment and retry the same request with the payment token.","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":"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":4,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:15Z","healthLatencyMs":115,"successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:07:50Z"},"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":{"X-Payment-Required":"true","X-Payment-Token":"payment.token"},"bodySchema":{"properties":{"error":{"type":"string"},"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"}},"required":["error","payment"],"type":"object"}},"retry":{"when":"Retry after payment.status is paid and the token has remaining calls.","http":["Call POST /api/payments with serviceId to create a payment if the first service call returned 402.","Complete or verify payment using GET /api/payments/{paymentId}.","Retry the original /api/tools/* request with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Complete or verify payment using the returned payment.paymentId.","Call the same MCP tool again with paymentToken set to payment.token."],"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":"Create a payment with POST /api/payments using serviceId=\"food-recognition\", then pass the returned token in X-Payment-Token or MCP paymentToken.","retryHint":"If the service returns HTTP 402, complete or verify the payment and retry the same request with the payment token.","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":"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":4,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:16Z","healthLatencyMs":107,"successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:16Z"},"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":{"X-Payment-Required":"true","X-Payment-Token":"payment.token"},"bodySchema":{"properties":{"error":{"type":"string"},"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"}},"required":["error","payment"],"type":"object"}},"retry":{"when":"Retry after payment.status is paid and the token has remaining calls.","http":["Call POST /api/payments with serviceId to create a payment if the first service call returned 402.","Complete or verify payment using GET /api/payments/{paymentId}.","Retry the original /api/tools/* request with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Complete or verify payment using the returned payment.paymentId.","Call the same MCP tool again with paymentToken set to payment.token."],"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":"Create a payment with POST /api/payments using serviceId=\"image-color-recognition\", then pass the returned token in X-Payment-Token or MCP paymentToken.","retryHint":"If the service returns HTTP 402, complete or verify the payment and retry the same request with the payment token.","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":"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":4,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:16Z","healthLatencyMs":108,"successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:31Z"},"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":{"X-Payment-Required":"true","X-Payment-Token":"payment.token"},"bodySchema":{"properties":{"error":{"type":"string"},"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"}},"required":["error","payment"],"type":"object"}},"retry":{"when":"Retry after payment.status is paid and the token has remaining calls.","http":["Call POST /api/payments with serviceId to create a payment if the first service call returned 402.","Complete or verify payment using GET /api/payments/{paymentId}.","Retry the original /api/tools/* request with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Complete or verify payment using the returned payment.paymentId.","Call the same MCP tool again with paymentToken set to payment.token."],"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":"Create a payment with POST /api/payments using serviceId=\"image-style-recognition\", then pass the returned token in X-Payment-Token or MCP paymentToken.","retryHint":"If the service returns HTTP 402, complete or verify the payment and retry the same request with the payment token.","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":"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":4,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:16Z","healthLatencyMs":107,"successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:23Z"},"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":{"X-Payment-Required":"true","X-Payment-Token":"payment.token"},"bodySchema":{"properties":{"error":{"type":"string"},"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"}},"required":["error","payment"],"type":"object"}},"retry":{"when":"Retry after payment.status is paid and the token has remaining calls.","http":["Call POST /api/payments with serviceId to create a payment if the first service call returned 402.","Complete or verify payment using GET /api/payments/{paymentId}.","Retry the original /api/tools/* request with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Complete or verify payment using the returned payment.paymentId.","Call the same MCP tool again with paymentToken set to payment.token."],"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":"Create a payment with POST /api/payments using serviceId=\"scene-recognition\", then pass the returned token in X-Payment-Token or MCP paymentToken.","retryHint":"If the service returns HTTP 402, complete or verify the payment and retry the same request with the payment token.","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":"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":4,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:17Z","healthLatencyMs":81,"successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:41Z"},"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":{"X-Payment-Required":"true","X-Payment-Token":"payment.token"},"bodySchema":{"properties":{"error":{"type":"string"},"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"}},"required":["error","payment"],"type":"object"}},"retry":{"when":"Retry after payment.status is paid and the token has remaining calls.","http":["Call POST /api/payments with serviceId to create a payment if the first service call returned 402.","Complete or verify payment using GET /api/payments/{paymentId}.","Retry the original /api/tools/* request with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Complete or verify payment using the returned payment.paymentId.","Call the same MCP tool again with paymentToken set to payment.token."],"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":"Create a payment with POST /api/payments using serviceId=\"vehicle-type-recognition\", then pass the returned token in X-Payment-Token or MCP paymentToken.","retryHint":"If the service returns HTTP 402, complete or verify the payment and retry the same request with the payment token.","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":"face-attribute-recognition","canonicalId":"face-attribute-recognition","internalServiceId":"aliyun-facebody-recognize-face","name":"Recognize Face Face And Body Analysis","description":"Use this visual AI API when the task needs recognizing face attributes such as age, gender, expression, and mask status. Send the schema keys exactly as listed (Age, Beauty, Expression, Gender, Glass, Hat, ImageURL, Mask, MaxFaceNumber, Quality); required parameters: ImageURL.","descriptionForModel":"Use this visual AI API when the task needs recognizing face attributes such as age, gender, expression, and mask status. Send the schema keys exactly as listed (Age, Beauty, Expression, Gender, Glass, Hat, ImageURL, Mask, MaxFaceNumber, Quality); required parameters: ImageURL.","category":"face-body","keywords":["RecognizeFace","阿里云人脸人体 人脸属性识别","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","recognize","face","face attributes","face landmarks","face quality"],"useCases":["recognizing face attributes such as age, gender, expression, and mask status","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"tags":["computer-vision","face-body","face-analysis","body-analysis"],"method":"POST","endpoint":"/api/tools/face-attribute-recognition","legacyEndpoint":"/api/tools/aliyun-facebody-recognize-face","endpointAliases":["/api/tools/face-attribute-recognition","/api/tools/aliyun-facebody-recognize-face"],"inputTypes":["object","boolean","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":{"Age":{"description":"Alibaba Cloud RPC parameter Age.","type":"boolean"},"Beauty":{"description":"Alibaba Cloud RPC parameter Beauty.","type":"boolean"},"Expression":{"description":"Alibaba Cloud RPC parameter Expression.","type":"boolean"},"Gender":{"description":"Alibaba Cloud RPC parameter Gender.","type":"boolean"},"Glass":{"description":"Alibaba Cloud RPC parameter Glass.","type":"boolean"},"Hat":{"description":"Alibaba Cloud RPC parameter Hat.","type":"boolean"},"ImageURL":{"description":"Public http or https image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"},"Mask":{"description":"Alibaba Cloud RPC parameter Mask.","type":"boolean"},"MaxFaceNumber":{"description":"Alibaba Cloud RPC parameter MaxFaceNumber.","type":"number"},"Quality":{"description":"Alibaba Cloud RPC parameter Quality.","type":"boolean"}},"required":["ImageURL"],"type":"object"},"outputSchema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","data"],"type":"object"},"exampleRequest":{"ImageURL":"https://example.com/image.jpg"},"exampleResponse":{"code":"200","content":"","data":{"Action":"RecognizeFace","Result":"example result from Alibaba Cloud facebody"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"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":4,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:38Z","healthLatencyMs":107,"successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:31Z"},"discovery":{"toolName":"face_attribute_recognition","searchText":"face-attribute-recognition Recognize Face Face And Body Analysis Use this visual AI API when the task needs recognizing face attributes such as age, gender, expression, and mask status. Send the schema keys exactly as listed (Age, Beauty, Expression, Gender, Glass, Hat, ImageURL, Mask, MaxFaceNumber, Quality); required parameters: ImageURL. Use this visual AI API when the task needs recognizing face attributes such as age, gender, expression, and mask status. Send the schema keys exactly as listed (Age, Beauty, Expression, Gender, Glass, Hat, ImageURL, Mask, MaxFaceNumber, Quality); required parameters: ImageURL. face-body object boolean number string uri object string computer-vision face-body face-analysis body-analysis RecognizeFace 阿里云人脸人体 人脸属性识别 face detection body detection pose estimation face recognition liveness detection human analysis recognize face face attributes face landmarks face quality recognizing face attributes such as age, gender, expression, and mask status Call one focused visual AI capability directly with JSON inputs Use public image or video URLs and structured parameters to get machine-readable results Pass parameter names exactly as listed in the input schema Only public http or https URLs and JSON/base64 text parameters are supported in this adapter Binary file upload is not exposed by this Server402 adapter Provider credentials and upstream permissions must be configured on the server /api/tools/face-attribute-recognition","aliases":["Recognize Face Face And Body Analysis","face-body","computer-vision","face-analysis","body-analysis","RecognizeFace","阿里云人脸人体 人脸属性识别","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","recognize","face","face attributes","face landmarks","face quality","face-attribute-recognition","face_attribute_recognition","/api/tools/face-attribute-recognition"],"localeHints":["en","zh"],"useCases":["recognizing face attributes such as age, gender, expression, and mask status","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"paymentFlow":{"type":"http-402","createPayment":{"method":"POST","url":"/api/payments","bodySchema":{"properties":{"providerId":{"type":"string"},"serviceId":{"description":"Use the canonical service id from the catalog. Legacy internal ids remain accepted for backward compatibility.","type":"string"}},"required":["serviceId"],"type":"object"},"responseSchema":{"properties":{"amountCents":{"type":"integer"},"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":{"X-Payment-Required":"true","X-Payment-Token":"payment.token"},"bodySchema":{"properties":{"error":{"type":"string"},"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"}},"required":["error","payment"],"type":"object"}},"retry":{"when":"Retry after payment.status is paid and the token has remaining calls.","http":["Call POST /api/payments with serviceId to create a payment if the first service call returned 402.","Complete or verify payment using GET /api/payments/{paymentId}.","Retry the original /api/tools/* request with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Complete or verify payment using the returned payment.paymentId.","Call the same MCP tool again with paymentToken set to payment.token."],"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":"Create a payment with POST /api/payments using serviceId=\"face-attribute-recognition\", then pass the returned token in X-Payment-Token or MCP paymentToken.","retryHint":"If the service returns HTTP 402, complete or verify the payment and retry the same request with the payment token.","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":36,"matchTerms":["expression","recognition"],"why":"Matched expression, recognition for \"Recognize Face Face And Body Analysis\". 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":54,"healthStatus":"healthy","healthCheckedAt":"2026-06-03T13:57:17Z","healthLatencyMs":149,"successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:19Z"},"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":{"X-Payment-Required":"true","X-Payment-Token":"payment.token"},"bodySchema":{"properties":{"error":{"type":"string"},"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"}},"required":["error","payment"],"type":"object"}},"retry":{"when":"Retry after payment.status is paid and the token has remaining calls.","http":["Call POST /api/payments with serviceId to create a payment if the first service call returned 402.","Complete or verify payment using GET /api/payments/{paymentId}.","Retry the original /api/tools/* request with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Complete or verify payment using the returned payment.paymentId.","Call the same MCP tool again with paymentToken set to payment.token."],"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":"Create a payment with POST /api/payments using serviceId=\"ad-image-tagging\", then pass the returned token in X-Payment-Token or MCP paymentToken.","retryHint":"If the service returns HTTP 402, complete or verify the payment and retry the same request with the payment token.","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":"image-tagging","canonicalId":"image-tagging","internalServiceId":"aliyun-imagerecog-tagging-image","name":"Tagging Image Image Recognition","description":"Use this visual AI API when the task needs generating content labels for a general image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL.","descriptionForModel":"Use this visual AI API when the task needs generating content labels for a general image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL.","category":"image-recognition","keywords":["TaggingImage","阿里云图像识别 通用图片打标","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","tagging","image","image tags","visual tagging","content labels"],"useCases":["generating content labels for a general 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-tagging","legacyEndpoint":"/api/tools/aliyun-imagerecog-tagging-image","endpointAliases":["/api/tools/image-tagging","/api/tools/aliyun-imagerecog-tagging-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":"TaggingImage","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":6,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:17Z","healthLatencyMs":113,"latencyMs":2,"successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:43Z"},"discovery":{"toolName":"image_tagging","searchText":"image-tagging Tagging Image Image Recognition Use this visual AI API when the task needs generating content labels for a general image. Send the schema keys exactly as listed (ImageURL); required parameters: ImageURL. Use this visual AI API when the task needs generating content labels for a general 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 TaggingImage 阿里云图像识别 通用图片打标 image recognition image classification image tagging scene recognition visual labels computer vision tagging image image tags visual tagging content labels generating content labels for a general 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-tagging","aliases":["Tagging Image Image Recognition","image-recognition","computer-vision","image-tagging","TaggingImage","阿里云图像识别 通用图片打标","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","tagging","image","image tags","visual tagging","content labels","image_tagging","/api/tools/image-tagging"],"localeHints":["en","zh"],"useCases":["generating content labels for a general 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":{"X-Payment-Required":"true","X-Payment-Token":"payment.token"},"bodySchema":{"properties":{"error":{"type":"string"},"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"}},"required":["error","payment"],"type":"object"}},"retry":{"when":"Retry after payment.status is paid and the token has remaining calls.","http":["Call POST /api/payments with serviceId to create a payment if the first service call returned 402.","Complete or verify payment using GET /api/payments/{paymentId}.","Retry the original /api/tools/* request with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Complete or verify payment using the returned payment.paymentId.","Call the same MCP tool again with paymentToken set to payment.token."],"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":"Create a payment with POST /api/payments using serviceId=\"image-tagging\", then pass the returned token in X-Payment-Token or MCP paymentToken.","retryHint":"If the service returns HTTP 402, complete or verify the payment and retry the same request with the payment token.","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 Image 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":{"X-Payment-Required":"true","X-Payment-Token":"payment.token"},"bodySchema":{"properties":{"error":{"type":"string"},"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"}},"required":["error","payment"],"type":"object"}},"retry":{"when":"Retry after payment.status is paid and the token has remaining calls.","http":["Call POST /api/payments with serviceId to create a payment if the first service call returned 402.","Complete or verify payment using GET /api/payments/{paymentId}.","Retry the original /api/tools/* request with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Complete or verify payment using the returned payment.paymentId.","Call the same MCP tool again with paymentToken set to payment.token."],"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":{"X-Payment-Required":"true","X-Payment-Token":"payment.token"},"bodySchema":{"properties":{"error":{"type":"string"},"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"}},"required":["error","payment"],"type":"object"}},"retry":{"when":"Retry after payment.status is paid and the token has remaining calls.","http":["Call POST /api/payments with serviceId to create a payment if the first service call returned 402.","Complete or verify payment using GET /api/payments/{paymentId}.","Retry the original /api/tools/* request with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Complete or verify payment using the returned payment.paymentId.","Call the same MCP tool again with paymentToken set to payment.token."],"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}}}}
