Two cloud modes. One direct browser-to-S3 architecture.
webQsee's Cloud Gallery either runs on a bucket we manage for you in one of six AWS regions, or on a bucket you bring yourself (Amazon S3 or any S3-compatible storage like min.io). Either way, captures move directly from your browser to S3 and never pass through webQsee's backend. On a bucket we manage, the captures themselves are stored with us, their recorded data encrypted in your browser first; on your own bucket, webQsee's servers hold only the metadata and the wrapped item keys.

webQsee-provided vs Bring-your-own, at a glance.
| webQsee-provided | Bring your own (S3_KEY) | |
|---|---|---|
| Who pays the bucket bill | webQsee | You (your AWS / min.io) |
| Available on Free tier | 7-day trial, 5 items | – (paid only) |
| Item cap (Free / Pro / Studio) | 5 / 20 / 40 | – / no limit / no limit |
| Item lifetime (Free / Paid) | 7 days / 1 year (extendable) | Unlimited (you control) |
| Geographic region | You pick at provisioning (6 AWS regions) | Wherever your bucket lives |
| Tenant isolation | Path prefix in a shared bucket | Your own bucket (full isolation) |
| Setup time | ~30 seconds, in-extension | ~15-25 min (one-off, see tutorials) |
| Audit logs of object access | webQsee's S3 logs (not exposed) | Your CloudTrail / min.io audit log |
| Encryption at rest | SSE-S3 by webQsee | You configure (SSE-S3, SSE-KMS, BYOK) |
| Recorded data encrypted in the browser before upload | Always (since 9.3) | A switch in the storage settings, on for storages created with webQsee 9.3 or later |
| Links that expire and can be withdrawn | Private links only (outsiders cannot reach your bucket) | |
| Custom retention / lifecycle | Plan-driven (server-enforced) | Your S3 lifecycle rules |
One team, one storage. A team picks one of these modes at setup; you can't mix both for the same team. You can run multiple webQsee teams with different storage modes per team if you need.
Cloud storage on Amazon S3, managed by us.
webQsee operates dedicated Amazon S3 buckets in six AWS regions. When you provision provided storage, the extension picks one of those regions; webQsee handles the bucket, IAM policies, encryption and lifecycle. You upload exactly as you would with your own bucket, the browser still talks directly to S3 over HTTPS, with short-lived presigned URLs minted by webQsee's backend.

How it works (legend for the diagram above)
- The extension asks webQsee's backend for a presigned upload URL.
- The backend validates your plan, tenant path prefix, and item caps, then mints a short-lived presigned S3 URL.
- The extension PUTs the capture bytes directly to S3 using that presigned URL. The bytes never traverse webQsee's backend.
- Metadata (title, status, owner) is stored in webQsee's EU backend, exactly like with bring-your-own.
Available regions
Pick the region closest to your team. You can run multiple webQsee teams in different regions, but a single team's storage lives in one region only.
| Region | AWS code | Best for |
|---|---|---|
| 🇪🇺 Europe (Frankfurt) | eu-central-1 | EU customers, GDPR-conscious teams |
| 🇺🇸 USA (Ohio) | us-east-2 | North-American teams |
| 🇨🇦 Canada (Central) | ca-central-1 | Canadian residency requirements |
| 🇯🇵 Japan (Tokyo) | ap-northeast-1 | APAC, low-latency to Japan |
| 🇦🇺 Australia (Sydney) | ap-southeast-2 | Australia / NZ teams |
| 🇧🇷 South America (São Paulo) | sa-east-1 | LATAM teams |
eu-central-1. Teams that need provider-level full isolation should choose Bring-your-own.Plan limits for provided storage
| Plan | Max items | Item lifetime | Temporary share link |
|---|---|---|---|
| No account | – | – | 1 hour |
| Free Account | 5 (7-day trial) | 7 days, auto-deleted | 3 hours |
| Pro | 20 | 1 year, extendable | 24 hours |
| Studio / Enterprise | 40 / custom | 1 year, extendable | 24 hours |
Item lifetimes are server-enforced. Free-account items are auto-deleted at the 7-day mark. Paid items can be extended past 1 year using a Longer Storage Booster. Item cap can be temporarily raised with a +5 cloud items booster.
What we can and can't see
Since webQsee 9.3, the recorded data of every item (events, requests and responses with their bodies, cookies, attached files such as HAR files, and saved AI analyses) is encrypted in your browser with AES-256 before it reaches the bucket, so a copy of the bucket alone holds nothing readable. Videos, screenshots and thumbnails are not encrypted, so that the browser can play and show them straight from storage. Items uploaded before 9.3 stay as they were stored.
The keys are kept by webQsee, encrypted with a key of our own, so that everyone who may open an item (your team, and whoever holds a link) can read it. That protects against a bucket that leaks, a presigned URL that ends up in a log or a storage credential that escapes. It does not protect against webQsee itself, and it is not end-to-end encryption. If your threat model needs that, use Bring-your-own, where webQsee has no access to your bucket at all.
Cloud storage on your bucket, your AWS bill, your full control.
Bring-your-own (mode S3_KEY in the extension) is the strongest privacy setup: webQsee never gets credentials to your bucket. The extension uses your Access Key ID + Secret to PUT and GET objects directly. webQsee's backend stores metadata (item title, description, status, team membership) and, while encryption is switched on, each item's key wrapped with a key of our own; it physically can't access the payload because it holds no credentials for your bucket.

