VerbaPulse reads a draft before it reaches the customer and returns the sentences that create legal exposure: a commitment your company has to honour, an assurance you cannot support, a confidential detail, a disclosure that should not be made. One HTTP call, a few seconds, no message content stored.
In 2024 a tribunal ordered an airline to compensate a passenger because its chatbot gave him the wrong answer about bereavement fares. The airline argued it should not be responsible for what the bot said. The tribunal disagreed (Moffatt v. Air Canada, 2024 BCCRT 149).
The amount was small. The principle is the part that scales. An agent answering thousands of messages a day makes commitments, describes products, explains delays and responds to complaints at a volume no review queue absorbs, and a sentence that creates exposure when a person writes it creates the same exposure when a model writes it.
The reply still leaves your system. The check is one call on the way out, and what comes back is a list of findings, not a rewritten message. Your code decides what to do with them, which is what keeps the decision, and the record of it, on your side.
Prices, periods, guarantees and confirmations that read as a concluded bargain.
Reassurance a firm cannot support, and answers that omit the condition that matters.
Detail that belongs to another client, another matter, or an agreement under NDA.
Wording that tips off the subject of a report or explains a delay it should not explain.
Pricing and market language that reads as coordination or as a restriction on a reseller.
Policy wording you upload, applied to API keys the same way it applies to the add-in.
Measured in Turkish and English.
Send the draft. Get the findings, with character offsets so you can highlight or replace the phrase in place.
POST https://verbapulse.com/analyze
Content-Type: application/json
{
"text": "As agreed, we will match any competitor price for the next three years.",
"org_api_key": "<your key>",
"platform": "support-agent"
}
{
"status": "ok",
"session_id": "dd1597af-fca5-4c11-9176-ec3a4e0755dc",
"segments": [
{
"text": "we will match any competitor price for the next three years",
"start": 11,
"end": 70,
"risk_level": "medium",
"risk_type": "compliance",
"explanation": "Firm long-term pricing commitment, confirm approval and contractual alignment",
"suggested_sentence": "we can discuss matching competitor pricing as part of our agreement",
"fix_type": "sentence"
}
]
}
An empty segments array means the draft is clean. When the check cannot
complete, the response carries "status": "unavailable" with an empty array.
That means not checked. The product never returns a clean result it did
not verify, and your integration should not either.
| Typical latency | 2 to 5 seconds for a short draft |
|---|---|
| Maximum draft | 50,000 characters |
| Default rate limit | 600 requests per minute per key, higher on request |
| Processing region | EU (Sweden), or your own infrastructure |
| Languages | Turkish and English measured |
A check adds seconds to an answer, so most teams call it in parallel with their own generation step and hold the reply only when a finding comes back.
The draft is processed in the EU and the message content is not stored. What we keep is the event: the rule that fired, the outcome, the department if you send one, and the time. That is what produces the reporting, and it holds no message text.
If the text cannot leave your network, the same engine runs inside your own infrastructure with the same API. See Enterprise.
Every check runs on a frontier model in our EU deployment. That is what a key gets you today, and it is the accuracy the rest of this page describes.
We also train our own model for this task. It runs in on-prem deployments, where the text cannot leave the customer's network, and we are working it toward a hosted tier that costs less per check. When that tier exists you will select it per key. Nothing on your account changes model without you asking for it.
It reads the sentence your system is about to send and reports legal and compliance exposure. It is not a jailbreak defence, it does not stop a determined attacker, and it does not scan for data patterns such as card numbers, which is what a DLP product does well. Teams that run both use them for different jobs.
Early access, while usage metering and the dedicated-capacity tier are completed. We onboard a limited number of teams at a time.
Pricing is quoted with access. Tell us the volume you expect and the region you need.
API use is governed by section 6 of the terms, which covers keys, what you may do with the output, and evaluation access.