openapi: 3.0.3
info:
  title: Medical Necessity AI API
  version: 1.2.0
  description: |
    Check whether a patient's medical history and treatment plan meets payor's criteria for a medical necessity.
  x-infinx-audience: "EXTERNAL"
  x-repository-url: "https://bitbucket.org/rcmplatform/clinicalguidelinesearch-api/src/ai_integration_stage/"
servers:
  - url: https://stagecoding.infinx.com
    description: Staging

tags:
  - name: Medical Necessity AI
    description: Medical Necessity AI document & record endpoints

paths:
  /clinical/records:
    post:
      tags:
        - Medical Necessity AI
      summary: Upload clinical document and related metadata
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
              properties:
                file:
                  type: string
                  format: binary
                cpt_codes:
                  type: string
                  example: "81519"
                icd_codes:
                  type: string
                  example: "C50012"
                tpa:
                  type: array
                  items:
                    type: string
                    enum:
                      - evicore
                      - carelon
                      - healthhelp
                      - uhc
                      - cohere
                      - evolent
                      - bcbs_federal
                  example:
                    - "evicore"
                    - "carelon"
                state_us:
                  type: string
                  example: "California - Entire State"
                accessionNumber:
                  type: string
                  example: "Test2"
                transactionId:
                  type: string
                  example: "TestID2"
      responses:
        "200":
          description: Upload accepted; document processed/queued for AI
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UploadedRecord"
              example:
                message: "Document processed and sent to AI"
                record_id: "8159eebc-e31d-4f57-ba55-d9b3986ba049"
                tenant_id: "mnr_ai_clinical"
                sent_to_ai: true
                state: "SENT_TO_AI"
                job_id: "asHckdsySUro8L2Yy7nXoX"
        "400":
          description: Bad request (missing/invalid fields or file)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              examples:
                missing_accessionNumber:
                  value:
                    status: 400
                    message: "Missing required field: accessionNumber"
                missing_transactionId:
                  value:
                    status: 400
                    message: "Missing required field: transactionId"
                no_pdf_provided:
                  value:
                    status: 400
                    message: "No PDF file provided"
                no_selected_pdf:
                  value:
                    status: 400
                    message: "No selected PDF file"
        "401":
          description: Unauthorized (token missing/invalid)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              examples:
                invalid_username:
                  value:
                    status: 401
                    message: "Invalid or missing preferred_username or name in token"
                missing_header:
                  value:
                    status: 401
                    message: "Missing authorization header"
                invalid_header_format:
                  value:
                    status: 401
                    message: "Invalid authorization header format"
                invalid_tenant:
                  value:
                    status: 401
                    message: "Invalid or missing tenant_id in token"
                invalid_origins:
                  value:
                    status: 401
                    message: "Invalid or missing allowed origins in token"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              examples:
                failed_auth_token:
                  value:
                    status: 500
                    message: "Failed to get external API auth token"
                failed_send_data:
                  value:
                    status: 500
                    message: "Failed to send data to external API. Status: {response.status}"
                external_call_failed:
                  value:
                    status: 500
                    message: "External API call was not successful"
                failed_update_status:
                  value:
                    status: 500
                    message: "Failed to update document status"
                unexpected_external_error:
                  value:
                    status: 500
                    message: "Unexpected error while calling external API: {generic_exception}"
                generic_exception:
                  value:
                    status: 500
                    message: "{generic_exception}"

    get:
      tags:
        - Medical Necessity AI
      summary: List clinical records with pagination and sorting
      security:
        - bearerAuth: []
      parameters:
        - in: query
          name: sort_by
          schema:
            type: string
          description: Field to sort by (e.g., created_at).
        - in: query
          name: sort_order
          schema:
            type: integer
            enum:
              - 1
              - -1
          description: "Sort order; 1 for ascending, -1 for descending."
        - in: query
          name: page
          schema:
            type: integer
            minimum: 1
            default: 1
        - in: query
          name: per_page
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: 20
      responses:
        "200":
          description: A paginated list of records with filters and metadata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RecordListResponse"
              example:
                filters:
                  end_date: null
                  payer: null
                  procedure_code: null
                  sort_by: "created_at"
                  sort_order: "descending"
                  start_date: null
                  status: null
                pagination:
                  has_next: true
                  has_prev: false
                  page: 1
                  per_page: 5
                  total_pages: 41
                  total_records: 204
                records:
                  - _id: "6a793325-0db4-4d52-8217-bf77b6e1a259"
                    accession_number: "35584218"
                    api_response:
                      decision: "Denied"
                      icd_coverage: {}
                    cpt_codes: 81519
                    cpt_codes_desc:
                      - "81519":
                          "Oncology (breast), mRNA, gene expression profiling by real-time RT-PCR of
                          21 genes, utilizing formalin-fixed paraffin-embedded tissue, algorithm
                          reported as recurrence score"
                    created_at: "2025-10-23T18:53:44.266182+00:00"
                    date_of_service: "10/23/2025"
                    external_api_response:
                      data:
                        executed_by: "prior_auth"
                        input_data:
                          _id: "6a793325-0db4-4d52-8217-bf77b6e1a259"
                          accession_number: "35584218"
                          bucket_name: "clinical-sufficiency-docs-stage"
                          cpt_codes: 81519
                          created_at: "2025-10-23T18:53:44.266159+00:00"
                          created_by: "prior_auth"
                          created_ts: "2025-10-23T18:53:45.026319"
                          date_of_service: "10/23/2025"
                          icd_codes:
                            - "C50912"
                          job_id: "CL9BprQwzUrwRf3yPoLRb3"
                          name: "TV Yagna Velu"
                          ordering_physician_name: "MUHAMMAD KHOKHAR"
                          patient_first_name: "VELMA"
                          patient_last_name: "SIEGEL"
                          preferred_username: "tvyagna.velu"
                          record_id: "6a793325-0db4-4d52-8217-bf77b6e1a259"
                          s3_location:
                            "clinical_docs/6a793325-0db4-4d52-8217-bf77b6e1a259_esl-115674- CPT
                            81519 ICD C50912 Questionnaire.pdf"
                          state: "IN_PROGRESS"
                          state_us: ""
                          status: "processing"
                          tenant_code: "mnr_ai_es"
                          tenant_id: "mnr_ai_es"
                          tpa: "bcbs_federal"
                          transaction_id: "G111083315"
                        job_id: "CL9BprQwzUrwRf3yPoLRb3"
                        pipeline_id: "priorauth_inference_aU9Nu9ucUT4tmkLMfAdf8t"
                        pipeline_name: "priorauth_inference"
                        pipeline_version: null
                        trigger_name: "run_pipeline"
                      job_id: "CL9BprQwzUrwRf3yPoLRb3"
                      status_code: 200
                      status_message: "Message deployed to Prior Auth driver!"
                      success: true
                      user: "prior_auth"
                    icd_codes:
                      - "C50912"
                    icd_codes_desc:
                      - "C50912": "Malignant neoplasm of unspecified site of left female breast"
                    job_id: "CL9BprQwzUrwRf3yPoLRb3"
                    name: "TV Yagna Velu"
                    ordering_physician_name: "MUHAMMAD KHOKHAR"
                    patient_first_name: "VELMA"
                    patient_last_name: "SIEGEL"
                    pipeline_id: "priorauth_inference_aU9Nu9ucUT4tmkLMfAdf8t"
                    preferred_username: "tvyagna.velu"
                    record_id: "6a793325-0db4-4d52-8217-bf77b6e1a259"
                    s3_location:
                      "s3://clinical-sufficiency-docs-stage/clinical_docs/6a793325-0db4-4d52-8217-bf77b6e1a259_esl-115674-
                      CPT 81519 ICD C50912 Questionnaire.pdf"
                    sent_to_ai: true
                    state: "RECEIVED_RESPONSE_FROM_AI"
                    state_us: ""
                    status: "completed"
                    tenant_code: "mnr_ai_es"
                    tenant_id: "mnr_ai_clinical"
                    tpa: "bcbs_federal"
                    transaction_id: "G111083315"
                    trigger_name: "run_pipeline"
        "400":
          description: Bad request (invalid pagination/sort parameters)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              examples:
                invalid_sort_by:
                  value:
                    status: 400
                    message: "Invalid sort_by field. Choose from {valid_sort_fields}"
                invalid_sort_order:
                  value:
                    status: 400
                    message: "Invalid sort_order. Use 1 for ascending or -1 for descending"
                invalid_procedure_code:
                  value:
                    status: 400
                    message: "Invalid procedure_code. Must be numeric"
                invalid_pagination:
                  value:
                    status: 400
                    message: "Invalid pagination or sort parameters"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              examples:
                missing_claim_identity:
                  value:
                    status: 401
                    message: "Missing tenant_id or preferred_username in token"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              examples:
                generic_exception:
                  value:
                    status: 500
                    message: "(Generic exception catch-all)"

  /clinical/records/{record_id}:
    get:
      tags:
        - Medical Necessity AI
      summary: Get clinical record details by ID
      security:
        - bearerAuth: []
      parameters:
        - in: path
          name: record_id
          required: true
          schema:
            type: string
            format: uuid
          description: Record identifier to fetch.
      responses:
        "200":
          description: Record found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Record"
              example:
                _id: "6a793325-0db4-4d52-8217-bf77b6e1a259"
                accession_number: "35584218"
                api_response:
                  cleaned_sections:
                    - "Policy Statement\n\t\n## POLICY STATEMENT\n\nThe use of the 21-gene reverse
                      transcriptase-polymerase chain reaction (RT-PCR) assay (ie; Oncotype DX);
                      EndoPredict; the Breast Cancer Index; MammaPrint; or Prosigna to determine
                      recurrence risk for deciding whether to undergo adjuvant chemotherapy may be
                      ….."
                  custom_guideline_name: ""
                  decision: "Denied"
                  error: ""
                  error_msg: ""
                  icd_coverage: {}
                  procedure_section_titles: []
                  reasons:
                    - "The procedure does not adhere to the specific timeframe requirement, as it
                      was not ordered within 6 months following the initial cancer diagnosis."
                  section_ids:
                    - "12g6184c-4af5-464c-b6f1-a0cd8e5f2612"
                  section_titles:
                    - "Policy Statement"
                cpt_codes: 81519
                cpt_codes_desc:
                  - "81519":
                      "Oncology (breast), mRNA, gene expression profiling by real-time RT-PCR of 21
                      genes, utilizing formalin-fixed paraffin-embedded tissue, algorithm reported
                      as recurrence score"
                created_at: "2025-10-23T18:53:44.266182+00:00"
                date_of_service: "10/23/2025"
                external_api_response:
                  data:
                    executed_by: "prior_auth"
                    input_data:
                      _id: "6a793325-0db4-4d52-8217-bf77b6e1a259"
                      accession_number: "35584218"
                      bucket_name: "clinical-sufficiency-docs-stage"
                      cpt_codes: 81519
                      created_at: "2025-10-23T18:53:44.266159+00:00"
                      created_by: "prior_auth"
                      created_ts: "2025-10-23T18:53:45.026319"
                      date_of_service: "10/23/2025"
                      icd_codes:
                        - "C50912"
                      job_id: "CL9BprQwzUrwRf3yPoLRb3"
                      name: "TV Yagna Velu"
                      ordering_physician_name: "MUHAMMAD KHOKHAR"
                      patient_first_name: "VELMA"
                      patient_last_name: "SIEGEL"
                      preferred_username: "tvyagna.velu"
                      record_id: "6a793325-0db4-4d52-8217-bf77b6e1a259"
                      s3_location:
                        "clinical_docs/6a793325-0db4-4d52-8217-bf77b6e1a259_esl-115674- CPT 81519
                        ICD C50912 Questionnaire.pdf"
                      state: "IN_PROGRESS"
                      state_us: ""
                      status: "processing"
                      tenant_code: "mnr_ai_es"
                      tenant_id: "mnr_ai_es"
                      tpa: "bcbs_federal"
                      transaction_id: "G111083315"
                    job_id: "CL9BprQwzUrwRf3yPoLRb3"
                    pipeline_id: "priorauth_inference_aU9Nu9ucUT4tmkLMfAdf8t"
                    pipeline_name: "priorauth_inference"
                    pipeline_version: null
                    trigger_name: "run_pipeline"
                  job_id: "CL9BprQwzUrwRf3yPoLRb3"
                  status_code: 200
                  status_message: "Message deployed to Prior Auth driver!"
                  success: true
                  user: "prior_auth"
                icd_codes:
                  - "C50912"
                icd_codes_desc:
                  - "C50912": "Malignant neoplasm of unspecified site of left female breast"
                job_id: "CL9BprQwzUrwRf3yPoLRb3"
                name: "TV Yagna Velu"
                ordering_physician_name: "MUHAMMAD KHOKHAR"
                patient_first_name: "VELMA"
                patient_last_name: "SIEGEL"
                pipeline_id: "priorauth_inference_aU9Nu9ucUT4tmkLMfAdf8t"
                preferred_username: "tvyagna.velu"
                record_id: "6a793325-0db4-4d52-8217-bf77b6e1a259"
                s3_location:
                  "s3://clinical-sufficiency-docs-stage/clinical_docs/6a793325-0db4-4d52-8217-bf77b6e1a259_esl-115674-
                  CPT 81519 ICD C50912 Questionnaire.pdf"
                sent_to_ai: true
                state: "RECEIVED_RESPONSE_FROM_AI"
                state_us: ""
                status: "completed"
                tenant_code: "mnr_ai_es"
                tenant_id: "mnr_ai_clinical"
                tpa: "bcbs_federal"
                transaction_id: "G111083315"
                trigger_name: "run_pipeline"
        "400":
          description: Bad request (missing/invalid record_id)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              examples:
                missing_record_id:
                  value:
                    status: 400
                    message: "Missing or invalid record_id parameter"
        "404":
          description: Record not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              examples:
                not_found:
                  value:
                    status: 404
                    message: "Record with record_id '{record_id}' not found"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              examples:
                unexpected_error:
                  value:
                    status: 500
                    message: "Unexpected error: {generic_exception}"

