Trust center

What we promise, and where to check it.

The documents behind ZestSSH's security, the controls in place, every outside service we use and what it sees, how long we keep what, and who to write to.

Last checked 23 October 2026, against ZestSSH 3.0.

Service status from status.zestssh.com

Reading the record from the status page

Services we use

Every outside service, and what it sees.

ZestSSH Cloud runs on servers we operate ourselves. These are the companies whose services ZestSSH relies on. None of them can read your synced vault: it is encrypted on your device before it leaves.

Outside services ZestSSH uses
ServiceWhat it does for ZestSSHWhat it seesWhen
Cloudflare(privacy policy, opens in a new tab) Runs zestssh.com and docs.zestssh.com, serves the installers, and sits in front of ZestSSH Cloud, where it ends the HTTPS connection and blocks attacks.Every request to our sites and to ZestSSH Cloud passes through it, so it sees IP addresses and request details. Request logs are turned off for the two websites, so it keeps no log of your visits for us. Synced vaults stay end-to-end encrypted through it.Whenever you visit a site or use ZestSSH Cloud
Firebase Authentication (Google)(privacy policy, opens in a new tab) Signs you in, checks two-step sign-in codes, and (for a team with company sign-in) connects to the company’s identity provider.Your email address, an account id, how you sign in, and your authenticator secret if you turn on two-step sign-in. Its library in the app adds the device model and the days the app was used.Only if you sign in
Google, Apple and Microsoft sign-in Let you sign in with an account you already have.That you signed in to ZestSSH with their account.Only if you choose one of them
Stripe(privacy policy, opens in a new tab) Takes payments on this website, sends team invoices, and runs Business subscriptions.Your card or other payment details (we never do), your email address, your account id, what you bought and, for a team, the billing email and any purchase order number you give.Only when you buy on the website
App Store and Google Play Sell the personal plans inside the apps, and deliver the apps.Their own records of your purchase and download.Only when you buy or install from them
RevenueCat(privacy policy, opens in a new tab) Confirms purchases from the stores and from Stripe, and tells the app what you own.An app user id (random before you sign in, your account id after) and the store receipt. On phones and tablets, its library adds the device model, OS version, languages, store country and app version, and on iOS Apple’s per-developer device identifier.Phones and tablets: when the app opens. Computers: through our server, while signed in
Resend(privacy policy, opens in a new tab) Sends our emails: address checks, password resets, two-step sign-in notices and team invitations.The address it sends to, and the message with its one-time link (for an invitation, also who invited you and to which team).Only when one of those emails is sent
Backblaze(privacy policy, opens in a new tab) Holds the offsite copy of our server backups.Only backups already encrypted with AES-256 on our own hardware. It cannot read them.Every day
Discord(privacy policy, opens in a new tab) Our community, and where the bug reports and suggestions you send from the app are posted.What you write in a report, the six facts shown to you before sending, and a screenshot (redacted by default) or a Discord handle if you add one. What you post in the community yourself is between you and Discord.Only when you send a report or suggestion, or use the community

Inside the app, only when you use them

On Android, the QR code scanner is Google's ML Kit, which reports usage metrics to Google (never the image or the code). Voice-to-text uses your device's own speech recognizer. Storage you choose for sync or backups (WebDAV, S3-compatible, Google Drive), clouds you import hosts from and password managers you connect talk to you directly; ZestSSH never receives their credentials. The whitepaper's privacy section lists every request the app makes, and when.

Data retention

How long we keep what.

Nothing is kept longer than its job needs. Deleting your account removes it from ZestSSH Cloud at once, except the purchase records kept for accounting; our backups lose it within 6 weeks.

Delete your account
Data on your devices
Until you delete it. We never hold it: hosts, keys, passwords, snippets and settings stay on your devices unless you sync them.
Your encrypted vault on ZestSSH Cloud
One copy, replaced on each change, until you delete it or your account. No earlier versions are kept.
A cloud copy set aside by Reset cloud sync
30 days, where nothing reads it, then deleted. Your account cannot be deleted during those days.
Your account (email address, account id, name and photo address from your sign-in, what you own)
Until you delete your account. Deletion is at once; ZestSSH 2.1.1 and earlier schedule it 30 days ahead.
A profile photo you uploaded
Until you remove it or delete your account.
Two-step recovery codes
Only a keyed hash of each, until it is used, two-step sign-in is turned off, or the account is deleted.
Signed-in devices
Only the platform and when it signed in. A computer’s sign-in is deleted 31 days after it was last refreshed; a phone’s or tablet’s entry stays until the account is deleted.
The day you were last in a paid team
Kept so that you can still read your ZestSSH Cloud copy for 30 days after leaving the team. Replaced each day you are in one; deleted with the account.
Device approval requests
10 minutes.
Sign-in hand-off codes (signing in a computer through the website)
2 minutes.
IP addresses
Never stored by ZestSSH Cloud. Rate-limit counters live in memory only, for their window (at most 24 hours).
Server and website logs
None. ZestSSH Cloud keeps no request log, and Cloudflare’s request logs are turned off for zestssh.com and docs.zestssh.com.
Server backups
Made every 24 hours and kept on a schedule (7 daily, 4 weekly, 1 monthly), so deleted data leaves them within 6 weeks.
A team’s record, vaults and items
For the life of the team. A team with no members left is deleted. Record entries that name a member stay for the team’s life.
Replaced item versions and the trash
30 days.
Team activity
Off unless the owners turn it on; then at most 90 days, and deleted when it is turned off.
Team session logs
Off unless the owners turn them on for a vault; then 30 days, and deleted when they are turned off.
Email invitations
14 days, unless accepted or withdrawn first.
Invite codes
As long as the person who made it chose: an hour, a day, a week (the default) or 30 days. We hold only a lookup id, never the code.
Requests for access
7 days.
Live session shares
At most 12 hours, and nothing once a share ends.
A company directory (SCIM)
Until an owner turns directory sync off, or the team is deleted.
Private support tickets
While open, then deleted 90 days after the ticket is closed.
Bug reports
Posted on Discord, under Discord’s retention. Our server keeps a copy as a public ticket (never the screenshot, your account or any address) so the answer can be read in the app, and we delete that copy a week after the report is closed, usually because the bug is fixed. Email us to have a report removed sooner, from Discord and from our server.
Suggestions
Posted on Discord, under Discord’s retention. Our server keeps a copy the same way, until it is removed: email us to have both removed.
Purchase records
Kept as long as the payment provider keeps its record of the payment (Stripe for purchases on this website; the App Store or Google Play for theirs) and as tax and accounting rules require, after an account is deleted too. Our own records hold no email address.

Contact

Questions about security or your data?

Write to support@zestssh.com. A person reads every message. For a vulnerability, follow the disclosure policy: you hear back within 5 business days.

Company
Affluent Labs LLC
Security and privacy
support@zestssh.com

Read how it is built.

The whitepaper covers the architecture, the threat model, every primitive, and what ZestSSH cannot do.