{"version":1,"resources":["https://ffpipe.dev/v1/convert","https://ffpipe.dev/v1/probe","https://ffpipe.dev/v1/frames"],"instructions":"POST to any listed resource with no payment to receive an x402 challenge (the base64 PAYMENT-REQUIRED header) stating the exact price, network, asset and payee. Pay it and repeat the request; the answer is 202 with a status URL to poll. No account, no API key, no signup.","serviceName":"ffpipe","tags":["video","convert","mp4","media","ffmpeg"],"endpoints":[{"resource":"https://ffpipe.dev/v1/convert","method":"POST","description":"Convert any video to a clean, web-ready MP4. Provide a source URL or upload the file directly; the paid request returns a status URL to poll, and the finished MP4 (plus a thumbnail) is downloadable for 24 hours. Fixed price per conversion in USDC over x402; no account or API key. Failures on our side automatically mint a free retry voucher. Input up to 100 MB.","x-x402":{"x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","networkName":"base","price":"$0.02","amountAtomic":"20000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","assetDecimals":6,"payTo":"0x38c72cAb5d8F053a7CCE4F522b923C3c70291B9d"}],"facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","capture":"capture-at-acceptance: the facilitator VERIFIES before the handler runs and SETTLES only after a 2xx. Any non-2xx answer (400/402/403/413/429/502/503) is never charged. Pull mode (sourceUrl) stages the source and records the job before the 202, and queues it once the payment has settled — if it cannot be queued after payment, the job becomes `error` with a retry voucher; upload mode (upload: true) charges at the 202, BEFORE any bytes arrive — abandoning the upload window refunds nothing, while a failure to queue the job after your upload mints a retry voucher.","alternativePayment":{"header":"x-retry-voucher","description":"A retry-voucher credential ({uuid}.{hmac}) issued when a paid job failed on our side. Pays for exactly one request of the same kind; no on-chain movement. Invalid, replayed or wrong-kind vouchers get the ordinary 402."}}},{"resource":"https://ffpipe.dev/v1/probe","method":"POST","description":"Inspect any media file and get its technical metadata. Container, duration, codecs, DISPLAY dimensions and rotation, frame rate, HDR, audio channels and sample rate, in a normalized summary plus the full raw analysis (JSON, XML, CSV, flat or INI). Provide a source URL or upload the file directly; the result is downloadable for 24 hours. A file that cannot be decoded still answers with the diagnosis of why. Fixed price per probe in USDC over x402; no account or API key. Input up to 100 MB.","x-x402":{"x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","networkName":"base","price":"$0.01","amountAtomic":"10000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","assetDecimals":6,"payTo":"0x38c72cAb5d8F053a7CCE4F522b923C3c70291B9d"}],"facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","capture":"capture-at-acceptance: the facilitator VERIFIES before the handler runs and SETTLES only after a 2xx. Any non-2xx answer (400/402/403/413/429/502/503) is never charged. Pull mode (sourceUrl) stages the source and records the job before the 202, and queues it once the payment has settled — if it cannot be queued after payment, the job becomes `error` with a retry voucher; upload mode (upload: true) charges at the 202, BEFORE any bytes arrive — abandoning the upload window refunds nothing, while a failure to queue the job after your upload mints a retry voucher.","alternativePayment":{"header":"x-retry-voucher","description":"A retry-voucher credential ({uuid}.{hmac}) issued when a paid job failed on our side. Pays for exactly one request of the same kind; no on-chain movement. Invalid, replayed or wrong-kind vouchers get the ordinary 402."}}},{"resource":"https://ffpipe.dev/v1/frames","method":"POST","description":"Extract still frames from any video as JPEG, WebP or PNG: sample many for a vision model, or grab one frame at a given timestamp (a thumbnail/poster/screenshot). Modes: every frame, every Nth, a rate in seconds, keyframes, N evenly spaced, or exact timestamps. One frame at 5s: mode=timestamps, timestamps=[5], format=jpeg. Up to 1000 frames/job; result is a manifest of frames with timestamps and download URLs, kept 24h. USDC over x402; no account; input <=100 MB.","x-x402":{"x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","networkName":"base","price":"$0.01","amountAtomic":"10000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","assetDecimals":6,"payTo":"0x38c72cAb5d8F053a7CCE4F522b923C3c70291B9d"}],"facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","capture":"capture-at-acceptance: the facilitator VERIFIES before the handler runs and SETTLES only after a 2xx. Any non-2xx answer (400/402/403/413/429/502/503) is never charged. Pull mode (sourceUrl) stages the source and records the job before the 202, and queues it once the payment has settled — if it cannot be queued after payment, the job becomes `error` with a retry voucher; upload mode (upload: true) charges at the 202, BEFORE any bytes arrive — abandoning the upload window refunds nothing, while a failure to queue the job after your upload mints a retry voucher.","alternativePayment":{"header":"x-retry-voucher","description":"A retry-voucher credential ({uuid}.{hmac}) issued when a paid job failed on our side. Pays for exactly one request of the same kind; no on-chain movement. Invalid, replayed or wrong-kind vouchers get the ordinary 402."}}}],"documentation":{"openapi":"https://ffpipe.dev/openapi.json","llms":"https://ffpipe.dev/llms.txt","mcp":"https://ffpipe.dev/mcp","landing":"https://ffpipe.dev","terms":"https://ffpipe.dev/terms","privacy":"https://ffpipe.dev/privacy"}}