PortModels
Log in

Storage plans

The free storage allowance, the App Data Layer packages, and how cancellation works.

Files that apps save for you live in your private per-app folders — see File storage. Those bytes count against a storage quota.

The free allowance#

Every account gets 500MB free, with no subscription. Most apps that save settings, notes, and modest exports never come close.

App Data Layer packages#

When you need more, subscribe to a monthly package. Quota is account-wide — shared across every app you connect, not per-app.

TierStoragePer month
5gb5 GB€2.00
20gb20 GB€5.00
50gb50 GB€10.00
100gb100 GB€18.00
250gb250 GB€39.00
500gb500 GB€69.00
1tb1 TB€119.00

Subscriptions are billed in EUR and are separate from credits — credits pay for model usage, a storage plan pays for capacity.

Subscribing#

storage_subscription.packages lists the tiers and the free allowance; storage_subscription.checkout takes a tier, a success_url, and a cancel_url and returns a hosted Stripe Checkout URL. As with credits, the subscription activates only when Stripe confirms payment.

You can hold one active storage subscription at a time.

Cancelling#

storage_subscription.cancel schedules cancellation at the end of the current billing period. Your quota and access continue uninterrupted until then — the period is already paid for — and no refund is issued for the remainder.

Changed your mind? storage_subscription.reactivate undoes a pending cancellation any time before it actually lapses.

storage_subscription.portal opens the Stripe Billing Portal for payment methods, invoices, and cancellation.

Warning

When a subscription lapses, your quota drops back to the free allowance. Files already stored are not deleted, but writes that would exceed the lower quota start failing. Export or clear what you need before a plan ends.

When you hit the quota#

A write that would push you past your quota is rejected with 402 and a storage quota exceeded error. Free up space or move to a larger tier — see File storage for how apps should surface this.

How usage is measured#

Uploads and deletes through the API update your usage immediately. A large file uploaded directly to storage through a presigned URL is never seen by the API server, so it appears in your usage figure at the next reconciliation pass rather than the instant it lands. Usage can therefore read slightly low for a while after a big direct upload; it is not an extra allowance.