Plans & pricing¶
AppGantry's pricing model has two ideas:
- You pay for the bytes you move and keep, not per seat. Teammates, reviewers, and CI bots are always free to add.
- Heavy-distribution customers can cap the bill at the platform fee by hosting artifacts in their own cloud account (BYOSA).
The canonical pricing table lives on the AppGantry pricing page. This page explains what each meter actually measures and how billing is posted.
Plans at a glance¶
| Team | Business | Enterprise | |
|---|---|---|---|
| Availability | Available now | Available now (where enabled) | Not generally available |
| Platform fee | $5 / mo | $50 / mo | TBC |
| Sign-up | Self-serve, trial available | Self-serve where enabled | Register interest |
| Storage model | Hosted | Hosted | Hosted or BYOSA |
| Per-MB charges | Yes | Yes | Yes on hosted; waived under BYOSA |
| Max audit retention | 90 days | 365 days | Not yet decided |
| SSO / SAML | - | ✓ | ✓ |
| Projects per organization | TBC | TBC | TBC |
Enterprise is not on sale yet
Enterprise is not yet available. Register interest and we will get in touch when it is available. Team and Business are the plans that exist today.
Distribution itself is not plan-gated: projects, builds, channels, releases, testers and tester groups, webhooks, store connections, and the in-app updates SDK are available on the self-serve plans. What Business adds is more projects, SSO / SAML, and longer default retention.
Starting on Team: trial or pay now¶
The Team signup flow offers two routes:
- Free trial. No card. Time-limited, with upload, download, and storage caps and a small starter credit. Add a card at any point to become a paid Team organization.
- Pay now. Skips the trial and activates Team immediately, with a credit bonus on activation. The organization is created straight away but asks for a payment method before you can use it.
Which caps and credit amounts apply are shown in the signup flow itself, because they change; the flow is the authoritative source, not this page.
The three meters (hosted storage only)¶
When your org is on hosted storage, three independent meters fill your invoice. All quantities are decimal MB (1 GB = 1000 MB).
Storage¶
- Unit: MB-month.
- Counts: retained artifact bytes held over the billing period.
- Sampled: daily; averaged at month close.
Storage is a rate over time, not a one-time charge. Holding 1 GB for a full month is 1 GB-month. Holding it for 15 days is about 0.5 GB-month. Shorter retention → fewer MB-months.
Upload¶
- Unit: MB.
- Counts: new build artifact bytes successfully ingested.
- Measured at: the upload-completion callback, against the blob's actual size.
Failed and abandoned uploads are not billed. A background reaper sweeps incomplete direct-to-blob uploads so they don't accrue storage either.
Download¶
- Unit: MB.
- Counts: bytes shipped to testers and developers: both count.
- Measured at: the per-request log row × artifact size.
Tester downloads are the line that can surprise you on a viral build. See spend caps for how to bound it.
Billing posture¶
| Plan | Posture | Behaviour |
|---|---|---|
| Team | Pre-paid | Your account holds a balance; usage draws it down. When the balance hits $0, uploads and new downloads are blocked (HTTP 402) but metadata stays readable. Top up to resume. |
| Business | Pre-paid | The same balance and the same 402 as Team, on top of the higher platform fee. An optional hard spend cap can be set as well. |
| Enterprise | Not generally available | N/A |
BYOSA organizations pay the flat platform fee and no per-MB metering, so the storage, upload, and download meters above don't apply to them. Your own cloud provider is the spend ceiling.
Write locks¶
Independently of the meters, an organization can be placed in a state
that blocks changes. The API answers with HTTP 402, and the three
write-lock codes each carry a matching details.lock_reason:
error |
lock_reason |
What happened | What still works |
|---|---|---|---|
payment_required |
awaiting_payment |
The organization committed to a paid plan but has no payment method yet | Reading metadata |
billing_suspended |
suspended |
Payment problems went unresolved | Reading metadata, and downloading existing builds for a configured period |
trial_ended |
grace |
A no-card trial ran out of time and no card was added | Reading metadata |
Those three are the only lock_reason values. A payment that is still
being retried by the payment provider — past due, dunning in progress —
is not a write lock: the organization keeps writing until the
retries are exhausted and it becomes suspended.
Under trial_ended, uploads, downloads, and organization-scoped writes
are all refused until a payment method is added.
Two other 402s are not locks: a drained pre-paid balance
(prepaid_credit_exhausted, which is also what a trial that burns
through its starter credit returns) and a hit spend cap
(spend_cap_exceeded). Those are per-request billing gates, carry no
lock_reason, and leave the rest of the organization writable.
In every case, the organization, its projects, its builds, and its audit history stay intact and readable — you are locked out of writing, not out of your data. Adding a payment method or topping up clears it.
See Errors → 402, which is the canonical taxonomy, and Billing, usage & caps for how to fix each one.
See also¶
- BYOSA: flat-fee distribution for Business orgs.
- Audit & spend caps: how to keep the bill predictable.
- Billing, usage & caps: the screens and the day-to-day workflow.
- Build lifecycle & retention: what retention actually controls.