/v1/scan returns, because only the caller knows how to write a redacted string back into a message array without disturbing the structure around it.
Request
The/v1/scan body, plus:
string
default:"[REDACTED]"
Text substituted for each span. At most 256 characters.
Response
The/v1/scan verdict, plus:
string
The submitted text with every matched span replaced.
integer
Spans replaced. Overlapping matches collapse into one span, so a payload that trips two rules on the same sentence is replaced once.
tool_calls, each rejected call carries redacted_arguments where a finding was raised against the raw argument text.
Plan limits
Once the month’s allowance for semantic blocks is spent, a semantic detection is still reported but the response carries your text back unchanged withredacted at zero. The verdict itself is untouched. Signature blocks are never withheld.
