{"info":{"title":"Cueframe","version":"1.0.0"},"openapi":"3.1.0","paths":{"/v1/composition/validate":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Cueframe: Composition Validate","intent":"charge","method":"evm","recipient":"0xA82C8B6971A7379BadB2FB96032D82aF46EcCc0A"}]},"summary":"Validate a composition body without saving it (dry-run)"},"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Cueframe: Composition Validate","intent":"charge","method":"evm","recipient":"0xA82C8B6971A7379BadB2FB96032D82aF46EcCc0A"}]},"summary":"Validate a composition body without saving it (dry-run)"}},"/v1/media/import":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Cueframe: Media Import","intent":"charge","method":"evm","recipient":"0xA82C8B6971A7379BadB2FB96032D82aF46EcCc0A"}]},"summary":"Import media into the project from a public https URL — the server fetches and mirrors the bytes (SSRF-filtered), then processes it (transcode + transcribe). Async: returns a media id that flips to ready when the mirror and processing finish; poll GET /media/:id or use a media.completed webhook."},"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Cueframe: Media Import","intent":"charge","method":"evm","recipient":"0xA82C8B6971A7379BadB2FB96032D82aF46EcCc0A"}]},"summary":"Import media into the project from a public https URL — the server fetches and mirrors the bytes (SSRF-filtered), then processes it (transcode + transcribe). Async: returns a media id that flips to ready when the mirror and processing finish; poll GET /media/:id or use a media.completed webhook."}}},"x-service-info":{"description":"Cueframe is an x402-native service at https://api.cueframe.ai, indexed from the x402 Bazaar (Coinbase's public discovery directory). It charges callers itself in USDC on Base and is paid directly at its own wallet; Monex Protocol passes your request and payment headers through untouched. 2 endpoints listed."}}