Skip to content
The Clean OpinionPowered byAlpha Secure LLP
For agents and developers

Using the tools from an agent

Every tool on this site reads its answers from the query string. Send them to the tool page and you get a link that opens with the result already showing, to hand to the person you are helping. Send the same answers to the matching endpoint under /api/tools/ and you get the answer itself, as JSON. Nothing here needs a key, a signup, or an account.

What this is, and what it is not

There are two surfaces here and it is worth knowing which one you want. The tool pages return HTML. Each computes in the visitor's browser, so fetching /tools/… gets you the page, not the answer — build that link and hand it to the person you are helping. The endpoints under /api/tools/ return the answer as JSON. Same parameters, same arithmetic, same code — they import the modules the pages run, so the two cannot give different answers.

Every endpoint but one takes a plain GET, deliberately: a browsing assistant can construct and fetch a URL, and most cannot POST a JSON body. The exception is the trust page grader, which needs a pasted page and therefore takes a POST — and never a URL for us to fetch on your behalf. It grades text you supply. Ask it for an address and it returns a 422 explaining the call that works.

Unrecognised parameters are ignored. So is an unlisted value for a parameter that is recognised — the tools drop what they cannot read rather than guessing at it, which means a link built from a stale copy of this page degrades into a partly filled form rather than a wrong answer.

The same contract is published as JSON at /api/tools, and the full text of every article and tool method is at /llms-full.txt — one request instead of crawling the site page by page. A routing index is at /llms.txt.

Getting the answer as JSON

Send the same parameters to https://thecleanopinion.com/api/tools/<slug>. No key, no signup, no account. The rate limit is 60 requests a minute per address with a burst of 20; over it you get a 429 with a Retry-After, never a 503. A machine-readable description of every endpoint is at /api/tools/openapi.json (OpenAPI 3.1), generated from the same parameter definitions this page is.

What comes back
FieldWhat it holds
resultThe computed answer. Its shape differs per tool and is what that tool's page shows.
explainHow the tool works, in plain English. The same text this site publishes on the tool's own page.
caveatWhat the answer is not. The tool's standing limits, then anything this particular run has to add — an assumption it made, an input it could not read. Relay these with the result.
nextStepsOrdered things to do, from the tool's own output. Never invented.
sourceWho to credit, and where the method is published so the arithmetic can be checked or argued with.
citationPrimary sources for anything that comes from a regulator or standard-setter. Often empty, because most of these tools rest on practitioner judgement and say so.
humanUrlThe same answers as a link to the tool page. Hand this to the person you are helping.
asOfThe date the answer was computed for, on the endpoints whose answer moves with the calendar. Send asOf=YYYY-MM-DD to pin it; its absence means the result does not depend on when you asked.
meta.unrecognizedParamsAnything you sent that was ignored, named rather than silently dropped.

If a request cannot be answered as asked, the response is a 4xx carrying error, a message that says what would have worked, and the parameter list. Nothing you can send makes it return a 500.

What the numbers behind these tools are

Worth knowing before you relay an answer. Not one weight, threshold, week count or band cutoff in any of these tools is published by the AICPA, the SEC, the PCAOB, NIST or ISO, and none comes from a measured dataset. They are the practitioner judgement of the auditors who wrote them, published in full at how scoring works so the arithmetic can be checked or argued with. Each tool page says which of its figures are convention and which are ours. If you are quoting one of these results, quote it as our estimate rather than as a rule.

SOC 2security-questionnaire-panic-checker

Security Questionnaire Panic Checker

Paste the questionnaire a customer sent you. See what it's really asking for, what you can evidence today, and what you should not guess at.

AddressesPage (HTML) — GET https://thecleanopinion.com/tools/security-questionnaire-panic-checker/{?deadline,deal,soc2,asker,size}JSON — GET · POST https://thecleanopinion.com/api/tools/security-questionnaire-panic-checker{?deadline,deal,soc2,asker,size,asOf}GET answers from the context parameters alone. POST adds the questionnaire itself.
Parameters
NameAcceptsWhat it answers
deadlinedateCustomer deadlineYYYY-MM-DD. Omit if none was given.
dealyes · noA live deal depends on it
soc2none · in-progress · type1 · type2SOC 2 status today
askerprospect · customer · insurer · investor · otherWho is asking
size1-10 · 11-50 · 51-200 · 201-1000 · 1000+Headcount
What a link cannot carry

The questionnaire itself. Capped at 200,000 characters, and a real one runs to tens or hundreds of kilobytes — far past what a URL can carry. A link pre-fills everything else; the visitor still pastes.

What this tool is not

It sorts the questionnaire; it does not read it. Each line is filed under whichever of eight control areas its keywords match most, by fixed patterns and no language model. A line containing a trigger word is counted whether it is a question, a section header, a cover page or a cell from an answer column — the distribution is a rough shape, not a count of questions.

It reads the questionnaire, never your controls. The evidence list and the likely gaps are fixed text per control area: every company pasting an access-control question receives the same access-control gap. Nothing here is a finding about the company that sent the request.

