{"callable":true,"canonicalCall":{"contentType":"application/json","endpoint":"https://x402vip.com/api/tools/text-to-video","method":"POST"},"links":{"catalogSearch":"https://x402vip.com/api/catalog/search?q=text-to-video","catalogSummary":"https://x402vip.com/api/catalog.summary.json","mcp":"https://x402vip.com/mcp","openapi":"https://x402vip.com/api/catalog/openapi.json","serviceLLMs":"https://x402vip.com/services/text-to-video/llms.txt"},"message":"This GET/HEAD response is a no-payment discovery probe. Use the declared method to receive HTTP 402 payment requirements, then retry the same request after payment.","nextActions":["If this service matches the task, call the canonical endpoint with the declared method and valid JSON input to receive HTTP 402 payment requirements.","If this service is not a fit, search /api/catalog/search?q=\u003ctask\u003e and inspect services[].whyMatched before choosing a tool.","If no published service fits, submit /api/agent-demand or POST /api/planned-services/request-access for a planned candidate."],"payment":{"flow":{"type":"http-402","createPayment":{"method":"POST","url":"https://x402vip.com/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":"https://x402vip.com/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"]}},"paymentHeader":"X-Payment-Token","provider":"x402_facilitator","providerId":"x402-base-usdc","x402Header":"PAYMENT-SIGNATURE"},"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},"schemaVersion":"server402.service-discovery.v1","schemas":{"input":{"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"},"inputUrl":"https://x402vip.com/schemas/services/text-to-video/invoke.input.schema.json","output":{"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"},"outputUrl":"https://x402vip.com/schemas/services/text-to-video/invoke.output.schema.json"},"service":{"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"},"status":"discovery_only","type":"paid_service_discovery"}
