KORPS.AI

Legal

Cookie Policy

Version 1.1 · Published September 17, 2026 · Describes the shipped code

1. Short version

The Korps marketing site sets no cookies at all. It measures itself, and only itself: which sections of a page were seen, which button was clicked and how long the page took to load are sent to our own servers. That measurement is off by default and runs only after you accept it in the privacy banner every page shows on your first visit; declining keeps it off. It sets no cookie, stores no IP address, involves no advertising and no third party, honours Global Privacy Control and Do Not Track as a decline, and is deleted after 90 days. It is described in section 3 and in the Privacy Policy.

The Korps web app stores two values in your browser's local storage so you stay signed in, and the operator console stores one more for the same reason. All three are strictly necessary to provide a service you asked for, so no consent banner is required for them. The measurement choice itself is stored the same way, described below.

2. What is stored

Browser storage used by Korps, as of version 0.1 of this policy.
NameTypePurposeLifetime
korpsAccess Local storage, first party Short-lived access token that authorises API calls for your session. Valid 15 minutes; replaced on renewal, removed on sign-out.
korpsRefresh Local storage, first party Refresh token used to get a new access token so you are not signed out mid-visit or on return. Valid 30 days; removed on sign-out or when the server rejects it.
korpsPlan Session storage, first party The plan code you pressed on the pricing page, so that "Start with Team" still means Team once the sign-up form has loaded and the account has been created. It is a preference and never an entitlement: the server decides what an account is actually on. This browser tab only. Removed when the tab closes, and as soon as the choice has been shown on the plan page it was made for.
korpsWorkspaceCreate Session storage, first party A random key for one attempt at creating your organisation in the account portal, sent as an idempotency key so that a retry after a lost response does not make a second organisation. It identifies nothing about you. This browser tab only. Removed as soon as the organisation exists or the tab closes.
korpsConsoleTokens Local storage, first party The operator console's session: its access token and its refresh token, kept together as one entry. Written at sign-in. The access token inside is valid 15 minutes and is replaced on renewal; the refresh token lives until you sign out or it is rotated. The whole entry is removed on sign-out, or when the browser clears site data.
korps.consent Local storage, first party Your choice about the first-party measurement in section 3: accepted or declined, and when you chose it. Read by every page before it decides whether to measure anything, and by the privacy banner so it does not ask you again. Kept until you change your choice from the Your Privacy Choices link in the footer, or clear site data for korps.ai.

These are local and session storage entries rather than cookies, so they are never attached automatically to requests and are not sent to any third party.

The app also writes a single entry called korpsProbe when it starts, and deletes it in the same moment. It is not stored and it holds nothing about you. Its only purpose is to find out whether this browser will let Korps keep a session at all, so that if site data is switched off the app can say so plainly instead of accepting your password and quietly failing to sign you in.

3. Your privacy choices

Every page on korps.ai shows a banner titled "Your privacy choices" the first time you visit. It names the one thing that can be measured, the first-party analytics described below, and gives you two buttons: Accept turns it on, Decline keeps it off. Your choice is written to korps.consent and the banner does not ask again.

If your browser sends Global Privacy Control, or Do Not Track, we already know the answer: nothing is measured, whatever was chosen before, and the banner shows a shorter notice with a single "Got it" button instead of asking. Turning either signal off later does not silently turn measurement back on; your stored choice, or a fresh Accept, decides that.

To change your mind later, use Your Privacy Choices in the footer of any page, which reopens the same banner. Do Not Sell or Share My Personal Information, next to it, opens the same banner too: Korps does not sell or share personal information, so there is nothing separate to opt out of, and the banner says so.

4. What we do not use

What we do use is one first-party measurement on our own marketing pages, and only once you accept it. The page sends, to our own servers and nowhere else, which sections were seen, which button was clicked, how long the page took to load, the viewport size, whether reduced motion was on, and the message of any script error. It sets no cookie and reads none, stores no IP address and no account, is never sent when you have declined or when Global Privacy Control or Do Not Track is on, and is deleted after 90 days.

The app, the API and the marketing pages load nothing from third parties: the site ships its own fonts and loads nothing from anyone else. The page's motion is drawn locally in your browser.

5. Server-side logs

Independently of browser storage, our reverse proxy and API record request method, path, status, timing and source IP address in order to run and secure the service. That is described in the Privacy Policy, not here.

6. How to clear the stored values

7. Changes

If we ever add third-party analytics, or any storage that is not strictly necessary, we will update this page and ask for consent before setting it, the same way section 3 already asks for the one first-party measurement that exists today.

8. Contact

privacy@korps.ai