components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

  schemas:
    Error:
      type: object
      description: Standard error envelope
      properties:
        status:
          type: integer
          description: HTTP status code (mirrors response status)
          example: 400
        message:
          type: string
          example: "Missing required field: accessionNumber"
      required:
        - status
        - message

    RecordListResponse:
      type: object
      description: Response for listing records with pagination and filters
      properties:
        filters:
          $ref: "#/components/schemas/Filters"
        pagination:
          $ref: "#/components/schemas/Pagination"
        records:
          type: array
          items:
            $ref: "#/components/schemas/RecordSummary"
      required:
        - filters
        - pagination
        - records

    Filters:
      type: object
      description: Applied filters for the record list
      properties:
        end_date:
          type: string
          format: date
          nullable: true
          example: null
        payer:
          type: string
          nullable: true
          example: null
        procedure_code:
          type: string
          nullable: true
          example: null
        sort_by:
          type: string
          example: "created_at"
        sort_order:
          type: string
          enum:
            - ascending
            - descending
          example: "descending"
        start_date:
          type: string
          format: date
          nullable: true
          example: null
        status:
          type: string
          nullable: true
          example: null

    Pagination:
      type: object
      description: Pagination metadata
      properties:
        has_next:
          type: boolean
          example: true
        has_prev:
          type: boolean
          example: false
        page:
          type: integer
          example: 1
        per_page:
          type: integer
          example: 5
        total_pages:
          type: integer
          example: 41
        total_records:
          type: integer
          example: 204
      required:
        - has_next
        - has_prev
        - page
        - per_page
        - total_pages
        - total_records

    RecordBase:
      type: object
      description: Base schema with shared properties for all record types
      properties:
        _id:
          type: string
          format: uuid
          example: "6a793325-0db4-4d52-8217-bf77b6e1a259"
        accession_number:
          type: string
          example: "35584218"
        cpt_codes:
          oneOf:
            - type: integer
            - type: string
        cpt_codes_desc:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
        created_at:
          type: string
          format: date-time
          example: "2025-10-23T18:53:44.266182+00:00"
        date_of_service:
          type: string
          example: "10/23/2025"
        external_api_response:
          $ref: "#/components/schemas/ExternalAPIResponse"
        icd_codes:
          type: array
          items:
            type: string
        icd_codes_desc:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
        job_id:
          type: string
          example: "CL9BprQwzUrwRf3yPoLRb3"
        name:
          type: string
          example: "TV Yagna Velu"
        ordering_physician_name:
          type: string
          example: "MUHAMMAD KHOKHAR"
        patient_first_name:
          type: string
          example: "VELMA"
        patient_last_name:
          type: string
          example: "SIEGEL"
        pipeline_id:
          type: string
          example: "priorauth_inference_aU9Nu9ucUT4tmkLMfAdf8t"
        preferred_username:
          type: string
          example: "tvyagna.velu"
        record_id:
          type: string
          format: uuid
          example: "6a793325-0db4-4d52-8217-bf77b6e1a259"
        s3_location:
          type: string
          example:
            "s3://clinical-sufficiency-docs-stage/clinical_docs/6a793325-0db4-4d52-8217-bf77b6e1a259_esl-115674-
            CPT 81519 ICD C50912 Questionnaire.pdf"
        sent_to_ai:
          type: boolean
          example: true
        state:
          type: string
          example: "RECEIVED_RESPONSE_FROM_AI"
        state_us:
          type: string
          example: ""
        status:
          type: string
          example: "completed"
        tenant_code:
          type: string
          example: "mnr_ai_es"
        tenant_id:
          type: string
          example: "mnr_ai_clinical"
        tpa:
          type: string
          example: "bcbs_federal"
        transaction_id:
          type: string
          example: "G111083315"
        trigger_name:
          type: string
          example: "run_pipeline"

    RecordSummary:
      description: Simplified record for list view with minimal api_response
      allOf:
        - $ref: "#/components/schemas/RecordBase"
        - type: object
          properties:
            api_response:
              type: object
              description: Simplified API response with only decision and icd_coverage
              properties:
                decision:
                  type: string
                  enum:
                    - Approved
                    - Denied
                    - Pending
                  example: "Denied"
                icd_coverage:
                  type: object
                  additionalProperties: true
                  example: {}

    UploadedRecord:
      type: object
      properties:
        message:
          type: string
          example: "Document processed and sent to AI"
        record_id:
          type: string
          format: uuid
          example: "79870ab6-83a9-439d-b3e8-f7156f955b50"
        tenant_id:
          type: string
          example: "mnr_ai_clinical"
        sent_to_ai:
          type: boolean
        state:
          type: string
          description: Current processing state of the document
          enum:
            - SENT_TO_AI
            - IN_PROGRESS
            - RECEIVED_RESPONSE_FROM_AI
            - ERROR_SENDING
            - AI_RESPONSE_FAILED
            - SCHEDULER_FAILED
          example: "IN_PROGRESS"
        job_id:
          type: string
          example: "asHckdsySUro8L2Yy7nXoX"
      required:
        - message
        - record_id
        - sent_to_ai
        - state

    APIResponse:
      type: object
      description: Response returned by external medical necessity rules engine
      properties:
        cleaned_sections:
          type: array
          description: Cleaned text sections from policy documents
          items:
            type: string
          example:
            - "Policy Statement\n\t\n## POLICY STATEMENT\n\nThe use of the 21-gene reverse
              transcriptase-polymerase chain reaction (RT-PCR) assay (ie; Oncotype DX); EndoPredict;
              the Breast Cancer Index; MammaPrint; or Prosigna to determine recurrence risk for
              deciding whether to undergo adjuvant chemotherapy may be ….."
        custom_guideline_name:
          type: string
          description: Name of custom guideline if applicable
          example: ""
        decision:
          type: string
          description: Final determination from the AI system
          enum:
            - Approved
            - Denied
            - Pending
          example: "Denied"
        error:
          type: string
          description: Error message if processing failed
          example: ""
        error_msg:
          type: string
          description: Additional error details
          example: ""
        icd_coverage:
          type: object
          description: ICD-code level coverage metadata
          additionalProperties: true
          example: {}
        procedure_section_titles:
          type: array
          description: Titles of procedure-related sections
          items:
            type: string
          example: []
        reasons:
          type: array
          description: Reasons for the decision
          items:
            type: string
          example:
            - "The procedure does not adhere to the specific timeframe requirement, as it was not
              ordered within 6 months following the initial cancer diagnosis."
        section_ids:
          type: array
          description: IDs of relevant policy sections
          items:
            type: string
          example:
            - "12g6184c-4af5-464c-b6f1-a0cd8e5f2612"
        section_titles:
          type: array
          description: Titles of relevant policy sections
          items:
            type: string
          example:
            - "Policy Statement"
      required:
        - decision

    ExternalAPIResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            executed_by:
              type: string
              example: "prior_auth"
            input_data:
              type: object
              properties:
                _id:
                  type: string
                  format: uuid
                accession_number:
                  type: string
                  example: "35584218"
                bucket_name:
                  type: string
                  example: "clinical-sufficiency-docs-stage"
                cpt_codes:
                  oneOf:
                    - type: integer
                    - type: string
                created_at:
                  type: string
                  format: date-time
                  example: "2025-10-23T18:25:43.511Z"
                created_by:
                  type: string
                  example: "prior_auth"
                created_ts:
                  type: string
                  description: Timestamp from external system
                date_of_service:
                  type: string
                  example: "10/23/2025"
                icd_codes:
                  type: array
                  items:
                    type: string
                job_id:
                  type: string
                  example: "asHckdsySUro8L2Yy7nXoX"
                name:
                  type: string
                ordering_physician_name:
                  type: string
                  example: "Dr. John Doe"
                patient_first_name:
                  type: string
                  example: "Jane"
                patient_last_name:
                  type: string
                  example: "Smith"
                preferred_username:
                  type: string
                  example: "prior_auth_user"
                record_id:
                  type: string
                  format: uuid
                  example: "8159eebc-e31d-4f57-ba55-d9b3986ba049"
                s3_location:
                  type: string
                  example:
                    "clinical_docs/6a793325-0db4-4d52-8217-bf77b6e1a259_esl-115674- CPT 81519 ICD
                    C50912 Questionnaire.pdf"
                state:
                  type: string
                  example: "IN_PROGRESS"
                state_us:
                  type: string
                  example: "California - Entire State"
                status:
                  type: string
                  example: "processing"
                tenant_code:
                  type: string
                  example: "mnr_ai_es"
                tenant_id:
                  type: string
                  example: "mnr_ai_es"
                tpa:
                  type: string
                  example: "bcbs_federal"
                transaction_id:
                  type: string
                  example: "G111083315"
            job_id:
              type: string
              example: "asHckdsySUro8L2Yy7nXoX"
            pipeline_id:
              type: string
              example: "priorauth_inference_aU9Nu9ucUT4tmkLMfAdf8t"
            pipeline_name:
              type: string
              example: "priorauth_inference"
            pipeline_version:
              type: string
              nullable: true
              example: null
            trigger_name:
              type: string
              example: "run_pipeline"
        job_id:
          type: string
          example: "asHckdsySUro8L2Yy7nXoX"
        status_code:
          type: integer
          example: 200
        status_message:
          type: string
          example: "Message deployed to Prior Auth driver!"
        success:
          type: boolean
          example: true
        user:
          type: string
          example: "prior_auth"

    Record:
      description: Complete record with full api_response for detail view
      allOf:
        - $ref: "#/components/schemas/RecordBase"
        - type: object
          properties:
            api_response:
              $ref: "#/components/schemas/APIResponse"
