Terms of Service

Last updated: 14 May 2026

1. Who we are

" PaperJet " (we, us, our) refers to the service operated at paperjet.dev, api.paperjet.dev, and app.paperjet.dev. PaperJet is currently operated from France and maintained by a single maintainer. Contact details are listed in section 13.

2. Acceptance

By creating an account or by issuing any request to our API, you accept these Terms and our Privacy Policy. If you don't accept them, don't use the service.

3. The service

PaperJet renders Typst source code into PDF documents over an HTTP API. You authenticate with API keys you mint in the dashboard. The full product surface is available on the Free plan; quotas and rate limits are listed on the pricing page and enforced server-side. Paid plans use Stripe Checkout and Stripe Billing.

Free tier is HARD-CAPPED at 100 PDFs / month — the 101st request returns 429 with a clear message. We never silently auto-upgrade you or let a runaway loop accumulate a four-figure bill.

The service is self-serve developer infrastructure. It is not designed for emergency, life-safety, regulated, or other mission-critical use unless we agree to specific written terms for that use case.

4. Acceptable use

You agree NOT to:

  • Render PDFs that infringe third-party intellectual property, contain malware, child sexual abuse material, or content unlawful under EU, French, or your jurisdiction's law.
  • Use the service to enumerate, brute-force, or otherwise probe authentication endpoints or bypass rate limits.
  • Resell raw PaperJet capacity as your own service offering without a prior written agreement.
  • Reverse-engineer the rendering pipeline to infer non-public Typst compiler internals, font embeddings, or sandbox configuration.
  • Share API keys across organisations or publish them in any artifact (commit, log, screenshot) — you're responsible for all activity under your keys until they're revoked.

We reserve the right to suspend or terminate accounts that violate these rules. We may act without advance notice when needed to protect the service, users, infrastructure, payment systems, or comply with law.

5. Your content

You retain all rights to the Typst source you submit and the PDFs we render for you. We do not archive rendered PDF bytes by default: ordinary render responses are streamed back to your client. If you send an Idempotency-Key, a successful response can be cached for up to 24 h to replay safe retries. We DO store templates you upload via the dashboard or /v1/templates (R2 bucket) until you delete them or your account.

Render metadata (size, status, duration, timestamps — never the PDF content) is retained for 30 days on every plan.

6. Billing

Paid self-serve subscriptions are billed through Stripe. Checkout discloses the base subscription, taxes, and metered overage before payment confirmation.

Free tier never incurs overage — the hard cap applies. Hobby, Pro, and Scale include a monthly quota; renders above that included quota are billed at the per-PDF overage rate shown on the pricing page.

You are responsible for reviewing the plan, tax, and overage information shown at checkout before subscribing. Except where the law requires otherwise, paid subscription fees are non-refundable once the billing period has started.

7. Service availability

We try to keep the service available, but make no uptime guarantee unless a written availability commitment is agreed before it is advertised as an SLA.

Live status is at /status. We may modify, suspend, throttle, or discontinue parts of the service where required for maintenance, abuse prevention, security, legal compliance, third-party provider limits, or operational reasons.

8. Warranty disclaimer

The service is provided "as is" and "as available" without warranties of any kind, express or implied, including but not limited to fitness for a particular purpose, accuracy of rendered output, or non-infringement. We do not guarantee that the service will be uninterrupted, error-free, secure against every possible attack, compatible with every Typst document, or suitable for your specific use case.

9. Limitation of liability

To the maximum extent permitted by law, our aggregate liability for any claim arising from the service is limited to the amount you paid us in the 12 months preceding the event giving rise to the claim (or €100, whichever is greater for paid plans; €0 for Free tier). We are not liable for indirect, incidental, consequential, or punitive damages, including lost profits, lost data beyond what was actually stored on our infrastructure, or business interruption.

10. Termination

You may terminate your account anytime from Settings → Delete account. Account deletion cascades to all your API keys, templates, render metadata, and webhook endpoints. Audit log entries are retained for one year with the user id anonymised, as described in the Privacy Policy's retention section.

We may terminate or suspend your account for material breach of these Terms, suspected abuse, payment failure, legal compliance, security risk, or operational reasons. Where reasonable, we will give notice and an opportunity to export or delete your data; we may act immediately where delay would create risk.

11. Changes to these Terms

We may update these Terms. Changes take effect when posted unless a later date is stated. For material changes that significantly affect paid service terms, we will make reasonable efforts to notify affected customers by email or in-product notice before they take effect.

12. Governing law

These Terms are governed by French law. Disputes will be resolved by the competent courts of Paris, unless a non-waivable consumer protection rule applies in your jurisdiction (in which case that rule governs to the extent it overrides this clause).

13. Contact

Use [email protected] for legal questions, privacy requests, security disclosures, billing, or operational inquiries. Add a clear subject prefix such as [privacy], [security], or [billing] so it can be triaged quickly.