---
title: "List number compliance cases"
method: GET
path: "/v1/telephony/compliance-cases"
tags: ["Telephony"]
---

# List number compliance cases

`GET /v1/telephony/compliance-cases`

## Request

- Base URL: `https://api.pyai.com`
- URL: `https://api.pyai.com/v1/telephony/compliance-cases`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

## Query parameters

- `limit` integer

## Response `200`

Project-scoped cases

- object
  - `object` string
  - `data` NumberComplianceCase[]
    - `id` string, required
    - `object` 'telephony.compliance_case', required
    - `project_id` string, required
    - `kind` 'new_number' | 'port_in', required
    - `country` 'US' | 'CA' | 'IN' | 'GB' | 'AU', required
    - `number_type` string
    - `capabilities` string[]
    - `use_case` string
    - `network_status` string
    - `state` 'collecting_evidence' | 'extracting' | 'needs_review' | 'ready_for_submission' | 'submitted' | 'cancelled', required
    - `continuation_reason` string, nullable
    - `terminal_reason` 'network_review_submitted' | 'cancelled_by_customer' | 'null', nullable
    - `rules_snapshot` object, required: Immutable rules, source identifiers, thresholds, retry caps, parallelism, wall-clock, cost, and retention configuration frozen when the case started.
      - `available` boolean
      - `registry_version` string
      - `source_ids` string[]
      - `frozen_at` integer
      - `config` object
    - `document_requests` object[], required
      - `id` string
      - `document_type` string
      - `label` string
      - `required` boolean
      - `accepted_mime_types` string[]
      - `max_bytes` integer
    - `attestation_requests` object[]
      - `id` string
      - `text` string
      - `required` boolean
    - `uploads` object[], required
      - `id` string
      - `document_request_id` string
      - `object_ref` string: Opaque object reference.
      - `generation` string, nullable
      - `file_name` string
      - `mime_type` string
      - `size_bytes` integer
      - `sha256` string
      - `malware_status` 'pending' | 'clean' | 'infected' | 'scan_failed'
      - `uploaded_at` integer
      - `retention_delete_at` integer
    - `extractions` object[], required: Terminal processing attempts. Extracted personal values are masked in API views.
      - `id` string
      - `upload_id` string
      - `processing_profile` 'standard'
      - `status` 'succeeded' | 'failed' | 'cancelled'
      - `failure_reason` string, nullable
      - `attempts` integer
      - `fields` object[]
        - `field` string
        - `value` string: Extracted value; personal values are masked.
        - `confidence` number
        - `provenance` object
        - `pii_class` string
        - `redacted` boolean
      - `cost_micros` integer
      - `model_version` string, nullable
      - `latency_ms` integer
      - `started_at` integer
      - `completed_at` integer
    - `corrections` object[]: Correction audit metadata. Corrected PII values are intentionally omitted from API views.
    - `matches` object[]
    - `attestations` object[]
    - `timeline` object[], required
    - `created_at` integer
    - `updated_at` integer
    - `retention_delete_at` integer
    - `version` integer, required

## Other responses

- `401`: Missing or invalid API key (`code: unauthorized`)

---

[API](https://skmtc.dev/pyai/apis/pyai-api.md) · [All operations](https://skmtc.dev/pyai/apis/pyai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pyai/apis/pyai-api/revisions/271a1539185b?raw)
