Retain and immediately analyze a supported DOCX using an approved captured playbook; use the staged intake workflow when recovery control matters.
Access
Requires app_topolo_contracts.workspace:write and the intended authenticated organization and workspace. Select the permitted workspace through the supported resource-binding flow; do not add a workspace id to strict action input. Honor the action’s explicit confirmation requirement, including for a GET export. Any required JSON confirmation value is separate from transport/client confirmation.
Steps
- Select an approved non-retired playbook and inspect the supported DOCX and intended provider use.
- Supply policyId and policyVersion together when pinning a revision; otherwise both are omitted.
- Inspect the created review and findings. On failure, reconcile retained intakes before any further upload or explicit analysis retry.
Identifiers
- Discover playbooks with policies.list/policy.get. This convenience route assigns an internal retention idempotency key; the caller cannot supply one through this action.
Request
POST /api/reviews
Action: app_topolo_contracts.reviews.create.
contractType: required, one ofmutual_nda,customer_order_form,custom_contract.policyId: optional.policyVersion: optional, integer.title: required, string, at least 3 characters, at most 160 characters.counterparty: required, string, at least 2 characters, at most 160 characters.filename: required, string, at least 6 characters, at most 180 characters.docxBase64: required, string, at least 1 characters, at most 2100000 characters.
Response and effects
- Retains the source privately, invokes analysis, and on completion returns a review created against that captured approved policy. This can consume configured paid model capacity.
- A failed analysis can retain the intake and original source; a 503 can include intakeId and an allowlisted analysisError. Successful POST can queue immediate review-notification flushing without proving delivery.
- This route is not caller-idempotent. A lost response followed by a blind repeat can create another intake or spend another analysis attempt. Prefer intakes.create then intakes.analyze for explicit recovery.
- Unsupported DOCX structures, unverified source quotes and incomplete coverage are distinct failures. A review recommendation is not human approval, a signature or legal completeness.
Examples
Example request and response
Request input:
{
"contractType": "mutual_nda",
"policyId": "default",
"policyVersion": 1,
"title": "Documentation specimen",
"counterparty": "Example Beta",
"filename": "documentation-specimen.docx",
"docxBase64": "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"
}
Illustrated response:
{
"review": {
"id": "11111111-1111-4111-8111-111111111111",
"title": "Documentation specimen",
"counterparty": "Example Beta",
"contractType": "Mutual NDA",
"owner": "Legal review",
"route": "review",
"status": "in_review",
"submittedAt": "2026-10-21T00:00:00.000Z",
"dueAt": "Not set",
"policyPack": "Workspace mutual NDA",
"policyVersion": "1",
"policyApproval": {
"policyId": "default",
"contractType": "mutual_nda",
"version": 1,
"confidentialityYears": 3,
"governingLaw": "England and Wales",
"approvedBy": "user_documentation_fixture",
"approvedAt": "2026-10-21T00:00:00.000Z"
},
"version": 1,
"recommendation": "Human review is required before approval.",
"coverage": {
"missingClauses": [
"Confidentiality period",
"Governing law"
],
"unverifiedQuotes": 0,
"sourceInventoryVersion": 1
},
"findings": [
{
"id": "44444444-4444-4444-8444-444444444444",
"clause": "Other",
"severity": "review",
"summary": "Illustrative human check required.",
"aiExplanation": "Illustrative human check required.",
"evidence": "Synthetic documentation specimen for Example Alpha and Example Beta. This main-body paragraph demonstrates source retention and a human review workflow. It forms no agreement, provides no approved legal terms and asserts no actual approval.",
"policy": "Any unclassified contractual deviation requires human review.",
"confidence": 0.5,
"source": "model",
"paragraph": 0,
"suggestedText": "Synthetic documentation specimen for Example Alpha and Example Beta. This main-body paragraph demonstrates source retention and a human review workflow. It forms no agreement, provides no approved legal terms and asserts no actual approval. Human check remains required.",
"resolution": "pending"
}
],
"sourceParagraphs": [
{
"index": 0,
"text": "Synthetic documentation specimen for Example Alpha and Example Beta. This main-body paragraph demonstrates source retention and a human review workflow. It forms no agreement, provides no approved legal terms and asserts no actual approval.",
"originalText": "Synthetic documentation specimen for Example Alpha and Example Beta. This main-body paragraph demonstrates source retention and a human review workflow. It forms no agreement, provides no approved legal terms and asserts no actual approval."
}
],
"document": {
"filename": "documentation-specimen.docx",
"sha256": "6ca130ea78e011afbd4384bbe0ee82ea155a8bb65b7cad0f17932c3b402c6174",
"redlines": []
}
}
}
HTTP 201 illustration. Hypothetical authorized operation only; inspect the action-specific fields and boundaries below.
Refusal or dependency failure
If: The otherwise valid upload names the default policy revision 1, but no matching approved policy is present in the authorized workspace. Retention and model analysis have not started for this request.
Request input:
{
"contractType": "mutual_nda",
"policyId": "default",
"policyVersion": 1,
"title": "Documentation specimen",
"counterparty": "Example Beta",
"filename": "documentation-specimen.docx",
"docxBase64": "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"
}
Source error-code excerpt (HTTP 409):
{
"error": "workspace_policy_required"
}
Have the proper administrator approve an appropriate policy; do not auto-approve one from an upload flow.
Refusal or dependency failure
If: The convenience review route retained the intake, but analysis returned a failed intake rather than a completed review. The actual route can include intakeId and an allowlisted analysisError; the example shows only its error-code excerpt.
Request input:
{
"contractType": "mutual_nda",
"policyId": "default",
"policyVersion": 1,
"title": "Documentation specimen",
"counterparty": "Example Beta",
"filename": "documentation-specimen.docx",
"docxBase64": "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"
}
Source error-code excerpt (HTTP 503):
{
"error": "contract_analysis_unavailable"
}
Inspect any returned intakeId/analysisError and list/read retained intakes before retrying.
Stale-state recovery
If: An upload/analysis dependency raises an unexpected non-domain error after the operation began. The convenience route emits its generic analysis-unavailable code; earlier retention/provider effects must be reconciled before any new upload.
Request input:
{
"contractType": "mutual_nda",
"policyId": "default",
"policyVersion": 1,
"title": "Documentation specimen",
"counterparty": "Example Beta",
"filename": "documentation-specimen.docx",
"docxBase64": "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"
}
Source error-code excerpt (HTTP 503):
{
"error": "contract_analysis_unavailable"
}
Reconcile current scoped records before another write; this error does not prove earlier effects were absent.
Verify the result
- Read the returned review and corresponding intake; compare document hash, captured policy, coverage and current status before finding decisions, export or human approval.
Recovery
- 409
workspace_policy_required: Have the proper administrator approve an appropriate policy; do not auto-approve one from an upload flow. - 400
invalid_policy_selection: Provide both policyId and policyVersion or omit both. - 400
docx_review_content_unsupported: Supply all material terms in a supported DOCX; do not silently strip content. - 503
contract_analysis_unavailable: Inspect any returned intakeId/analysisError and list/read retained intakes before retrying. - 401
authentication_required: Outer authentication/authorization contract: Authenticate again or provide a valid Topolo API key. Reconcile uncertain earlier write effects before any retry. - 403
permission_denied: Outer authentication/authorization contract: Grant the credential permission workspace:write and the required resource binding. Reconcile uncertain earlier write effects before any retry. - 429
rate_limited: Outer authentication/authorization contract: Wait for Retry-After when present, then retry without parallel duplicate calls. Reconcile uncertain earlier write effects before any retry.
No automatic undo or safe blind replay. Reconcile retained sources/reviews and provider effects first, then continue the specific intake through its current-version analysis route if appropriate.
Source and example limits — 21 October 2026: based on reviewed Contracts source 4bfd49a; current serving association is unverified. All requests, responses, approvals and document specimens shown are fictional and unrun. Offline schema/ZIP/XML checks do not prove application acceptance, legal completeness, provider outcomes or human approval.