AirGap QR does not have a server that receives your files. Encoding, scanning, encryption and decoding all happen locally in your browser. Your files and messages are transferred directly between your two devices (screen ↔ camera, or inside a share link) and are never uploaded to us or anyone else. We don’t have accounts, and we can’t see, store, or recover your transfers.
The hosted version includes an optional paid Pro upgrade for unlimited transfers. Payment is handled entirely by Stripe — we never see or store your card details — and the free usage limit is counted on your own device, so we don’t log your IP address to enforce it.
No files, no message contents, no accounts, no email, no names, no contact lists. There is no database of transfers because transfers never reach a server.
The app stores a small amount of data in your browser’s local storage purely for your convenience — your theme choice (light/dark), your language, a flag that you’ve seen the intro, and — on the hosted version — a count of how many free transfers you’ve used, a lock timer, and (if you subscribe) a Pro licence token. This never leaves your device except as described under “Payments” below, and is not used for tracking. Clear your site data to remove it.
A share link carries the (always encrypted) data inside the link’s # fragment, which browsers never send over the network. We don’t receive it. However, once you send a link through another app (chat, email), that service can see the link — so keep the password separate, and treat a link like the file itself.
If you use the optional Direct P2P mode, your file is transferred straight between the two devices over an encrypted WebRTC connection — it still never touches our servers, and the file is heavy-duty encrypted before it leaves your device. To establish that connection, the two devices exchange network information, so each device can learn the other’s IP address, and any public STUN/TURN helper used to connect can see connection metadata. This is a property of peer-to-peer networking, not something we collect. For maximum anonymity, use the QR or GIF path instead.
If you buy the €10/month Pro upgrade, checkout is processed by Stripe, our payment provider. You enter your card and email on Stripe’s own secure page — we never receive or store your card number. Stripe processes your payment details and email under its own privacy policy. Our server only asks Stripe to start a checkout and to confirm whether a subscription is active; it stores this as a signed token in your browser, and keeps no database of subscribers of its own. The “Restore” option looks your subscription up by the email you paid with. The free 3-transfer limit is enforced locally on your device, so using the free tier requires no personal data at all.
To load the app, your browser downloads static files from our web host. Like most hosts, it may process standard technical request data (such as IP address and browser type) transiently to serve the page and protect against abuse. We do not use this to identify or profile you, and the app makes no further network requests with your data once it has loaded.
We do not use tracking cookies, third-party advertising, or analytics. There are no cookies at all.
AirGap QR is not directed to children under 16, and we knowingly collect no data from them (or from anyone).
Because we hold no personal data about your transfers, there is nothing for us to export, correct, or delete on request. Under the EU GDPR you retain your statutory rights; for anything related to website hosting, you can contact us below.
We’ll update this page if the app changes. Material changes will be noted with a new “last updated” date.
Questions: [email protected] · Operated by George Papasotiriou, Greece (European Union).