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

# Retrieve all existing Customers

<Info>
  **Customer** (used in this doc) and **Subject** (used in the API/backend) mean the same thing: one individual.
</Info>

This is to retrieve a list of all existing customers


## OpenAPI

````yaml get /api/subjects
openapi: 3.0.3
info:
  title: Athena API
  version: v3
  x-logo:
    url: https://cynopsis.co/wp-content/uploads/2021/03/logo-2.png
    altText: Cynopsis Solutions
  description: >-
    ATHENA is an advanced real-time transaction monitoring solution designed to
    detect and prevent money laundering, fraud, and terrorism financing. Powered
    by proprietary AML rules, ATHENA analyzes transactions in real time,
    providing clear, intuitive visual insights to streamline compliance
    processes.
        
        ✅ Real-Time Monitoring – Instantly analyzes transaction data to detect anomalies and potential compliance risks.
        ✅ Visualized Insights – Converts complex data into easy-to-understand charts, aiding faster decision-making.
        ✅ Seamless Integration – Easily integrates with existing financial and compliance systems.
        
        Ideal for financial institutions, fintech companies, and regulated businesses, ATHENA enhances risk management and ensures regulatory compliance with ease.
  contact:
    email: tech@cynopsis.co
servers:
  - url: http://localhost/api
    description: Local development server
security: []
paths:
  /api/subjects:
    get:
      tags:
        - Subjects
      summary: List all subjects
      operationId: subject_list
      parameters:
        - in: query
          name: client_subject_id
          schema:
            type: string
          description: Filter by client subject ID.
        - name: limit
          required: false
          in: query
          description: Number of results to return per page.
          schema:
            type: integer
        - name: offset
          required: false
          in: query
          description: The initial index from which to return the results.
          schema:
            type: integer
        - in: query
          name: subject_name
          schema:
            type: string
          description: Filter by subject name.
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSubjectList'
          description: ''
      security:
        - CustomAuthentication: []
        - cookieAuth: []
        - BearerAuth: []
components:
  schemas:
    PaginatedSubjectList:
      type: object
      required:
        - count
        - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Subject'
    Subject:
      type: object
      properties:
        client_subject_id:
          type: string
          maxLength: 255
        subject_name:
          type: string
          maxLength: 255
        unique_identification_number:
          type: string
          maxLength: 255
        account_holder:
          type: boolean
          nullable: true
        address:
          type: string
          maxLength: 255
        customer_segment:
          type: string
          maxLength: 255
        date_and_place_of_birth:
          type: string
          maxLength: 255
        country_of_birth_or_incorporation:
          type: string
          maxLength: 255
        nationality:
          type: string
          maxLength: 60
        account_type:
          type: string
          maxLength: 255
        account_type_ii:
          type: string
          maxLength: 255
        account_opening_date:
          type: string
          maxLength: 255
        account_opening_date_ii:
          type: string
          maxLength: 255
        customer_aml_risk_rating:
          type: string
          maxLength: 255
        customer_account:
          type: string
          maxLength: 255
        customer_account_ii:
          type: string
          maxLength: 255
        customer_opening_date:
          type: string
          maxLength: 255
        source_of_funds:
          type: string
          maxLength: 255
        average_monthly_income:
          type: string
          maxLength: 255
        cif_status:
          type: string
          maxLength: 255
        occupation:
          type: string
          maxLength: 255
        industry:
          type: string
          maxLength: 255
        purpose_of_account:
          type: string
          maxLength: 255
        contact_number:
          type: string
          maxLength: 255
        email_address:
          type: string
          maxLength: 255
        risk_assessment_score:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
        created_by:
          type: integer
          nullable: true
        modified_by:
          type: integer
          nullable: true
      required:
        - client_subject_id
        - subject_name
  securitySchemes:
    CustomAuthentication:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT token obtained from AWS Cognito or custom authentication service
    cookieAuth:
      type: apiKey
      in: cookie
      name: sessionid

````