Compliance API
Your product writes the copy.
One POST says whether it can legally publish.
Every tool in regulated industries is generating marketing now, and almost none of them check it. This is the layer in between: send the text and the industry, get back what a compliance reviewer would flag, with the fix and the reason. Nine rulebooks, 505 refused phrases, no model call, same answer every time.
One request.
No SDK, no onboarding call, no implementation project. If your product can make an HTTP request it can be compliant by this afternoon.
Request
# the ad your model just wrote curl -X POST https://hub.danedigital.org/api/v1/check \ -H "Authorization: Bearer YOUR_KEY" \ -H "content-type: application/json" \ -d '{ "text": "Guaranteed approval and the lowest rates in town, no risk!", "vertical": "mortgage" }'
Response
{
"verdict": {
"findings": [
{
"claim": "Prohibited for this
vertical: \"lowest rate\"",
"risk": "Needs Counsel",
"code": "phrase.prohibited",
"fix": {
"with": "competitive rates",
"why": "A superlative has to be
substantiated against the
whole market."
}
}
]
}
}Two things the docs say twice, so we will too.
Findings are nested under verdict — body.findings is undefined on a
success. And an empty findings list is not a pass: a non-2xx response or an error
key means nothing was checked, and the right thing to do is treat the result as unknown rather
than as clear.
What it knows
Nine rulebooks, and it stays quiet on clean copy.
505 distinct refused phrases, 29 negation words so “we can’t guarantee a closing date” is noted and cleared rather than blocked, and a second pass for the identifiers a published piece is supposed to carry — an NMLS number, Equal Housing Lender, a required disclosure. A missing identifier is not a phrase you can search for, which is why most checkers ignore that half entirely.
Pass the vertical id. An unrecognised value is refused rather than
quietly matched to a fallback rulebook, because the wrong rulebook returning “clear”
is worse than an error.
It is a rules engine, not a model. No inference call, so the same text returns the same verdict every time, it answers in well under a second, and you can put it in a publish path without worrying about what it costs you per call. That also means it is auditable: every finding traces to a phrase in a rulebook, not to a probability.
Pricing
Published, because theirs is not.
The two serious vendors in this category quote by the call and charge an implementation fee before you have checked a single line. There is no implementation fee here and no minimum term. Build on the free tier for as long as you like.
Developer
Build on it first
Everything works. The whole engine, all nine rulebooks, no card.
Free100 checks a month
Get a key →Starter Most products start here
In your publish path
Enough to screen everything a mid-sized platform publishes, with usage you can read back per key.
$299a month · 10,000 checks
Get a key →Scale
Every user you have
For a CRM, an MLS tool or a marketing platform running every draft its users write through the gate.
$999a month · 100,000 checks
Get a key →Your name on it, for everyone you serve
Let’s talk · priced by seat count
- Unlimited checks, and the per-key daily ceiling lifted to whatever your traffic needs
- The white-label embed — one script tag and the checker runs on your own domain, your branding, your industry preselected
- A branded build of the Chrome extension, published as an unlisted listing only your members install
- Priority on new rulebooks, including ones written for your vertical
Built for listing platforms, brokerage networks, CRMs, trade associations and regulators. A free pre-publication screen for your members means fewer violations anyone has to enforce.
Talk about a platform buildEvery key carries a daily ceiling as well as a monthly
allowance — 2,000 checks a day by default, to stop a loop in staging spending your month in an
hour. It is raised to fit the plan, and you can read your own usage any time at
GET /api/v1/usage.
Get a key
Keys are issued by hand. That is deliberate.
Not a self-serve form into a void — you get a key and the person who built the engine, usually the same day. Tell me what you are building and which rulebooks you need and I will send a key and a worked example against your own copy.
No list, no drip. The docs are open either way — read them first.
Before you ask
The parts that matter to whoever reviews this.
Is this legal advice?
No, and nothing it returns should be presented as it. It is a screening tool: it tells you what a compliance reviewer would flag so a human can decide. The liability for what you publish stays with you — that is true of every tool in this category, including the ones that do not say so.
What do you do with the text we send?
It is checked and not retained as content. What is kept is the count, per key, so the usage endpoint can answer — see the privacy policy and what we hold.
How current are the rulebooks?
They are maintained as a set and versioned together. The published counts on this page are generated from the engine itself and checked on every deploy, so a figure here and the answer you get cannot drift apart.
What happens when it is wrong?
Tell me and the rulebook changes, usually the same week. It stays silent on clean copy by design — a checker that flags everything is one nobody leaves switched on — so a false positive is treated as a defect, not as caution.
Can we run it on our own domain?
Yes. The embed is one script tag and the checker renders on your site, your branding, your industry preselected, calling the API from your own page. That is the Platform plan.
What does it not do?
It reads text. It does not watch your social accounts, archive posts for an examiner or monitor what is already published — those are different products and some of them are good. This is the gate before publication, which is the half nobody sells as an API.