Privacy policy
What QuoteOP stores, where it is kept, why, and how to delete it.
Last updated: October 9, 2026.
Who is responsible
QuoteOP is operated by Miro Nowa Perspektywa Sp. z o.o., Podolska 21, 81-321 Gdynia, Poland (KRS 0001072476 · NIP 7011177154 · VAT PL7011177154 · REGON 527070337). Registry court: Sąd Rejonowy Gdańsk-Północ w Gdańsku, VIII Wydział Gospodarczy Krajowego Rejestru Sądowego · Share capital: 50 000,00 zł. In this policy, “we” means the company. Contact: support@quoteop.app.
For your account, your sign-ins, your subscription, our logs, visitor statistics and support emails, the company is the data controller. For the chats you save in your Cloud copy, you are the controller and we are your processor. We store those chats only to provide QuoteOP to you, under the data processing terms in our terms of service.
What QuoteOP stores
- The chats you choose. When you click Scan this chat, QuoteOP saves that chat. It saves the messages and their times, the files (images, videos and documents) and the links Alibaba.com gives to them, the supplier’s name and company, and the Alibaba.com account IDs of you and the supplier, which identify the chat. It never saves chats you did not choose. It reads nothing in Message Center until you accept its notice in the side panel. In Message Center, QuoteOP checks which chat is open and whether a new message arrived. It keeps nothing from chats you do not scan. Before you click Scan this chat, the side panel shows the open chat’s supplier and company name without saving it.
- Your account. Your email address, whether you confirmed it, the name you gave if any, and when the account was created. If you set a password, it is stored as a hash, never as plain text, with the date it last changed. If you ask us to delete your account, we also store the date it will be deleted.
- How you sign in. For each passkey you create, we store its public key, its ID, a sign-in counter and how your browser reaches it. We also store its name, when it was created, and whether it works on your other computers. When the passkey reports it, we store the kind of password manager that holds it. The private key of a passkey stays in your password manager, and we never receive it. If you turn on two-step verification, we store the secret your authenticator app shares with us and your 10 recovery codes. Both are stored encrypted, with a key that is not kept in the database. We also store when the last code from your authenticator app was accepted, for 5 minutes, so that each code works only once. And we store how many wrong codes were entered in a row, and any pause that caused.
- Your sign-ins. For each sign-in session, we store when it started, when it was last used (to within an hour) and the IP address it came from. We also store your browser’s user agent, which names the browser and the system. And we store how you signed in: an emailed code, a password, or a passkey. With two-step verification on, the record also says whether you used your authenticator app or a recovery code. The Account page lists them under Where you’re signed in.
- Emailed codes. The 6-digit codes we email you to sign in, create your account, reset your password, change your email address or confirm it’s you. Each code works only in the browser that asked for it. We do not store the code itself. We store what our server needs to make it again with its secret key. That is when the code was first emailed, a random number, and its wrong tries. That record is filed under keyed hashes of your email address and of that browser’s code cookie, never the address or the cookie itself. Our sign-in software also keeps another value in place of each code. It is stored encrypted, filed under a hash of your email address rather than the address itself, until it is used or no longer works.
- Sign-in limits. To slow down password guessing and floods of code emails, we count sign-in attempts and code emails. We count them per email address, under a keyed hash of the address (HMAC-SHA256), never the address itself, and per account. The counts are kept for every address typed, whether or not it has an account, so they reveal nothing. Wrong passwords for an address are also counted per network, meaning the first part of the IP address they came from. That part is the first three numbers of an IPv4 address, or the first three of the eight blocks of an IPv6 address. That count is kept under keyed hashes of the address and the network, never the IP address itself. So wrong passwords from one network never make you wait on another. That count goes a day after the last wrong password from that network. Wrong codes, and tries without a code of one’s own, are counted per network the same way, and that count goes an hour after the last of them. Code emails are counted per network too, and that count goes a day after the last code asked for from that network. When you sign in or reset your password, we note that browser for your address, under keyed hashes of both. We keep that note for 180 days after your last sign-in there. Such a browser still gets its codes after requests from other networks have used up the address’s code emails for the day. Per IP address, our server counts requests in its memory only, and never writes those counts to the database or its logs.
- Account emails. The emails we send about your account: the codes, and notices of important changes. Examples are a new sign-in with a password or a passkey, a changed password, or a scheduled deletion. Someone may ask for a code for an address that has no QuoteOP account. For a password reset, or for sign-in while new accounts are closed, we then email that address to say that no account uses it. That email holds no code, and the same limits apply to it as to codes. Each notice says when it happened (in UTC), the browser and the system, and the country Cloudflare reports for the connection. It never shows the IP address. We take that country from Cloudflare for the email only and do not store it. Our emails hold no link other than quoteop.app and our support address, and never text that someone typed, such as a name. Our server keeps no copy of the emails. Its logs record each email’s kind, when it was sent and whether it went out, without your email address or the code.
- The check before a code. Before we send a code, the page asks your browser for a short calculation, usually under a second. It makes sending many codes costly for automated abuse. The calculation runs in your browser, uses no cookies and involves no other company. Our server keeps nothing about you from it. It remembers each finished calculation in its memory for at most 5 minutes, so that nobody uses it twice.
- Your subscription. Your Stripe customer and subscription IDs, the subscription’s status, when the paid month ends, and when a canceled subscription stops. After a subscription ends, we also store when it ended, the date your Cloud copy will be deleted, and when we sent the warning email and deleted it. We never receive or store your card number, your billing address or the amounts you paid. Stripe keeps those, as Sharing says.
- Interest in a planned feature. QuoteOP may show a planned feature that compares supplier quotes. If you tell us you want it, we store that your account asked for it, and when. We count these requests to decide what to build next.
- Diagnostics. The extension keeps a log of its last 500 operations on your computer: the QuoteOP version, counts, timings, error codes and references. The log holds no message content and no supplier names. Report a problem downloads it as a file, and the log leaves your computer only if you send that file. Our server keeps technical logs of failed requests, deletions, Cloud copy changes and each report of counts it receives (time, request reference, event), also without message content. The same logs note sign-in events, such as a limit reached, without email addresses or codes.
- Counts of saved files. From version 0.7.1, the extension sends our server counts of the files it saved from Alibaba.com and of those that did not save. Each count names the kind of file (image, video or document), the QuoteOP version and where the link started. It also names whether it saved or the error code (with the HTTP status for an HTTP error). For a file QuoteOP refused to follow, it names the Alibaba Cloud server Alibaba.com sent it to. The counts hold no message content, file names, links, chats or supplier names. The extension sends them while you are signed in, and our server uses your account only to limit how often it accepts them. Our server stores the counts by the hour, never with your account, and uses them to notice when saving files stops working.
- Support emails. Emails you send to support@quoteop.app, with their attachments, are kept in our support mailbox so we can answer them. That includes replies to our account emails.
- Cookies. The website sets a sign-in cookie to keep you signed in. It also sets a short cookie for a single sign-in step. It does so when a sign-in page loads, so that your browser can offer a passkey. It also does so while you create or use a passkey, or enter a code from your authenticator app. That cookie expires after 5 or 10 minutes. When you ask for an emailed code, the website may set the cookie __Host-quoteop_code_browser for 180 days. It also sets it when you sign in or reset your password. It holds a random value and nothing else. It ties each emailed code to the browser that asked for it, and tells our server which browser signed in to your address before. Our server keeps only keyed hashes of it. When a sign-in creates your account, the website sets the cookie quoteop_new_account for 10 minutes. It holds only the value 1, so the next page can say your account is ready, and that page then deletes it. Our server keeps a matching record of that step until it is used or runs out, and the daily clean-up deletes any left. Cloudflare, which protects the website, may set a security cookie when it checks a visitor. There are no advertising or analytics cookies, and no third-party trackers on the website or in the extension. The website counts visits without cookies, as Visitor statistics says. We add no CAPTCHA or Cloudflare Turnstile to the sign-in pages: the check before a code runs in your browser and on our server.
- Visitor statistics. The website counts visits with Cloudflare Web Analytics. A small script from Cloudflare reports the page’s address, the page you came from, your browser and system, your country and how fast the page loaded. It sets no cookies and stores nothing in your browser. Cloudflare does not use it to identify you or to follow you across websites. We see only totals. The script runs on quoteop.app only, never in the extension.
Where it is kept
- On your computer, in Chrome’s storage for the extension. Uninstalling QuoteOP deletes the chats and files it keeps there. Chats saved while another QuoteOP account was signed in stay there too. The side panel’s Settings lets you export them or delete them from that computer. To name those chats, the extension also keeps there the email address of each QuoteOP account that signed in on that computer. Deleting an account’s chats there forgets its email address, and so does uninstalling QuoteOP.
- In your Cloud copy, if you keep one. Before your first scan, the side panel asks whether to keep a Cloud copy, and Settings › Cloud copy changes it any time. Accounts that had Cloud copy on before this question keep it on. Messages are kept in our database, hosted by Supabase in Ireland. Files are kept on our server, hosted by CyberFolks in Poland.
- Your subscription record is kept in the same database. Payment details stay with Stripe, in its own systems.
- Your account and its sign-in data (passkeys, two-step verification, sign-ins, codes and limits) are kept in the same database, hosted by Supabase in Ireland. The counts per IP address and the finished calculations stay in the memory of our server in Poland.
- Counts of saved files are kept in the same database, by the hour and without your account.
- Account emails are sent through Postmark, a service of AC PM LLC (ActiveCampaign) in the United States. Postmark keeps each email we send, with your email address, for 45 days and then deletes it. It also keeps a list of addresses that bounced or reported our emails as spam, so that we do not write to them again.
- Support emails pass through Cloudflare and are kept in our support mailbox at Proton in Switzerland.
- Exports are files you create and keep. We do not keep a copy of them.
Connections to quoteop.app pass through Cloudflare, which protects the website from attacks and sees the IP address of each visitor. Ireland and Poland are in the EU. Switzerland has an adequacy decision from the European Commission.
Cloudflare, Inc., Supabase, Inc. and AC PM LLC (Postmark) are US companies, so data can be handled outside the EU. Such transfers rely on the EU–US Data Privacy Framework, in which Cloudflare and ActiveCampaign (Postmark’s parent company) take part. They also rely on the European Commission’s Standard Contractual Clauses in the companies’ data processing agreements.
Why, and on what legal basis
We use your data only for these purposes:
- to show your saved chats in the side panel, keep them on your other computers and get them back after a lost or replaced computer (Cloud copy), build your exports and sign you in. This is the service you asked for (GDPR Article 6(1)(b), performance of a contract);
- to send you codes and notices of important changes to your account. This is part of the service you asked for (Article 6(1)(b)). The notices also serve our legitimate interest in protecting your account (Article 6(1)(f));
- to protect the service and keep it working: Cloudflare’s protection against attacks, technical logs, counts of saved files, limits against abuse and backups. This is our legitimate interest in protecting the service and keeping it available (Article 6(1)(f));
- to protect accounts from takeover: the sign-in limits, the check before a code, the leaked-password check and the list of where you’re signed in. This is our legitimate interest in keeping accounts safe (Article 6(1)(f));
- to answer your support emails and to find and fix problems you report (Article 6(1)(b), and our legitimate interest in fixing problems, Article 6(1)(f));
- to sell you the subscription, check that it is paid, end it, and delete the Cloud copy after it ends. This is the contract you asked for (Article 6(1)(b));
- to count visits to the website and requests for a planned feature, so we know what people use and want. This is our legitimate interest in improving QuoteOP (Article 6(1)(f)).
Nothing else: no advertising, no profiling and no training of AI models. Chat content is not sent to AI services or to other third parties.
How long
Your account is kept until you delete it. A sign-in session ends 30 days after you sign in, however often it is used. Its record is deleted when you sign out, or when you sign that browser out on the Account page. It is also deleted when that browser next checks its sign-in after the session ended, or when your account is deleted. Otherwise our daily clean-up deletes it 30 days after the session ended. Some changes sign out your other browsers and delete their records. They are a new or changed password, a password reset, a new email address, two-step verification turned on or off, and new recovery codes.
A code works for 15 minutes, and we accept none more than 30 minutes after its first email. The value kept in place of a code is deleted once it is used or no longer works, at the latest by our daily clean-up. The record of a code goes at our daily clean-up once a day has passed since its last email. Passkeys, the authenticator app’s secret and the recovery codes are kept until you remove them, turn two-step verification off, or your account is deleted. Postmark deletes the emails it sent after 45 days.
The sign-in limits are kept as long as they apply. A count for the last hour or day goes once that hour or day has passed. A count of wrong tries in a row stays until the next successful sign-in, and at most 90 days after the last wrong try. For each address, we send at most 5 code emails an hour and 10 a day for requests from one network, and 15 an hour and 40 a day in all. The limit in all does not apply to a browser we noted for that address, as Sign-in limits above says, or to a browser signed in to that address now. A wrong code counts against a code only in the browser that asked for it. Once that code is used, has had 3 wrong tries, or expires, tries stop counting against it. So each code asked for adds at most 3 wrong codes to the address’s counts. A try from a browser with no code of its own for that address, or with another browser’s code, counts only on its network’s count. After 10 wrong codes or such tries for an address in an hour from one network, all its emailed codes pause on that network for an hour. While it lasts, we send no new codes for requests from that network. After 50 wrong codes for an address in an hour from any networks, that pause applies on every network. It does not stop the codes to reset a password, which only a network’s own pause stops. After 100 wrong codes in a row, sign-in with emailed codes pauses for 24 hours for that address, and we email it. Neither that pause nor the pause on every network applies to a browser we noted for that address, or to a browser signed in to that address now. During that pause, a password or a passkey still signs you in, and you can still reset your password. After 300 wrong passwords in a row, sign-in with a password stays off until you reset your password. We keep that record for at most a year. A password reset clears every wait and count of wrong passwords for that address. Our daily clean-up deletes the counts that no longer apply.
Your Cloud copy is kept until you delete it, or until after your subscription ends, as the next paragraph says. In the extension, Settings › Delete all data in the cloud deletes every chat and file QuoteOP keeps in the cloud and switches Cloud copy off. What is on your computer is deleted when you uninstall QuoteOP. To delete your account together with its cloud data, sign in on this website and use Delete account on the Account page.
When your subscription ends, scanning, automatic updates and new Cloud copy uploads stop. We email you once, with the date your Cloud copy will be deleted. That date is at least 7 days after the subscription ended, and our daily clean-up deletes it after that date. If you subscribe again before then, it stays. Chats saved on your computer stay either way. Your subscription record is kept as long as your account, and so is a request for a planned feature.
We delete your account and its Cloud copy 30 days after you ask. Until then, sign in and choose Keep my account to undo it. Asking signs out every other browser. The browser you asked from stays signed in and shows the deletion date. During those 30 days, the extension can neither read nor change your Cloud copy, and its exports keep working. The deletion itself runs at our daily clean-up, within a day after those 30 days. Support emails are kept until we delete them, and we delete yours when you ask. The counts of saved files are kept for about 30 days.
Backups: our server makes a backup every night and keeps it for 14 days. We also keep an offline copy of these backups: database backups for 60 days, and file backups without a fixed limit. Deleted data leaves the server’s backups after 14 days and the offline database backups after 60 days.
Sharing
We do not sell or rent your data, and we show no ads. Only these providers handle it on our behalf:
- Supabase: database, in Ireland;
- CyberFolks: server, in Poland;
- Cloudflare: website protection and delivery, forwarding of support emails, and visitor statistics;
- Postmark (AC PM LLC): sending account emails, in the United States;
- Proton: support mailbox, in Switzerland.
They may not use your data for their own purposes. We disclose data only if the law requires it.
Payments go through Stripe Managed Payments. Stripe’s company Sold through Link, LLC (“Link”) is the merchant of record for each payment. To open the checkout, we send Stripe your email address and an ID for your QuoteOP account. Stripe then tells us the state of your subscription. Stripe and Link collect your payment details at checkout themselves. They handle them as independent controllers, under Stripe’s privacy policy, not on our behalf. They keep payment records as the law requires them to, also after your account is deleted.
When you set, change or reset a password, our server checks it against the Pwned Passwords list of leaked passwords (haveibeenpwned.com). Only the first 5 characters of a SHA-1 hash of the password leave our server. The password, your email address and your IP address never do.
If you are a supplier in a saved chat
QuoteOP saves a chat only when the buyer in that chat chooses to. The buyer decides what is kept and is responsible for it.
We keep a buyer’s Cloud copy only to provide QuoteOP to that buyer. We do not combine chats from different buyers, we do not build lists of suppliers, and we do not use chat content for anything else.
To ask about your data in a saved chat, contact the buyer you chatted with. You can also write to support@quoteop.app, and we pass your request on to that buyer.
Chrome permissions
The extension asks Chrome for these permissions, and no others:
- sidePanel
- Shows the QuoteOP panel next to the page.
- storage and unlimitedStorage
- Keep your saved chats and files on your computer. Without unlimitedStorage, Chrome would limit saved chats to 10 MB.
- alarms
- Starts a check for new messages every 2 minutes while a saved chat is open.
- Access to alibaba.com
- Lets QuoteOP find its Message Center tab, look at the chat open there, and save the chats you choose with their files from Alibaba.com’s file servers. Alibaba.com’s file servers may send a document on to an Alibaba Cloud server, and QuoteOP downloads it from there. QuoteOP’s page scripts run in Message Center only, not on other Alibaba.com pages.
- Access to quoteop.app
- Checks that you are signed in, and copies chats to and from your Cloud copy. From version 0.6.0, it also notices when a quoteop.app tab changes address, so the side panel sees a sign-in at once. It keeps nothing from those addresses. From version 0.7.1, it also sends the counts of saved files described below.
QuoteOP has no access to your browsing history, to the cookies or content of other websites, or to your Alibaba.com password.
Chrome Web Store: Limited Use
QuoteOP’s use of information received from Chrome and from the pages you open follows the Chrome Web Store User Data Policy, including the Limited Use requirements. In plain words:
- the data is used only to provide the features described on this page;
- it is not used for advertising, and it is not sold;
- it is not used to decide on credit or loans;
- no person reads your chat content, unless you ask for help with a specific chat and agree to it, it is needed to investigate abuse or a security problem, or the law requires it.
Your rights
Under the GDPR, you have these rights:
- to access your data, and to get a copy of it;
- to receive the data you gave us in a common, machine-readable format, and to have it sent to another service;
- to have it corrected or deleted;
- to have its processing restricted, and to object to processing;
- to complain to a data protection authority. In Poland, this is the President of the Personal Data Protection Office (UODO).
Your exports already are a copy of your chats, and Settings › Download your Cloud copy brings your Cloud copy to your computer. The Account page on this website shows your email address, your name, how you sign in and where you’re signed in. There you can change them or delete your account. Use the contact address below for everything else.
Changes
When this policy changes, the new version is posted here with a new date at the top. When a change affects what QuoteOP saves or what your QuoteOP account keeps, the side panel shows you the new notice.
Contact
Write to support@quoteop.app.
See also the terms of service.