> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qa.esectra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# `GET /v1/control/kyt/sources`.

> # Errors

Returns `401` when the caller is not authenticated and `503` when the feed
store cannot be reached.



## OpenAPI

````yaml /openapi.json get /v1/control/kyt/sources
openapi: 3.1.0
info:
  title: Esectra API
  description: >-
    Transaction screening, identity verification, and wallet risk.


    Every create route accepts `Idempotency-Key`; replaying one returns the
    original record with `200` where the first call returned `201`. `POST
    /v1/transactions` requires the header, because a duplicated transaction is a
    duplicated financial record.
  license:
    name: proprietary
    identifier: proprietary
  version: 0.1.0
servers:
  - url: https://qa.esectra.com
    description: Esectra QA Documentation
security: []
paths:
  /v1/control/kyt/sources:
    get:
      tags:
        - Control
      summary: '`GET /v1/control/kyt/sources`.'
      description: >-
        # Errors


        Returns `401` when the caller is not authenticated and `503` when the
        feed

        store cannot be reached.
      operationId: list_sources_handler
      responses:
        '200':
          description: Source readiness
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SourcesBody'
        '401':
          description: No usable credentials
        '503':
          description: A backing store could not be reached
      security:
        - api_key: []
        - session_cookie: []
components:
  schemas:
    SourcesBody:
      type: object
      description: Every source, with the deployment's freshness rule.
      required:
        - max_age_seconds
        - all_required_healthy
        - sources
      properties:
        all_required_healthy:
          type: boolean
          description: Whether every source the deployment requires is usable.
        max_age_seconds:
          type: integer
          format: int64
          description: How old data may be before it stops counting, in seconds.
        sanctions_coverage:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/CoverageBody'
              description: >-
                Sanctions coverage for the OFAC list, when a publication is
                installed.
        sources:
          type: array
          items:
            $ref: '#/components/schemas/SourceRow'
          description: One row per source.
    CoverageBody:
      type: object
      description: >-
        What a publication contained, and what this deployment can screen of it.


        Reported because the entry count alone overstates coverage. A deployment

        that installs 1,022 of 1,059 designated addresses is not screening OFAC;
        it

        is screening most of OFAC, and the difference is the part a compliance

        officer has to know about and cover another way.
      required:
        - version
        - digest
        - observations
        - screenable_entries
        - exact_entries
        - ambiguous_evm_entries
        - unsupported_entries
        - merged_duplicates
        - reconciles
        - by_network
      properties:
        ambiguous_evm_entries:
          type: integer
          format: int64
          description: >-
            EVM addresses whose chain the publication does not establish.


            Screened on every supported EVM chain, as ambiguous. Never reported
            as

            a designation on the chain that was asked about.
          minimum: 0
        by_network:
          type: array
          items:
            $ref: '#/components/schemas/CoverageNetworkBody'
          description: Counts by network and classification.
        digest:
          type: string
          description: Digest of the artifact they came from.
        exact_entries:
          type: integer
          format: int64
          description: Placed on a network this build screens.
          minimum: 0
        merged_duplicates:
          type: integer
          format: int64
          description: Designations that merged into an address already recorded.
          minimum: 0
        observations:
          type: integer
          format: int64
          description: Designated addresses in the publication.
          minimum: 0
        reconciles:
          type: boolean
          description: Whether the counts account for every designation, by arithmetic.
        screenable_entries:
          type: integer
          format: int64
          description: Unique rows installed and screenable.
          minimum: 0
        unsupported_entries:
          type: integer
          format: int64
          description: >-
            On ledgers this build cannot screen. A product limitation, not
            coverage.
          minimum: 0
        version:
          type: string
          description: Publisher's version these counts came from.
    SourceRow:
      type: object
      description: How one source is doing.
      required:
        - source_id
        - scope
        - observations
        - fresh
        - consecutive_failures
      properties:
        age_seconds:
          type:
            - integer
            - 'null'
          format: int64
          description: >-
            Age of the data in force, in seconds.


            Computed here rather than left to the browser: a console that
            derives

            age from a clock the server does not share will disagree with the

            readiness probe, and an operator will chase the difference.
        consecutive_failures:
          type: integer
          format: int32
          description: How many attempts have failed in a row.
        fresh:
          type: boolean
          description: Whether the data is current enough to rely on.
        last_attempt_at:
          type:
            - string
            - 'null'
          description: RFC 3339 time of the last refresh attempt, successful or not.
        last_error:
          type:
            - string
            - 'null'
          description: Why the last attempt failed, absent when it succeeded.
        observations:
          type: integer
          format: int64
          description: How many observations it contains.
        published_at:
          type:
            - string
            - 'null'
          description: RFC 3339 publication time of the data in force.
        retrieved_at:
          type:
            - string
            - 'null'
          description: RFC 3339 time it was last successfully retrieved.
        scope:
          type: string
          description: Whether this is a global list or the tenant's own.
        source_id:
          type: string
          description: Which source.
        version:
          type:
            - string
            - 'null'
          description: The publisher's version currently in force.
    CoverageNetworkBody:
      type: object
      description: One network's count within a classification.
      required:
        - network
        - classification
        - addresses
      properties:
        addresses:
          type: integer
          format: int64
          description: How many designated addresses.
          minimum: 0
        classification:
          type: string
          description: '`EXACT_NETWORK`, `EVM_FAMILY_AMBIGUOUS` or `UNSUPPORTED_NETWORK`.'
        network:
          type: string
          description: Network code, or `EVM_FAMILY_AMBIGUOUS`.
  securitySchemes:
    api_key:
      type: http
      scheme: bearer
      description: >-
        A tenant API key. Acts for exactly one tenant and cannot conclude a
        case, because a conclusion records a person.
    session_cookie:
      type: apiKey
      in: cookie
      name: esectra_session
      description: >-
        A signed-in reviewer's session. httpOnly and SameSite=Lax; set by `POST
        /v1/control/sessions` and only usable once the second factor is met.

````