ffpipe Terms of Service
Last updated: 2026-09-30. Service: ffpipe, an automated media-processing API operated by VidDay Media Inc. ("VidDay", "we", "us"), 772 St. Joseph Street, Winnipeg, Manitoba, R2H 3A7, Canada. "You" means whoever calls the API — human or software agent — and whoever owns the wallet that pays or holds the account whose credits pay.
By calling the API — including sending an unpaid request that receives a payment challenge — or by signing in to an account or buying credits, you accept these terms. You represent that you have reached the age of majority where you live, that you can form legally binding contracts, and that if you act through software or for another person or entity (including the wallet's owner), you have authority to bind them. A request made by an automated agent binds the person on whose behalf the agent acts as if that person made it directly; you and VidDay agree that contracts may be formed by electronic means and by electronic agents, and that this electronic agreement is the equivalent of a written paper agreement. You may not use the service where doing so is illegal, and you represent that you are not subject to Canadian or other applicable economic sanctions and are not located in an embargoed jurisdiction.
1. What the service is
ffpipe processes media files. You send a URL (or upload a file directly) with job parameters; we process it as the endpoint you called and those parameters specify, and make a result available to you for a limited time. Which processing endpoints exist, and what each one does, is stated in the published API description at /openapi.json and can change (see section 2).
You can pay in either of two ways:
- x402. Payment is per job, made machine-to-machine over the x402 protocol in USDC. On this rail there are no accounts, no API keys and no invoices: the payment is the authorization. Sections 4 and 5 apply to x402 payments.
- Prepaid credits. You sign in to an account with your email address, buy credits by card or claim the free monthly credits, and applications you connect to the account spend them per job. Section 7 applies to credits.
Everything else in these terms applies to both.
2. Service status and no fitness guarantee
The network payments settle on is stated in every payment challenge and on the landing page. While the service operates on a test network, payments settle in testnet USDC, which has no monetary value, and the service is a preview. The network governs x402 payments only; credit purchases (section 7) are card payments in US dollars. On any network:
- We make no availability, throughput, latency, quality or correctness guarantee, and no promise of backward compatibility.
- Endpoints, prices, limits and output formats can change without notice.
- The service can be suspended or withdrawn at any time, including while your jobs are queued.
- Do not build anything you cannot afford to have fail. Do not send your only copy of anything.
3. Acceptable use
You may only submit media you have the right to submit and to have processed by a third party on your behalf. Specifically, you must not use ffpipe to process, produce or distribute:
- Content that is illegal where you are or where we operate, including material that sexually exploits or endangers minors in any manner, non-consensual intimate imagery, material that incites violence or terrorism, and content produced to facilitate fraud. Illegal material is reported to the appropriate authorities and law enforcement, associated records are preserved for them as the law requires, and the paying wallet address and originating network are permanently banned — no refund, no voucher, no appeal.
- Material that infringes someone else's copyright, trademark, publicity or privacy rights. You are solely responsible for holding the rights or a licence covering everything you submit. We are a processing tool; we do not review your rights, and "the API let me" is not a defence.
- Malware, or files crafted to attack our processing pipeline or other users.
- Content produced to impersonate a real person or organization in a deceptive way.
You also must not: attempt to obtain processing without paying (including manipulating the payment protocol between verification and settlement), circumvent the rate limits, daily caps, size caps or source-URL restrictions, use the ingest fetcher to reach systems you are not authorized to reach, or resell the service in a way that hides these terms from your own users.
Two further restrictions: the service is a best-effort media-processing tool and must not be used in any application where its failure or output error could lead to death, personal injury, or physical or environmental damage (no safety-critical, medical, or life-support use). And you must not use the service — including the payments you make for it — in any manner that involves non-compliant securities activity or that would cause VidDay to breach the terms of its payment facilitator or other service providers.
4. How payment works (x402)
- An unpaid request returns HTTP 402 with a machine-readable price. Nothing is charged.
- We charge when we accept a job. What our 202 means depends on how you deliver the source file:
- URL mode (
sourceUrl): we validate your request, fetch and stage your source file, queue the render, and only then settle payment. The 202 means the job is queued and paid. - Direct-upload mode (
upload: true): we validate your request and reserve an upload window, and payment settles on that acceptance — before any bytes have been uploaded or any render has been queued. The 202 buys the reserved window (uploadUrl, untiluploadExpiresAt, currently one hour); the render is queued only after your upload completes. Completing the upload is your responsibility — see section 5 for what is and is not compensated after this charge. - Any non-2xx response is never charged. If we reject your request, you keep your money. If a failure occurs on our side after a job has been accepted and charged, the job's status response includes an automatic retry voucher that runs the job again at no cost — section 5 sets out how vouchers work and the cases they do and do not cover.
- Prices are per job, listed on the landing page and in
/openapi.json, and quoted in the payment challenge itself. The challenge is authoritative for the request that carries it. Prices are exclusive of any applicable taxes, which are your responsibility. - You are responsible for your wallet, its keys and its funds. Blockchain transactions are irreversible and we cannot recover a payment you sent incorrectly.
- Repeated failed settlements from one wallet get that wallet refused.
5. Refunds: automatic retry vouchers (x402)
If we accepted and charged an x402 payment for a job and then our processing failed, the failed job's status response includes a single-use retry voucher. Presenting it on the same kind of endpoint runs the job again for free.
- One voucher per failure, single use, tied to the endpoint kind.
- A failed retry earns a fresh voucher, up to 3 retries per original job.
- Vouchers expire 30 days after issue and are invalidated if we rotate the signing secret.
- On the x402 rail, the voucher is the refund. We do not issue on-chain refunds, credits or cash for failed x402 jobs at these prices.
- No voucher is due where the failure cost you nothing (for example your payment never settled), where your input was the problem, or where you breached section 3. In URL mode, input problems (unfetchable source, unsupported or corrupt file, oversized input) are rejected before any charge. In direct-upload mode you are charged at acceptance, so buyer-caused failures after that charge are kept and not compensated: an upload window that expires before your upload completes ends the job in a terminal error with no voucher, and an oversized upload is rejected (HTTP 413, nothing stored) with the window left open for a corrected retry — abandoning it after a 413 is still an expired window. A failure on our side after your upload completed (for example we could not queue the render) does mint a voucher.
Defective inputs and the retry limit. We cannot inspect your file before processing, so a job that fails because your file is corrupt, truncated, malformed, mislabeled or otherwise unprocessable may still receive retry vouchers — but retrying a defective file will fail the same way. Once a job's retry limit is exhausted, the payment is forfeited, whatever the cause of the failures: we are not responsible for defects in what you submit, and it is your responsibility to verify your file is valid and processable before paying to process it.
If you believe you were charged for work we never delivered and hold no voucher, contact us with the job id; we will look at it in good faith.
Jobs paid with credits are compensated under section 7 instead.
6. Your files, our retention, your privacy
- Download your results within 24 hours of a job completing. Results are not guaranteed to be available after that; ffpipe is not storage and keeps no archive for you. Residual copies are deleted from our systems on a short schedule in accordance with the Privacy Policy.
- Source files you point us at are copied into our storage once; after staging we never fetch your URL again. Those copies are retained no longer than 7 days and are deleted thereafter.
- We keep job metadata (job id, parameters, timestamps, paying wallet address or account id, request IP, error messages) for up to 30 days for operations, billing forensics and abuse investigation.
- We process your media to perform the job you asked for and to investigate suspected abuse. We do not sell it, and we do not use it to train models.
- We may disclose content or metadata where required by law or where necessary to report material under section 3.
- Fetching a URL you supply means that host sees a request from our network. Only send URLs you are entitled to share with us.
- Our handling of personal information — including what the public blockchain necessarily exposes about your payments, and what an account holds — is described in the ffpipe Privacy Policy, which forms part of these terms.
7. Prepaid credits
What credits are. Credits are prepaid usage of the service: one credit pays for $0.01 of processing at the published prices. Credits are not a deposit, not stored value and not a bank or payment account. They earn no interest, cannot be transferred to another account or person, and are not redeemable for cash or anything else except as this section states.
Your account. An account is identified by an email address, and you sign in by clicking a one-time link we email to it. You are responsible for that mailbox and for every application you connect to the account: jobs submitted by an application you gave job access spend your credits as if you had submitted them yourself. Closing the account cuts off every connected application.
Prices. Prices are in US dollars. Credit packs are sold at the price and credit amount shown when you buy (currently $5 for 500 credits and $20 for 2,500 credits). You pay on Stripe's hosted checkout page, and the credits are added once Stripe confirms the payment. A job costs its published x402 price converted at $0.01 per credit (a $0.02 job costs 2 credits); the price in effect when we accept the job applies. Prices may be subject to applicable taxes.
Paid credits never expire. Credits from a pack stay on your account until you spend them, they are refunded, or the account is closed.
Free tier. Saving a card on the account unlocks free credits. Once per UTC calendar month, while a card is on file, if your balance is below 25 credits we top it up to 25. The first top-up happens when you save the card. Free credits never accumulate beyond 25. The top-up counts your whole balance, paid credits included, so an account holding 25 credits or more receives nothing that month.
- Saving a card charges nothing.
- One free tier per card: a card whose free tier has been claimed on any account, including a closed one, unlocks no free credits on another account. The card can still be used to buy packs there.
- The free tier is a promotion, not a purchase. We may withdraw it from any account or card where we see abuse.
How a job is charged. If your balance does not cover a job, the request is refused (HTTP 402 insufficient_credits) and nothing is charged; we never take an x402 payment in its place. Credits are taken when we accept the job. In URL mode that is after we have fetched and staged your source file and before processing starts, so input problems found while fetching are rejected before any charge. In direct-upload mode it is at acceptance, before any bytes are uploaded, as section 4 describes for x402 payments.
Failed jobs: your credits back. If we took credits for a job and then our side failed (we could not queue it, or processing failed), the job's credits are refunded to your balance automatically and the job's status says so. That refund is the sole remedy for a failed job paid with credits: no retry voucher is issued on this rail, and failed jobs are not refunded in cash. Buyer-caused failures after the charge are not refunded, as in section 5: a direct-upload window that expires before your upload completes ends the job with no refund, and an oversized upload is rejected (HTTP 413) with the window left open for a corrected retry.
Per-job rules still apply. Each job paid with credits remains subject to section 3, to the defective-input rule in section 5 (we are not responsible for defects in what you submit, and it is your responsibility to verify your file is valid and processable before paying to process it) and to the liability cap in section 9. An automatic refund is not an admission that a failure was ours: where a job breached section 3, or where you repeatedly resubmit a file that fails the same way, we may reverse its refund. A job you pay for with a retry voucher is governed by section 5 and spends no credits.
Refunds of unused pack credits. Within 30 days of buying a pack you may ask for a refund of its unused credits by writing to ffpipe@vidday.com from the account's email address. We refund the unused part of that pack in proportion to what you paid for it, to the original payment method, and remove those credits from your balance. The part already consumed is not refundable. Your balance is a single pool; for this rule, credits you spend count against free credits first, then against packs in the order you bought them. After 30 days, pack credits are no longer refundable, but they still do not expire. Free credits are never refundable.
Closing your account. You can close the account at any time from the account page (/account). Closing it forfeits any free credits remaining. Remaining paid credits are forfeited too, except that unused credits from a pack bought in the previous 30 days stay refundable under the rule above: ask before you close, or within that 30-day window afterwards, giving the date and amount of the purchase so we can trace it (closing erases the account's email address). A closed account cannot be reopened. Signing up again with the same email address creates a new account with a zero balance, and a card that has already claimed its free tier unlocks none on it.
8. Abuse handling and suspension
We may refuse, throttle, cancel or delete any request or job, and ban a wallet address, account, card, network address or class of traffic, at our discretion — without notice and without refund where we reasonably believe these terms were breached. Automated limits (per-IP request rate, per-payer daily job cap, per-job upload attempt limits) apply to everyone and are not a promise of any particular capacity.
9. Service provided as-is; limitation of liability
The service is provided "as is" and "as available", without warranties of any kind, express or implied, including merchantability, fitness for a particular purpose, accuracy and non-infringement. We do not warrant that processing will succeed, that output will match any expectation, or that the service will be uninterrupted or error-free.
To the maximum extent permitted by law, our total liability to you for any claim relating to the service is limited to the greater of (a) the amount you paid us for the specific job the claim relates to (for a job paid with credits, the credits it cost, at $0.01 each), and (b) USD $5. This cap does not reduce a refund of unused pack credits due under section 7. We are not liable for indirect, incidental, special, consequential, exemplary or punitive damages, nor for lost profits, lost revenue, lost data or lost media, even if advised of the possibility.
To the maximum extent permitted by law, any claim arising out of or relating to the service or these terms must be commenced within one (1) year after the cause of action arose, or it is permanently barred.
Nothing in these terms limits or excludes liability that cannot be limited or excluded under applicable law, and if you are a consumer under laws that preserve rights these terms cannot waive, those rights prevail to that extent.
10. Indemnity
You agree to indemnify and hold VidDay — including its affiliates, officers, directors, employees, agents, contractors, licensors and service providers — harmless from and against any and all actions, claims, proceedings, costs, damages, demands, liabilities, expenses and tax assessments, including reasonable legal fees and disbursements, arising out of or relating to: (a) your access to and use of the service; (b) your actual or alleged breach of these terms; (c) any content you submit for processing, including any actual or alleged infringement of intellectual property or other rights of any person; and (d) your actual or alleged violation of any applicable law, rule, regulation or right of another.
11. Changes
We may change these terms; the current version is always at /terms. Continuing to call the API after a change means you accept it. Material changes will be noted in the "last updated" line above.
12. Governing law, forum and disputes
These terms are governed by the laws of the Province of Manitoba and the federal laws of Canada applicable there, and are to be treated in all respects as a Manitoba contract, without regard to conflict-of-laws rules. Any dispute arising from or relating to the service or these terms will be resolved before the Courts of Manitoba, sitting in the City of Winnipeg, whose original and exclusive jurisdiction you irrevocably attorn to — except that either party may seek injunctive or other equitable relief in any court of competent jurisdiction for matters concerning intellectual property, confidentiality or unauthorized access.
To the maximum extent permitted by applicable law, you waive any right to a trial by jury and any right to commence or participate in any class or representative proceeding against VidDay relating to the service or these terms, and you agree to opt out of any such class proceeding. Where the law of your place of residence renders such a waiver unenforceable for consumer claims, it does not apply to those claims.
The United Nations Convention on Contracts for the International Sale of Goods and The International Sale of Goods Act (Manitoba) do not apply to these terms. You are responsible for complying with the laws that apply to you.
13. General
- Relationship. Nothing here creates a partnership, joint venture, employment or agency relationship between you and VidDay.
- Assignment. You may not assign these terms; VidDay may assign them in connection with a reorganization, merger or sale. These terms enure to the benefit of and bind the parties' successors and permitted assigns.
- No waiver. A failure to enforce any provision is not a waiver of it, or of anything else, then or later.
- Severability. If any provision is held invalid or unenforceable, it is severed to the minimum extent necessary and the remainder stays in full force.
- Survival. Sections 3, 5, 6, 7, 9, 10, 12 and 13, and any accrued rights, survive termination of these terms or your use of the service.
- Entire agreement. These terms, together with the Privacy Policy, the price stated in each payment challenge and the pack price shown at checkout, are the entire agreement between you and VidDay regarding the service.
- Language. You and VidDay have required that these terms and all related documents be drawn up in English. *Vous et VidDay avez demandé que cette convention ainsi que tous les documents qui s'y rattachent soient rédigés en anglais.*
- Headings are for convenience only.
14. Contact
VidDay Media Inc. — 772 St. Joseph Street, Winnipeg MB, R2H 3A7 Canada — www.vidday.com. For general and billing questions, including credit refunds, email ffpipe@vidday.com. For abuse reports and takedowns, email abuse@vidday.com. Either way, include the job id (and the voucher, if you have one) so we can find the record before it expires. Reports of illegal material are acted on immediately and referred to the appropriate authorities as Canadian law requires.