{"schemaVersion":"server402.catalog.search.v1","generatedAt":"2026-06-04T00:05:28Z","query":"id-photo-quality-check","filters":{"limit":10},"total":98,"services":[{"id":"id-photo-quality-check","canonicalId":"id-photo-quality-check","internalServiceId":"aliyun-imagerecog-evaluate-certificate-quality","name":"Evaluate Certificate Quality Image Recognition","description":"Use this visual AI API when the task needs evaluating ID photo quality. Send the schema keys exactly as listed (ImageURL, Type); required parameters: ImageURL.","descriptionForModel":"Use this visual AI API when the task needs evaluating ID photo quality. Send the schema keys exactly as listed (ImageURL, Type); required parameters: ImageURL.","category":"image-recognition","keywords":["EvaluateCertificateQuality","阿里云图像识别 证件照质量审核","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","evaluate","certificate","quality"],"useCases":["evaluating ID photo quality","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"tags":["computer-vision","image-recognition","image-tagging"],"method":"POST","endpoint":"/api/tools/id-photo-quality-check","legacyEndpoint":"/api/tools/aliyun-imagerecog-evaluate-certificate-quality","endpointAliases":["/api/tools/id-photo-quality-check","/api/tools/aliyun-imagerecog-evaluate-certificate-quality"],"inputTypes":["object","string","uri"],"outputTypes":["object","string"],"inputSchema":{"description":"Use Alibaba Cloud RPC parameter names exactly, for example ImageURL, ImageUrl, Url, URL, JobId, or Tasks depending on the service.","properties":{"ImageURL":{"description":"Public http or https image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"},"Type":{"description":"Alibaba Cloud RPC parameter Type.","type":"string"}},"required":["ImageURL"],"type":"object"},"outputSchema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","data"],"type":"object"},"exampleRequest":{"ImageURL":"https://example.com/image.jpg"},"exampleResponse":{"code":"200","content":"","data":{"Action":"EvaluateCertificateQuality","Result":"example result from Alibaba Cloud imagerecog"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"currency":"USD","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":4,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:15Z","healthLatencyMs":80,"successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:20Z"},"discovery":{"toolName":"id_photo_quality_check","searchText":"id-photo-quality-check Evaluate Certificate Quality Image Recognition Use this visual AI API when the task needs evaluating ID photo quality. Send the schema keys exactly as listed (ImageURL, Type); required parameters: ImageURL. Use this visual AI API when the task needs evaluating ID photo quality. Send the schema keys exactly as listed (ImageURL, Type); required parameters: ImageURL. image-recognition object string uri object string computer-vision image-recognition image-tagging EvaluateCertificateQuality 阿里云图像识别 证件照质量审核 image recognition image classification image tagging scene recognition visual labels computer vision evaluate certificate quality evaluating ID photo quality Call one focused visual AI capability directly with JSON inputs Use public image or video URLs and structured parameters to get machine-readable results Pass parameter names exactly as listed in the input schema Only public http or https URLs and JSON/base64 text parameters are supported in this adapter Binary file upload is not exposed by this Server402 adapter Provider credentials and upstream permissions must be configured on the server /api/tools/id-photo-quality-check","aliases":["Evaluate Certificate Quality Image Recognition","image-recognition","computer-vision","image-tagging","EvaluateCertificateQuality","阿里云图像识别 证件照质量审核","image recognition","image classification","image tagging","scene recognition","visual labels","computer vision","evaluate","certificate","quality","id-photo-quality-check","id_photo_quality_check","/api/tools/id-photo-quality-check"],"localeHints":["en","zh"],"useCases":["evaluating ID photo quality","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"paymentFlow":{"type":"http-402","createPayment":{"method":"POST","url":"/api/payments","bodySchema":{"properties":{"providerId":{"type":"string"},"serviceId":{"description":"Use the canonical service id from the catalog. Legacy internal ids remain accepted for backward compatibility.","type":"string"}},"required":["serviceId"],"type":"object"},"responseSchema":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"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=\"id-photo-quality-check\", 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":265,"matchTerms":["id photo quality check","id","photo","quality","check"],"why":"Matched id photo quality check, id, photo, quality, check for \"Evaluate Certificate Quality Image Recognition\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"random-uuid","canonicalId":"random-uuid","name":"Random Uuid","displayName":"随机 UUID 生成","description":"Generate a random UUID by calling a third-party HTTP API.","descriptionForModel":"Generate a random UUID by calling a third-party HTTP API.","category":"utility","keywords":["uuid","random id","identifier","generate uuid"],"useCases":["Generate unique IDs","Create test identifiers","Produce random UUID values"],"limitations":["Depends on httpbin.org availability; suitable for testing","not production SLA"],"tags":["uuid","random","utility"],"method":"GET","endpoint":"/api/tools/random-uuid","endpointAliases":["/api/tools/random-uuid"],"inputTypes":["object"],"outputTypes":["object","string"],"inputSchema":{"properties":{},"type":"object"},"outputSchema":{"properties":{"uuid":{"type":"string"}},"type":"object"},"exampleResponse":{"uuid":"496e23f6-ae40-4518-b3fc-8320651f4089"},"pricing":{"amountCents":5,"currency":"USD","policyId":"tiny-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":96,"healthStatus":"healthy","healthCheckedAt":"2026-05-28T06:01:01Z","healthLatencyMs":1993,"latencyMs":20,"successRate":1,"callCount":10,"executionCount":6,"successCount":6,"errorCount":0,"paymentRequireds":4,"lastCallAt":"2026-06-03T23:49:35Z"},"discovery":{"toolName":"random_uuid","searchText":"random-uuid Random Uuid Generate a random UUID by calling a third-party HTTP API. Generate a random UUID by calling a third-party HTTP API. utility object object string uuid random utility uuid random id identifier generate uuid Generate unique IDs Create test identifiers Produce random UUID values Depends on httpbin.org availability; suitable for testing not production SLA /api/tools/random-uuid","aliases":["Random Uuid","utility","随机 UUID 生成","uuid","random","random id","identifier","generate uuid","random-uuid","random_uuid","/api/tools/random-uuid"],"localeHints":["en","zh"],"useCases":["Generate unique IDs","Create test identifiers","Produce random UUID values"],"limitations":["Depends on httpbin.org availability; suitable for testing","not production SLA"],"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=\"random-uuid\", 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"},"matchScore":49,"matchTerms":["id"],"why":"Matched id for \"Random Uuid\". Price is USD 0.05 per policy tiny-api."},{"id":"video-face-liveness-detection","canonicalId":"video-face-liveness-detection","internalServiceId":"aliyun-facebody-detect-video-living-face","name":"Detect Video Living Face Face And Body Analysis","description":"Use this visual AI API when the task needs the visual analysis task described by action 检测视频中的人脸活体状态。. Send the schema keys exactly as listed (VideoUrl); required parameters: VideoUrl.","descriptionForModel":"Use this visual AI API when the task needs the visual analysis task described by action 检测视频中的人脸活体状态。. Send the schema keys exactly as listed (VideoUrl); required parameters: VideoUrl.","category":"face-body","keywords":["DetectVideoLivingFace","阿里云人脸人体 视频活体检测","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","detect","video","living","face"],"useCases":["the visual analysis task described by action 检测视频中的人脸活体状态。","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"tags":["computer-vision","face-body","face-analysis","body-analysis"],"method":"POST","endpoint":"/api/tools/video-face-liveness-detection","legacyEndpoint":"/api/tools/aliyun-facebody-detect-video-living-face","endpointAliases":["/api/tools/video-face-liveness-detection","/api/tools/aliyun-facebody-detect-video-living-face"],"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":{"VideoUrl":{"description":"Public http or https video URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"}},"required":["VideoUrl"],"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":{"VideoUrl":"https://example.com/video.mp4"},"exampleResponse":{"code":"200","content":"","data":{"Action":"DetectVideoLivingFace","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":"","successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:58Z"},"discovery":{"toolName":"video_face_liveness_detection","searchText":"video-face-liveness-detection Detect Video Living Face Face And Body Analysis Use this visual AI API when the task needs the visual analysis task described by action 检测视频中的人脸活体状态。. Send the schema keys exactly as listed (VideoUrl); required parameters: VideoUrl. Use this visual AI API when the task needs the visual analysis task described by action 检测视频中的人脸活体状态。. Send the schema keys exactly as listed (VideoUrl); required parameters: VideoUrl. face-body object string uri object string computer-vision face-body face-analysis body-analysis DetectVideoLivingFace 阿里云人脸人体 视频活体检测 face detection body detection pose estimation face recognition liveness detection human analysis detect video living face the visual analysis task described by action 检测视频中的人脸活体状态。 Call one focused visual AI capability directly with JSON inputs Use public image or video URLs and structured parameters to get machine-readable results Pass parameter names exactly as listed in the input schema Only public http or https URLs and JSON/base64 text parameters are supported in this adapter Binary file upload is not exposed by this Server402 adapter Provider credentials and upstream permissions must be configured on the server /api/tools/video-face-liveness-detection","aliases":["Detect Video Living Face Face And Body Analysis","face-body","computer-vision","face-analysis","body-analysis","DetectVideoLivingFace","阿里云人脸人体 视频活体检测","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","detect","video","living","face","video-face-liveness-detection","video_face_liveness_detection","/api/tools/video-face-liveness-detection"],"localeHints":["en","zh"],"useCases":["the visual analysis task described by action 检测视频中的人脸活体状态。","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"paymentFlow":{"type":"http-402","createPayment":{"method":"POST","url":"/api/payments","bodySchema":{"properties":{"providerId":{"type":"string"},"serviceId":{"description":"Use the canonical service id from the catalog. Legacy internal ids remain accepted for backward compatibility.","type":"string"}},"required":["serviceId"],"type":"object"},"responseSchema":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"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=\"video-face-liveness-detection\", 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":"VideoUrl is required","statusCode":400},{"input":{"VideoUrl":"not-a-url"},"error":"VideoUrl must be a valid http or https URL","statusCode":400}],"sla":{"uptime":"99.5%","maxLatency":"5000ms"},"matchScore":45,"matchTerms":["id"],"why":"Matched id for \"Detect Video Living Face Face And Body Analysis\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"video-security-object-detection","canonicalId":"video-security-object-detection","internalServiceId":"aliyun-objectdet-detect-video-ipc-object","name":"Detect Video Ipc Object Object Detection","description":"Use this visual AI API when the task needs detecting objects in IPC video files. Send the schema keys exactly as listed (CallbackOnlyHasObject, StartTimestamp, VideoURL); required parameters: VideoURL.","descriptionForModel":"Use this visual AI API when the task needs detecting objects in IPC video files. Send the schema keys exactly as listed (CallbackOnlyHasObject, StartTimestamp, VideoURL); required parameters: VideoURL.","category":"object-detection","keywords":["DetectVideoIPCObject","阿里云目标检测 IPC 视频目标检测","object detection","detect objects","bounding boxes","main object detection","vehicle detection","traffic detection","license plate","number plate","computer vision","detect","video","ipc","object"],"useCases":["detecting objects in IPC video files","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","object-detection"],"method":"POST","endpoint":"/api/tools/video-security-object-detection","legacyEndpoint":"/api/tools/aliyun-objectdet-detect-video-ipc-object","endpointAliases":["/api/tools/video-security-object-detection","/api/tools/aliyun-objectdet-detect-video-ipc-object"],"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":{"CallbackOnlyHasObject":{"description":"Alibaba Cloud RPC parameter CallbackOnlyHasObject.","type":"boolean"},"StartTimestamp":{"description":"Alibaba Cloud RPC parameter StartTimestamp.","type":"number"},"VideoURL":{"description":"Public http or https video URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"}},"required":["VideoURL"],"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":{"VideoURL":"https://example.com/video.mp4"},"exampleResponse":{"code":"200","content":"","data":{"Action":"DetectVideoIPCObject","Result":"example result from Alibaba Cloud objectdet"},"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:52Z"},"discovery":{"toolName":"video_security_object_detection","searchText":"video-security-object-detection Detect Video Ipc Object Object Detection Use this visual AI API when the task needs detecting objects in IPC video files. Send the schema keys exactly as listed (CallbackOnlyHasObject, StartTimestamp, VideoURL); required parameters: VideoURL. Use this visual AI API when the task needs detecting objects in IPC video files. Send the schema keys exactly as listed (CallbackOnlyHasObject, StartTimestamp, VideoURL); required parameters: VideoURL. object-detection object boolean number string uri object string computer-vision object-detection DetectVideoIPCObject 阿里云目标检测 IPC 视频目标检测 object detection detect objects bounding boxes main object detection vehicle detection traffic detection license plate number plate computer vision detect video ipc object detecting objects in IPC video files 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/video-security-object-detection","aliases":["Detect Video Ipc Object Object Detection","object-detection","computer-vision","DetectVideoIPCObject","阿里云目标检测 IPC 视频目标检测","object detection","detect objects","bounding boxes","main object detection","vehicle detection","traffic detection","license plate","number plate","computer vision","detect","video","ipc","object","video-security-object-detection","video_security_object_detection","/api/tools/video-security-object-detection"],"localeHints":["en","zh"],"useCases":["detecting objects in IPC video files","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=\"video-security-object-detection\", 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":["security-object-detection","kitchen-animal-detection","main-subject-detection"],"requiredContext":["public-image-url","aliyun-credentials"],"errorExamples":[{"input":{},"error":"VideoURL is required","statusCode":400},{"input":{"VideoURL":"not-a-url"},"error":"VideoURL must be a valid http or https URL","statusCode":400}],"sla":{"uptime":"99.5%","maxLatency":"5000ms"},"matchScore":45,"matchTerms":["id"],"why":"Matched id for \"Detect Video Ipc Object Object Detection\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"face-detection","canonicalId":"face-detection","internalServiceId":"aliyun-facebody-detect-face","name":"Detect Face Face And Body Analysis","description":"Use this visual AI API when the task needs detecting face location, pose, landmarks, and quality. Send the schema keys exactly as listed (ImageURL, Landmark, MaxFaceNumber, Pose, Quality); required parameters: ImageURL.","descriptionForModel":"Use this visual AI API when the task needs detecting face location, pose, landmarks, and quality. Send the schema keys exactly as listed (ImageURL, Landmark, MaxFaceNumber, Pose, Quality); required parameters: ImageURL.","category":"face-body","keywords":["DetectFace","阿里云人脸人体 人脸检测定位","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","detect","face","face attributes","face landmarks","face quality"],"useCases":["detecting face location, pose, landmarks, and quality","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"tags":["computer-vision","face-body","face-analysis","body-analysis"],"method":"POST","endpoint":"/api/tools/face-detection","legacyEndpoint":"/api/tools/aliyun-facebody-detect-face","endpointAliases":["/api/tools/face-detection","/api/tools/aliyun-facebody-detect-face"],"inputTypes":["object","string","uri","boolean","number"],"outputTypes":["object","string"],"inputSchema":{"description":"Use Alibaba Cloud RPC parameter names exactly, for example ImageURL, ImageUrl, Url, URL, JobId, or Tasks depending on the service.","properties":{"ImageURL":{"description":"Public http or https image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"},"Landmark":{"description":"Alibaba Cloud RPC parameter Landmark.","type":"boolean"},"MaxFaceNumber":{"description":"Alibaba Cloud RPC parameter MaxFaceNumber.","type":"number"},"Pose":{"description":"Alibaba Cloud RPC parameter Pose.","type":"boolean"},"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":"DetectFace","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:33Z","healthLatencyMs":111,"successRate":0,"callCount":2,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":1,"lastCallAt":"2026-06-03T14:02:01Z"},"discovery":{"toolName":"face_detection","searchText":"face-detection Detect Face Face And Body Analysis Use this visual AI API when the task needs detecting face location, pose, landmarks, and quality. Send the schema keys exactly as listed (ImageURL, Landmark, MaxFaceNumber, Pose, Quality); required parameters: ImageURL. Use this visual AI API when the task needs detecting face location, pose, landmarks, and quality. Send the schema keys exactly as listed (ImageURL, Landmark, MaxFaceNumber, Pose, Quality); required parameters: ImageURL. face-body object string uri boolean number object string computer-vision face-body face-analysis body-analysis DetectFace 阿里云人脸人体 人脸检测定位 face detection body detection pose estimation face recognition liveness detection human analysis detect face face attributes face landmarks face quality detecting face location, pose, landmarks, and quality Call one focused visual AI capability directly with JSON inputs Use public image or video URLs and structured parameters to get machine-readable results Pass parameter names exactly as listed in the input schema Only public http or https URLs and JSON/base64 text parameters are supported in this adapter Binary file upload is not exposed by this Server402 adapter Provider credentials and upstream permissions must be configured on the server /api/tools/face-detection","aliases":["Detect Face Face And Body Analysis","face-body","computer-vision","face-analysis","body-analysis","DetectFace","阿里云人脸人体 人脸检测定位","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","detect","face","face attributes","face landmarks","face quality","face-detection","face_detection","/api/tools/face-detection"],"localeHints":["en","zh"],"useCases":["detecting face location, pose, landmarks, and quality","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"paymentFlow":{"type":"http-402","createPayment":{"method":"POST","url":"/api/payments","bodySchema":{"properties":{"providerId":{"type":"string"},"serviceId":{"description":"Use the canonical service id from the catalog. Legacy internal ids remain accepted for backward compatibility.","type":"string"}},"required":["serviceId"],"type":"object"},"responseSchema":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"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-detection\", 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":["id","quality"],"why":"Matched id, quality for \"Detect Face Face And Body Analysis\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"hk-weather","canonicalId":"hk-weather","name":"Hk Weather","displayName":"香港当前天气","description":"Get current weather in Hong Kong, including temperature, relative humidity, and wind speed, from Open-Meteo.","descriptionForModel":"Get current weather in Hong Kong, including temperature, relative humidity, and wind speed, from Open-Meteo.","category":"weather","keywords":["weather","current weather","Hong Kong weather","temperature","humidity","wind speed"],"useCases":["Check current weather","Answer weather questions about Hong Kong","Get simple weather data for testing"],"limitations":["Fixed location Hong Kong; depends on Open-Meteo availability"],"tags":["weather","hong kong","temperature","humidity","wind"],"method":"GET","endpoint":"/api/tools/hk-weather","endpointAliases":["/api/tools/hk-weather"],"inputTypes":["object"],"outputTypes":["object","string"],"inputSchema":{"properties":{},"type":"object"},"outputSchema":{"properties":{"current":{"type":"object"},"timezone":{"type":"string"}},"type":"object"},"exampleResponse":{"current":{"relative_humidity_2m":72,"temperature_2m":30.4,"time":"2026-05-28T16:15","wind_speed_10m":11.9},"timezone":"Asia/Hong_Kong"},"pricing":{"amountCents":5,"currency":"USD","policyId":"tiny-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":98,"healthStatus":"healthy","healthCheckedAt":"2026-05-28T08:27:28Z","healthLatencyMs":712,"latencyMs":24,"successRate":1,"callCount":11,"executionCount":8,"successCount":8,"errorCount":0,"paymentRequireds":3,"lastCallAt":"2026-06-03T23:53:37Z"},"discovery":{"toolName":"hk_weather","searchText":"hk-weather Hk Weather Get current weather in Hong Kong, including temperature, relative humidity, and wind speed, from Open-Meteo. Get current weather in Hong Kong, including temperature, relative humidity, and wind speed, from Open-Meteo. weather object object string weather hong kong temperature humidity wind weather current weather Hong Kong weather temperature humidity wind speed Check current weather Answer weather questions about Hong Kong Get simple weather data for testing Fixed location Hong Kong; depends on Open-Meteo availability /api/tools/hk-weather","aliases":["Hk Weather","weather","香港当前天气","hong kong","temperature","humidity","wind","current weather","Hong Kong weather","wind speed","hk-weather","hk_weather","/api/tools/hk-weather"],"localeHints":["en","zh"],"useCases":["Check current weather","Answer weather questions about Hong Kong","Get simple weather data for testing"],"limitations":["Fixed location Hong Kong; depends on Open-Meteo availability"],"paymentFlow":{"type":"http-402","createPayment":{"method":"POST","url":"/api/payments","bodySchema":{"properties":{"providerId":{"type":"string"},"serviceId":{"description":"Use the canonical service id from the catalog. Legacy internal ids remain accepted for backward compatibility.","type":"string"}},"required":["serviceId"],"type":"object"},"responseSchema":{"properties":{"amountCents":{"type":"integer"},"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=\"hk-weather\", 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"},"matchScore":33,"matchTerms":["id","check"],"why":"Matched id, check for \"Hk Weather\". Price is USD 0.05 per policy tiny-api."},{"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":29,"matchTerms":["id","quality"],"why":"Matched id, quality for \"Recognize Face Face And Body Analysis\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"face-database-add-face","canonicalId":"face-database-add-face","internalServiceId":"aliyun-facebody-add-face","name":"Add Face Face And Body Analysis","description":"Use this visual AI API when the task needs the visual analysis task described by action 向人脸数据库实体添加一张人脸。. Send the schema keys exactly as listed (DbName, EntityId, ExtraData, ImageUrl, QualityScoreThreshold, SimilarityScoreThresholdBetweenEntity, SimilarityScoreThresholdInEntity); required parameters: DbName, EntityId, ImageUrl.","descriptionForModel":"Use this visual AI API when the task needs the visual analysis task described by action 向人脸数据库实体添加一张人脸。. Send the schema keys exactly as listed (DbName, EntityId, ExtraData, ImageUrl, QualityScoreThreshold, SimilarityScoreThresholdBetweenEntity, SimilarityScoreThresholdInEntity); required parameters: DbName, EntityId, ImageUrl.","category":"face-body","keywords":["AddFace","阿里云人脸人体 添加人脸","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","add","face"],"useCases":["the visual analysis task described by action 向人脸数据库实体添加一张人脸。","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"tags":["computer-vision","face-body","face-analysis","body-analysis"],"method":"POST","endpoint":"/api/tools/face-database-add-face","legacyEndpoint":"/api/tools/aliyun-facebody-add-face","endpointAliases":["/api/tools/face-database-add-face","/api/tools/aliyun-facebody-add-face"],"inputTypes":["object","string","uri","number"],"outputTypes":["object","string"],"inputSchema":{"description":"Use Alibaba Cloud RPC parameter names exactly, for example ImageURL, ImageUrl, Url, URL, JobId, or Tasks depending on the service.","properties":{"DbName":{"description":"Alibaba Cloud face database or template identifier.","type":"string"},"EntityId":{"description":"Alibaba Cloud face database or template identifier.","type":"string"},"ExtraData":{"description":"Alibaba Cloud RPC parameter ExtraData.","type":"string"},"ImageUrl":{"description":"Public http or https image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"},"QualityScoreThreshold":{"description":"Alibaba Cloud RPC parameter QualityScoreThreshold.","type":"number"},"SimilarityScoreThresholdBetweenEntity":{"description":"Alibaba Cloud RPC parameter SimilarityScoreThresholdBetweenEntity.","type":"number"},"SimilarityScoreThresholdInEntity":{"description":"Alibaba Cloud RPC parameter SimilarityScoreThresholdInEntity.","type":"number"}},"required":["DbName","EntityId","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":{"DbName":"example-face-db","EntityId":"example-entity-id","ImageUrl":"https://example.com/image.jpg"},"exampleResponse":{"code":"200","content":"","data":{"Action":"AddFace","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":"","successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:53Z"},"discovery":{"toolName":"face_database_add_face","searchText":"face-database-add-face Add Face Face And Body Analysis Use this visual AI API when the task needs the visual analysis task described by action 向人脸数据库实体添加一张人脸。. Send the schema keys exactly as listed (DbName, EntityId, ExtraData, ImageUrl, QualityScoreThreshold, SimilarityScoreThresholdBetweenEntity, SimilarityScoreThresholdInEntity); required parameters: DbName, EntityId, ImageUrl. Use this visual AI API when the task needs the visual analysis task described by action 向人脸数据库实体添加一张人脸。. Send the schema keys exactly as listed (DbName, EntityId, ExtraData, ImageUrl, QualityScoreThreshold, SimilarityScoreThresholdBetweenEntity, SimilarityScoreThresholdInEntity); required parameters: DbName, EntityId, ImageUrl. face-body object string uri number object string computer-vision face-body face-analysis body-analysis AddFace 阿里云人脸人体 添加人脸 face detection body detection pose estimation face recognition liveness detection human analysis add face the visual analysis task described by action 向人脸数据库实体添加一张人脸。 Call one focused visual AI capability directly with JSON inputs Use public image or video URLs and structured parameters to get machine-readable results Pass parameter names exactly as listed in the input schema Only public http or https URLs and JSON/base64 text parameters are supported in this adapter Binary file upload is not exposed by this Server402 adapter Provider credentials and upstream permissions must be configured on the server /api/tools/face-database-add-face","aliases":["Add Face Face And Body Analysis","face-body","computer-vision","face-analysis","body-analysis","AddFace","阿里云人脸人体 添加人脸","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","add","face","face-database-add-face","face_database_add_face","/api/tools/face-database-add-face"],"localeHints":["en","zh"],"useCases":["the visual analysis task described by action 向人脸数据库实体添加一张人脸。","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"paymentFlow":{"type":"http-402","createPayment":{"method":"POST","url":"/api/payments","bodySchema":{"properties":{"providerId":{"type":"string"},"serviceId":{"description":"Use the canonical service id from the catalog. Legacy internal ids remain accepted for backward compatibility.","type":"string"}},"required":["serviceId"],"type":"object"},"responseSchema":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"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-database-add-face\", 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-create-entity","face-template-create","face-database-batch-add"],"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":28,"matchTerms":["id","quality"],"why":"Matched id, quality for \"Add Face Face And Body Analysis\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"face-database-batch-add","canonicalId":"face-database-batch-add","internalServiceId":"aliyun-facebody-batch-add-faces","name":"Batch Add Faces Face And Body Analysis","description":"Use this visual AI API when the task needs the visual analysis task described by action 向人脸数据库批量添加人脸数据。. Send the schema keys exactly as listed (DbName, EntityId, Faces, QualityScoreThreshold, SimilarityScoreThresholdBetweenEntity, SimilarityScoreThresholdInEntity); required parameters: DbName, EntityId, Faces.","descriptionForModel":"Use this visual AI API when the task needs the visual analysis task described by action 向人脸数据库批量添加人脸数据。. Send the schema keys exactly as listed (DbName, EntityId, Faces, QualityScoreThreshold, SimilarityScoreThresholdBetweenEntity, SimilarityScoreThresholdInEntity); required parameters: DbName, EntityId, Faces.","category":"face-body","keywords":["BatchAddFaces","阿里云人脸人体 批量添加人脸","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","batch","add","faces"],"useCases":["the visual analysis task described by action 向人脸数据库批量添加人脸数据。","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"tags":["computer-vision","face-body","face-analysis","body-analysis"],"method":"POST","endpoint":"/api/tools/face-database-batch-add","legacyEndpoint":"/api/tools/aliyun-facebody-batch-add-faces","endpointAliases":["/api/tools/face-database-batch-add","/api/tools/aliyun-facebody-batch-add-faces"],"inputTypes":["object","number","string","array"],"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":{"DbName":{"description":"Alibaba Cloud face database or template identifier.","type":"string"},"EntityId":{"description":"Alibaba Cloud face database or template identifier.","type":"string"},"Faces":{"description":"Alibaba Cloud JSON array parameter. A JSON string is also accepted and forwarded as-is.","type":"array"},"QualityScoreThreshold":{"description":"Alibaba Cloud RPC parameter QualityScoreThreshold.","type":"number"},"SimilarityScoreThresholdBetweenEntity":{"description":"Alibaba Cloud RPC parameter SimilarityScoreThresholdBetweenEntity.","type":"number"},"SimilarityScoreThresholdInEntity":{"description":"Alibaba Cloud RPC parameter SimilarityScoreThresholdInEntity.","type":"number"}},"required":["DbName","EntityId","Faces"],"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":{"DbName":"example-face-db","EntityId":"example-entity-id","Faces":[{"ImageUrl":"https://example.com/face.jpg"}]},"exampleResponse":{"code":"200","content":"","data":{"Action":"BatchAddFaces","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":"","successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:34Z"},"discovery":{"toolName":"face_database_batch_add","searchText":"face-database-batch-add Batch Add Faces Face And Body Analysis Use this visual AI API when the task needs the visual analysis task described by action 向人脸数据库批量添加人脸数据。. Send the schema keys exactly as listed (DbName, EntityId, Faces, QualityScoreThreshold, SimilarityScoreThresholdBetweenEntity, SimilarityScoreThresholdInEntity); required parameters: DbName, EntityId, Faces. Use this visual AI API when the task needs the visual analysis task described by action 向人脸数据库批量添加人脸数据。. Send the schema keys exactly as listed (DbName, EntityId, Faces, QualityScoreThreshold, SimilarityScoreThresholdBetweenEntity, SimilarityScoreThresholdInEntity); required parameters: DbName, EntityId, Faces. face-body object number string array object string computer-vision face-body face-analysis body-analysis BatchAddFaces 阿里云人脸人体 批量添加人脸 face detection body detection pose estimation face recognition liveness detection human analysis batch add faces the visual analysis task described by action 向人脸数据库批量添加人脸数据。 Call one focused visual AI capability directly with JSON inputs Use public image or video URLs and structured parameters to get machine-readable results Pass parameter names exactly as listed in the input schema Only public http or https URLs and JSON/base64 text parameters are supported in this adapter Binary file upload is not exposed by this Server402 adapter Provider credentials and upstream permissions must be configured on the server /api/tools/face-database-batch-add","aliases":["Batch Add Faces Face And Body Analysis","face-body","computer-vision","face-analysis","body-analysis","BatchAddFaces","阿里云人脸人体 批量添加人脸","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","batch","add","faces","face-database-batch-add","face_database_batch_add","/api/tools/face-database-batch-add"],"localeHints":["en","zh"],"useCases":["the visual analysis task described by action 向人脸数据库批量添加人脸数据。","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"paymentFlow":{"type":"http-402","createPayment":{"method":"POST","url":"/api/payments","bodySchema":{"properties":{"providerId":{"type":"string"},"serviceId":{"description":"Use the canonical service id from the catalog. Legacy internal ids remain accepted for backward compatibility.","type":"string"}},"required":["serviceId"],"type":"object"},"responseSchema":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"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-database-batch-add\", 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":["aliyun-credentials"],"errorExamples":[{"input":{},"error":"required parameters are missing","statusCode":400}],"sla":{"uptime":"99.5%","maxLatency":"5000ms"},"matchScore":28,"matchTerms":["id","quality"],"why":"Matched id, quality for \"Batch Add Faces Face And Body Analysis\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"identity-verification-result","canonicalId":"identity-verification-result","internalServiceId":"aliyun-facebody-get-real-person-verification-result","name":"Get Real Person Verification Result Face And Body Analysis","description":"Use this visual AI API when the task needs the visual analysis task described by action 查询金融级实人认证结果。. Send the schema keys exactly as listed (VerificationToken); required parameters: VerificationToken.","descriptionForModel":"Use this visual AI API when the task needs the visual analysis task described by action 查询金融级实人认证结果。. Send the schema keys exactly as listed (VerificationToken); required parameters: VerificationToken.","category":"face-body","keywords":["GetRealPersonVerificationResult","阿里云人脸人体 实人认证结果查询","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","get","real","person","verification","result"],"useCases":["the visual analysis task described by action 查询金融级实人认证结果。","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"tags":["computer-vision","face-body","face-analysis","body-analysis"],"method":"POST","endpoint":"/api/tools/identity-verification-result","legacyEndpoint":"/api/tools/aliyun-facebody-get-real-person-verification-result","endpointAliases":["/api/tools/identity-verification-result","/api/tools/aliyun-facebody-get-real-person-verification-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":{"VerificationToken":{"description":"Alibaba Cloud face database or template identifier.","type":"string"}},"required":["VerificationToken"],"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":{"VerificationToken":"example-verification-token"},"exampleResponse":{"code":"200","content":"","data":{"Action":"GetRealPersonVerificationResult","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":"","successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:39Z"},"discovery":{"toolName":"identity_verification_result","searchText":"identity-verification-result Get Real Person Verification Result Face And Body Analysis Use this visual AI API when the task needs the visual analysis task described by action 查询金融级实人认证结果。. Send the schema keys exactly as listed (VerificationToken); required parameters: VerificationToken. Use this visual AI API when the task needs the visual analysis task described by action 查询金融级实人认证结果。. Send the schema keys exactly as listed (VerificationToken); required parameters: VerificationToken. face-body object string object string computer-vision face-body face-analysis body-analysis GetRealPersonVerificationResult 阿里云人脸人体 实人认证结果查询 face detection body detection pose estimation face recognition liveness detection human analysis get real person verification result the visual analysis task described by action 查询金融级实人认证结果。 Call one focused visual AI capability directly with JSON inputs Use public image or video URLs and structured parameters to get machine-readable results Pass parameter names exactly as listed in the input schema Only public http or https URLs and JSON/base64 text parameters are supported in this adapter Binary file upload is not exposed by this Server402 adapter Provider credentials and upstream permissions must be configured on the server /api/tools/identity-verification-result","aliases":["Get Real Person Verification Result Face And Body Analysis","face-body","computer-vision","face-analysis","body-analysis","GetRealPersonVerificationResult","阿里云人脸人体 实人认证结果查询","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","get","real","person","verification","result","identity-verification-result","identity_verification_result","/api/tools/identity-verification-result"],"localeHints":["en","zh"],"useCases":["the visual analysis task described by action 查询金融级实人认证结果。","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"paymentFlow":{"type":"http-402","createPayment":{"method":"POST","url":"/api/payments","bodySchema":{"properties":{"providerId":{"type":"string"},"serviceId":{"description":"Use the canonical service id from the catalog. Legacy internal ids remain accepted for backward compatibility.","type":"string"}},"required":["serviceId"],"type":"object"},"responseSchema":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"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=\"identity-verification-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":["face-database-add-face","face-database-create-entity","face-template-create"],"requiredContext":["job-id","aliyun-credentials"],"errorExamples":[{"input":{},"error":"jobId is required","statusCode":400}],"sla":{"uptime":"99.5%","maxLatency":"5000ms"},"matchScore":20,"matchTerms":["id"],"why":"Matched id for \"Get Real Person Verification Result Face And Body Analysis\". 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"]}}}}
