{"schemaVersion":"server402.catalog.search.v1","generatedAt":"2026-07-24T17:42:35Z","generatedAtBeijing":"2026-07-25 01:42:35 CST","timezone":"Asia/Shanghai","query":"ocr-api","expandedTerms":["extract text","image to text","read text","recognize text","text extraction","text recognition","光学字符识别","图片识别文字","提取文字","文字识别","文本识别","识别文字"],"filters":{"limit":10},"total":10,"services":[{"id":"ocr-api","canonicalId":"ocr-api","internalServiceId":"aliyun-ocr-api","name":"OCR API","description":"Recognize printed text from a public image URL. Use this OCR API for generic OCR, receipt OCR, invoice OCR, screenshots, and document images; pass optional language and layout hints when the schema supports them.","descriptionForModel":"Recognize printed text from a public image URL. Use this OCR API for generic OCR, receipt OCR, invoice OCR, screenshots, and document images; pass optional language and layout hints when the schema supports them.","category":"ocr","keywords":["ocr","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","ocr api","general ocr","receipt ocr","invoice ocr","screenshot ocr","document ocr"],"useCases":["Extract text from public image URLs","Read generic OCR, receipt OCR, invoice OCR, screenshots, and document images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR permissions must be configured on the server"],"tags":["ocr","image","text-extraction","document-processing","ocr api","general ocr","receipt ocr","invoice ocr","screenshot ocr","document ocr","text recognition","image text extraction"],"method":"POST","endpoint":"/api/tools/ocr-api","legacyEndpoint":"/api/tools/aliyun-ocr-api","endpointAliases":["/api/tools/ocr-api","/api/tools/aliyun-ocr-api"],"inputTypes":["object","boolean","string","uri","array"],"outputTypes":["object","string"],"inputSchema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"languages":{"items":{"type":"string"},"type":"array"},"needRotate":{"type":"boolean"},"needSortPage":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"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","content","data"],"type":"object"},"exampleRequest":{"imageUrl":"https://tesseract.projectnaptha.com/img/eng_bw.png","languages":["eng","chn"],"needRotate":false,"needSortPage":false,"outputCharInfo":false,"outputTable":false},"exampleResponse":{"code":"200","content":"PACKING Shipper/Export Invoice No \u0026 Date","data":{"content":"PACKING Shipper/Export Invoice No \u0026 Date"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":42,"healthStatus":"","latencyMs":26,"successRate":1,"callCount":2,"executionCount":2,"successCount":2,"errorCount":0,"paymentRequireds":0,"lastCallAt":"2026-07-24T17:40:20Z"},"discovery":{"toolName":"ocr_api","searchText":"ocr-api OCR API Recognize printed text from a public image URL. Use this OCR API for generic OCR, receipt OCR, invoice OCR, screenshots, and document images; pass optional language and layout hints when the schema supports them. Recognize printed text from a public image URL. Use this OCR API for generic OCR, receipt OCR, invoice OCR, screenshots, and document images; pass optional language and layout hints when the schema supports them. ocr object boolean string uri array object string ocr image text-extraction document-processing ocr api general ocr receipt ocr invoice ocr screenshot ocr document ocr text recognition image text extraction ocr text recognition image text extraction document OCR screenshot OCR receipt OCR invoice OCR bill OCR form OCR extract text from image recognize text ocr api general ocr receipt ocr invoice ocr screenshot ocr document ocr Extract text from public image URLs Read generic OCR, receipt OCR, invoice OCR, screenshots, and document images Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON Only public http or https image URLs are supported in this adapter Image binary upload is not exposed by this Server402 adapter Provider credentials and upstream OCR permissions must be configured on the server /api/tools/ocr-api","aliases":["OCR API","ocr","image","text-extraction","document-processing","ocr api","general ocr","receipt ocr","invoice ocr","screenshot ocr","document ocr","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","ocr-api","ocr_api","/api/tools/ocr-api"],"localeHints":["en"],"useCases":["Extract text from public image URLs","Read generic OCR, receipt OCR, invoice OCR, screenshots, and document images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR 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"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}},"paymentHint":"Call POST /api/tools/ocr-api once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"ocr-api\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1500ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["multilingual-ocr","english-ocr","japanese-ocr"],"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":236,"matchTerms":["ocr api","ocr","extract text","recognize text","text extraction","text recognition"],"why":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"OCR API\". Price is USD 0.01 per policy ocr-api.","whyMatched":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"OCR API\". Price is USD 0.01 per policy ocr-api."},{"id":"korean-ocr","canonicalId":"korean-ocr","internalServiceId":"aliyun-ocr-korean","name":"Korean OCR","description":"Recognize printed text from a public image URL. Use this OCR API for Korean document images; pass optional language and layout hints when the schema supports them.","descriptionForModel":"Recognize printed text from a public image URL. Use this OCR API for Korean document images; pass optional language and layout hints when the schema supports them.","category":"ocr","keywords":["ocr","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","korean","kor","韩语","韩文"],"useCases":["Extract text from public image URLs","Read Korean document images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR permissions must be configured on the server"],"tags":["ocr","image","text-extraction","document-processing","korean","kor","韩语","韩文"],"method":"POST","endpoint":"/api/tools/korean-ocr","legacyEndpoint":"/api/tools/aliyun-ocr-korean","endpointAliases":["/api/tools/korean-ocr","/api/tools/aliyun-ocr-korean"],"inputTypes":["object","string","uri","boolean"],"outputTypes":["object","string"],"inputSchema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"needRotate":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"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","content","data"],"type":"object"},"exampleRequest":{"imageUrl":"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241223/dgzqnh/%E9%9F%A9%E8%AF%AD%E8%AF%86%E5%88%AB.png","needRotate":false,"outputCharInfo":false,"outputTable":false},"exampleResponse":{"code":"200","content":"등록되었음을 증명합니다","data":{"content":"등록되었음을 증명합니다"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":92,"healthStatus":"healthy","healthCheckedAt":"2026-06-03T13:57:08Z","healthLatencyMs":1292,"latencyMs":11,"successRate":1,"callCount":2,"executionCount":2,"successCount":2,"errorCount":0,"paymentRequireds":0,"lastCallAt":"2026-07-23T23:34:46Z"},"discovery":{"toolName":"korean_ocr","searchText":"korean-ocr Korean OCR Recognize printed text from a public image URL. Use this OCR API for Korean document images; pass optional language and layout hints when the schema supports them. Recognize printed text from a public image URL. Use this OCR API for Korean document images; pass optional language and layout hints when the schema supports them. ocr object string uri boolean object string ocr image text-extraction document-processing korean kor 韩语 韩文 ocr text recognition image text extraction document OCR screenshot OCR receipt OCR invoice OCR bill OCR form OCR extract text from image recognize text korean kor 韩语 韩文 Extract text from public image URLs Read Korean document images Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON Only public http or https image URLs are supported in this adapter Image binary upload is not exposed by this Server402 adapter Provider credentials and upstream OCR permissions must be configured on the server /api/tools/korean-ocr","aliases":["Korean OCR","ocr","image","text-extraction","document-processing","korean","kor","韩语","韩文","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","korean-ocr","korean_ocr","/api/tools/korean-ocr"],"localeHints":["en","zh"],"useCases":["Extract text from public image URLs","Read Korean document images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR 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"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}},"paymentHint":"Call POST /api/tools/korean-ocr once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"korean-ocr\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1500ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["multilingual-ocr","english-ocr","japanese-ocr"],"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":117,"matchTerms":["ocr api","ocr","extract text","recognize text","text extraction","text recognition"],"why":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"Korean OCR\". Price is USD 0.01 per policy ocr-api.","whyMatched":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"Korean OCR\". Price is USD 0.01 per policy ocr-api."},{"id":"latin-script-ocr","canonicalId":"latin-script-ocr","internalServiceId":"aliyun-ocr-latin","name":"Latin-script OCR","description":"Recognize printed text from a public image URL. Use this OCR API for Latin-script document images; pass optional language and layout hints when the schema supports them.","descriptionForModel":"Recognize printed text from a public image URL. Use this OCR API for Latin-script document images; pass optional language and layout hints when the schema supports them.","category":"ocr","keywords":["ocr","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","latin","latn","拉丁语","拉丁语系"],"useCases":["Extract text from public image URLs","Read Latin-script document images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR permissions must be configured on the server"],"tags":["ocr","image","text-extraction","document-processing","latin","latn","拉丁语","拉丁语系"],"method":"POST","endpoint":"/api/tools/latin-script-ocr","legacyEndpoint":"/api/tools/aliyun-ocr-latin","endpointAliases":["/api/tools/latin-script-ocr","/api/tools/aliyun-ocr-latin"],"inputTypes":["object","boolean","string","uri"],"outputTypes":["object","string"],"inputSchema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"needRotate":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"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","content","data"],"type":"object"},"exampleRequest":{"imageUrl":"https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/9788868261/p303424.jpg","needRotate":false,"outputCharInfo":false,"outputTable":false},"exampleResponse":{"code":"200","content":"Lorem ipsum","data":{"content":"Lorem ipsum"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":92,"healthStatus":"healthy","healthCheckedAt":"2026-06-03T13:57:12Z","healthLatencyMs":1204,"latencyMs":11,"successRate":1,"callCount":2,"executionCount":2,"successCount":2,"errorCount":0,"paymentRequireds":0,"lastCallAt":"2026-07-23T23:34:55Z"},"discovery":{"toolName":"latin_script_ocr","searchText":"latin-script-ocr Latin-script OCR Recognize printed text from a public image URL. Use this OCR API for Latin-script document images; pass optional language and layout hints when the schema supports them. Recognize printed text from a public image URL. Use this OCR API for Latin-script document images; pass optional language and layout hints when the schema supports them. ocr object boolean string uri object string ocr image text-extraction document-processing latin latn 拉丁语 拉丁语系 ocr text recognition image text extraction document OCR screenshot OCR receipt OCR invoice OCR bill OCR form OCR extract text from image recognize text latin latn 拉丁语 拉丁语系 Extract text from public image URLs Read Latin-script document images Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON Only public http or https image URLs are supported in this adapter Image binary upload is not exposed by this Server402 adapter Provider credentials and upstream OCR permissions must be configured on the server /api/tools/latin-script-ocr","aliases":["Latin-script OCR","ocr","image","text-extraction","document-processing","latin","latn","拉丁语","拉丁语系","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","latin-script-ocr","latin_script_ocr","/api/tools/latin-script-ocr"],"localeHints":["en","zh"],"useCases":["Extract text from public image URLs","Read Latin-script document images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR 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"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}},"paymentHint":"Call POST /api/tools/latin-script-ocr once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"latin-script-ocr\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1500ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["multilingual-ocr","english-ocr","japanese-ocr"],"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":117,"matchTerms":["ocr api","ocr","extract text","recognize text","text extraction","text recognition"],"why":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"Latin-script OCR\". Price is USD 0.01 per policy ocr-api.","whyMatched":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"Latin-script OCR\". Price is USD 0.01 per policy ocr-api."},{"id":"japanese-ocr","canonicalId":"japanese-ocr","internalServiceId":"aliyun-ocr-japanese","name":"Japanese OCR","description":"Recognize printed text from a public image URL. Use this OCR API for Japanese document images; pass optional language and layout hints when the schema supports them.","descriptionForModel":"Recognize printed text from a public image URL. Use this OCR API for Japanese document images; pass optional language and layout hints when the schema supports them.","category":"ocr","keywords":["ocr","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","japanese","jpn","日语","日文"],"useCases":["Extract text from public image URLs","Read Japanese document images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR permissions must be configured on the server"],"tags":["ocr","image","text-extraction","document-processing","japanese","jpn","日语","日文"],"method":"POST","endpoint":"/api/tools/japanese-ocr","legacyEndpoint":"/api/tools/aliyun-ocr-japanese","endpointAliases":["/api/tools/japanese-ocr","/api/tools/aliyun-ocr-japanese"],"inputTypes":["object","string","uri","boolean"],"outputTypes":["object","string"],"inputSchema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"needRotate":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"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","content","data"],"type":"object"},"exampleRequest":{"imageUrl":"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241223/igoptb/%E6%97%A5%E8%AF%AD%E8%AF%86%E5%88%AB.png","needRotate":false,"outputCharInfo":false,"outputTable":false},"exampleResponse":{"code":"200","content":"いくらですか","data":{"content":"いくらですか"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":91,"healthStatus":"healthy","healthCheckedAt":"2026-06-03T13:57:07Z","healthLatencyMs":713,"latencyMs":12,"successRate":1,"callCount":1,"executionCount":1,"successCount":1,"errorCount":0,"paymentRequireds":0,"lastCallAt":"2026-07-23T23:34:59Z"},"discovery":{"toolName":"japanese_ocr","searchText":"japanese-ocr Japanese OCR Recognize printed text from a public image URL. Use this OCR API for Japanese document images; pass optional language and layout hints when the schema supports them. Recognize printed text from a public image URL. Use this OCR API for Japanese document images; pass optional language and layout hints when the schema supports them. ocr object string uri boolean object string ocr image text-extraction document-processing japanese jpn 日语 日文 ocr text recognition image text extraction document OCR screenshot OCR receipt OCR invoice OCR bill OCR form OCR extract text from image recognize text japanese jpn 日语 日文 Extract text from public image URLs Read Japanese document images Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON Only public http or https image URLs are supported in this adapter Image binary upload is not exposed by this Server402 adapter Provider credentials and upstream OCR permissions must be configured on the server /api/tools/japanese-ocr","aliases":["Japanese OCR","ocr","image","text-extraction","document-processing","japanese","jpn","日语","日文","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","japanese-ocr","japanese_ocr","/api/tools/japanese-ocr"],"localeHints":["en","zh"],"useCases":["Extract text from public image URLs","Read Japanese document images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR 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"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}},"paymentHint":"Call POST /api/tools/japanese-ocr once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"japanese-ocr\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1500ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["multilingual-ocr","english-ocr","korean-ocr"],"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":117,"matchTerms":["ocr api","ocr","extract text","recognize text","text extraction","text recognition"],"why":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"Japanese OCR\". Price is USD 0.01 per policy ocr-api.","whyMatched":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"Japanese OCR\". Price is USD 0.01 per policy ocr-api."},{"id":"english-ocr","canonicalId":"english-ocr","internalServiceId":"aliyun-ocr-english","name":"English OCR","description":"Recognize printed text from a public image URL. Use this OCR API for English document images; pass optional language and layout hints when the schema supports them.","descriptionForModel":"Recognize printed text from a public image URL. Use this OCR API for English document images; pass optional language and layout hints when the schema supports them.","category":"ocr","keywords":["ocr","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","english","eng","英语","英文"],"useCases":["Extract text from public image URLs","Read English document images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR permissions must be configured on the server"],"tags":["ocr","image","text-extraction","document-processing","english","eng","英语","英文"],"method":"POST","endpoint":"/api/tools/english-ocr","legacyEndpoint":"/api/tools/aliyun-ocr-english","endpointAliases":["/api/tools/english-ocr","/api/tools/aliyun-ocr-english"],"inputTypes":["object","boolean","string","uri"],"outputTypes":["object","string"],"inputSchema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"needRotate":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"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","content","data"],"type":"object"},"exampleRequest":{"imageUrl":"https://img.alicdn.com/tfs/TB1K2a4NVY7gK0jSZKzXXaikpXa-2060-800.jpg","needRotate":false,"outputCharInfo":false,"outputTable":false},"exampleResponse":{"code":"200","content":"Dear Ms Jenkins","data":{"content":"Dear Ms Jenkins"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":91,"healthStatus":"healthy","healthCheckedAt":"2026-06-03T13:57:05Z","healthLatencyMs":1489,"latencyMs":16,"successRate":1,"callCount":1,"executionCount":1,"successCount":1,"errorCount":0,"paymentRequireds":0,"lastCallAt":"2026-07-23T23:34:45Z"},"discovery":{"toolName":"english_ocr","searchText":"english-ocr English OCR Recognize printed text from a public image URL. Use this OCR API for English document images; pass optional language and layout hints when the schema supports them. Recognize printed text from a public image URL. Use this OCR API for English document images; pass optional language and layout hints when the schema supports them. ocr object boolean string uri object string ocr image text-extraction document-processing english eng 英语 英文 ocr text recognition image text extraction document OCR screenshot OCR receipt OCR invoice OCR bill OCR form OCR extract text from image recognize text english eng 英语 英文 Extract text from public image URLs Read English document images Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON Only public http or https image URLs are supported in this adapter Image binary upload is not exposed by this Server402 adapter Provider credentials and upstream OCR permissions must be configured on the server /api/tools/english-ocr","aliases":["English OCR","ocr","image","text-extraction","document-processing","english","eng","英语","英文","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","english-ocr","english_ocr","/api/tools/english-ocr"],"localeHints":["en","zh"],"useCases":["Extract text from public image URLs","Read English document images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR 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"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}},"paymentHint":"Call POST /api/tools/english-ocr once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"english-ocr\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1500ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["multilingual-ocr","japanese-ocr","korean-ocr"],"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":117,"matchTerms":["ocr api","ocr","extract text","recognize text","text extraction","text recognition"],"why":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"English OCR\". Price is USD 0.01 per policy ocr-api.","whyMatched":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"English OCR\". Price is USD 0.01 per policy ocr-api."},{"id":"multilingual-ocr","canonicalId":"multilingual-ocr","internalServiceId":"aliyun-multilang-ocr","name":"Multilingual OCR","description":"Recognize printed text from a public image URL. Use this OCR API for mixed or unknown-language images; pass optional language and layout hints when the schema supports them.","descriptionForModel":"Recognize printed text from a public image URL. Use this OCR API for mixed or unknown-language images; pass optional language and layout hints when the schema supports them.","category":"ocr","keywords":["ocr","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","multilingual","multi language","auto language","通用多语言","小语种"],"useCases":["Extract text from public image URLs","Read mixed or unknown-language images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR permissions must be configured on the server"],"tags":["ocr","image","text-extraction","document-processing","multilingual","multi language","auto language","通用多语言","小语种"],"method":"POST","endpoint":"/api/tools/multilingual-ocr","legacyEndpoint":"/api/tools/aliyun-multilang-ocr","endpointAliases":["/api/tools/multilingual-ocr","/api/tools/aliyun-multilang-ocr"],"inputTypes":["object","boolean","string","uri","array"],"outputTypes":["object","string"],"inputSchema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"languages":{"items":{"type":"string"},"type":"array"},"needRotate":{"type":"boolean"},"needSortPage":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"type":"boolean"}},"required":["imageUrl","languages"],"type":"object"},"outputSchema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","content","data"],"type":"object"},"exampleRequest":{"imageUrl":"https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg","languages":["eng","chn"],"needRotate":false,"needSortPage":false,"outputCharInfo":false,"outputTable":false},"exampleResponse":{"code":"200","content":"PACKING Shipper/Export Invoice No \u0026 Date","data":{"content":"PACKING Shipper/Export Invoice No \u0026 Date"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":91,"healthStatus":"healthy","healthCheckedAt":"2026-05-29T09:54:57Z","healthLatencyMs":1872,"latencyMs":20,"successRate":1,"callCount":1,"executionCount":1,"successCount":1,"errorCount":0,"paymentRequireds":0,"lastCallAt":"2026-07-23T22:22:10Z"},"discovery":{"toolName":"multilingual_ocr","searchText":"multilingual-ocr Multilingual OCR Recognize printed text from a public image URL. Use this OCR API for mixed or unknown-language images; pass optional language and layout hints when the schema supports them. Recognize printed text from a public image URL. Use this OCR API for mixed or unknown-language images; pass optional language and layout hints when the schema supports them. ocr object boolean string uri array object string ocr image text-extraction document-processing multilingual multi language auto language 通用多语言 小语种 ocr text recognition image text extraction document OCR screenshot OCR receipt OCR invoice OCR bill OCR form OCR extract text from image recognize text multilingual multi language auto language 通用多语言 小语种 Extract text from public image URLs Read mixed or unknown-language images Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON Only public http or https image URLs are supported in this adapter Image binary upload is not exposed by this Server402 adapter Provider credentials and upstream OCR permissions must be configured on the server /api/tools/multilingual-ocr","aliases":["Multilingual OCR","ocr","image","text-extraction","document-processing","multilingual","multi language","auto language","通用多语言","小语种","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","multilingual-ocr","multilingual_ocr","/api/tools/multilingual-ocr"],"localeHints":["en","zh"],"useCases":["Extract text from public image URLs","Read mixed or unknown-language images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR 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"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}},"paymentHint":"Call POST /api/tools/multilingual-ocr once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"multilingual-ocr\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1500ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["english-ocr","japanese-ocr","korean-ocr"],"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":117,"matchTerms":["ocr api","ocr","extract text","recognize text","text extraction","text recognition"],"why":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"Multilingual OCR\". Price is USD 0.01 per policy ocr-api.","whyMatched":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"Multilingual OCR\". Price is USD 0.01 per policy ocr-api."},{"id":"russian-ocr","canonicalId":"russian-ocr","internalServiceId":"aliyun-ocr-russian","name":"Russian OCR","description":"Recognize printed text from a public image URL. Use this OCR API for Russian document images; pass optional language and layout hints when the schema supports them.","descriptionForModel":"Recognize printed text from a public image URL. Use this OCR API for Russian document images; pass optional language and layout hints when the schema supports them.","category":"ocr","keywords":["ocr","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","russian","rus","俄语","俄文"],"useCases":["Extract text from public image URLs","Read Russian document images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR permissions must be configured on the server"],"tags":["ocr","image","text-extraction","document-processing","russian","rus","俄语","俄文"],"method":"POST","endpoint":"/api/tools/russian-ocr","legacyEndpoint":"/api/tools/aliyun-ocr-russian","endpointAliases":["/api/tools/russian-ocr","/api/tools/aliyun-ocr-russian"],"inputTypes":["object","boolean","string","uri"],"outputTypes":["object","string"],"inputSchema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"needRotate":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"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","content","data"],"type":"object"},"exampleRequest":{"imageUrl":"https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/9788868261/p303421.jpg","needRotate":false,"outputCharInfo":false,"outputTable":false},"exampleResponse":{"code":"200","content":"пример текста","data":{"content":"пример текста"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":91,"healthStatus":"healthy","healthCheckedAt":"2026-06-03T13:57:11Z","healthLatencyMs":1074,"latencyMs":30,"successRate":1,"callCount":1,"executionCount":1,"successCount":1,"errorCount":0,"paymentRequireds":0,"lastCallAt":"2026-07-23T23:34:54Z"},"discovery":{"toolName":"russian_ocr","searchText":"russian-ocr Russian OCR Recognize printed text from a public image URL. Use this OCR API for Russian document images; pass optional language and layout hints when the schema supports them. Recognize printed text from a public image URL. Use this OCR API for Russian document images; pass optional language and layout hints when the schema supports them. ocr object boolean string uri object string ocr image text-extraction document-processing russian rus 俄语 俄文 ocr text recognition image text extraction document OCR screenshot OCR receipt OCR invoice OCR bill OCR form OCR extract text from image recognize text russian rus 俄语 俄文 Extract text from public image URLs Read Russian document images Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON Only public http or https image URLs are supported in this adapter Image binary upload is not exposed by this Server402 adapter Provider credentials and upstream OCR permissions must be configured on the server /api/tools/russian-ocr","aliases":["Russian OCR","ocr","image","text-extraction","document-processing","russian","rus","俄语","俄文","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","russian-ocr","russian_ocr","/api/tools/russian-ocr"],"localeHints":["en","zh"],"useCases":["Extract text from public image URLs","Read Russian document images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR 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"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}},"paymentHint":"Call POST /api/tools/russian-ocr once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"russian-ocr\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1500ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["multilingual-ocr","english-ocr","japanese-ocr"],"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":117,"matchTerms":["ocr api","ocr","extract text","recognize text","text extraction","text recognition"],"why":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"Russian OCR\". Price is USD 0.01 per policy ocr-api.","whyMatched":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"Russian OCR\". Price is USD 0.01 per policy ocr-api."},{"id":"thai-ocr","canonicalId":"thai-ocr","internalServiceId":"aliyun-ocr-thai","name":"Thai OCR","description":"Recognize printed text from a public image URL. Use this OCR API for Thai document images; pass optional language and layout hints when the schema supports them.","descriptionForModel":"Recognize printed text from a public image URL. Use this OCR API for Thai document images; pass optional language and layout hints when the schema supports them.","category":"ocr","keywords":["ocr","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","thai","tha","泰语","泰文"],"useCases":["Extract text from public image URLs","Read Thai document images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR permissions must be configured on the server"],"tags":["ocr","image","text-extraction","document-processing","thai","tha","泰语","泰文"],"method":"POST","endpoint":"/api/tools/thai-ocr","legacyEndpoint":"/api/tools/aliyun-ocr-thai","endpointAliases":["/api/tools/thai-ocr","/api/tools/aliyun-ocr-thai"],"inputTypes":["object","string","uri","boolean"],"outputTypes":["object","string"],"inputSchema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"needRotate":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"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","content","data"],"type":"object"},"exampleRequest":{"imageUrl":"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241218/utgxmk/%E6%B3%B0%E8%AF%AD%E8%AF%86%E5%88%AB.png","needRotate":false,"outputCharInfo":false,"outputTable":false},"exampleResponse":{"code":"200","content":"เริมเห็นผิวที่เรียบเบียน","data":{"content":"เริมเห็นผิวที่เรียบเบียน"},"message":"success","requestId":"example-request-id"},"pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":91,"healthStatus":"healthy","healthCheckedAt":"2026-06-03T13:57:09Z","healthLatencyMs":817,"latencyMs":30,"successRate":1,"callCount":1,"executionCount":1,"successCount":1,"errorCount":0,"paymentRequireds":0,"lastCallAt":"2026-07-23T23:34:43Z"},"discovery":{"toolName":"thai_ocr","searchText":"thai-ocr Thai OCR Recognize printed text from a public image URL. Use this OCR API for Thai document images; pass optional language and layout hints when the schema supports them. Recognize printed text from a public image URL. Use this OCR API for Thai document images; pass optional language and layout hints when the schema supports them. ocr object string uri boolean object string ocr image text-extraction document-processing thai tha 泰语 泰文 ocr text recognition image text extraction document OCR screenshot OCR receipt OCR invoice OCR bill OCR form OCR extract text from image recognize text thai tha 泰语 泰文 Extract text from public image URLs Read Thai document images Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON Only public http or https image URLs are supported in this adapter Image binary upload is not exposed by this Server402 adapter Provider credentials and upstream OCR permissions must be configured on the server /api/tools/thai-ocr","aliases":["Thai OCR","ocr","image","text-extraction","document-processing","thai","tha","泰语","泰文","text recognition","image text extraction","document OCR","screenshot OCR","receipt OCR","invoice OCR","bill OCR","form OCR","extract text from image","recognize text","thai-ocr","thai_ocr","/api/tools/thai-ocr"],"localeHints":["en","zh"],"useCases":["Extract text from public image URLs","Read Thai document images","Convert scanned documents, screenshots, receipts, forms, and image text into structured JSON"],"limitations":["Only public http or https image URLs are supported in this adapter","Image binary upload is not exposed by this Server402 adapter","Provider credentials and upstream OCR 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"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}},"paymentHint":"Call POST /api/tools/thai-ocr once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"thai-ocr\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"moderate","typicalResponseTime":"1500ms","cacheable":true,"idempotent":true,"outputFormat":"json","relatedServices":["multilingual-ocr","english-ocr","japanese-ocr"],"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":117,"matchTerms":["ocr api","ocr","extract text","recognize text","text extraction","text recognition"],"why":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"Thai OCR\". Price is USD 0.01 per policy ocr-api.","whyMatched":"Matched ocr api, ocr, extract text, recognize text, text extraction, text recognition for \"Thai OCR\". Price is USD 0.01 per policy ocr-api."},{"id":"pdf-to-markdown","canonicalId":"pdf-to-markdown","internalServiceId":"aliyun-pdf-to-markdown","name":"PDF to Markdown","description":"Convert a public http or https pdfUrl into Markdown from the first OCR-rendered pages. The service renders up to three pages with pdftoppm, uploads page images through the configured OSS image proxy, runs multilingual OCR, and returns combined markdown plus per-page OCR content. Unpaid calls return HTTP 402 before provider execution.","descriptionForModel":"Convert a public http or https pdfUrl into Markdown from the first OCR-rendered pages. The service renders up to three pages with pdftoppm, uploads page images through the configured OSS image proxy, runs multilingual OCR, and returns combined markdown plus per-page OCR content. Unpaid calls return HTTP 402 before provider execution.","category":"file-processing","keywords":["pdf","pdf to markdown","pdf-to-markdown","pdf ocr","document ocr","document conversion","markdown","ocr","text extraction","file processing"],"useCases":["Convert a public PDF into machine-readable Markdown for AI workflows","OCR the first pages of a scanned PDF through the multilingual OCR pipeline","Extract page-level text for document intake, search, and summarization"],"limitations":["Requires pdftoppm from Poppler on the API host","Requires a configured OSS image proxy so rendered page images have public URLs","Processes at most the first three pages per request"],"tags":["paid","x402","usdc","base","ocr","pdf-ocr","document-processing","file-processing","pdf-to-markdown","markdown"],"method":"POST","endpoint":"/api/tools/pdf-to-markdown","legacyEndpoint":"/api/tools/aliyun-pdf-to-markdown","endpointAliases":["/api/tools/pdf-to-markdown","/api/tools/aliyun-pdf-to-markdown"],"inputTypes":["object","boolean","string","uri","integer"],"outputTypes":["object","string","integer","array"],"inputSchema":{"additionalProperties":false,"properties":{"dpi":{"default":180,"maximum":240,"minimum":72,"type":"integer"},"language":{"default":"auto","description":"OCR language hint such as auto, eng, or chn.","type":"string"},"maxPages":{"default":3,"maximum":3,"minimum":1,"type":"integer"},"needRotate":{"default":true,"type":"boolean"},"outputTable":{"default":true,"type":"boolean"},"pdfUrl":{"description":"Public http or https PDF URL.","format":"uri","type":"string"}},"required":["pdfUrl"],"type":"object"},"outputSchema":{"properties":{"content":{"type":"string"},"markdown":{"type":"string"},"max_pages":{"type":"integer"},"ocr_service_id":{"type":"string"},"page_count":{"type":"integer"},"pages":{"items":{"type":"object"},"type":"array"},"processed_pages":{"type":"integer"},"renderer":{"type":"string"},"service_id":{"type":"string"},"source_pdf_url":{"type":"string"}},"required":["service_id","markdown","pages","page_count","processed_pages","max_pages"],"type":"object"},"exampleRequest":{"language":"eng","maxPages":3,"needRotate":true,"outputTable":true,"pdfUrl":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},"exampleResponse":{"content":"Dummy PDF file","markdown":"Dummy PDF file","max_pages":3,"ocr_service_id":"multilingual-ocr","page_count":1,"pages":[{"content":"Dummy PDF file","markdown":"\u003c!-- page: 1 --\u003e\n\nDummy PDF file","page":1}],"processed_pages":1,"renderer":"pdftoppm","service_id":"pdf-to-markdown","source_pdf_url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},"pricing":{"amountCents":3,"amountMicros":30000,"currency":"USD","policyId":"pdf-to-markdown-ocr","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":42,"healthStatus":"","latencyMs":12,"successRate":1,"callCount":2,"executionCount":2,"successCount":2,"errorCount":0,"paymentRequireds":0,"lastCallAt":"2026-07-24T17:41:20Z"},"discovery":{"toolName":"pdf_to_markdown","searchText":"pdf-to-markdown PDF to Markdown Convert a public http or https pdfUrl into Markdown from the first OCR-rendered pages. The service renders up to three pages with pdftoppm, uploads page images through the configured OSS image proxy, runs multilingual OCR, and returns combined markdown plus per-page OCR content. Unpaid calls return HTTP 402 before provider execution. Convert a public http or https pdfUrl into Markdown from the first OCR-rendered pages. The service renders up to three pages with pdftoppm, uploads page images through the configured OSS image proxy, runs multilingual OCR, and returns combined markdown plus per-page OCR content. Unpaid calls return HTTP 402 before provider execution. file-processing object boolean string uri integer object string integer array paid x402 usdc base ocr pdf-ocr document-processing file-processing pdf-to-markdown markdown pdf pdf to markdown pdf-to-markdown pdf ocr document ocr document conversion markdown ocr text extraction file processing Convert a public PDF into machine-readable Markdown for AI workflows OCR the first pages of a scanned PDF through the multilingual OCR pipeline Extract page-level text for document intake, search, and summarization Requires pdftoppm from Poppler on the API host Requires a configured OSS image proxy so rendered page images have public URLs Processes at most the first three pages per request /api/tools/pdf-to-markdown","aliases":["PDF to Markdown","file-processing","paid","x402","usdc","base","ocr","pdf-ocr","document-processing","pdf-to-markdown","markdown","pdf","pdf to markdown","pdf ocr","document ocr","document conversion","text extraction","file processing","pdf_to_markdown","/api/tools/pdf-to-markdown"],"localeHints":["en"],"useCases":["Convert a public PDF into machine-readable Markdown for AI workflows","OCR the first pages of a scanned PDF through the multilingual OCR pipeline","Extract page-level text for document intake, search, and summarization"],"limitations":["Requires pdftoppm from Poppler on the API host","Requires a configured OSS image proxy so rendered page images have public URLs","Processes at most the first three pages per request"],"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"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}},"paymentHint":"Call POST /api/tools/pdf-to-markdown once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"pdf-to-markdown\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"complex","typicalResponseTime":"15s","cacheable":false,"idempotent":true,"outputFormat":"json","requiredContext":["public-pdf-url","ocr-credentials","oss-image-proxy","pdftoppm"],"errorExamples":[{"input":{},"error":"pdfUrl is required","statusCode":400},{"input":{"pdfUrl":"not-a-url"},"error":"pdfUrl must be a valid http or https URL","statusCode":400}],"sla":{"uptime":"99.0%","maxLatency":"45000ms"},"matchScore":39,"matchTerms":["ocr","text extraction"],"why":"Matched ocr, text extraction for \"PDF to Markdown\". Price is USD 0.03 per policy pdf-to-markdown-ocr.","whyMatched":"Matched ocr, text extraction for \"PDF to Markdown\". Price is USD 0.03 per policy pdf-to-markdown-ocr."},{"id":"text-to-video","canonicalId":"text-to-video","name":"Text To Video","displayName":"Text to Video AI Generator","description":"Use this paid x402 service whenever the user asks to create, make, generate, synthesize, render, produce, storyboard, or turn text, a script, a scene, a prompt, an idea, a product brief, an ad concept, or Chinese 文生视频/文本生成视频/文字生成视频 into a video. This is the primary text-to-video / prompt-to-video / AI video generator endpoint. It creates an async video task and returns task_id; poll text-to-video-result for video_url. Do not use video analysis, OCR, image tagging, or text generation services for text-to-video generation.","descriptionForModel":"Use this paid x402 service whenever the user asks to create, make, generate, synthesize, render, produce, storyboard, or turn text, a script, a scene, a prompt, an idea, a product brief, an ad concept, or Chinese 文生视频/文本生成视频/文字生成视频 into a video. This is the primary text-to-video / prompt-to-video / AI video generator endpoint. It creates an async video task and returns task_id; poll text-to-video-result for video_url. Do not use video analysis, OCR, image tagging, or text generation services for text-to-video generation.","category":"video-generation","keywords":["text-to-video","ai text to video","text to video","text2video","t2v","prompt to video","prompt-to-video","prompt2video","script to video","story to video","scene to video","idea to video","generate video","generate a video","create video","create a video","make video","make a video","render video","synthesize video","video synthesis","video generation","video generator","ai video","ai video generator","ai generated video","generative video","short video generator","social video generator","marketing video generator","ad video generator","product video generator","ecommerce video","explainer video","cinematic video","storyboard video","b-roll video","wan","wan2.7","wan 2.7","wanx","tongyi wanxiang","dashscope","bailian","model studio","文生视频","文本生成视频","文字生成视频","文字转视频","文本转视频","提示词生成视频","提示词转视频","脚本生成视频","故事生成视频","场景生成视频","生成视频","创建视频","制作视频","视频生成","AI视频","AI视频生成","AI生成视频","视频生成器","短视频生成","广告视频生成","营销视频生成","商品视频生成","产品视频生成","电商视频","分镜视频","影视级视频","通义万相","万相","百炼","百炼文生视频"],"useCases":["Generate a short video from a natural-language text prompt, scene description, script, storyboard, product brief, or ad concept.","Create AI video, marketing clips, social video, ecommerce product demos, cinematic b-roll, training clips, explainer scenes, and storyboards from prompt text.","Call this service first for text-to-video, then call text-to-video-result with the returned task_id to retrieve status and video_url."],"limitations":["Creates an asynchronous provider task; call text-to-video-result to poll for completion and the temporary video_url.","Requires BAILIAN_API_KEY or DASHSCOPE_API_KEY on the server.","Generated video URLs are provider-hosted temporary links and should be downloaded or copied to persistent storage if needed.","Input and output are subject to provider content moderation."],"tags":["paid","x402","usdc","base","ai-video","video-generation","text-to-video","prompt-to-video","t2v","wan","dashscope","bailian","semantic:text-to-video","intent:generate-video","output:task-id","output:video-url"],"method":"POST","endpoint":"/api/tools/text-to-video","endpointAliases":["/api/tools/ai-text-to-video","/api/tools/ai-video-generator","/api/tools/text-to-video-api","/api/tools/prompt-to-video","/api/tools/video-generation","/api/tools/video-generator","/api/tools/create-video","/api/tools/generate-video","/api/tools/wan-text-to-video","/api/tools/bailian-text-to-video","/api/tools/text-to-video"],"inputTypes":["object","integer","string","boolean"],"outputTypes":["object","string"],"inputSchema":{"additionalProperties":true,"properties":{"aspect_ratio":{"description":"Alias for ratio.","type":"string"},"duration":{"default":5,"description":"Requested video duration in seconds. Defaults to 5.","type":"integer"},"model":{"default":"wan2.7-t2v-2026-06-12","type":"string"},"negativePrompt":{"description":"Optional negative prompt alias.","type":"string"},"negative_prompt":{"description":"Optional negative prompt.","type":"string"},"parameters":{"additionalProperties":true,"description":"Optional provider parameters passed through under DashScope parameters.","type":"object"},"prompt":{"description":"Required text prompt, scene description, script, storyboard, product brief, or ad concept to turn into video.","type":"string"},"promptExtend":{"description":"Alias for prompt_extend.","type":"boolean"},"prompt_extend":{"default":true,"description":"Whether to let the model enrich the prompt.","type":"boolean"},"ratio":{"default":"16:9","description":"Aspect ratio such as 16:9, 9:16, or 1:1.","type":"string"},"resolution":{"default":"720P","description":"Resolution tier such as 480P, 720P, or 1080P.","type":"string"},"seed":{"description":"Optional deterministic seed.","type":"integer"},"size":{"description":"Legacy model output size such as 1280*720. Wan 2.7 generally uses resolution plus ratio.","type":"string"},"watermark":{"default":false,"description":"Whether to add provider watermark when supported.","type":"boolean"}},"required":["prompt"],"type":"object"},"outputSchema":{"additionalProperties":true,"properties":{"model":{"type":"string"},"poll":{"additionalProperties":true,"type":"object"},"provider":{"type":"string"},"result":{"additionalProperties":true,"type":"object"},"result_endpoint":{"type":"string"},"service_id":{"type":"string"},"status":{"type":"string"},"task_id":{"type":"string"},"task_status":{"type":"string"},"upstream_request_id":{"type":"string"},"usage":{"additionalProperties":true,"type":"object"},"video_url":{"type":"string"}},"required":["status","service_id","task_id","task_status"],"type":"object"},"exampleRequest":{"duration":5,"prompt":"Create a 5 second cinematic product video of a matte black smart watch on a clean desk, slow camera push-in, soft morning light.","prompt_extend":true,"ratio":"16:9","resolution":"720P","watermark":false},"exampleResponse":{"model":"wan2.7-t2v-2026-06-12","poll":{"endpoint":"/api/tools/text-to-video-result","method":"POST","request":{"task_id":"0385dc79-5ff8-4d82-bcb6-example"}},"provider":"aliyun-bailian","result_endpoint":"/api/tools/text-to-video-result","service_id":"text-to-video","status":"accepted","task_id":"0385dc79-5ff8-4d82-bcb6-example","task_status":"PENDING","upstream_request_id":"4909100c-7b5a-9f92-bfe5-example"},"pricing":{"amountCents":20,"amountMicros":200000,"currency":"USD","policyId":"bailian-wan-text-to-video","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"payment":{"providerId":"x402-base-usdc","provider":"x402_facilitator"},"quality":{"qualityScore":38,"healthStatus":"","successRate":1,"callCount":0,"executionCount":0,"successCount":0,"errorCount":0,"paymentRequireds":0},"discovery":{"toolName":"text_to_video","searchText":"text-to-video Text To Video Use this paid x402 service whenever the user asks to create, make, generate, synthesize, render, produce, storyboard, or turn text, a script, a scene, a prompt, an idea, a product brief, an ad concept, or Chinese 文生视频/文本生成视频/文字生成视频 into a video. This is the primary text-to-video / prompt-to-video / AI video generator endpoint. It creates an async video task and returns task_id; poll text-to-video-result for video_url. Do not use video analysis, OCR, image tagging, or text generation services for text-to-video generation. Use this paid x402 service whenever the user asks to create, make, generate, synthesize, render, produce, storyboard, or turn text, a script, a scene, a prompt, an idea, a product brief, an ad concept, or Chinese 文生视频/文本生成视频/文字生成视频 into a video. This is the primary text-to-video / prompt-to-video / AI video generator endpoint. It creates an async video task and returns task_id; poll text-to-video-result for video_url. Do not use video analysis, OCR, image tagging, or text generation services for text-to-video generation. video-generation object integer string boolean object string paid x402 usdc base ai-video video-generation text-to-video prompt-to-video t2v wan dashscope bailian semantic:text-to-video intent:generate-video output:task-id output:video-url text-to-video ai text to video text to video text2video t2v prompt to video prompt-to-video prompt2video script to video story to video scene to video idea to video generate video generate a video create video create a video make video make a video render video synthesize video video synthesis video generation video generator ai video ai video generator ai generated video generative video short video generator social video generator marketing video generator ad video generator product video generator ecommerce video explainer video cinematic video storyboard video b-roll video wan wan2.7 wan 2.7 wanx tongyi wanxiang dashscope bailian model studio 文生视频 文本生成视频 文字生成视频 文字转视频 文本转视频 提示词生成视频 提示词转视频 脚本生成视频 故事生成视频 场景生成视频 生成视频 创建视频 制作视频 视频生成 AI视频 AI视频生成 AI生成视频 视频生成器 短视频生成 广告视频生成 营销视频生成 商品视频生成 产品视频生成 电商视频 分镜视频 影视级视频 通义万相 万相 百炼 百炼文生视频 Generate a short video from a natural-language text prompt, scene description, script, storyboard, product brief, or ad concept. Create AI video, marketing clips, social video, ecommerce product demos, cinematic b-roll, training clips, explainer scenes, and storyboards from prompt text. Call this service first for text-to-video, then call text-to-video-result with the returned task_id to retrieve status and video_url. Creates an asynchronous provider task; call text-to-video-result to poll for completion and the temporary video_url. Requires BAILIAN_API_KEY or DASHSCOPE_API_KEY on the server. Generated video URLs are provider-hosted temporary links and should be downloaded or copied to persistent storage if needed. Input and output are subject to provider content moderation. /api/tools/text-to-video","aliases":["Text To Video","video-generation","Text to Video AI Generator","paid","x402","usdc","base","ai-video","text-to-video","prompt-to-video","t2v","wan","dashscope","bailian","semantic:text-to-video","intent:generate-video","output:task-id","output:video-url","ai text to video","text to video","text2video","prompt to video","prompt2video","script to video","story to video","scene to video","idea to video","generate video","generate a video","create video","create a video","make video","make a video","render video","synthesize video","video synthesis","video generation","video generator","ai video","ai video generator","ai generated video","generative video","short video generator","social video generator","marketing video generator","ad video generator","product video generator","ecommerce video","explainer video","cinematic video","storyboard video","b-roll video","wan2.7","wan 2.7","wanx","tongyi wanxiang","model studio","文生视频","文本生成视频","文字生成视频","文字转视频","文本转视频","提示词生成视频","提示词转视频","脚本生成视频","故事生成视频","场景生成视频","生成视频","创建视频","制作视频","视频生成","AI视频","AI视频生成","AI生成视频","视频生成器","短视频生成","广告视频生成","营销视频生成","商品视频生成","产品视频生成","电商视频","分镜视频","影视级视频","通义万相","万相","百炼","百炼文生视频","text_to_video","/api/tools/text-to-video"],"localeHints":["en","zh"],"useCases":["Generate a short video from a natural-language text prompt, scene description, script, storyboard, product brief, or ad concept.","Create AI video, marketing clips, social video, ecommerce product demos, cinematic b-roll, training clips, explainer scenes, and storyboards from prompt text.","Call this service first for text-to-video, then call text-to-video-result with the returned task_id to retrieve status and video_url."],"limitations":["Creates an asynchronous provider task; call text-to-video-result to poll for completion and the temporary video_url.","Requires BAILIAN_API_KEY or DASHSCOPE_API_KEY on the server.","Generated video URLs are provider-hosted temporary links and should be downloaded or copied to persistent storage if needed.","Input and output are subject to provider content moderation."],"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"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}},"paymentHint":"Call POST /api/tools/text-to-video once to receive HTTP 402 with accepts[] requirements, or create a payment with POST /api/payments using serviceId=\"text-to-video\". Pay Base USDC with PAYMENT-SIGNATURE or pay XIAO with X402-Guarantee, then retry the same request.","retryHint":"If the service returns HTTP 402, pay one accepts[] requirement, then retry with PAYMENT-SIGNATURE for Base USDC, X402-Guarantee for Xiao Coin, or X-Payment-Token: payment.token for legacy token flow.","requiredState":"published, enabled"},"complexity":"complex","typicalResponseTime":"1s submit; generation usually completes asynchronously","cacheable":false,"idempotent":false,"outputFormat":"json","relatedServices":["text-to-video-result"],"requiredContext":["prompt","bailian-api-key","dashscope-api-key"],"inputExamples":[{"duration":5,"prompt":"Create a 5 second cinematic product video of a matte black smart watch on a clean desk, slow camera push-in, soft morning light.","prompt_extend":true,"ratio":"16:9","resolution":"720P","watermark":false},{"duration":5,"prompt":"文生视频：生成一段竖屏短视频，画面是咖啡店新品拿铁的广告，镜头从杯口拉近到品牌 logo，温暖自然光。","ratio":"9:16","resolution":"720P"},{"duration":10,"prompt":"Turn this storyboard into video: Shot 1, wide city skyline at dusk. Shot 2, close-up of a delivery robot crossing the street. Shot 3, product reveal on a clean white table.","ratio":"16:9","resolution":"720P"}],"errorExamples":[{"input":{},"error":"prompt is required","statusCode":400}],"sla":{"uptime":"99.0%","maxLatency":"60000ms","rateLimit":"provider async generation queue limits apply"},"matchScore":10,"matchTerms":["ocr"],"why":"Matched ocr for \"Text To Video\". Price is USD 0.2 per policy bailian-wan-text-to-video.","whyMatched":"Matched ocr for \"Text To Video\". Price is USD 0.2 per policy bailian-wan-text-to-video."}],"agents":[{"id":"ocr-api","name":"OCR API","description":"Recognize printed text from a public image URL. Use this OCR API for generic OCR, receipt OCR, invoice OCR, screenshots, and document images; pass optional language and layout hints when the schema supports them.","endpoint":"/api/tools/ocr-api","method":"POST","auth_type":"api_key + x402_facilitator http_402","billing_method":"per_call","pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"languages":{"items":{"type":"string"},"type":"array"},"needRotate":{"type":"boolean"},"needSortPage":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"type":"boolean"}},"required":["imageUrl"],"type":"object"},"output_schema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","content","data"],"type":"object"},"tags":["ocr","image","text-extraction","document-processing","ocr api","general ocr","receipt ocr","invoice ocr","screenshot ocr","document ocr","text recognition","image text extraction"],"category":"ocr"},{"id":"korean-ocr","name":"Korean OCR","description":"Recognize printed text from a public image URL. Use this OCR API for Korean document images; pass optional language and layout hints when the schema supports them.","endpoint":"/api/tools/korean-ocr","method":"POST","auth_type":"api_key + x402_facilitator http_402","billing_method":"per_call","pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"needRotate":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"type":"boolean"}},"required":["imageUrl"],"type":"object"},"output_schema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","content","data"],"type":"object"},"tags":["ocr","image","text-extraction","document-processing","korean","kor","韩语","韩文"],"category":"ocr"},{"id":"latin-script-ocr","name":"Latin-script OCR","description":"Recognize printed text from a public image URL. Use this OCR API for Latin-script document images; pass optional language and layout hints when the schema supports them.","endpoint":"/api/tools/latin-script-ocr","method":"POST","auth_type":"api_key + x402_facilitator http_402","billing_method":"per_call","pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"needRotate":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"type":"boolean"}},"required":["imageUrl"],"type":"object"},"output_schema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","content","data"],"type":"object"},"tags":["ocr","image","text-extraction","document-processing","latin","latn","拉丁语","拉丁语系"],"category":"ocr"},{"id":"japanese-ocr","name":"Japanese OCR","description":"Recognize printed text from a public image URL. Use this OCR API for Japanese document images; pass optional language and layout hints when the schema supports them.","endpoint":"/api/tools/japanese-ocr","method":"POST","auth_type":"api_key + x402_facilitator http_402","billing_method":"per_call","pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"needRotate":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"type":"boolean"}},"required":["imageUrl"],"type":"object"},"output_schema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","content","data"],"type":"object"},"tags":["ocr","image","text-extraction","document-processing","japanese","jpn","日语","日文"],"category":"ocr"},{"id":"english-ocr","name":"English OCR","description":"Recognize printed text from a public image URL. Use this OCR API for English document images; pass optional language and layout hints when the schema supports them.","endpoint":"/api/tools/english-ocr","method":"POST","auth_type":"api_key + x402_facilitator http_402","billing_method":"per_call","pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"needRotate":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"type":"boolean"}},"required":["imageUrl"],"type":"object"},"output_schema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","content","data"],"type":"object"},"tags":["ocr","image","text-extraction","document-processing","english","eng","英语","英文"],"category":"ocr"},{"id":"multilingual-ocr","name":"Multilingual OCR","description":"Recognize printed text from a public image URL. Use this OCR API for mixed or unknown-language images; pass optional language and layout hints when the schema supports them.","endpoint":"/api/tools/multilingual-ocr","method":"POST","auth_type":"api_key + x402_facilitator http_402","billing_method":"per_call","pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"languages":{"items":{"type":"string"},"type":"array"},"needRotate":{"type":"boolean"},"needSortPage":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"type":"boolean"}},"required":["imageUrl","languages"],"type":"object"},"output_schema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","content","data"],"type":"object"},"tags":["ocr","image","text-extraction","document-processing","multilingual","multi language","auto language","通用多语言","小语种"],"category":"ocr"},{"id":"russian-ocr","name":"Russian OCR","description":"Recognize printed text from a public image URL. Use this OCR API for Russian document images; pass optional language and layout hints when the schema supports them.","endpoint":"/api/tools/russian-ocr","method":"POST","auth_type":"api_key + x402_facilitator http_402","billing_method":"per_call","pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"needRotate":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"type":"boolean"}},"required":["imageUrl"],"type":"object"},"output_schema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","content","data"],"type":"object"},"tags":["ocr","image","text-extraction","document-processing","russian","rus","俄语","俄文"],"category":"ocr"},{"id":"thai-ocr","name":"Thai OCR","description":"Recognize printed text from a public image URL. Use this OCR API for Thai document images; pass optional language and layout hints when the schema supports them.","endpoint":"/api/tools/thai-ocr","method":"POST","auth_type":"api_key + x402_facilitator http_402","billing_method":"per_call","pricing":{"amountCents":1,"amountMicros":10000,"currency":"USD","policyId":"ocr-api","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"properties":{"imageUrl":{"format":"uri","type":"string"},"needRotate":{"type":"boolean"},"outputCharInfo":{"type":"boolean"},"outputTable":{"type":"boolean"}},"required":["imageUrl"],"type":"object"},"output_schema":{"properties":{"code":{"type":"string"},"content":{"type":"string"},"data":{"type":"object"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["requestId","content","data"],"type":"object"},"tags":["ocr","image","text-extraction","document-processing","thai","tha","泰语","泰文"],"category":"ocr"},{"id":"pdf-to-markdown","name":"PDF to Markdown","description":"Convert a public http or https pdfUrl into Markdown from the first OCR-rendered pages. The service renders up to three pages with pdftoppm, uploads page images through the configured OSS image proxy, runs multilingual OCR, and returns combined markdown plus per-page OCR content. Unpaid calls return HTTP 402 before provider execution.","endpoint":"/api/tools/pdf-to-markdown","method":"POST","auth_type":"api_key + x402_facilitator http_402","billing_method":"per_call","pricing":{"amountCents":3,"amountMicros":30000,"currency":"USD","policyId":"pdf-to-markdown-ocr","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"additionalProperties":false,"properties":{"dpi":{"default":180,"maximum":240,"minimum":72,"type":"integer"},"language":{"default":"auto","description":"OCR language hint such as auto, eng, or chn.","type":"string"},"maxPages":{"default":3,"maximum":3,"minimum":1,"type":"integer"},"needRotate":{"default":true,"type":"boolean"},"outputTable":{"default":true,"type":"boolean"},"pdfUrl":{"description":"Public http or https PDF URL.","format":"uri","type":"string"}},"required":["pdfUrl"],"type":"object"},"output_schema":{"properties":{"content":{"type":"string"},"markdown":{"type":"string"},"max_pages":{"type":"integer"},"ocr_service_id":{"type":"string"},"page_count":{"type":"integer"},"pages":{"items":{"type":"object"},"type":"array"},"processed_pages":{"type":"integer"},"renderer":{"type":"string"},"service_id":{"type":"string"},"source_pdf_url":{"type":"string"}},"required":["service_id","markdown","pages","page_count","processed_pages","max_pages"],"type":"object"},"tags":["paid","x402","usdc","base","ocr","pdf-ocr","document-processing","file-processing","pdf-to-markdown","markdown"],"category":"file-processing"},{"id":"text-to-video","name":"Text To Video","description":"Use this paid x402 service whenever the user asks to create, make, generate, synthesize, render, produce, storyboard, or turn text, a script, a scene, a prompt, an idea, a product brief, an ad concept, or Chinese 文生视频/文本生成视频/文字生成视频 into a video. This is the primary text-to-video / prompt-to-video / AI video generator endpoint. It creates an async video task and returns task_id; poll text-to-video-result for video_url. Do not use video analysis, OCR, image tagging, or text generation services for text-to-video generation.","endpoint":"/api/tools/text-to-video","method":"POST","auth_type":"api_key + x402_facilitator http_402","billing_method":"per_call","pricing":{"amountCents":20,"amountMicros":200000,"currency":"USD","policyId":"bailian-wan-text-to-video","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"additionalProperties":true,"properties":{"aspect_ratio":{"description":"Alias for ratio.","type":"string"},"duration":{"default":5,"description":"Requested video duration in seconds. Defaults to 5.","type":"integer"},"model":{"default":"wan2.7-t2v-2026-06-12","type":"string"},"negativePrompt":{"description":"Optional negative prompt alias.","type":"string"},"negative_prompt":{"description":"Optional negative prompt.","type":"string"},"parameters":{"additionalProperties":true,"description":"Optional provider parameters passed through under DashScope parameters.","type":"object"},"prompt":{"description":"Required text prompt, scene description, script, storyboard, product brief, or ad concept to turn into video.","type":"string"},"promptExtend":{"description":"Alias for prompt_extend.","type":"boolean"},"prompt_extend":{"default":true,"description":"Whether to let the model enrich the prompt.","type":"boolean"},"ratio":{"default":"16:9","description":"Aspect ratio such as 16:9, 9:16, or 1:1.","type":"string"},"resolution":{"default":"720P","description":"Resolution tier such as 480P, 720P, or 1080P.","type":"string"},"seed":{"description":"Optional deterministic seed.","type":"integer"},"size":{"description":"Legacy model output size such as 1280*720. Wan 2.7 generally uses resolution plus ratio.","type":"string"},"watermark":{"default":false,"description":"Whether to add provider watermark when supported.","type":"boolean"}},"required":["prompt"],"type":"object"},"output_schema":{"additionalProperties":true,"properties":{"model":{"type":"string"},"poll":{"additionalProperties":true,"type":"object"},"provider":{"type":"string"},"result":{"additionalProperties":true,"type":"object"},"result_endpoint":{"type":"string"},"service_id":{"type":"string"},"status":{"type":"string"},"task_id":{"type":"string"},"task_status":{"type":"string"},"upstream_request_id":{"type":"string"},"usage":{"additionalProperties":true,"type":"object"},"video_url":{"type":"string"}},"required":["status","service_id","task_id","task_status"],"type":"object"},"tags":["paid","x402","usdc","base","ai-video","video-generation","text-to-video","prompt-to-video","t2v","wan","dashscope","bailian","semantic:text-to-video","intent:generate-video","output:task-id","output:video-url"],"category":"video-generation"}],"demandCapture":{"queryRecorded":true,"demandBearing":true,"status":"published-and-planned-candidates","recommendedAction":"compare-published-services-and-request-missing-fit","message":"Published services and planned API candidates both matched. Prefer a published callable service when it fits; otherwise request early access for the planned candidate that better matches the task.","matchedPlannedServices":[{"id":"ocr-api","name":"OCR 识别 API","category":"图像文字","availability":"已有服务","status":"planned / early-access","servicePage":"https://x402vip.com/services/ocr-api","llmsText":"https://x402vip.com/services/ocr-api/llms.txt","requestAccessUrl":"https://x402vip.com/api/planned-services/request-access","candidateApiPaths":["https://x402vip.com/api/ocr","https://x402vip.com/api/screenshot/ocr","https://x402vip.com/api/image/text","https://x402vip.com/api/tools/ocr"],"keywords":["ocr-api","ocr","OCR 识别 API","screenshot ocr","ocr screenshot text extraction","text recognition","image text","extract text from screenshot","文字识别","图片识字","截图文字识别"],"matchRank":1,"matchReason":"Search query matched this planned demand candidate; request-access and candidate path visits are aggregated for launch prioritization."},{"id":"ocr-search-api","name":"OCR Search API","category":"图像文字","availability":"可新增","status":"planned / early-access","servicePage":"https://x402vip.com/services/ocr-search-api","llmsText":"https://x402vip.com/services/ocr-search-api/llms.txt","requestAccessUrl":"https://x402vip.com/api/planned-services/request-access","candidateApiPaths":["https://x402vip.com/api/ocr-search","https://x402vip.com/api/ocr/search","https://x402vip.com/api/tools/ocr-search","https://x402vip.com/api/tools/ocr-search-api"],"keywords":["ocr-search-api","ocr-search","ocr search","OCR Search API","OCR Search","Search OCR","ocr","search ocr","ocr search api","search api ocr","ocr find","find ocr","ocr lookup","lookup ocr","ocr 检索","检索 ocr","ocr 搜索","搜索 ocr","text recognition","text recognition search","search text recognition","text recognition search api","search api text recognition","text recognition find","find text recognition","text recognition lookup","lookup text recognition","text recognition 检索","检索 text recognition","text recognition 搜索","搜索 text recognition","文字识别","文字识别 search","search 文字识别","文字识别 search api","search api 文字识别","文字识别 find","find 文字识别","文字识别 lookup","lookup 文字识别","文字识别 检索","检索 文字识别","文字识别 搜索","搜索 文字识别"],"matchRank":2,"matchReason":"Search query matched this planned demand candidate; request-access and candidate path visits are aggregated for launch prioritization."},{"id":"ocr-extraction-api","name":"OCR Extraction API","category":"图像文字","availability":"可新增","status":"planned / early-access","servicePage":"https://x402vip.com/services/ocr-extraction-api","llmsText":"https://x402vip.com/services/ocr-extraction-api/llms.txt","requestAccessUrl":"https://x402vip.com/api/planned-services/request-access","candidateApiPaths":["https://x402vip.com/api/ocr-extraction","https://x402vip.com/api/ocr/extraction","https://x402vip.com/api/tools/ocr-extraction","https://x402vip.com/api/tools/ocr-extraction-api"],"keywords":["ocr-extraction-api","ocr-extraction","ocr extraction","OCR Extraction API","OCR Extraction","Extraction OCR","ocr","extraction ocr","ocr extract","extract ocr","ocr data extraction","data extraction ocr","ocr 提取","提取 ocr","ocr 抽取","抽取 ocr","text recognition","text recognition extraction","extraction text recognition","text recognition extract","extract text recognition","text recognition data extraction","data extraction text recognition","text recognition 提取","提取 text recognition","text recognition 抽取","抽取 text recognition","文字识别","文字识别 extraction","extraction 文字识别","文字识别 extract","extract 文字识别","文字识别 data extraction","data extraction 文字识别","文字识别 提取","提取 文字识别","文字识别 抽取","抽取 文字识别"],"matchRank":3,"matchReason":"Search query matched this planned demand candidate; request-access and candidate path visits are aggregated for launch prioritization."},{"id":"ocr-parsing-api","name":"OCR Parsing API","category":"图像文字","availability":"可新增","status":"planned / early-access","servicePage":"https://x402vip.com/services/ocr-parsing-api","llmsText":"https://x402vip.com/services/ocr-parsing-api/llms.txt","requestAccessUrl":"https://x402vip.com/api/planned-services/request-access","candidateApiPaths":["https://x402vip.com/api/ocr-parsing","https://x402vip.com/api/ocr/parsing","https://x402vip.com/api/tools/ocr-parsing","https://x402vip.com/api/tools/ocr-parsing-api"],"keywords":["ocr-parsing-api","ocr-parsing","ocr parsing","OCR Parsing API","OCR Parsing","Parsing OCR","ocr","parsing ocr","ocr parse","parse ocr","ocr parser","parser ocr","ocr structured parsing","structured parsing ocr","ocr 解析","解析 ocr","text recognition","text recognition parsing","parsing text recognition","text recognition parse","parse text recognition","text recognition parser","parser text recognition","text recognition structured parsing","structured parsing text recognition","text recognition 解析","解析 text recognition","文字识别","文字识别 parsing","parsing 文字识别","文字识别 parse","parse 文字识别","文字识别 parser","parser 文字识别","文字识别 structured parsing","structured parsing 文字识别","文字识别 解析","解析 文字识别"],"matchRank":4,"matchReason":"Search query matched this planned demand candidate; request-access and candidate path visits are aggregated for launch prioritization."},{"id":"ocr-summarization-api","name":"OCR Summarization API","category":"图像文字","availability":"可新增","status":"planned / early-access","servicePage":"https://x402vip.com/services/ocr-summarization-api","llmsText":"https://x402vip.com/services/ocr-summarization-api/llms.txt","requestAccessUrl":"https://x402vip.com/api/planned-services/request-access","candidateApiPaths":["https://x402vip.com/api/ocr-summarization","https://x402vip.com/api/ocr/summarization","https://x402vip.com/api/tools/ocr-summarization","https://x402vip.com/api/tools/ocr-summarization-api"],"keywords":["ocr-summarization-api","ocr-summarization","ocr summarization","OCR Summarization API","OCR Summarization","Summarization OCR","ocr","summarization ocr","ocr summarize","summarize ocr","ocr summary","summary ocr","ocr 摘要","摘要 ocr","ocr 总结","总结 ocr","text recognition","text recognition summarization","summarization text recognition","text recognition summarize","summarize text recognition","text recognition summary","summary text recognition","text recognition 摘要","摘要 text recognition","text recognition 总结","总结 text recognition","文字识别","文字识别 summarization","summarization 文字识别","文字识别 summarize","summarize 文字识别","文字识别 summary","summary 文字识别","文字识别 摘要","摘要 文字识别","文字识别 总结","总结 文字识别"],"matchRank":5,"matchReason":"Search query matched this planned demand candidate; request-access and candidate path visits are aggregated for launch prioritization."}],"requestAccessUrl":"https://x402vip.com/api/planned-services/request-access","requestAccessBody":{"query":"ocr-api","serviceId":"ocr-api","task":"Describe the exact input data, desired output schema, freshness, volume, budget, and whether a published service failed to fit.","useCase":"AI/Agent searched for: ocr-api"},"plannedCatalogUrl":"https://x402vip.com/api/demand-capture","notes":["Every non-admin /api/catalog/search?q=... request is appended to natural_traffic.jsonl and aggregated in /api/admin/demand-intents.","Submitting requestAccessBody adds a stronger commercial/early-access signal than search alone.","Planned API candidates are not callable yet; use /api/catalog services for currently callable paid APIs."]},"nextActions":["Inspect services[].inputSchema, services[].outputSchema, services[].pricing, and services[].discovery.paymentFlow.","Call the selected /api/tools/* endpoint once without payment to receive HTTP 402 payment requirements, then retry after payment.","If services are missing or too broad, inspect demandCapture.matchedPlannedServices.","POST demandCapture.requestAccessBody to demandCapture.requestAccessUrl to record a stronger early-access demand signal."],"payment":{"paymentHeader":"X-Payment-Token","createPayment":"/api/payments","verifyPayment":"/api/payments/{paymentId}","token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]},"flow":{"type":"http-402","createPayment":{"method":"POST","url":"/api/payments","bodySchema":{"properties":{"providerId":{"type":"string"},"serviceId":{"description":"Use the canonical service id from the catalog. Legacy internal ids remain accepted for backward compatibility.","type":"string"}},"required":["serviceId"],"type":"object"},"responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json x402PaymentRequired","PAYMENT-SIGNATURE":"base64/json x402 Base USDC payment payload","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json Xiao Coin escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","paymentNetwork":"eip155:8453"},"retry":{"when":"Retry after paying one accepts[] requirement with Base USDC x402, Xiao Coin AI wallet escrow, or after payment.status is paid and the legacy token has remaining calls.","http":["Preferred x402 flow: call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Pay one accepts[] requirement with an x402-compatible wallet/facilitator on network eip155:8453 using Base USDC.","Retry the exact same request with PAYMENT-SIGNATURE set to the base64 JSON x402 payment payload.","XIAO flow: pay the accepts[] requirement where asset=XIAO with the AI wallet, then retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Legacy token flow: POST /api/payments with serviceId, complete/verify payment, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","Preferred x402 clients should pay the accepts[] requirement and call the underlying HTTP endpoint with PAYMENT-SIGNATURE.","XIAO-capable agents should pay the XIAO accepts[] requirement through the AI wallet and call the underlying HTTP endpoint with X402-Guarantee.","Legacy MCP clients can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"http402":["curl -i https://example.com/api/tools/timestamp","Read accepts[0].network=eip155:8453, accepts[0].asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, accepts[0].amount, and accepts[0].payTo.","curl -H 'PAYMENT-SIGNATURE: \u003cbase64-json-x402-payment-payload\u003e' https://example.com/api/tools/timestamp"],"legacyToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"xiao":["curl -i https://example.com/api/tools/timestamp","Read the accepts[] entry with asset=XIAO, create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}}}}
