Skip to content

Security

We store token counts and discard your prompts.

Prompts and completions are processed in memory and aren't stored. Every key is pinned to one country, and every response tells your agent where it was served.Last updated October 12, 2026.
an inference response
x-st-region: us
x-st-data-retention: none
x-st-request-id: 01K5Z3T8R2V9Q4M6N1P7B0C8XD

The same facts as data: /security.json

What we never do

Store request content

Prompts and completions of API requests are processed in memory and discarded. Batch files, including batch results, are deleted within 30 days.

Log content

Prompts and completions never go into logs, traces, metrics, analytics or error messages. Usage records hold counts, costs and timings.

Train on your data

We don't use your prompts, completions or files to train models.

Fail over to the other region

When a region is busy or down, its requests are never sent to the other region.

See your card number

You enter it on Stripe's payment page; it never reaches our servers.

Sell personal information

We don't sell it. The Privacy Policy says what we share, with whom and why.

01 · Data retention

Prompts and completions aren't stored.

This applies to every request. Each response carries x-st-data-retention: none so your agent can check it.

Prompts and completionsNot stored
Processed in memory to produce the response, then discarded. They aren't written to logs.
Batch filesAt most 30 days
Stored encrypted in your region until you delete them or 30 days after upload, whichever comes first.
Usage recordsLife of the account
Model, token counts, cost and timings, for billing. No content.

We don't use your prompts, completions or files to train models.

Closing an account

Close the account with DELETE /v1/account (a key with the keys or billing scope), or, in the US region, as an owner on the dashboard. Every key stops working and all running work (batches, videos) is cancelled at once, and the account's files and batch results are deleted right away. For 30 days the account itself (its keys and members) can be reopened, from the dashboard in the US region or by contacting support; after that its personal data (name, email, key names) is erased. A legal hold can require us to keep data longer. Unused purchased credit is refunded automatically once usage has settled, so a reopened account keeps only credit not yet refunded; disputed or held payments are handled by our team. Billing and usage records, which hold no names, emails or content, are kept for 6 years, as tax and accounting law requires. Details are in the Privacy Policy.

Check it on every response

x-st-region: us
The region that served the request. Every API response, errors included.
x-st-data-retention: none
Prompts and completions from this request are not stored. Every API response, errors included.
x-st-request-id: 01K5Z3T8R2V9Q4M6N1P7B0C8XD
The request's id, for usage records and support. Inference responses.

02 · Residency

One country per key.

A key starts with st_us_ or st_ca_, and that prefix decides where its requests are processed and its account data is stored. A key sent to the other country's API gets 421 wrong_region with the right base URL. Card payments for both regions are processed by Stripe in the US. The Privacy Policy says what else is processed outside an account's country. A current list of the companies that process data for us, with what each receives and where, is available on request. Write to privacy@scaledthought.com.

United States

Open

api.us.scaledthought.com

Canada

Coming soon

api.ca.scaledthought.com

a ca key sent to the US host
HTTP/1.1 421 Misdirected Request
x-st-region: us
x-st-data-retention: none

{"error": {"code": "wrong_region", "type": "invalid_request_error",
  "message": "This API key belongs to region \"ca\". Send requests to https://api.ca.scaledthought.com/v1",
  "base_url": "https://api.ca.scaledthought.com/v1"}}

03 · API keys

Scoped keys for each agent.

Give each agent the narrowest key that does the job, for no longer than it needs.

Hashed, shown once

We store only a hash of each key and show the key once, when it's created.

Expiry

Keys can expire after up to 365 days.

Rotation

Replace a key and keep the old one working for a grace period, so an agent can switch without downtime.

Self-revocation

A key that may have leaked can revoke itself, with no special permission needed.

Sub-agent keys

Give a sub-agent a narrower key that can never exceed its parent's scopes, budget or expiry.

Budgets and limits

Every key can have its own daily spending limit, rate limits and scopes.

CLI
# A sub-agent key: inference only, $2 a day, gone in 12 hours
npx -y scaledthought@0.6 keys create --name sub-agent --child \
  --scopes inference --budget-usd 2 --expires-in 12h

# Replace a key; the old one keeps working for 24 hours
npx -y scaledthought@0.6 keys rotate key_… --grace 24h

# This key may have leaked: revoke it
npx -y scaledthought@0.6 keys revoke-self

Reference: keys in the docs.

04 · Protection

How we protect your data.

Encryption in transit
Traffic to our API uses TLS 1.2 or later, and every hop that carries your prompts, completions or keys inside our network is encrypted too. Database connections verify the server's certificate.
Encryption at rest
Databases, stored files, backups, secrets and logs are encrypted with each region's own encryption keys, held in that region.
Separate regions
Each region runs as its own deployment, with its own database, encryption keys and secrets.
Backups and logs
Databases are backed up automatically inside their region, kept for 14 days, with point-in-time recovery. Operational logs hold metadata only and are kept for 90 days, in the region.
Staff access
Staff sign in with passkeys, and sensitive actions need a fresh passkey check. Every staff action on an account is recorded in an append-only audit log.
Payments
Cards are handled by Stripe. We keep Stripe's ids for a payment, never the card number.
Pinned models
Every model we host ourselves is pinned to an exact upstream commit and checked before it serves; where the weights have published checksums, every file is hash-verified, so a model we host can't change without us knowing.

05 · How we build

Checked before it ships.

Every change is checked
Changes to our code and infrastructure go through pull requests that must pass the tests, secret scanning, dependency vulnerability checks and static analysis before they merge.
Nightly scans
Every night we scan our code, dependencies, container images and infrastructure configuration for known vulnerabilities. Findings get a fix-by date by severity: critical 7 days, high 30 days, medium 90 days, low 180 days.
Infrastructure as code
Our cloud infrastructure is defined in code. Before each deployment, policy checks refuse any resource outside the region, any publicly readable data store, and any database, bucket, cache, secret store or log bucket without the region's own encryption key.
Pinned dependencies
Container base images are pinned by digest and CI actions by commit. Dependency updates are proposed weekly and go through the same checks.
Secrets
Service credentials live in each region's secret manager, never in code. Our CLI never takes a secret as a flag.

06 · Incidents & reporting

If something goes wrong.

Incident response

If an incident affects your data or keys, we tell you at the account's email on file, if it has one. When many customers are affected, we also post a notice on this site and in /llms.txt. Regulators are notified as the law requires.

Service health and the incidents we post are on the status page.

Report a vulnerability

Email security@scaledthought.com. We aim to acknowledge reports within 3 business days, and we won't take legal action over good-faith research that follows the policy. Scope and rules are in our vulnerability disclosure policy; the contact is also in security.txt.

Security reviews

Reviewing us as a vendor? Send your security questionnaire or questions to security@scaledthought.com. The same facts as this page, as data, are in /security.json.

Agent view · paste this into your agent

Opens your agent with the prompt typed. You press Enter.

Deep links into apps you have installed. Claude and Claude Code are trademarks of Anthropic; Codex is a trademark of OpenAI. ScaledThought is not affiliated with or endorsed by either.

The facts on this page are also published as data at scaledthought.com/security.json: retention, regions, residency, response headers, key controls and vulnerability disclosure. Every API response also carries x-st-region and x-st-data-retention: none.

Agents can read the whole site as markdown at scaledthought.com/llms.txt.