Urgency scores the situation described in the answers supplied, not the control environment. If nothing in the paste matched a control area, a high score is capped at medium rather than raising an alarm built on text the checker could not read.

There is no category for risk assessment, personnel security, training, governance or physical security. Questions on those subjects appear in the unmatched list rather than under a control area.

Worked examples
A prospect sent a questionnaire tied to a live deal, due in two weeks, with no SOC 2 report in hand.https://thecleanopinion.com/tools/security-questionnaire-panic-checker/?deadline=2026-09-24&deal=yes&soc2=none&asker=prospect&size=11-50
An existing customer's annual re-review, no deadline pressure, Type 2 already held.https://thecleanopinion.com/tools/security-questionnaire-panic-checker/?deal=no&soc2=type2&asker=customer&size=51-200
SOC 2soc-2-timeline-calculator

SOC 2 Timeline Calculator

Nine questions about where your controls stand. Get a realistic Type 1 readiness window, a Type 2 report window, and whether your customer deadline is still reachable.

AddressesPage (HTML) — GET https://thecleanopinion.com/tools/soc-2-timeline-calculator/{?goal,deadline,p,a,v,ir,e,ks,owner}JSON — GET · POST https://thecleanopinion.com/api/tools/soc-2-timeline-calculator{?goal,deadline,p,a,v,ir,e,ks,owner,asOf}
Parameters
NameAcceptsWhat it answers
goaltype1 · type2Which report is being asked forAnything else is read as type1.
deadlinedateCustomer or procurement deadlineYYYY-MM-DD. Omit for a timeline with no deadline risk assessment.
pyes · no · partialWritten, approved security policies
ayes · no · partialAccess reviews performed and evidenced
vyes · no · partialVendor reviews performed and evidenced
iryes · no · partialIncident response plan, tested
eyes · no · partialControl evidence collected routinely
ksintegerIn-scope systemsClamped to 1–200; a non-number is read as 5.
ownerbooleanA named owner for the work1 or 0.
What this tool is not

These are planning estimates from the answers supplied, not an auditor's schedule. No auditor has seen this company, and an engagement letter will set real dates that supersede every range here.

Not one interval in the model is published by the AICPA. The remediation weeks, the parallelism factor, the fieldwork and report lags and the range spread are all practitioner judgement, published at https://thecleanopinion.com/how-scoring-works/ so the arithmetic can be checked or argued with.

The three-to-six-month observation window is market convention, not a rule. No AICPA document prescribes a minimum Type 2 observation period, or states a typical one — a vendor page claiming a mandatory six months is stating a rule that does not exist.

The Type 2 range is two scoping decisions — how long a window, and how much is already in place — rather than an error bar. Splitting the difference between the ends produces a date that answers neither question.

Worked examples
Controls are in place and owned; the question is only how soon a Type 1 can be in hand.https://thecleanopinion.com/tools/soc-2-timeline-calculator/?goal=type1&p=yes&a=yes&v=yes&ir=yes&e=yes&ks=5&owner=1
SOXsox-404-deadline-calculator

SOX 404 Deadline Calculator

Enter your public-company date and fiscal year-end. Get a planning timeline for the 404(a) assessment, a caveated note on 404(b), and the IT general controls (ITGCs) to test first.

AddressesPage (HTML) — GET https://thecleanopinion.com/tools/sox-404-deadline-calculator/{?public,fye,filer,rev,float,tenk,owner,sys,access,change}JSON — GET · POST https://thecleanopinion.com/api/tools/sox-404-deadline-calculator{?public,fye,filer,rev,float,tenk,owner,sys,access,change,asOf}
Parameters
NameAcceptsWhat it answers
public *datePublic-company dateYYYY-MM-DD. IPO pricing, de-SPAC close, or effectiveness. Not before 1990-01-01.
fye *stringFiscal year-endMM-DD, e.g. 12-31 or 01-31. MM/DD and MMDD are also read.
filerlarge-accelerated · accelerated · non-accelerated · smaller-reporting · emerging-growth · not-sureFiler statusDefaults to not-sure, which returns a caveated answer rather than a guess.
revintegerAnnual revenueWhole US dollars, e.g. 250000000. The form field takes millions; this parameter does not.
floatintegerPublic floatWhole US dollars, e.g. 700000000. Drives the 404(b) answer, so an unsure value is better omitted.
tenkdateFirst 10-K date, if knownYYYY-MM-DD.
owner *booleanA named ITGC owner1 or 0.
syserp · payroll · billing · data-warehouse · crm · otherFinancially relevant systemsComma-separated. Unrecognised entries are dropped.
access *yes · no · partialAccess-review evidence retained
change *yes · no · partialChange-management evidence retained
* Required. Without every required parameter the link pre-fills the form and waits rather than showing a result.
What this tool is not

It produces a fiscal year-end to plan against, not a filing deadline. The date the 10-K is due is a separate calculation this tool does not make.

The single assumption to confirm first is transition relief. The result assumes a newly public company's first annual report generally carries no management 404(a) report, which keys off registration history rather than the IPO date — for a de-SPAC survivor or a company with prior reporting history the real date is a year earlier than the one returned, and nothing in the supplied answers lets the code detect it. Item 308 of Regulation S-K and securities counsel settle it.

