API Key Security & Encryption

Your Torn API key is sensitive. Here's exactly how we protect it and your data.

AES-256-GCM Encryption

All API keys are encrypted at rest using AES-256-GCM, the same standard used by banks and governments. Keys are never stored in plain text.

Two-Factor Authentication

Protect your account with TOTP-based 2FA using Google Authenticator, Authy, or any compatible app.

Limited API Key Only

We only require a Limited Access key, no Full Access needed. We cannot make trades, send money, or perform any actions on your Torn account.

Session Security

Sessions use signed JWTs with automatic expiration. Cookies are httpOnly, Secure, and SameSite to prevent XSS and CSRF attacks.

No Password Storage

We never ask for or store your Torn password. Authentication is done exclusively through the Torn API using your API key.

Automated Security Audits

Every code change runs through 15 automated security checks including static analysis (Semgrep), secret scanning (TruffleHog), dependency audits, and custom SAST rules.

Security Headers

HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, and Permissions-Policy headers protect against common web attacks.

Data Isolation

Each faction's data is isolated by tenant ID. Members can only access their own faction's data. Alliance data requires explicit membership.

Continuous Security Pipeline

Every commit triggers an automated security audit. Critical findings, verified secrets, critical dependency vulnerabilities, exposed credential files, high-severity static analysis, fail the pipeline and raise an alert.

Dependency Audit
npm audit
Secret Scanning
TruffleHog
Static Analysis
Semgrep
SQL Injection
Custom SAST
Auth Bypass
Route analysis
SSRF Detection
Pattern scan
XSS Prevention
CSP + Semgrep
Prototype Pollution
Pattern scan
Path Traversal
FS audit
License Compliance
license-checker
TypeScript Strict
tsc --strict
Security Headers
Config audit
Hardcoded Secrets
Regex scan
Outdated Deps
npm outdated
Rate Limiting
Code audit

What We Never Do

Store your Torn password
Require Full Access API keys
Make trades or send money
Send your API key or faction data to advertisers
Store API keys in plain text
Access to your account
Sell or monetize your personal data
Log your API key in server logs

What Your Key Actually Exposes

A Limited Access key is read-only by design: there is no request Torn Intel could send that spends your money, moves items, or takes an action in your name. That is a property of the key level itself, not a promise we ask you to take on trust. If you want to verify it, the Torn API documentation lists exactly which selections each access level permits.

What we do read is the game data the tracker is built on: your activity timestamps, personal stats, battle stats, faction roster and rank, company performance, and travel state. The key itself is never returned to your browser: the settings page shows only a short preview so you can tell which key is stored, and every call to Torn is made server-side.

One thing your key does leave our server for, and we would rather say it here than bury it: battle-stat estimates come from BSP, whose API takes the key as part of the request. Fetching an estimate therefore means sending your key to a server we do not run, and we have no visibility into how they log or retain it. It is the only service that receives the key you enter at login. The key saved separately under Limited API Key in your settings is the one sent to FF Scouter, and to nothing else.

Game data, not your key, also leaves for one other service: the AI features send the roster figures they summarise, meaning player names, IDs, levels and war scores, to Groq. Those features run only when you trigger them, and no credential is ever included. Both flows are set out in full in the Terms of Service.

Rotation and Revocation

Encryption keys are versioned rather than fixed. Each stored value carries the version that encrypted it, so a new key can be introduced and start encrypting immediately while older values stay readable under the key that wrote them. Rotating therefore needs no mass re-encryption pass, which is what usually makes rotation get postponed indefinitely.

You can remove your key at any time from your settings, which deletes the stored value rather than merely hiding it. You can also revoke it from Torn's own API key page, which invalidates it everywhere at once, including here. Neither action requires contacting us, and neither is reversible from our side.

Where Your Data Lives

Everything runs on a single dedicated server in Canada, with the database on the same machine rather than a managed third-party service. Your game data is therefore held in one place by one party, and one person is accountable for that machine, which is the trade-off we prefer at this size.

Four services are the exceptions, and none of them holds a copy of your data: BSP receives your key when a battle-stat estimate is fetched, Groq receives the roster figures an AI feature summarises, and product analytics and advertising receive usage events and standard request data, never your faction figures and never your key. All four are described in the Privacy Policy.

Backups are taken daily and kept on the same host. If you want your data removed entirely rather than just your key, the contact routes on the About page reach the person who can do it.

Found a vulnerability? Contact us on the Torn Forums.