Skip to main content
GET
Get redaction review

Path Parameters

workspaceId
string<uuid>
required

Workspace identifier.

redactionId
string
required

Opaque identifier of the redaction.

Pattern: ^redaction_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$

Response

What detection found in one document.

Wraps elide's Report [blocked] with the things elide does not model: the recognition [DocumentContext] the entities were scored against, how the document decoded, and what the pass cost.

Reviewer edits are not here. They are the caller's own input, applied to the report before anonymize (EditSet::apply [blocked]), so an audit carries what analysis found as amended rather than the amendments themselves.

Serialization

[Serialize] but deliberately not Deserialize: a serialized report tags entity groups by modality name, so rebuilding one needs the registry Engine [blocked] holds. Read an audit back with Engine::deserialize_audit [blocked].

Schema

Generate under the serialize contract (SchemaSettings::for_serialize [blocked]). usage is skip_serializing_if, and only that contract marks it optional — schema_for! defaults to deserialize and declares it required, so a generated client would reject responses this crate really emits.

What detection found in one document.

Wraps elide's Report [blocked] with the things elide does not model: the recognition [DocumentContext] the entities were scored against, how the document decoded, and what the pass cost.

Reviewer edits are not here. They are the caller's own input, applied to the report before anonymize (EditSet::apply [blocked]), so an audit carries what analysis found as amended rather than the amendments themselves.

Serialization

[Serialize] but deliberately not Deserialize: a serialized report tags entity groups by modality name, so rebuilding one needs the registry Engine [blocked] holds. Read an audit back with Engine::deserialize_audit [blocked].

Schema

Generate under the serialize contract (SchemaSettings::for_serialize [blocked]). usage is skip_serializing_if, and only that contract marks it optional — schema_for! defaults to deserialize and declares it required, so a generated client would reject responses this crate really emits.

codec
object
required

How this document was decoded when it was analyzed.

Carried back so anonymize decodes identically: the entity offsets below are stored against the first decode, and a differently-rendered second one would not line up.

context
object
required

What the caller asserted when this document was analyzed: languages, jurisdictions, document tags.

Carried back so Engine::anonymize [blocked] compiles against the same vocabulary analyze used, and re-decodes under the same codec configuration, without the caller re-passing it.

report
object
required

The detections: elide's own report, every document and the parts nested in one, each entity carrying its provenance chain.

Edit it through Report [blocked]'s own API — include_part [blocked], suppress_part [blocked], part_entities [blocked] — for the decisions elide models.

usage
object
required

What the analyze pass cost: one entry per recognizer and enricher that ran, each self-identifying by the name the deployment configured it under.

Carried here rather than read off the report: elide derives usage during analysis and drops it when a report is rebuilt from the wire, so a host that bills on model spend would lose it on the round trip.

recognition
object[]

The vocabularies this request introduced: labels elide does not ship, and how they were found.

Carried back for the same reason context [blocked] is. Anonymize compiles its catalog afresh, and a custom label missing from it resolves to nothing — the entity would be detected and then silently not redacted.