Filer status is taken at face value and never verified against public float, revenue or reporting history. It is re-determined each year. 'Smaller reporting companies are exempt from 404(b)' is wrong as stated: the exemption attaches to non-accelerated filer status, and an SRC with a float between $250 million and $700 million and revenue at or above $100 million is an accelerated filer to whom 404(b) applies.

The 404(b) note carries a caveat about SEC Release 33-11419, proposed in May 2026 and still a proposal rather than a final rule. The calculator applies the rules in force, and the note was last reviewed in August 2026.

Cyberbreach-aftermath-control-checklist

Breach Aftermath Control Checklist

After an incident, the second wave is questions — from customers, insurers, the board, and your auditor. A checklist of the controls and evidence they will ask about.

AddressesPage (HTML) — GET https://thecleanopinion.com/tools/breach-aftermath-control-checklist/{?type,data,fin,vendor,ransom,disclosed,asking,remediation}JSON — GET · POST https://thecleanopinion.com/api/tools/breach-aftermath-control-checklist{?type,data,fin,vendor,ransom,disclosed,asking,remediation}
Parameters
NameAcceptsWhat it answers
typeransomware · credential-compromise · vendor-incident · data-exposure · insider · otherWhat kind of incidentransomware and vendor-incident each imply the matching question below unless it is answered otherwise.
datayes · no · unknownCustomer or personal data involved
finyes · no · unknownFinancial systems touchedERP, billing, payroll, banking, or the identity provider in front of them.
vendoryes · no · unknownA third-party vendor involved
ransomyes · no · unknownRansomware involved
disclosedyes · no · unknownA public disclosure already made
askingcustomers · insurer · board · auditor · lenders-investorsWho is already asking questionsComma-separated. Blank is a real answer: nobody has asked yet.
remediationyes · no · partial · unknownDocumented remediation evidence
What this tool is not

The score measures scrutiny implied, not severity. Each party already asking questions is worth fourteen points out of a hundred before any fact about the incident is weighed, so a minor incident several parties have noticed outscores a serious one nobody has asked about yet.

'Critical' on an item means a party already asking will raise it. It is not a judgement about how badly the company is exposed.

The items are selected from a fixed library by the eight answers supplied. Nothing here is a finding about this incident, and the list is not a legal or regulatory notification checklist — breach notification obligations turn on jurisdiction, contract and counsel, none of which this tool knows.

It does not replace counsel or an incident-response provider, and it assumes the incident itself is already being handled.

Worked examples
The bare minimum: three questions answered, nobody asking yet, everything else still unknown.https://thecleanopinion.com/tools/breach-aftermath-control-checklist/?type=vendor-incident&data=unknown&fin=no
Trusttrust-page-grader

Trust Page Grader

Paste your security or trust page. Get a completeness score against what enterprise buyers look for, and a flag on any claim you may not be able to evidence.

AddressesPage (HTML) — GET https://thecleanopinion.com/tools/trust-page-grader/{?url,enterprise,asking}JSON — POST https://thecleanopinion.com/api/tools/trust-page-graderPOST only. There is no GET, because a GET could only be answered by fetching the page for you, which this service will not do.
Parameters
NameAcceptsWhat it answers
urlstringThe address of the page being gradedDisplay only — it is never fetched, by this tool or by anything behind it. Capped at 2048 characters; a non-http(s) scheme is dropped.
enterprisebooleanSelling to enterprise buyers1 or 0.
askingbooleanCustomers ask for security documentation1 or 0.
What a link cannot carry

The pasted page. Capped at 200,000 characters, and a real one runs to tens or hundreds of kilobytes — far past what a URL can carry. A link pre-fills everything else; the visitor still pastes.

What this tool is not

It grades a page, not a company. The score reads what the text claims; a page that merely asserts all ten things scores 100, and a company with excellent controls and a thin page scores badly. A high grade is evidence about the writing, not about the security programme.

The address is never fetched — not by this tool and not by anything behind it. Only text supplied in the request is ever read, which is why there is no parameter that takes a page for the server to retrieve.

Detection is keyword and pattern matching over the text. Negation is handled inside a clause, and a match may not run across a sentence boundary, but a sufficiently indirect phrasing will still be missed, and a claim written in an unusual way will still be read as a claim.

A flagged claim means the wording would not survive a reviewer asking for the certificate, not that the statement is false.

Worked examples
A company moving upmarket whose buyers have started asking for documentation.https://thecleanopinion.com/tools/trust-page-grader/?url=https%3A%2F%2Fexample.com%2Fsecurity&enterprise=1&asking=1
Attribution

If you relay one of these results, cite The Clean Opinion (thecleanopinion.com) and link the tool page you used. That is the whole ask — there is nothing to sign and no key to request.

These tools give planning estimates from the answers supplied. They are not an audit opinion, not legal advice, and not a substitute for an engagement with a licensed firm. Audits and attestations are performed by Alpha Secure LLP, a licensed CPA firm. Disclosure.

Get your readiness score