Sub-processors
Last updated: June 8, 2026
To deliver Swiftin we engage a small number of third-party services. The table below lists each provider, the category of work it performs, the data it receives from us, and the country in which that data is processed. This page is the canonical source for our sub-processor list and is referenced from our Privacy Policy and Data Processing Agreement.
We notify Team plan Controllers by email at least 30 days before adding or replacing a sub-processor, giving them a reasonable opportunity to object (see DPA §5). Material changes to this list are tracked through the "Last updated" date above and are independent of our Terms and Privacy versioning.
Supabase
Authentication & DatabasePurpose. Managed Postgres database and authentication.
Data shared. Account information (email, hashed password, display name), usage counters, and translation history (only when a Pro or Team user has opted in to server-side history).
Google AI (Gemini API)
AI TranslationPurpose. AI translation inference via Gemini models.
Data shared. Source text submitted for translation. Requests are sent to Google’s Generative Language API and governed by Google’s API Terms.
Google AI (Gemini TTS)
Text-to-SpeechPurpose. Audio synthesis for text-to-speech.
Data shared. Target text for audio generation. Same API and terms as the Gemini translation endpoint.
OpenRouter
AI TranslationPurpose. Inference routing for one AI model (Meta Llama 3.3 70B). Llama translation requests reach the underlying inference hoster through OpenRouter rather than directly. Swiftin does NOT route Google Gemini, OpenAI, xAI Grok, DeepSeek, or Anthropic Claude through OpenRouter; those are called directly.
Data shared. Source text submitted for translation, the model identifier, and OpenRouter attribution headers (HTTP-Referer, X-Title). OpenRouter forwards the request to the underlying inference provider (see entries below) and proxies the response back.
Anthropic (Claude)
AI TranslationPurpose. AI translation inference via Claude Haiku 4.5. Called directly to the Anthropic API (api.anthropic.com); not routed through OpenRouter.
Data shared. Source text submitted for translation. Sent directly from Swiftin’s backend to Anthropic and governed by Anthropic’s Commercial Terms.
Meta (Llama)
AI TranslationPurpose. AI translation inference via Llama 3.3 70B. Reached through OpenRouter, hosted on specialized inference hardware (typically Groq LPU, with fallback to Cerebras, Fireworks, or Together AI).
Data shared. Source text submitted for translation. The underlying inference host (Groq, Cerebras, Fireworks, Together AI) acts as a secondary processor.
DeepSeek
AI TranslationPurpose. AI translation inference via DeepSeek V4-Flash. Called directly (not routed via OpenRouter).
Data shared. Source text submitted for translation. Governed by DeepSeek’s API terms. DeepSeek auto-caches identical request prefixes within the account; Swiftin does not send any user identifier alongside the text.
xAI (Grok)
AI TranslationPurpose. AI translation inference via xAI Grok (currently grok-4.3), called directly to the xAI API (api.x.ai). Not routed through OpenRouter.
Data shared. Source text submitted for translation. Sent directly from Swiftin’s backend to xAI and governed by xAI’s API terms.
OpenAI
AI TranslationPurpose. AI translation inference via GPT-5 nano. Called directly (not routed via OpenRouter).
Data shared. Source text submitted for translation. Governed by OpenAI’s API Data Usage Policies (zero-retention for API customers).
Purpose. Specialized inference infrastructure operated by third parties and routed to via OpenRouter. Used for Meta Llama 3.3 70B with Groq LPU preferred for speed; Cerebras, Fireworks AI and Together AI act as fallback when Groq is overloaded. Each request reaches exactly one hoster at a time, selected by OpenRouter’s routing logic. The hoster receives only the text and model id; it does not see the Swiftin user identity.
Data shared. Source text submitted for translation, model id, and ephemeral routing metadata. None of these hosters receive Swiftin user accounts, emails, or persistent identifiers.
Google Translate (public endpoint)
AI TranslationPurpose. Free translation engine for the Free plan and Lite-mode fallback when AI quota is exhausted.
Data shared. Source text submitted for translation. Called directly from your browser on every path; Swiftin’s servers do not proxy or relay these requests.
Microsoft Bing Translator
AI TranslationPurpose. Free translation engine for the Free plan and Lite-mode fallback when AI quota is exhausted.
Data shared. Source text submitted for translation. Called directly from your browser; Swiftin’s servers do not proxy these requests.
Paddle
Card PaymentsPurpose. Card payment processing as Merchant of Record (handles VAT and tax remittance).
Data shared. Email address, billing address, subscription metadata. Card data is collected by Paddle directly and never reaches Swiftin.
NOWPayments
Cryptocurrency PaymentsPurpose. Cryptocurrency payment processing.
Data shared. Order amount, plan metadata, and the receiving crypto wallet address for the payment intent.
Resend
Transactional EmailPurpose. Transactional email delivery (account verification, password resets, team invitations, billing receipts).
Data shared. Recipient email address, email content, and delivery metadata (timestamps, delivery status). Resend does not use this data for its own purposes.
Cloudflare (Turnstile)
Bot ProtectionPurpose. Sign-up captcha to prevent automated abuse.
Data shared. Captcha challenge solution and standard browser metadata. No email or password is sent to Cloudflare via Turnstile.
Vercel
Web HostingPurpose. Hosting for the Swiftin website and dashboard at swiftin.dev.
Data shared. Standard HTTP request metadata (IP address, User-Agent, URL) for serving the website.
Railway
Backend HostingPurpose. Hosting for the Swiftin backend API at api.swiftin.dev.
Data shared. Standard HTTP request metadata (IP address, User-Agent, URL) for serving API requests. Backend operational logs are stored here.
Sentry
Error MonitoringPurpose. Crash and error tracking, used to detect and resolve service-reliability issues (legitimate interest, GDPR Art. 6(1)(f)).
Data shared. Backend (Node/Express) error tracking captures stack traces, error messages, request URL/method, browser/OS metadata, and IP address; request bodies are captured with field-name redaction (password, token, secret, apiKey are replaced with [REDACTED]) and sensitive headers (Authorization, Cookie, payment-webhook signatures) are stripped before transmission. Web (browser) error tracking strips Authorization/Cookie headers; request/response bodies are not captured. Session Replay is enabled on the web dashboard only, at a 10% session sample rate and 100% on errors, with text content masked (maskAllText: true), media blocked (blockAllMedia: true), Supabase auth URLs excluded from network capture, and request/response headers not captured. Replays are kept for 90 days then automatically deleted by Sentry.
PostHog
Product AnalyticsPurpose. Product analytics for understanding feature usage. Strictly consent-based: off by default until you accept the cookie banner.
Data shared. Anonymous usage events and page views — only after explicit consent. Individual-user identification is not enabled.
Transfers outside the EEA
Most user data (account information, opted-in translation history, backend application data) is hosted in the European Union. Some sub-processors are located outside the EEA; where this applies to EU/EEA, UK, or Swiss residents' personal data, transfers are covered by the Standard Contractual Clauses (SCCs) adopted by the European Commission (Decision 2021/914) or, where the recipient has self-certified, by the EU-US Data Privacy Framework. Free-engine translation requests (Google Translate, Microsoft Bing) are issued directly from the user's browser to the engine provider; Swiftin's servers do not proxy or relay these requests.
You may request a summary of the transfer mechanism for any specific provider by contacting legal@swiftin.dev.