A practical description of how the platform is built and operated. If you are filling in a vendor security questionnaire, this page is the place to start; anything not answered here, ask us.
Last updated: 28 July 2026
Report a vulnerability
Email [email protected]
Include enough detail to reproduce. We acknowledge within two business days and will keep you updated until it is resolved. Please give us reasonable time to fix an issue before disclosing it publicly, and do not access or modify other people's data while testing. We will not pursue legal action against researchers acting in good faith under these terms.
Authentication
- Passwords are hashed with Argon2id and a server-side pepper, so a database copy alone does not yield credentials.
- Two-factor authentication is available by authenticator app (TOTP) or by emailed one-time code. Recovery codes are stored hashed and shown to you once.
- Failed sign-in attempts are rate limited per IP address and per account; those records are deleted automatically after two days.
- Sessions use
HttpOnly,Secure,SameSite=Laxcookies, and the admin area runs in a separate session cookie from the customer area.
API keys
- Generated server-side, displayed once, then stored only as a hash alongside a short non-secret prefix so you can identify a key in your dashboard.
- Scoped to a project, so you can separate environments and revoke one without affecting the others.
- Optional IP restrictions per key.
- Revocation takes effect immediately.
- The documentation playground runs server-side with a restricted demo key — your key is never required by, or sent to, the browser.
Application security
- All traffic over TLS, with HSTS (
max-ageone year,includeSubDomains). - Content Security Policy with a per-request nonce; no inline script without one.
X-Frame-Options: DENYandReferrer-Policy: strict-origin-when-cross-origin.- CSRF tokens on every state-changing form.
- Parameterised database access throughout; output escaped by default in the template layer.
- An audit log of security-relevant account actions.
Infrastructure
- The API runs on dedicated infrastructure, separate from the website and dashboard.
- Cloudflare sits in front of our web properties for TLS termination, caching and DDoS protection.
- Card data never touches our servers — payments are handled by Stripe, which is PCI DSS Level 1 certified.
- Encrypted backups with periodic restore testing.
Compliance status — stated plainly
We would rather tell you where we are than imply more.
| Item | Status |
|---|---|
| GDPR / UK GDPR | Addressed. See the Privacy Policy and the DPA. |
| Data Processing Addendum | Available, and signable on request. |
| Standard Contractual Clauses | Used for transfers out of the EEA and the UK. |
| PCI DSS | Out of scope for us — card data is handled entirely by Stripe. |
| SOC 2 Type II | Not yet held. If it is a requirement for you, tell us — it helps us prioritise. |
| ISO 27001 | Not yet held. |
| Penetration test report | Available to Enterprise customers under NDA. |
Security questionnaires
Send yours to [email protected] and we will complete it. If you need an NDA first, we will sign one.