What it works with
- Amazon S3, any AWS region you choose
- Self-hosted min.io, served over HTTPS with a publicly-trusted certificate
- Other S3-compatible storage that supports SigV4 + path-style addressing
Plan limits
Bring-your-own is exclusive to paying customers. There are no webQsee-imposed item caps and no webQsee-imposed lifetimes; the bucket is yours.
| Plan | BYO available | Item cap | Item lifetime |
|---|---|---|---|
| Free Account | – | – | – |
| Pro | No webQsee limit | You control (S3 lifecycle) | |
| Studio / Enterprise | No webQsee limit | You control |
Setup paths
Amazon S3, simplified
One shared IAM user for the whole team. Easiest path; ideal for solo developers and small trusted teams.
15-min tutorialAmazon S3, multi-user / RBAC
One IAM user per team member, tag-based folder isolation, per-user audit trail.
25-min tutorialSelf-hosted min.io
The same S3 protocol on hardware you control. Same bucket policy, plus two min.io-specific connection-settings keys.
25-min tutorialMigrate / multi-team topologies
Switch from simplified to multi-user, share one bucket across teams, or split into per-team buckets.
All S3 tutorialsSecurity model
In BYO mode, webQsee never holds your bucket credentials. Each team member's Access Key + Secret are stored locally in their browser, encrypted in extension storage. webQsee's backend can't read them; you re-enter them on every device.
- In transit: TLS 1.2+ on every S3 call; HTTPS enforced for min.io.
- Encrypted in the browser: with Encrypt recorded data on in the storage settings (the default for storages created since 9.3), the recorded data of new items is encrypted before it is uploaded. The keys are kept by webQsee, so a copy of your bucket alone cannot be read, and webQsee alone cannot read anything either, because it has no access to your bucket. Switching it off affects only items uploaded afterwards.
- At rest: you pick SSE-S3, SSE-KMS or BYOK on the bucket.
- Public access: tick "Block all public access" on the bucket; sharing uses presigned URLs created on demand by the extension.
- IAM: use the published
webqsee-bucket-rwpolicy template (scoped to one bucket, nos3:*on everything else).
What ends up where, in both modes.
| Data | S3 bucket | webQsee backend (EU) | Local IndexedDB |
|---|---|---|---|
| Behavior Report video (.webm) | – | cache until upload | |
| Behavior Report network/console (.bar) | encrypted in the browser (on your own bucket when switched on) | – | cache until upload |
| Event Snapshot (.esa) | encrypted in the browser (on your own bucket when switched on) | – | cache until upload |
| Attached files (HAR, cookies, logs) and saved AI analyses | encrypted in the browser (on your own bucket when switched on) | – | cache |
| Full-page screenshot (PNG) | – | cache until upload | |
| Thumbnails | – | cache | |
| Item title, description, notes, status and other metadata | – | cache | |
| Team membership & ACLs | – | cache | |
| Links (expiry, withdrawal, how often opened) | – | – | |
| Item encryption keys (stored encrypted) | – | in memory while an item is open | |
| Records of your confirmations before data leaves the device | – | – | |
| Your AWS Secret (BYO only) | – | – | |
| webQsee's AWS Secret (provided only) | – | (server-only) | – |
Recipients open shared captures at view.webqsee.com.
Both modes work transparently with the web client at view.webqsee.com. A team member signs in and opens items as in the extension. A link to an item in provided storage carries a token that expires and can be withdrawn; the recipient opens it without an account, the page fetches the metadata and the item's key from webQsee, pulls the capture bytes directly from S3 via a presigned URL and decrypts them in the browser. BYO items are opened with the team member's own credentials.
Recipients never install anything for view-only access. Editors still need the extension.
When something doesn't connect.
Bring-your-own
- CORS error on PUT. Re-check the CORS configuration on the bucket. Methods must include
PUT POST GET DELETE HEAD, exposeETag, allow your extension origin. - 403 Forbidden on PUT. IAM policy ARN doesn't match the bucket name, or the principal tag
webqsee-user-idisn't set on the IAM user. - SignatureDoesNotMatch. Region mismatch between team-wide settings JSON and the bucket's actual region; or v2 instead of v4 signing on min.io.
- net::ERR_CERT_AUTHORITY_INVALID (min.io). The cert must be trusted by every team member's browser; self-signed won't work cross-origin.
- "This bucket must be addressed using the specified endpoint" (min.io).
s3ForcePathStyle: trueis missing from the connection settings.
webQsee-provided
- "Trial expired" on a free account. Items in provided storage older than 7 days are server-deleted automatically. Upgrade to Pro to keep them.
- "Item cap reached". Free 5 / Pro 20 / Studio 40. Either delete some items, upgrade tier, or buy a +5 cloud items booster.
- Long upload times. Pick a region closer to your team. Provisioning into the wrong region can only be fixed by switching the storage type (one team, one storage).
- "Cannot create temporary storage". The self-hosted min.io provisioning tier was retired; create a new provided storage in a non-temporary region instead.
Stop guessing. Start webQseeing.
Add webQsee to Chrome or Edge in one click. Recording and replay are free, no signup needed. Upgrade when you need AI analyses, cloud sharing, S3 storage and Pro-grade tooling.
Works in Chrome 103+, Edge 103+ and most Chromium-based browsers. Install instructions.