Legal
Privacy Policy
Data controller
TranscribeCat is operated by Klarweb in Oslo, Norway — a Norwegian-incorporated entity in the EEA. For GDPR purposes, Klarweb is the controller of personal data processed via transcribecat.com. Contact details are at the bottom of this page.
What we collect
Only what is needed to run the service:
- Account info — your email address and name, provided through Clerk when you sign up (Google sign-in or email).
- Audio and video files — the files you upload for transcription or choose to save in Library where available. Ordinary pay-as-you-go uploads let you request deletion when the transcript is ready or choose a storage window up to 90 days, default 90 days. Library originals have a separate storage choice and deletion date where applicable.
- Transcripts — the text output of your transcriptions and the edits you make, kept until you delete them or your account is deleted. A result awaiting successful payment remains inaccessible until funding is resolved; unfinished payment recovery has a limited retention window.
- Payment info — card details are handled by Stripe and never reach our servers. We retain payment identifiers, amounts and payment, refund and tax-reconciliation records. Optional Library checkout also sends your billing address through our server to calculate tax.
- Your answer to the cookie banner — we count analytics choices by page and screen size, without cookies or persistent identifiers. Each request gets a separate random identifier. Legal basis: legitimate interest, Art. 6(1)(f) GDPR.
- Product analytics — only if you accept — pages visited, clicks and navigation, and a session replay with every input field masked, collected by PostHog in the EU. PostHog runs only when you allow analytics in the cookie banner. Legal basis: consent, Art. 6(1)(a) GDPR.
How we use your data
- To transcribe your audio and video files and deliver the results, and to store, organise and play originals you choose to save in Library where available.
- To take payments and issue refunds.
- To send email about the service you are using (contract, GDPR Art. 6(1)(b)): a welcome when the account is created, a message when a pay-as-you-go transcript is ready or has failed, or when a funded Library transcript is ready, a 30-day warning before a dormant account is deleted, a confirmation when it has been, and a receipt from Stripe when a payment is captured. Optional Library and plan features also use service messages about payment, storage limits and the deadline to download originals after paid access ends. These cannot be turned off while you have an account.
- To send retention notices (legitimate interest, Art. 6(1)(f), with the right to object): a week before we delete a recording's audio, and once if you upload a file and do not go on to transcribe it. Turn them off under Email on your profile or from the link in any such message; turning them off changes no deadline.
- To send occasional product updates (consent, Art. 6(1)(a)) — only to people who turned them on, and every message carries a link that stops them. If mail to your address bounces or you mark a message as spam, we record that and stop sending optional email to it; the record is on the same profile page, with a way to try again.
- To find and fix faults, and to see which parts of the product get used — but only for visitors who accepted analytics.
- To measure purchases resulting from advertising, only with your separate advertising-measurement consent. Google Ads receives ad-interaction information, purchase value and currency, an opaque transaction identifier, and technical connection information. We do not send your name, email, audio, file name or transcript text in these events.
We do not sell your data. We do not share it for cross-context behavioural advertising (CCPA/CPRA terminology). We do not use your files or transcripts to train AI models, and we have granted no processor permission to do so.
Transcript sharing and team workspaces
Sharing is optional. Creating a share link lets anyone who has it read the current saved transcript and speaker names without an account. The shared page does not expose audio, edit history, account details or payment information, and does not load analytics or session replay. You can expire, replace or revoke the link; deleting its source transcript also stops access. We cannot remove copies recipients have already saved.
Where team workspaces are enabled, team members can access shared recordings and transcripts. The owner manages membership, roles and company billing. We retain team membership references, invitations and the actor associated with team actions and billing authorization. Personal workspaces remain separate. Leaving a team or deleting a personal account does not delete the team's content or financial records.
Third-party processors
These providers process personal data on our behalf.
- Clerk — Authentication, sign-in and account management. Your email address, your name, and sign-in metadata. Clerk, Inc., United States. Transfers are covered by the EU Standard Contractual Clauses in Clerk’s data processing addendum. Clerk privacy policy.
- Neon — PostgreSQL database hosting — your account record, your transcripts and their metadata. No audio is stored here. Email address, account settings, transcript text. EU — AWS eu-central-1 (Frankfurt). Neon privacy policy.
- Vercel — Application hosting, and Vercel Blob for the audio and video files you upload. Your uploaded files, plus the request metadata any web host sees (IP address, user agent). Split. The application runs in Vercel’s Frankfurt region (fra1) and your files are held in a private Vercel Blob store in the same region — but Vercel’s workflow infrastructure, which keeps the record that lets a transcription resume after a failure, runs only in the United States (iad1) and has no EU option today. Vercel Inc. is US-incorporated in any case; both that processing and any access from outside the EEA are covered by the EU Standard Contractual Clauses in its data processing addendum. Vercel privacy policy.
- Cloudflare R2 and Workers — Private storage and delivery of new library originals when this storage path is enabled; creation of requested library downloads. Audio files, exported transcript text and filenames, opaque account and recording identifiers, and connection metadata. For this optional storage path, EU jurisdiction for R2 objects and durable access records must be configured and verified before it is enabled. Worker processing may occur outside the EEA; EU storage does not mean all processing is EU-only. Cloudflare, Inc. is US-incorporated. Its data processing addendum includes transfer safeguards, including Standard Contractual Clauses where applicable. Cloudflare R2 and Workers privacy policy.
- Stripe — Payment processing and payment receipts. Your card details — which go to Stripe directly and never reach our servers — your email address, and the amount charged. United States and Ireland. Transfers are covered by the EU Standard Contractual Clauses in Stripe’s data processing agreement. Stripe is a PCI-DSS Level 1 service provider. Stripe privacy policy.
- Resend — Email from us: service messages (welcome, transcript ready or failed, account deletion warning and confirmation), retention notices you can turn off, and — only if you opt in — product updates. Your email address and the contents of each message; the delivery outcome (delivered, bounced, complained), and, if you opt in to product updates, a contact record with your address and that choice. Resend, Inc., United States, with our sending domain in Resend’s Ireland (eu-west-1) region — `pnpm verify:email-dns` reads the region back from Resend. Transfers are covered by the EU Standard Contractual Clauses in Resend’s data processing agreement. Resend privacy policy.
- AssemblyAI — Speech-to-text transcription and speaker diarization. AssemblyAI fetches your file from a short-lived signed link, returns the transcript, and we store only the normalised text — never AssemblyAI’s raw response. The audio or video file you uploaded, and its transcript. United States. AssemblyAI’s own policy states that its services are “predominantly hosted and operated in the United States”; transfers are covered by the EU Standard Contractual Clauses in its data processing agreement. AssemblyAI privacy policy.
- PostHog — Product analytics, session replay and client-side error reporting — which pages people use, and what the screen looked like when something broke. Pages visited, clicks and navigation, a replay of the pages you viewed with every input field masked, and — if you are signed in — your Clerk user id. No email address, no file names, no transcript text. EU — eu.i.posthog.com. Loaded only if you allow its category in Manage cookies. PostHog privacy policy.
- Google Ads — Advertising measurement: connect an ad interaction to a completed purchase. No personalised-ad audiences or enhanced conversions. Ad click identifiers, a sanitised page address, purchase amount and currency, an opaque transaction identifier, and technical connection information. No account email, name, file name, audio or transcript text is sent by our conversion code. Google Ireland Limited; processing may occur in the United States and other countries under Google’s data-protection terms and applicable transfer safeguards. Loaded only if you allow its category in Manage cookies. Google Ads privacy policy.
Files you choose to transcribe are sent to AssemblyAI. Originals are stored with Vercel and transcripts with Neon. If the optional Cloudflare library storage path is enabled, originals on that path are stored with Cloudflare R2, and Cloudflare Workers also process transcript text when preparing a requested library download. They are not sent to PostHog: private library and transcript content is masked, and no file name or transcript text is captured.
When calculating tax for a pay-as-you-go checkout, our server may send that request’s IP address to Stripe to help determine the tax jurisdiction. This pay-as-you-go tax flow does not save or log that IP address in application records, and does not read it when tax calculation is disabled. This is separate from connection metadata processed by the services described above and temporary IP-based rate limiting on email-unsubscribe requests.
Optional Library checkout uses the billing address you enter with Stripe. We temporarily keep its tax request to recover interrupted calculations, then remove that request after confirming the calculation identifier. If an unpaid order is canceled, we remove the request after cancellation is confirmed and its calculation-recovery window has passed. Unresolved payment outcomes require reconciliation first. Our prices are tax-inclusive, so this determines how the payment is recorded, not the amount you pay.
How we record consent
Your cookie choice is stored on your own device in localStorage under the key tc-consent-v3, with a timestamp. We keep no server-side log of who consented when — the timestamp on your device is the record. Clearing your browser storage for transcribecat.com therefore resets the banner and we ask again. After 12 months we re-prompt automatically, in line with EDPB guidance on periodic re-confirmation.
Advertising measurement has a separate record, tc-ads-consent-v1, with its own timestamp and 12-month expiry. Existing PostHog consent is preserved but never grants advertising permission. Opaque conversion receipts in tc-ads-purchases-v1 reduce repeat sends and are cleared on advertising withdrawal.
International transfers
The application and database run in Frankfurt, and Vercel originals use Frankfurt storage. Before enabling the optional Cloudflare library path, we require verification that its R2 originals and durable access records are configured for EU jurisdiction. If that path is enabled, Cloudflare Worker processing may run outside the EEA, including while delivering files or preparing exports. Analytics use PostHog’s EU region. EU storage is not a promise that all service processing stays in the EU.
Clerk, Stripe, Resend and AssemblyAI process personal data in the United States. So does Vercel’s workflow infrastructure, which holds the orchestration record of each transcription job — the identifiers, timings and step outcomes that let a job resume after a failure. Your audio and your transcript text are not sent there. That record is stored in Virginia whatever region the rest of the application runs in, and Vercel offers no EU option for it today. Every one of these transfers relies on the EU Standard Contractual Clauses in that processor’s data processing agreement.
You control analytics and advertising measurement separately. Decline a category before granting it and its tag is not loaded. Google Ads may process data outside the EU as described in the processor register above.
Data retention
- Audio and video files — for ordinary pay-as-you-go uploads, choose deletion when the transcript is ready or a storage window up to 90 days. The default is 90 days. For a completed or failed job, the scheduled deletion date is the earlier of the chosen window measured from upload and 90 days after your last sign-in. We attempt deletion on completion for the immediate choice; the daily cleanup job retries audio due for removal. Failed cleanup can take longer and may need manual follow-up. The picker is on the upload page, next to the language selector, and on your profile page, where it sets the default for your next upload.
- Library originals, where available — kept separately from transcription jobs under the storage choice and deletion date shown in Library. A fixed date is not reset by a new transcription. Originals explicitly kept while paid have no scheduled audio deletion date during the active paid period. When paid access ends they enter a 30-day export grace period, unless you chose a shorter fixed date or delete them yourself. Signing in does not extend a fixed Library deadline. A protected export retry may extend the displayed grace deadline; it does not restore deleted files.
- Browser recording drafts, where available — stored on the device used to record until you discard or save them, subject to a 24-hour local recovery window. Browser storage can be cleared or evicted earlier. A local draft is not uploaded automatically, and it is not a cloud backup.
- Pay-as-you-go audio for a job that never finished — audio for a transcription that never reaches “ready” or “failed” becomes eligible for the daily cleanup job 24 hours after upload if you chose deletion on completion, and 30 days after upload for every other choice. These are cleanup cutoffs, not guarantees that a failed storage deletion has finished.
- Transcripts — accessible transcripts and their edits are kept until you delete them, or until your account is deleted. When a Library order is confirmed to have ended without payment, its inaccessible results have a seven-day payment-recovery window and are then scheduled for cleanup unless a new payment attempt is in progress. If the payment outcome is still uncertain, results remain inaccessible while we reconcile it. Deleting transcript text also removes its searchable copy and any cached Library-export text.
- Account data — kept until account deletion finishes. Accounts inactive for 12 months get a 30-day deletion warning by email, then become eligible for the daily account cleanup job if they remain inactive. It removes transcripts and remaining stored audio along with the account; failed steps are retried or need manual follow-up. Accounts with an active paid Library period or protected export grace period are excluded from inactivity deletion.
Financial records are separate from your recordings and account profile. We retain payment, invoice, refund and tax identifiers, amounts and reconciliation status for accounting and payment follow-up, including after account deletion. These records have no automatic expiry in the application. They do not contain recordings, transcripts or card details. Billing-address requests used for Library tax calculation are removed as described above; Stripe keeps its own payment and tax records. Contact us to ask about these retained records.
Your rights (EU/EEA and Norway)
Klarweb is established in Norway and processes data under the GDPR and the Norwegian Personopplysningsloven. You have the right to:
- Access — export your account data, transcripts and audio retention status from your profile page, or ask us for a copy.
- Rectification — correct inaccurate personal data from your profile, or by email.
- Erasure — delete individual transcriptions from your transcripts page, saved audio or transcript text from Library where available, and your whole account from your profile page. Deletion can take several steps. We report when a request cannot finish: some failures require you to retry or contact support, while queued cleanup is retried automatically. Account deletion waits while uncertain payments are reconciled. Removing content from your account does not confirm immediate erasure of copies held by the transcription provider. Provider cleanup may need to wait for processing to end, and unresolved cleanup needs manual follow-up. We retain limited provider identifiers and cleanup status records to track this work; these records do not contain recording or transcript content. Our database backup is Neon point-in-time recovery and its window on this project is six hours, so a deleted record survives in that backup for at most six hours. The one exception is a manual database dump taken before a schema migration, held where only the operator who took it can read it and deleted within 30 days.
- Cleanup safety records — where needed, we keep a hashed file identifier, deletion reason and timestamps to help prevent deleted files, or files still being deleted, from being restored. These records can remain after account deletion and have no automatic expiry. They contain no raw file path, account name, recording or transcript content. A hash can still be matched to a known original file path; we do not treat it as guaranteed anonymous.
- Restriction and objection — ask us to stop a specific kind of processing. We review and respond within 30 days.
- Portability — the export above is machine-readable (JSON and plain text).
- Withdraw consent — use the “Manage cookies” link in the footer, which reopens the banner with your current choice. Withdrawing analytics stops PostHog and removes its cookie. Withdrawing advertising updates Google’s consent state, clears our advertising storage and reloads the page to stop the tag. Email is separate: the Email card on your profile holds one switch per optional category, and the unsubscribe link in any retention notice or product update turns that category off without signing in.
- Lodge a complaint — with the Norwegian Datatilsynet (datatilsynet.no) or your local supervisory authority, if you think we are handling your data improperly.
Security
All data is transmitted over HTTPS and database connections use SSL. Your uploaded files live in a private blob store and are reachable only through short-lived signed links scoped to your own account. Authentication is handled by Clerk. Card data is handled by PCI-DSS Level 1 Stripe infrastructure and never touches our servers.
Contact
For privacy questions and data-subject requests, email support.transcribecat@