Last updated: 2 October 2026
These terms are between you and Tofu Lab AB (org.nr 559460-9942), Stockholm, Sweden (“we”). They apply to the website at stormdoor.dev and its free tools, the waitlist, the console at app.stormdoor.dev, and the screening API at api.stormdoor.dev (together, “the service”). Using any of them means you accept these terms.
The service is for use in a trade, business or profession, including sole traders and individuals setting one up; it is not for private use. If you use it on behalf of a company, you confirm you may bind it.
The API and console are not open to the public yet. Sections 4 to 6 describe what the paid service will be and apply from the day it opens.
1. What the service is
StormDoor screens untrusted inbound content. Each gate takes a small JSON body (an
address, a domain, a link, an IP address, a block of text), runs a set of checks, and
returns findings with a verdict of clean, suspect or block. The verdict is the
highest severity among the findings. There is no file upload; every gate takes JSON and
rejects bodies over a documented size cap. Which checks run depends on your plan.
The docs describe the service. They are not part of the contract, and a description in them is not a promise.
2. What a result means
A result is an automated signal, not a decision. Checks miss things (false negatives) and flag legitimate input (false positives). You decide what to do with a verdict and you are responsible for that decision. Do not use StormDoor as your only control.
When we cannot answer, we say so. If a request fails (out of credits, an internal
error, a gate unavailable), the API returns an error, not a verdict. Those errors carry
fail_open: true. Our SDKs, by default, treat them as “let the request through” so your
form or pipeline does not stop because of us. That is a default you can change; it is
your choice how your system behaves when we have screened nothing.
Do not pass the raw response to the end user you are screening. The response lists the checks that were skipped and why, which tells the person submitting content exactly what was not checked. Use it on your server; show your users your own decision.
3. Free tools and waitlist
The free tools on stormdoor.dev run a subset of the rule checks, rate-limited per IP address, for people, not for automated use. Do not script them, work around the rate limit, or use them as a substitute for the API.
Joining the waitlist stores your email address and the answers you give, as the privacy policy describes. You can unsubscribe at any time.
4. Accounts, workspaces and tokens
Signing in to the console uses a one-time code sent to your email. Keep that mailbox secure; whoever receives the code can sign in. A workspace is created on first sign-in, and its owner can invite members.
API tokens are issued per workspace. A token is shown once; we cannot recover it. Keep tokens secret, do not embed them in client-side code, and revoke any token you think has leaked. Every request made with a token counts against the workspace, whoever made it.
Browsers never call the API. The API rejects requests carrying a browser Origin
header. Call it from your server.
5. Plans, trial and credits
The API is paid. There is no free plan.
Trial. Every new workspace gets a one-time grant of credits, with no card, that never refills. It runs the entry plan’s full check set. The size of the grant and any rate limit that applies to it are shown in the console when signups open.
Credits. Each gate costs a fixed number of credits per call, published in the docs.
Credits are a monthly allowance: your plan’s allowance is granted at the start of each
period, unused credits expire at the end of it, and there is no carry-over, top-up or
prepaid balance. At the cap, further calls return a quota_exceeded error (HTTP 402)
until the next period or an upgrade. There is no metered overage. We may email a warning
as you approach the cap, but do not rely on it.
Rate limits apply per token and are returned in RateLimit-* headers; exceeding them
returns HTTP 429. Rate limits and credit weights can change; we give 30 days’ notice of
changes to credit weights.
Plans and prices are shown in the console when signups open.
Payment. Payments are not collected yet. Billing terms (billing period, payment failure, refunds, VAT, price changes) will be added here before any payment is taken.
6. Your content and your obligations
You keep all rights to what you send us. We process it to return a result and for nothing else; we do not store it. The privacy policy and the DPA (available on request at hello@stormdoor.dev) describe this in full.
You confirm that:
- you have a lawful basis to send us the content, including any personal data in it, and you are the controller of that data;
- you will not send special-category data (health, genetic or biometric data, racial or ethnic origin, political opinions, religious beliefs, trade-union membership, sex life or orientation) unless we have agreed to it in writing;
- you will not send content you do not have the right to share.
7. Acceptable use
Do not:
- use the service to probe, scan, attack or fingerprint systems you have no permission to test. The links gate contacts the URL you submit; pointing it at a target to flood or map that target is misuse;
- work around rate limits, size caps, entitlement, or the browser-origin check, or share one token across unrelated products to avoid buying plans;
- resell the API, or use it to build a service whose main function is to relay our results, without our written agreement;
- use it for anything unlawful, or to screen people in a way that breaks the law that applies to you, including anti-discrimination and automated-decision rules. A gate’s verdict may feed a decision about a person; the decision, and its lawfulness, are yours.
8. Changes to the service
We add, remove and retune checks continuously. Finding codes are stable and documented;
a check being added or removed changes which codes you may see, not the shape of the
response. We give 6 months’ notice before removing or breaking a /v1 endpoint; a
breaking change would ship as a new version.
We may suspend or withdraw any part of the service. There is no uptime commitment and no SLA.
9. Suspension and termination
We may suspend a token or a workspace, with notice where practical, if we believe it is being used in breach of section 6 or 7, or if it is causing harm to the service or to third parties. Once billing exists, non-payment is also a ground. We lift the suspension when the cause is resolved. We may terminate for repeated or serious breach.
You can stop using the service at any time by revoking your tokens. To have your account and workspace deleted, email hello@stormdoor.dev; we delete them within 30 days. On termination, tokens stop working immediately.
Sections 2, 6, 10, 11, 12 and 14 survive termination.
10. Intellectual property
We own the service, its rulesets, documentation and software. You get a non-exclusive, non-transferable right to use the API as these terms allow. You own your content and your own systems. If you give us feedback, we may use it without owing you anything.
11. No warranty
The service is provided as is and as available. We do not promise that it is accurate, complete, uninterrupted, or that it will catch any particular thing. All warranties, express or implied, including merchantability and fitness for a particular purpose, are excluded to the extent the law allows.
12. Liability
To the extent the law allows, we are not liable for indirect or consequential loss, lost profit, lost data, or loss arising from a decision made on the basis of a verdict or an error we returned, including a fail-open result.
Our total liability under these terms is capped at the fees you paid in the twelve months before the claim.
Nothing excludes liability that cannot be excluded under Swedish law, including for gross negligence or wilful misconduct.
13. Data protection
Tofu Lab AB is the processor for content you send to the API and the controller for your account, as the privacy policy describes. A data processing agreement is available on request at hello@stormdoor.dev. It names our sub-processors. We notify you without undue delay of a personal-data breach affecting your content.
14. General
- These terms, the privacy policy and the DPA are the whole agreement.
- If a clause is unenforceable, the rest stands.
- We may assign these terms in a transfer of the business; you may not assign them without our consent.
- We may change these terms. For material changes we give 30 days’ notice by email to customers before they take effect; continuing to use the service after that date is acceptance.
- Swedish law governs these terms. Disputes are settled by Swedish courts, with Stockholm District Court (Stockholms tingsrätt) as the first instance.
15. Contact
Tofu Lab AB, org.nr 559460-9942, Stockholm, Sweden. hello@stormdoor.dev.