Topolo Docs Topolo Platform
Open workspace

Get contract-type policy pack

Read the latest or an exact historical approved policy for a specified contract type and policy id.

Read the latest or an exact historical approved policy for a specified contract type and policy id.

Access

Requires app_topolo_contracts.workspace:read 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.

Steps

  1. Choose a supported contractType and discovered policyId; omission selects default.
  2. Supply version to read that exact immutable revision; omission reads the latest approved stored revision for that identity.
  3. Compare returned policyId/version and approval metadata before selecting it for a new upload.

Identifiers

  • Discover upload choices using policies.list. Existing intake/review metadata identifies the captured historical policy version.

Request

GET /api/policy

Action: app_topolo_contracts.policy.get.

  • contractType: required, one of mutual_nda, customer_order_form, custom_contract.
  • policyId: optional.
  • version: optional, integer.

Response and effects

  • Reads/decrypts one policy; the handler returns policy:null when no matching row exists. It does not approve a template or change a captured review snapshot.
  • A historical/latest read is not the same as the non-retired upload-choice list; validate current upload eligibility separately.
  • The version query is numeric in the action input; transport mapping must retain the requested exact revision. A null policy is distinct from dependency refusal.

Examples

Example request and response

Request input:

{
  "contractType": "mutual_nda",
  "policyId": "default",
  "version": 1
}

Illustrated response:

{
  "policy": {
    "policyId": "default",
    "contractType": "mutual_nda",
    "version": 1,
    "confidentialityYears": 3,
    "governingLaw": "England and Wales",
    "approvedBy": "user_documentation_fixture",
    "approvedAt": "2026-10-21T00:00:00.000Z"
  }
}

HTTP 200 illustration. Hypothetical authorized operation only; inspect the action-specific fields and boundaries below.

Invalid input: stop before sending

The body deliberately names a contract type outside the supported enum.

{
  "contractType": "unsupported_type",
  "policyId": "default",
  "version": 1
}

The action input schema rejects this value before a request is sent. The reviewed raw GET handler defines 400 invalid_contract_type when its parsed query fails. No raw request or response is observed.

Refusal or dependency failure

If: The workspace grant and storage binding are present, but protection readiness or protected-database initialization fails before the action handler runs.

Request input:

{
  "contractType": "mutual_nda",
  "policyId": "default",
  "version": 1
}

Source error-code excerpt (HTTP 503):

{
  "error": "contracts_protection_unavailable"
}

Preserve the dependency refusal; it is not a null policy result.

No matching policy revision

Request input:

{
  "contractType": "mutual_nda",
  "policyId": "default",
  "version": 999
}

Illustrated response:

{
  "policy": null
}

HTTP 200 illustration. A hypothetical successful read found no matching row; it does not authorize policy approval.

Verify the result

  • Check returned type/id/version and captured approver/time; policy:null must not be substituted with default template values.

Recovery

  • 400 invalid_contract_type: Correct the contract type, policy identity and numeric revision input.
  • 503 contracts_protection_unavailable: Preserve the dependency refusal; it is not a null policy result.
  • 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:read 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.

Read-only. Re-read selection and current eligibility after a conflict; never replace a requested historical revision with latest silently.

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.