Security and hosting
Hosted in Sydney. Locked down by default.
SentientOne is built by Infonex in Melbourne and runs in Sydney. This page lists where your data lives, which services touch it and how keys, secrets and outbound calls are protected. No marketing badges, just what the system does.
200 free credits when you sign up. No card needed.
Where it runs
Your agents, knowledge, conversations and account live in Australia.
| Web app (app.sentientone.ai) | Vercel, Sydney (syd1) |
|---|---|
| API (api.sentientone.ai) | Google Cloud Run, australia-southeast1 (Sydney) |
| Database and file storage | Supabase Postgres with pgvector, ap-southeast-2 (Sydney) |
| Cache and rate limits | Upstash Redis, Sydney |
Other services
Some work is done by specialist services outside Australia. Each one gets only what its job needs.
| Your model provider | OpenAI, Anthropic, Google or Groq, on your own key, receives the prompt, the retrieved passages and the conversation for each reply |
|---|---|
| OpenAI embeddings | Receives knowledge text when it's added, and questions, to make embeddings |
| Cohere | Receives the question and candidate passages to rerank them |
| Firecrawl | Crawls the websites you add to knowledge |
| ClickHouse Cloud (US) | Stores traces for 90 days, with personal details redacted |
| PostHog (US) | Product analytics and error reports: ids, counts and timings, never message text |
| Stripe | Card payments for credit packs; card details never reach SentientOne |
| Resend | Account and billing emails |
Keys
Two kinds of SentientOne key, for two places.
| Secret key (sk-so-…) | For your servers. Calls any of your agents through the API. Never put it in a web page or an app |
|---|---|
| Publishable key (pk-so-…) | For the widget. One per agent; reaches only that agent, only while it's active, only from your allowed websites, at most 120 requests a minute per key and 12 per visitor. Rotate it any time |
Secret keys are refused on the widget path, so a key copied from a page can't be used to chat as you. Details on the widget page.
Encryption
Third-party secrets you give SentientOne are encrypted before they're stored and decrypted only at the moment they're used.
- AES-256-GCM for model provider keys, MCP server tokens and passwords, workflow signing secrets and Slack webhook URLs.
- Saved keys are never sent back to the browser: the dashboard shows them masked, and a masked value on save keeps the stored one.
- Two-step verification secrets are encrypted the same way.
- All traffic is HTTPS, with HSTS on the marketing site.
Accounts and sign-in
- Email and password, Google or Microsoft. Passwords are hashed with bcrypt, and passwords known from public breaches are refused (checked with Have I Been Pwned's k-anonymity API, which never sees the password).
- Two-step verification with an authenticator app, plus ten one-time recovery codes. Five wrong codes lock it for five minutes.
- Turning two-step on ends sessions made before it. Password resets use an eight-digit code that works once, within an hour.
- Microsoft accounts link to an existing account only when Microsoft vouches for the email address.
Outbound calls
MCP servers, workflow HTTP requests, webhooks and Slack messages go to URLs that users type, so each connection is checked first.
- The host is resolved once and refused unless every address is public: no private, loopback, link-local, carrier-grade NAT or cloud metadata addresses.
- The connection goes to the checked address, so DNS rebinding can't redirect it. Redirects aren't followed.
- Workflow webhooks are signed with HMAC-SHA256 so your endpoint can verify them.
Application security
- Row-level security is on in the database and public (anonymous) access to your data is revoked; all data access goes through SentientOne's servers, scoped to your account.
- Security headers on the app: nosniff, a strict referrer policy, frame protection, a permissions policy and a content security policy for framing and plugins.
- Regular expressions in workflows and guardrails run with a time limit, so a bad pattern can't stall the service.
- Errors never return database text or stack traces; they return a code, a message and a request id.
Data and retention
| Agents, knowledge, conversations | Kept until you delete them |
|---|---|
| Traces | 90 days |
| Your account | Delete it from Settings: your data and your Stripe customer record are removed |
Enterprise hosting
Need SentientOne on your own infrastructure, with your security, compliance and support needs built in? Talk to us about custom hosting.
Report a vulnerability
Email security@sentientone.ai with the details. Please give us a reasonable time to fix it before you publish.
Build your first agent in the next ten minutes
Sign up and you get 200 free credits, no card needed. Create an agent, add your knowledge, try it in the Playground, then call it from your code or put it on your website.