{"schemaVersion":"server402.catalog.search.v1","generatedAt":"2026-06-03T23:57:14Z","query":"skin-retouching","filters":{"limit":10},"total":3,"services":[{"id":"skin-retouching","canonicalId":"skin-retouching","internalServiceId":"aliyun-facebody-retouch-skin","name":"Retouch Skin Face And Body Analysis","description":"Use this visual AI API when the task needs the visual analysis task described by action 对人像皮肤进行美肤和美白处理。. Send the schema keys exactly as listed (ImageURL, RetouchDegree, WhiteningDegree); required parameters: ImageURL.","descriptionForModel":"Use this visual AI API when the task needs the visual analysis task described by action 对人像皮肤进行美肤和美白处理。. Send the schema keys exactly as listed (ImageURL, RetouchDegree, WhiteningDegree); required parameters: ImageURL.","category":"face-body","keywords":["RetouchSkin","阿里云人脸人体 美肤","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","retouch","skin"],"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/skin-retouching","legacyEndpoint":"/api/tools/aliyun-facebody-retouch-skin","endpointAliases":["/api/tools/skin-retouching","/api/tools/aliyun-facebody-retouch-skin"],"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":{"ImageURL":{"description":"Public http or https image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"},"RetouchDegree":{"description":"Alibaba Cloud RPC parameter RetouchDegree.","type":"number"},"WhiteningDegree":{"description":"Alibaba Cloud RPC parameter WhiteningDegree.","type":"number"}},"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":"RetouchSkin","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":104,"successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:24Z"},"discovery":{"toolName":"skin_retouching","searchText":"skin-retouching Retouch Skin Face And Body Analysis Use this visual AI API when the task needs the visual analysis task described by action 对人像皮肤进行美肤和美白处理。. Send the schema keys exactly as listed (ImageURL, RetouchDegree, WhiteningDegree); required parameters: ImageURL. Use this visual AI API when the task needs the visual analysis task described by action 对人像皮肤进行美肤和美白处理。. Send the schema keys exactly as listed (ImageURL, RetouchDegree, WhiteningDegree); required parameters: ImageURL. face-body object string uri number object string computer-vision face-body face-analysis body-analysis RetouchSkin 阿里云人脸人体 美肤 face detection body detection pose estimation face recognition liveness detection human analysis retouch skin 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/skin-retouching","aliases":["Retouch Skin Face And Body Analysis","face-body","computer-vision","face-analysis","body-analysis","RetouchSkin","阿里云人脸人体 美肤","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","retouch","skin","skin-retouching","skin_retouching","/api/tools/skin-retouching"],"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=\"skin-retouching\", 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":189,"matchTerms":["skin retouching","skin","retouching"],"why":"Matched skin retouching, skin, retouching for \"Retouch Skin Face And Body Analysis\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"skin-segmentation","canonicalId":"skin-segmentation","internalServiceId":"aliyun-imageseg-segment-skin","name":"Segment Skin Image Segmentation","description":"Use this visual AI API when the task needs segmenting skin regions in an image. Send the schema keys exactly as listed (URL); required parameters: URL.","descriptionForModel":"Use this visual AI API when the task needs segmenting skin regions in an image. Send the schema keys exactly as listed (URL); required parameters: URL.","category":"image-segmentation","keywords":["SegmentSkin","阿里云分割抠图 皮肤分割","image segmentation","background removal","cutout","matting","mask generation","foreground extraction","segment","skin"],"useCases":["segmenting skin regions in an image","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"tags":["computer-vision","image-segmentation","background-removal"],"method":"POST","endpoint":"/api/tools/skin-segmentation","legacyEndpoint":"/api/tools/aliyun-imageseg-segment-skin","endpointAliases":["/api/tools/skin-segmentation","/api/tools/aliyun-imageseg-segment-skin"],"inputTypes":["object","string","uri"],"outputTypes":["object","string"],"inputSchema":{"description":"Use Alibaba Cloud RPC parameter names exactly, for example ImageURL, ImageUrl, Url, URL, JobId, or Tasks depending on the service.","properties":{"URL":{"description":"Public http or https image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"}},"required":["URL"],"type":"object"},"outputSchema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","data"],"type":"object"},"exampleRequest":{"URL":"https://example.com/image.jpg"},"exampleResponse":{"code":"200","content":"","data":{"Action":"SegmentSkin","Result":"example result from Alibaba Cloud imageseg"},"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:30Z","healthLatencyMs":93,"successRate":0,"callCount":1,"executionCount":1,"successCount":0,"errorCount":1,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:06:27Z"},"discovery":{"toolName":"skin_segmentation","searchText":"skin-segmentation Segment Skin Image Segmentation Use this visual AI API when the task needs segmenting skin regions in an image. Send the schema keys exactly as listed (URL); required parameters: URL. Use this visual AI API when the task needs segmenting skin regions in an image. Send the schema keys exactly as listed (URL); required parameters: URL. image-segmentation object string uri object string computer-vision image-segmentation background-removal SegmentSkin 阿里云分割抠图 皮肤分割 image segmentation background removal cutout matting mask generation foreground extraction segment skin segmenting skin regions in an image Call one focused visual AI capability directly with JSON inputs Use public image or video URLs and structured parameters to get machine-readable results Pass parameter names exactly as listed in the input schema Only public http or https URLs and JSON/base64 text parameters are supported in this adapter Binary file upload is not exposed by this Server402 adapter Provider credentials and upstream permissions must be configured on the server /api/tools/skin-segmentation","aliases":["Segment Skin Image Segmentation","image-segmentation","computer-vision","background-removal","SegmentSkin","阿里云分割抠图 皮肤分割","image segmentation","background removal","cutout","matting","mask generation","foreground extraction","segment","skin","skin-segmentation","skin_segmentation","/api/tools/skin-segmentation"],"localeHints":["en","zh"],"useCases":["segmenting skin regions in an image","Call one focused visual AI capability directly with JSON inputs","Use public image or video URLs and structured parameters to get machine-readable results"],"limitations":["Pass parameter names exactly as listed in the input schema","Only public http or https URLs and JSON/base64 text parameters are supported in this adapter","Binary file upload is not exposed by this Server402 adapter","Provider credentials and upstream permissions must be configured on the server"],"paymentFlow":{"type":"http-402","createPayment":{"method":"POST","url":"/api/payments","bodySchema":{"properties":{"providerId":{"type":"string"},"serviceId":{"description":"Use the canonical service id from the catalog. Legacy internal ids remain accepted for backward compatibility.","type":"string"}},"required":["serviceId"],"type":"object"},"responseSchema":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"X-Payment-Required":"true","X-Payment-Token":"payment.token"},"bodySchema":{"properties":{"error":{"type":"string"},"payment":{"properties":{"amountCents":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"required":["error","payment"],"type":"object"}},"retry":{"when":"Retry after payment.status is paid and the token has remaining calls.","http":["Call POST /api/payments with serviceId to create a payment if the first service call returned 402.","Complete or verify payment using GET /api/payments/{paymentId}.","Retry the original /api/tools/* request with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Complete or verify payment using the returned payment.paymentId.","Call the same MCP tool again with paymentToken set to payment.token."],"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}},"paymentHint":"Create a payment with POST /api/payments using serviceId=\"skin-segmentation\", 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":["sky-replacement","image-segmentation-job-result","face-segmentation-parsing"],"requiredContext":["public-image-url","aliyun-credentials"],"errorExamples":[{"input":{},"error":"URL is required","statusCode":400},{"input":{"URL":"not-a-url"},"error":"URL must be a valid http or https URL","statusCode":400}],"sla":{"uptime":"99.5%","maxLatency":"5000ms"},"matchScore":44,"matchTerms":["skin"],"why":"Matched skin for \"Segment Skin Image Segmentation\". Price is USD 0.20 per policy aliyun-viapi."},{"id":"face-beauty-retouching","canonicalId":"face-beauty-retouching","internalServiceId":"aliyun-facebody-face-beauty","name":"Face Beauty Face And Body Analysis","description":"Use this visual AI API when the task needs the visual analysis task described by action 对图片中的人脸进行磨皮、美白、锐化等美颜处理。. Send the schema keys exactly as listed (ImageURL, Sharp, Smooth, White); required parameters: ImageURL.","descriptionForModel":"Use this visual AI API when the task needs the visual analysis task described by action 对图片中的人脸进行磨皮、美白、锐化等美颜处理。. Send the schema keys exactly as listed (ImageURL, Sharp, Smooth, White); required parameters: ImageURL.","category":"face-body","keywords":["FaceBeauty","阿里云人脸人体 人脸美颜","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","face","beauty"],"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-beauty-retouching","legacyEndpoint":"/api/tools/aliyun-facebody-face-beauty","endpointAliases":["/api/tools/face-beauty-retouching","/api/tools/aliyun-facebody-face-beauty"],"inputTypes":["object","number","string","uri"],"outputTypes":["object","string"],"inputSchema":{"description":"Use Alibaba Cloud RPC parameter names exactly, for example ImageURL, ImageUrl, Url, URL, JobId, or Tasks depending on the service.","properties":{"ImageURL":{"description":"Public http or https image URL accepted by the Alibaba Cloud API.","format":"uri","type":"string"},"Sharp":{"description":"Alibaba Cloud RPC parameter Sharp.","type":"number"},"Smooth":{"description":"Alibaba Cloud RPC parameter Smooth.","type":"number"},"White":{"description":"Alibaba Cloud RPC parameter White.","type":"number"}},"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":"FaceBeauty","Result":"example result from Alibaba Cloud facebody"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":20,"currency":"USD","policyId":"aliyun-viapi","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":5,"healthStatus":"unhealthy","healthCheckedAt":"2026-06-03T13:57:35Z","healthLatencyMs":80,"successRate":0,"callCount":2,"executionCount":2,"successCount":0,"errorCount":2,"paymentRequireds":0,"lastCallAt":"2026-06-03T12:09:43Z"},"discovery":{"toolName":"face_beauty_retouching","searchText":"face-beauty-retouching Face Beauty Face And Body Analysis Use this visual AI API when the task needs the visual analysis task described by action 对图片中的人脸进行磨皮、美白、锐化等美颜处理。. Send the schema keys exactly as listed (ImageURL, Sharp, Smooth, White); required parameters: ImageURL. Use this visual AI API when the task needs the visual analysis task described by action 对图片中的人脸进行磨皮、美白、锐化等美颜处理。. Send the schema keys exactly as listed (ImageURL, Sharp, Smooth, White); required parameters: ImageURL. face-body object number string uri object string computer-vision face-body face-analysis body-analysis FaceBeauty 阿里云人脸人体 人脸美颜 face detection body detection pose estimation face recognition liveness detection human analysis face beauty 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-beauty-retouching","aliases":["Face Beauty Face And Body Analysis","face-body","computer-vision","face-analysis","body-analysis","FaceBeauty","阿里云人脸人体 人脸美颜","face detection","body detection","pose estimation","face recognition","liveness detection","human analysis","face","beauty","face-beauty-retouching","face_beauty_retouching","/api/tools/face-beauty-retouching"],"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-beauty-retouching\", 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":12,"matchTerms":["retouching"],"why":"Matched retouching for \"Face Beauty 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"]}}}}
