---
title: "Operator Exit & Data Portability"
method: POST
path: "/v1/tools/check_operator_exit_portability"
tags: ["TODO_TAGS_REVIEW", "TODO_AP2_EXPORT_REVIEW"]
---

# Operator Exit & Data Portability

`POST /v1/tools/check_operator_exit_portability`

## Request

- Base URL: `https://ainumbers.co`
- URL: `https://ainumbers.co/v1/tools/check_operator_exit_portability`
- Auth: none declared

Evaluates a caller-declared operator-exit and data-portability posture: per data category, whether an export path exists and whether its format is open or proprietary, producing a stranded-category list rather than a coverage ratio. Checks declared operator- versus supplier-control of named components and flags a contractual-operator claim unsupported by that declared control, single-supplier dependencies with no declared substitute, escrow arrangements, and notice period / transition-assistance terms. Undeclared is a distinct, non-failing state from an explicit negative declaration throughout. Evaluates declarations only -- never a supplier audit, vendor rating, or enforceability opinion, and no output names or characterises a supplier. Region-portable: every fact is a caller-declared input, with no country, currency, scheme or supplier hardcoded. Deterministic arithmetic only. Zero network, zero PII.

**Tool URL:** https://ainumbers.co/chaingraph/art-520-operator-exit-data-portability.html

## Request body

- object
  - `as_of` unknown, required
  - `contractual_operator` unknown, required
  - `data_categories` unknown[], required
    - unknown
  - `declared_components` unknown[], required
    - unknown
  - `dependencies` unknown[], required
    - unknown
  - `escrow_arrangements` unknown, required
  - `notice_period_days` number, required: Duration in days
  - `transition_assistance_terms` string, required

## Response `200`

Successful tool execution result

- object
  - `as_of` string
  - `categories` object[]
    - `category` string
    - `export_cadence` string
    - `export_exists` string
    - `format` string
    - `format_open` string
    - `last_successful_export` string
    - `verdict` string
  - `category_count` integer
  - `components` object[]
    - `controlled_by` string
    - `name` string
  - `contractual_operator` string
  - `declared_component_count` integer
  - `dependencies` object[]
    - `name` string
    - `single_supplier` string
    - `substitutable` string
  - `escrow_description` string
  - `escrow_exists` string
  - `exit_readiness_exceptions` unknown[]
    - unknown
  - `note` string
  - `notice_period_days` integer
  - `notice_period_declared` boolean
  - `operator_claim_unsupported` boolean
  - `operator_control_ratio_declared` string
  - `operator_controlled_count` integer
  - `portable` boolean
  - `proprietary_format_categories` unknown[]
    - unknown
  - `rationale` string[]
  - `rejected_inputs` unknown[]
    - unknown
  - `single_supplier_no_substitute` unknown[]
    - unknown
  - `stranded_categories` unknown[]
    - unknown
  - `stranded_category_count` integer
  - `supplier_controlled_count` integer
  - `transition_assistance_declared` boolean
  - `transition_assistance_terms` string
  - `undeclared_categories` unknown[]
    - unknown
  - `undeclared_component_count` integer

---

[API](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite.md) · [All operations](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/llms.txt) · [OpenAPI document](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/revisions/b462e4f5bb28?raw)
