# Security and privacy > What Querylab.io can and cannot see. Your queries run from your browser or the desktop app straight to BigQuery with your own Google credentials, and the results never pass through our servers. This page lists every kind of data the app handles, where it goes, and the few cases where something does reach our backend. Source: https://docs.querylab.io/getting-started/security-and-privacy/ Querylab.io runs your queries with your own Google credentials. The request goes from your browser, or from the desktop app, straight to BigQuery, and the rows come straight back. Our backend never runs your queries and never sees your results. ## Where each kind of data goes | Data | Where it goes | Reaches our servers? | | ----------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------ | | Query results | From BigQuery to your browser or the desktop app | Never | | SQL text, tabs, query history | Stored on your device | Only if you turn on **Store tabs on backend (encrypted)** in Settings → Privacy | | Table and column names | Cached on your device | Only when you use Prism AI or AI completions | | Shared links | Encrypted in your browser before upload | Yes, encrypted. The key is only in the link, so we cannot read it | | Saved queries | A Dataform repository in your own GCP project | On the web, passed through without being stored. See [Saved queries](#saved-queries) | | Usage data | Feature usage, errors, and query cost statistics | Yes, if you allow it. Never SQL text, names or values | | Your Google token | See [Your Google token](#your-google-token) | Web only, encrypted | ## Your Google token | Sign-in | Where the token is stored | | ----------------------- | ---------------------------------------------------------------------------------------- | | Web app | Encrypted with AES-256 on our servers, so your session renews without signing in again | | Desktop, Google sign-in | Your macOS Keychain. It never leaves your Mac | | Desktop, local gcloud | Wherever gcloud keeps it. The app asks gcloud for a short-lived token and copies nothing | With Google sign-in, Querylab.io knows your email address, name and profile picture. That is how your account is identified. Querylab.io asks for the BigQuery scope at sign-in and for other scopes only the first time you use a feature that needs them. The full list is on [Authentication](https://docs.querylab.io/getting-started/authentication/#oauth-scopes). To revoke access, remove Querylab.io under [Google Account → Third-party access](https://myaccount.google.com/permissions). For gcloud, run `gcloud auth application-default revoke`. ## If your company blocks third-party apps Some Google Workspace admins allow only approved apps. If **Continue with Google** fails or waits for IT, use the desktop app with your gcloud sign-in: ```bash gcloud auth application-default login ``` The app signs in through gcloud, which your company already allows if you use Google Cloud from the terminal. There is no Querylab.io grant for an admin to approve, and your credentials stay on your machine. Details: [Use existing gcloud auth](https://docs.querylab.io/desktop-app/gcloud-auth/). ## Saved queries Saved queries live in a Dataform repository in your own GCP project, under your IAM policies. Google's Dataform API does not accept calls from a browser, so on the web, saving or opening a saved query goes through our backend with your token. The backend passes the request to Google and stores nothing. This only happens when you use saved queries. The desktop app calls Google directly. ## AI features Prism AI and AI completions are off until you use them. When you do, your SQL and the names of the tables and columns involved go through our backend to the AI provider. Query result values are shared only if you allow it: **Share Query Results Preview** in Settings → Prism AI is set to **Ask each time** by default. On the desktop you can use your own API key or an AI tool already installed on your Mac, such as Claude Code or Codex. These talk to the provider directly, without our backend. ## Usage data With your consent, the app sends feature usage, errors, and statistics about each query's cost: bytes processed, slot time, and counts such as the number of joins. It never sends your SQL text, table, column, dataset or project names, or any values. You can turn it off in Settings → Privacy. The full list is in the [Privacy Policy](https://querylab.io/privacy-policy). ## Without an account The [Playground](https://docs.querylab.io/getting-started/playground/) needs no Google account. It runs on public sample data in a project we manage, so playground queries do go through our backend.