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

# List Title Entries

> Retrieve and filter title entries using query parameters



## OpenAPI

````yaml GET /title
openapi: 3.0.1
info:
  title: Cardinal Gray OpenAPI
  description: OpenAPI for automating vehicle title work
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://dev.cardinalgray.com
    description: Development
  - url: https://api.cardinalgray.com
    description: Production
security:
  - bearerAuth: []
paths:
  /title:
    get:
      summary: List title entries or search by parameters
      description: >-
        Retrieves title entries for your organization. Supports filtering by
        state, modification date, account status, and VIN lookup. Can return
        aggregated state counts for mapping visualizations or paginated entry
        lists.
      parameters:
        - $ref: '#/components/parameters/vin'
        - $ref: '#/components/parameters/state'
        - $ref: '#/components/parameters/timeline'
        - $ref: '#/components/parameters/account_status'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/nextToken'
        - $ref: '#/components/parameters/groupId'
      responses:
        '200':
          description: Successful response with different formats based on query parameters
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/DynamoDBEntry'
                    description: Single title entry (returned when using ?vin parameter)
                  - type: object
                    description: Paginated collection of title entries (default response)
                    properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/DynamoDBEntry'
                        description: Array of title entries matching the query criteria
                      totalCount:
                        type: integer
                        description: >-
                          Total number of items in this response (affected by
                          limit parameter)
                        example: 25
                      nextToken:
                        type: string
                        description: >-
                          Token for retrieving the next page of results (only
                          present if more results available)
                        nullable: true
                    required:
                      - items
                      - totalCount
        '400':
          description: Invalid VIN format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    vin:
      name: vin
      in: query
      required: false
      schema:
        type: string
        pattern: ^[A-HJ-NPR-Z0-9]{17}$
        example: 1HGBH41JXMN109186
      description: >-
        Vehicle Identification Number (vin) to search for. Returns a single
        matching entry if found. Must be exactly 17 characters.
    state:
      name: state
      in: query
      required: false
      schema:
        type: string
      description: Filter entries by a specific US state
    timeline:
      name: timeline
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        example: 86400000
      description: >-
        Filter entries modified within this many milliseconds from now (e.g.,
        86400000 for last 24 hours)
    account_status:
      name: account_status
      in: query
      required: false
      schema:
        type: string
        enum:
          - originated
          - poa_sent
          - poa_signed
          - filing_en_route
          - filing_received
          - lien_delay
          - lien_error
          - lien_filed
          - lien_perfected
          - account_paid
          - lien_release_pending
          - lien_release_complete
      description: Filter entries by account status in the title workflow
    limit:
      name: limit
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 1000
        example: 50
      description: Maximum number of entries to return for pagination
    nextToken:
      name: nextToken
      in: query
      required: false
      schema:
        type: string
      description: Pagination token from previous response to get next page of results
    groupId:
      name: groupId
      in: query
      required: false
      schema:
        type: string
      description: Filter entries by specific group ID
  schemas:
    DynamoDBEntry:
      type: object
      properties:
        webhook_events:
          type: array
          items:
            type: string
          description: >-
            Only exists on sent webhooks to help users quickly parse specific
            fields
        website:
          type: string
          description: Organization identifier
        entryId:
          type: string
          description: Unique identifier for this database entry
        userId:
          type: string
          description: User who created this entry
        user_email:
          type: string
          description: Email of the user who created this entry
        job_status:
          $ref: '#/components/schemas/JobStatus'
          description: Processing status of the job
        createdAt:
          type: string
          description: Timestamp when this entry was created
        groupId:
          type: string
          description: User group ID for organizational access control
        s3Index:
          type: string
          description: S3 path prefix for this entry's documents
        last_modified:
          type: number
          description: Timestamp when this entry was last modified
        VIN:
          type: string
          description: Vehicle Identification Number (17 characters)
        state:
          type: string
          description: State where the vehicle is titled/registered
        Borrower:
          type: string
          description: Primary borrower name on the loan
        existingEntryId:
          type: string
          description: If this is a duplicate entry, points to the original entry ID
        bdaJobs:
          type: object
          additionalProperties:
            type: string
          description: Background document analysis job statuses
        attachment:
          type: array
          items:
            $ref: '#/components/schemas/DocumentUpload'
          description: User-uploaded documents like driver licenses, vehicle titles, etc.
        lmsData:
          type: object
          description: Loan management system data
        loanData:
          description: Legacy loan data field (can be any type or AccountData)
          oneOf:
            - $ref: '#/components/schemas/AccountData'
            - type: object
        account_data:
          $ref: '#/components/schemas/AccountData'
        account_status:
          $ref: '#/components/schemas/AccountStatus'
          description: Account status to determine workflows (scrapers, etc.)
        is_elt:
          type: boolean
          description: Whether this account uses Electronic Lien & Title system
        elt_data:
          $ref: '#/components/schemas/DynamoEltData'
        lenderLoanId:
          type: string
          description: Lender's internal loan/account number
        tracking_url_provider:
          type: string
          description: Service provider for shipping tracking (if applicable)
        form_statement_of_fact:
          type: string
          description: S3 path to the Statement of Fact form PDF
        form_lien_add:
          type: string
          description: S3 path to the Add Lien form PDF
        form_title_application:
          type: string
          description: S3 path to the Title Application form PDF
        form_duplicate_title:
          type: string
          description: S3 path to the Duplicate Title request form PDF
        form_repo_affidavit:
          type: string
          description: S3 path to the Repossession Affidavit PDF
        form_lien_release_letter:
          type: string
          description: S3 path to the Lien Release Letter PDF
        forms_poa:
          type: array
          items:
            $ref: '#/components/schemas/FormAndGeneric'
          description: Array of Power of Attorney forms
        form_payoff_authorization:
          type: string
          description: S3 path to the Payoff Authorization form PDF
        form_letter_of_guarantee:
          type: string
          description: S3 path to the Letter of Guarantee PDF
        form_final_packet:
          type: string
          description: >-
            S3 path to the Final Packet PDF (contains all generated forms
            combined)
        final_packet_indices:
          type: string
          description: >-
            Page indices showing which forms appear on which pages of the final
            packet
        form_instructions:
          type: string
          description: S3 path to the Instructions PDF
        form_ohv_declaration:
          type: string
          description: S3 path to the Off-Highway Vehicle Declaration PDF
        form_odometer_disclosure:
          type: string
          description: S3 path to the Odometer Disclosure form PDF
        form_addr_oats:
          type: string
          description: S3 path to the Address OATS form PDF
        form_vin_verification:
          type: string
          description: S3 path to the VIN Verification form PDF
        form_low_speed_affidavit:
          type: string
          description: S3 path to the Low Speed Vehicle Affidavit PDF
        forms_name_oats:
          type: array
          items:
            $ref: '#/components/schemas/FormAndGeneric'
          description: Array of Name OATS forms
        forms_non_obligor:
          type: array
          items:
            $ref: '#/components/schemas/FormAndGeneric'
          description: Array of Non-Obligor forms
        form_updates:
          type: object
          additionalProperties:
            type: string
          description: >-
            Mapping of DynamoDBEntry.form* key to s3 metadata.json file
            containing overview of form updates
        form_downloads:
          type: object
          additionalProperties:
            type: number
          description: Mapping of DynamoDBEntry.form* key to download count
        nmvtis_txn_id:
          type: string
          description: Transaction ID for NMVTIS vehicle history report
        nmvtis_pull:
          type: string
          description: >-
            S3 URL to JSON file containing the NMVTIS pull results as
            AccountData
        nmvtis_found_status:
          $ref: 02e43a9b-f3e9-475b-be16-60373b41b526
          description: >-
            NMVTIS pull status: 'found' (record exists), 'not_found' (no
            record), 'error' (CG failure, retry), 'unavailable' (source down)
        nmvtis_report_pdf:
          type: string
          description: S3 path to the NMVTIS vehicle history report PDF
        nmvtis_last_fetch:
          type: string
          description: Timestamp of last NMVTIS data fetch
        state_txn_id:
          type: string
          description: Transaction ID for state DMV data pull (Yassi, DMV123, or internal)
        state_pull:
          type: string
          description: >-
            S3 URL to JSON file containing the state DMV pull results as
            AccountData
        state_found_status:
          description: >-
            State DMV pull status: 'found' (record exists), 'not_found' (no
            record), 'error' (CG failure, retry), 'unavailable' (source down)
          type: string
          enum:
            - found
            - not_found
            - error
            - unavailable
        state_report_pdf:
          type: string
          description: S3 path to the state DMV report PDF
        state_last_fetch:
          type: string
          description: Timestamp of last state DMV data fetch
        portal_screenshot:
          type: string
          description: >-
            S3 path to a screenshot of the DMV portal showing current vehicle
            status
        portal_pull:
          type: string
          description: >-
            S3 URL to JSON file containing the DMV portal pull results as
            AccountData
        portal_found_status:
          $ref: 8e24abfd-e92e-4208-84ba-a241afc0addb
          description: >-
            DMV portal pull status: 'found' (record exists), 'not_found' (no
            record), 'error' (CG failure, retry), 'unavailable' (portal down)
        portal_last_fetch:
          type: string
          description: Timestamp of last DMV portal data fetch
        insurance_last_fetch:
          type: string
          format: date-time
          description: Timestamp of last insurance data fetch
        insurance_search_raw_data:
          type: object
          description: Raw insurance search data
        insurance_search_result:
          type: string
          description: Insurance search result status
        insurance_update_result:
          type: string
          description: Insurance update result status
        signature_requests:
          type: array
          items:
            $ref: '#/components/schemas/SignatureRequest'
          description: >-
            Electronic signature requests including signed documents,
            certificates, and collected driver licenses
        fee_estimate:
          $ref: '#/components/schemas/EstFees'
        account_discrepancies:
          type: object
          description: >-
            Discrepancies found between different data sources (document
            uploads, NMVTIS, state portals, etc.) for this account. Each
            discrepancy shows field path and conflicting values with their
            sources.
          properties:
            items:
              type: array
              description: List of field discrepancies found across data sources
              items:
                type: object
                properties:
                  field_path:
                    type: string
                    description: >-
                      JSON pointer path to the conflicting field (e.g.
                      '/vehicle/title/issuance_date')
                  observations:
                    type: array
                    description: >-
                      All different values found for this field from various
                      sources
                    items:
                      type: object
                      properties:
                        from:
                          type: object
                          description: Source of this data value
                          properties:
                            kind:
                              type: string
                              enum:
                                - document_upload
                                - state_portal_pull
                                - nmvtis_pull
                              description: Type of data source
                            ref_id:
                              type: string
                              description: >-
                                Reference ID for the source (S3 key, transaction
                                ID, etc.)
                            doc_type:
                              type: string
                              description: >-
                                Document type if source is document_upload (e.g.
                                VEHICLE_TITLE, DRIVER_LICENSE)
                        value:
                          description: The actual value found from this source
        account_matches:
          type: object
          description: >-
            Fields where multiple data sources agree on the same value,
            providing validation confidence for critical data points like title
            numbers, dates, etc.
          properties:
            items:
              type: array
              description: List of fields where all data sources agree
              items:
                type: object
                properties:
                  field_path:
                    type: string
                    description: >-
                      JSON pointer path to the matching field (e.g.
                      '/vehicle/title/issuance_date')
                  agreed_value:
                    description: The normalized value that all sources agree on
                  sources:
                    type: array
                    description: All data sources that provided this matching value
                    items:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - document_upload
                            - state_portal_pull
                            - nmvtis_pull
                          description: Type of data source
                        ref_id:
                          type: string
                          description: >-
                            Reference ID for the source (S3 key, transaction ID,
                            etc.)
                        doc_type:
                          type: string
                          description: >-
                            Document type if source is document_upload (e.g.
                            VEHICLE_TITLE, DRIVER_LICENSE)
      required:
        - website
        - entryId
        - userId
        - job_status
        - s3Index
        - createdAt
        - VIN
        - state
        - Borrower
        - account_data
        - account_status
        - lenderLoanId
        - tracking_url_provider
    Response:
      type: object
      properties:
        error:
          type: string
          description: Error message
        statusCode:
          type: number
          description: HTTP status code
    JobStatus:
      type: string
      enum:
        - pending
        - input_parsing
        - enriching
        - generating_forms
        - complete
        - error
      description: >-
        Processing status of the title entry workflow. Statuses: 'pending' -
        Initial state when job is created; 'input_parsing' - Processing uploaded
        documents and extracting data; 'enriching' - Enriching data with
        NMVTIS/DMV data or calculating fees; 'generating_forms' - Generating DMV
        forms for submission; 'complete' - Successfully completed all
        processing; 'error' - Error state for any processing failures
    DocumentUpload:
      type: object
      properties:
        display_name:
          type: string
          description: Human-readable name for this document
        s3_key:
          type: string
          description: S3 key for accessing the document
        document_type:
          type: string
          enum:
            - VEHICLE_TITLE
            - VEHICLE_TITLE_BACK
            - VEHICLE_REGISTRATION
            - DRIVER_LICENSE
            - DRIVER_LICENSE_BACK
            - PAYOFF_LETTER
            - UNKNOWN
            - MARRIAGE_DIVORCE_NAMECHANGE_CERT
            - SECURITY_AGREEMENT
            - ASSET_RECOVERY_REPO_REPORT
            - AUTO_INSURANCE_COVERAGE_CARD
          description: Type of document that was uploaded
        json_path:
          type: string
          description: Filepath to Partial<AccountData>.json file in S3
      required:
        - display_name
        - s3_key
        - document_type
    AccountData:
      type: object
      properties:
        vehicle:
          $ref: '#/components/schemas/Vehicle'
        loan:
          $ref: '#/components/schemas/DirectLoan'
        sale:
          $ref: '#/components/schemas/Sale'
        repo:
          $ref: '#/components/schemas/Repo'
        salvage:
          $ref: '#/components/schemas/Salvage'
      required:
        - vehicle
    AccountStatus:
      type: string
      enum:
        - originated
        - poa_sent
        - poa_signed
        - filing_en_route
        - filing_received
        - lien_delay
        - lien_error
        - lien_filed
        - lien_perfected
        - account_paid
        - lien_release_pending
        - lien_release_complete
      description: >-
        Current status of the account in the titling/lien workflow. Early
        stages: 'originated' - Account created; 'poa_sent' - Power of Attorney
        sent to customer; 'poa_signed' - POA signed and returned. DMV
        submission: 'filing_en_route' - Documents in transit to DMV;
        'filing_received' - DMV received documents. Lien lifecycle: 'lien_delay'
        - Lien processing delayed; 'lien_error' - Error in lien filing;
        'lien_filed' - DEPRECATED; 'lien_perfected' - Lien successfully
        perfected. End of life: 'account_paid' - Account paid off;
        'lien_release_pending' - Lien release in progress;
        'lien_release_complete' - Lien fully released
    DynamoEltData:
      type: object
      properties:
        id:
          type: string
          description: Corresponds to elt system's txn id
        ddi_email:
          type: string
        receipt_lien_perfection:
          type: string
          description: Corresponds to ELT_Perfection_Receipt
        receipt_lien_release:
          type: string
          description: Corresponds to DDI ELT Lien Release Acknowledgement
        receipt_lien_release_complete:
          type: string
          description: Corresponds to DDI ELT Lien Release Confirmation
        messages:
          type: array
          items:
            type: object
            properties:
              message:
                type: object
              resolved:
                type: boolean
      required:
        - id
    FormAndGeneric:
      type: object
      properties:
        signer_id:
          type: string
        signer_name:
          type: string
        form:
          type: string
        form_generic:
          type: string
      required:
        - signer_name
        - form_generic
    SignatureRequest:
      type: object
      properties:
        transaction_access_url:
          type: string
          description: URL for accessing the signature transaction
        redirect_url:
          type: object
          properties:
            url:
              type: string
            message:
              type: string
          required:
            - url
        requester_email:
          type: string
          description: Additional notification email for signature completion
        id:
          type: string
          description: >-
            Provider-specific ID (NTRZ::id for Notarize, DSGN::id for DocuSign,
            DMNS::id for Documenso, PNDC::id for Pandadoc)
        type:
          type: string
          enum:
            - WET_SIGN
            - WET_NOTARY
            - RON
            - E_SIGN
          description: Type of signature required
        status:
          type: string
          enum:
            - DRAFT
            - SENT
            - OPENED
            - COMPLETED
            - FAILED
            - EXPIRED
          description: Current status of the signature request
        documents_to_sign:
          type: array
          items:
            $ref: '#/components/schemas/DocumentToSign'
        created_at:
          type: string
          description: When the request was created
        updated_at:
          type: string
          description: Last status update
        signers:
          type: array
          items:
            $ref: '#/components/schemas/Person'
        sign_cert:
          type: string
          description: S3 path to signing certification
        collected_dlid:
          type: string
          description: S3 path to collected driver license ID
        full_export:
          type: string
          description: >-
            S3 path to full export consisting of sign cert, collected_dlid, and
            documents_to_sign
        physical_tracking:
          type: object
          properties:
            status:
              type: string
            tracking_url:
              type: string
            label_url:
              type: string
            shipment_id:
              type: string
            return_tracking_url:
              type: string
            return_label_url:
              type: string
            return_shipment_id:
              type: string
        instructions:
          type: string
          description: Any special instructions for the signer
        metadata:
          type: object
          additionalProperties: true
          description: Additional provider-specific metadata
    EstFees:
      type: object
      properties:
        tax:
          type: object
          properties:
            taxable_amount:
              type: number
            total:
              type: number
            items:
              type: array
              items:
                $ref: '#/components/schemas/TransactionFee'
            submission_instructions:
              $ref: '#/components/schemas/RemittanceInstructions'
          required:
            - taxable_amount
            - total
            - items
        registration:
          type: object
          properties:
            total:
              type: number
            items:
              type: array
              items:
                $ref: '#/components/schemas/TransactionFee'
          required:
            - total
            - items
        title:
          type: object
          properties:
            total:
              type: number
            items:
              type: array
              items:
                $ref: '#/components/schemas/TransactionFee'
          required:
            - total
            - items
        submission_instructions:
          $ref: '#/components/schemas/RemittanceInstructions'
      required:
        - tax
        - registration
        - title
        - submission_instructions
    Vehicle:
      type: object
      properties:
        vin:
          type: string
          description: Vehicle Identification Number (17 characters)
          pattern: ^[A-HJ-NPR-Z0-9]{17}$
          example: 1HGCM82633A123456
        year:
          oneOf:
            - type: string
            - type: number
          description: Vehicle model year
          example: 2023
        make:
          type: string
          description: Vehicle manufacturer (e.g., Honda, Ford, Toyota)
          example: Honda
        model:
          type: string
          description: Vehicle model name
          example: Accord
        body:
          type: string
        type:
          $ref: '#/components/schemas/VehicleTypeEnum'
        color:
          type: string
        color_secondary:
          type: string
        fuel_type:
          type: string
        use:
          type: string
          description: Vehicle use classification
        weight:
          oneOf:
            - type: string
            - type: number
        weight_rating:
          type: string
          description: Weight rating classification
        weight_gross:
          oneOf:
            - type: string
            - type: number
        weight_unladen:
          oneOf:
            - type: string
            - type: number
        width:
          type: string
        length:
          type: string
        bhpcc:
          type: string
        number_of_axles:
          type: string
        number_of_cylinders:
          type: string
        license_plate:
          type: string
        license_plate_type:
          type: string
        motorcycle_engine_number:
          type: string
        registration_status:
          type: string
          enum:
            - ACTIVE
            - EXPIRED
            - SUSPENDED/REVOKED
          description: Current status of the vehicle's registration
        registration_expiration_date:
          type: string
        registration_issuance_date:
          type: string
          description: Date when the current registration was issued
        class:
          type: string
        has_reg_title_holds:
          type: boolean
          description: Whether the vehicle has outstanding registration or title holds
        reg_title_holds:
          type: array
          items:
            type: object
            description: Represents a hold or stop on a vehicle's registration or title
            properties:
              hold_type:
                type: string
                enum:
                  - INSURANCE
                  - LIEN
                  - FEE
                  - SUSPENSION
                  - STOP
                  - OTHER
                description: Type of hold placed on the registration or title
              hold_code:
                type: string
                description: State-specific code for this hold type
              hold_description:
                type: string
                description: Human-readable description of the hold
              issue_date:
                type: string
                description: Date the hold was issued
              clear_date:
                type: string
                description: Date the hold was cleared (if applicable)
              source:
                type: string
                description: Source of the hold (e.g., 'DMV', 'COURT', 'LIENHOLDER')
            required:
              - hold_type
          description: Outstanding registration or title holds on the vehicle
        prev_date_of_sale:
          type: string
        prev_sale_price:
          type: string
          description: Price of the previous sale (if known)
        fee_history:
          type: array
          items:
            $ref: '#/components/schemas/TransactionFee'
        insurance:
          $ref: '#/components/schemas/Insurance'
        title:
          $ref: '#/components/schemas/VehicleTitle'
      required:
        - vin
    DirectLoan:
      type: object
      properties:
        new_lienholder:
          $ref: '#/components/schemas/Lienholder'
        borrower:
          type: array
          items:
            $ref: '#/components/schemas/Person'
        loan_id:
          type: string
        security_agreement_sign_date:
          type: string
        loan_amount:
          type: number
        payoff_amount:
          type: number
        per_diem:
          type: number
        prior_lien:
          $ref: '#/components/schemas/Lien'
        add_owner:
          type: array
          items:
            $ref: '#/components/schemas/Person'
        drop_owner:
          type: array
          items:
            $ref: '#/components/schemas/Person'
        release_title_to_address:
          $ref: '#/components/schemas/Address'
      required:
        - new_lienholder
        - borrower
    Sale:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/SaleTypeEnum'
          description: >-
            Type of vehicle sale - NEW for new vehicles from dealer, USED for
            pre-owned vehicles, GIFT for transfers without payment
        sale_type:
          $ref: '#/components/schemas/SaleTypeEnum'
          description: Alternative field name for sale type (synonym of 'type')
        sale_price:
          type: number
          description: Total sale price of the vehicle in US Dollars
        date_of_sale:
          type: string
        state:
          type: string
          description: State in which the sold vehicle is being titled and registered
        seller:
          oneOf:
            - $ref: '#/components/schemas/Person'
            - $ref: '#/components/schemas/Dealer'
        buyer:
          oneOf:
            - type: array
              items:
                $ref: '#/components/schemas/Person'
              description: Array of buyers (persons)
            - $ref: '#/components/schemas/Dealer'
              description: Dealer as buyer
          description: Vehicle buyer - can be an array of persons or a dealer
        financed:
          $ref: '#/components/schemas/Lien'
        delivery_date:
          type: string
        additional_dues:
          $ref: '#/components/schemas/AdditionalDues'
        trade_in:
          $ref: '#/components/schemas/Vehicle'
      required:
        - type
        - sale_price
        - date_of_sale
        - state
        - additional_dues
    Repo:
      type: object
      properties:
        reposession_date:
          type: string
          description: Date of vehicle repossession
        reposession_address:
          $ref: '#/components/schemas/Address'
          description: Address where the vehicle was repossessed
        reposession_agency:
          type: string
          description: Name of the repossession agency
        reposession_agency_address:
          $ref: '#/components/schemas/Address'
          description: Address of the repossession agency
      required:
        - reposession_date
        - reposession_address
        - reposession_agency
        - reposession_agency_address
    Salvage:
      type: object
      properties:
        type:
          type: string
          enum:
            - THEFT
            - DAMAGE
        insurance:
          $ref: '#/components/schemas/Insurance'
        claim_number:
          type: string
        total_loss_date:
          type: string
        payoff_date:
          type: string
    DocumentToSign:
      type: object
      properties:
        filename:
          type: string
        id:
          type: string
        signer_id:
          type: array
          items:
            type: string
        signed_copy:
          type: string
    Person:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          properties:
            type:
              type: string
              enum:
                - PERSON
                - BUSINESS
            dob:
              type: string
            contact_phone:
              type: string
            contact_email:
              type: string
            dlid:
              $ref: '#/components/schemas/DriversLicense'
            ssn:
              type: string
            addr_mailing:
              $ref: '#/components/schemas/Address'
            insurance:
              $ref: '#/components/schemas/Insurance'
            ownership_type:
              type: string
              description: >-
                Type of ownership (e.g., SOLE, JOINT, LEASED, TRUST,
                registered_owner, titled_owner)
            is_nonobligor:
              type: boolean
              description: Whether this person is a non-obligor on the loan
          required:
            - dob
    TransactionFee:
      type: object
      properties:
        feeType:
          type: string
          description: Type of fee (e.g., 'StateTax', 'TitleFee', 'RegFee')
        name:
          type: string
          description: Human-readable name of the fee
        value:
          type: number
          description: Fee amount in dollars
    RemittanceInstructions:
      type: object
      properties:
        payable_to:
          type: string
        address:
          $ref: '#/components/schemas/Address'
      required:
        - payable_to
        - address
    VehicleTypeEnum:
      type: string
      enum:
        - AUTO
        - OHV
        - ORV
        - ATV
        - MOTORCYCLE
        - LOW_SPEED
        - TRAILER
        - BOAT
      description: >-
        Type of vehicle. AUTO for passenger vehicles, OHV for off-highway
        vehicles, ORV for off-road vehicles, ATV for all-terrain vehicles,
        MOTORCYCLE, LOW_SPEED for low-speed vehicles, TRAILER, BOAT
    Insurance:
      type: object
      properties:
        provider_name:
          type: string
          description: Insurance company name (e.g., 'GEICO', 'State Farm')
        provider_naic:
          type: string
          description: National Association of Insurance Commissioners code
        policy_number:
          type: string
          description: Insurance policy number
      description: Vehicle insurance information
    VehicleTitle:
      type: object
      properties:
        number:
          type: string
          description: Vehicle title number
        issuing_state:
          type: string
          description: State that issued the title (e.g., 'FL', 'TX')
        issuing_county:
          type: string
          description: County where the title was issued
        issuance_date:
          type: string
          format: date
          description: Date the title was issued (YYYY-MM-DD)
        brand:
          $ref: '#/components/schemas/VehicleBrandEnum'
          description: >-
            Title brand indicating the vehicle's condition or history
            (DEPRECATED - use brands array instead)
        brand_code:
          type: string
          description: >-
            Numeric or alphanumeric code associated with the title brand
            (DEPRECATED)
        brands:
          type: array
          description: Array of vehicle brand details with NMVTIS and state codes
          items:
            type: object
            properties:
              brand:
                $ref: '#/components/schemas/VehicleBrandEnum'
              nmvtis_code:
                type: string
                description: NMVTIS code for this brand
              state_code:
                type: string
                description: State-specific code for this brand
            required:
              - brand
        odometer_reading:
          type: string
          description: >-
            Odometer reading at the time of title issuance, usually in miles or
            kilometers
        odometer_reading_unit:
          type: string
          enum:
            - MI
            - KM
          description: >-
            Unit of measurement for odometer reading (MI for miles, KM for
            kilometers)
        odometer_code:
          type: string
          description: Code indicating the status or accuracy of the odometer reading
        odometer_code_translation:
          $ref: '#/components/schemas/OdometerStatusEnum'
        has_liens:
          type: boolean
        active_liens:
          type: array
          items:
            $ref: '#/components/schemas/Lien'
        is_electronic:
          type: boolean
        is_and:
          type: boolean
        is_or:
          type: boolean
        is_tod:
          type: boolean
          description: >-
            Whether the title has a TOD (Transfer on Death) conjunction in the
            ownership line
        is_jtwros:
          type: boolean
          description: >-
            Whether ownership is Joint Tenants With Right of Survivorship
            (JTWROS)
        conjunction:
          type: string
          enum:
            - AND
            - OR
            - TOD
            - AND/OR
            - JTWROS
            - UNKNOWN
          description: >-
            Ownership conjunction type. Replaces individual boolean flags
            (is_and, is_or, is_tod, is_jtwros)
        is_leased:
          type: boolean
          description: Whether the vehicle is leased rather than owned
        previous_title:
          $ref: '#/components/schemas/VehicleTitle'
        owner_names_one_line:
          type: string
        number_of_owners:
          type: number
        owners:
          type: array
          items:
            $ref: '#/components/schemas/Person'
        status:
          type: string
          enum:
            - active
            - inactive_transferred_out_of_state
            - inactive_cancelled
            - inactive_sold
            - inactive_revoked
            - inactive_suspended
            - pending
            - unknown
          description: >-
            Opinionated but stable title status indicating the current state of
            the title
        status_raw_text:
          type: string
          description: >-
            Raw text from the portal/source system for the title status
            (preserved for reference)
        prev_action:
          type: string
          enum:
            - original
            - renewal
            - transfer
            - duplicate
            - replacement
            - correction
            - elt2paper
            - update
            - nonresident
            - unknown
          description: >-
            Previous action taken on this title (e.g., was it an original title,
            a transfer, a duplicate request, etc.)
        prev_action_raw_text:
          type: string
          description: >-
            Raw text from the portal/source system for the previous action
            (preserved for reference)
    Lienholder:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          properties:
            type:
              type: string
              enum:
                - LIENHOLDER
            address_vault:
              $ref: '#/components/schemas/Address'
            elt_id:
              type: string
            feid:
              type: string
            signatory:
              $ref: '#/components/schemas/Person'
    Lien:
      type: object
      properties:
        lien_date:
          type: string
          description: Date the lien was filed
        lien_amount:
          oneOf:
            - type: string
            - type: number
          description: Amount of the lien
        lien_id:
          type: string
          description: Lien identifier
        lienholder:
          $ref: '#/components/schemas/Lienholder'
      required:
        - lien_date
        - lienholder
    Address:
      type: object
      properties:
        recipient_name:
          type: string
          description: Name of the recipient at this address
        street1:
          type: string
          description: Primary street address line
        street2:
          type: string
          description: Secondary street address line (apartment, unit, etc.)
        city:
          type: string
          description: City name
        county:
          type: string
          description: County name
        state:
          type: string
          description: State abbreviation
        zip:
          type: string
          description: ZIP/postal code
      required:
        - street1
        - city
        - state
        - zip
    SaleTypeEnum:
      type: string
      enum:
        - NEW
        - USED
        - GIFT
      description: Type of vehicle sale transaction
    Dealer:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          properties:
            type:
              type: string
              enum:
                - DEALERSHIP
            dealer_id:
              type: string
            dealer_tax_id:
              type: string
          required:
            - dealer_id
    AdditionalDues:
      type: object
      properties:
        fidelity:
          type: string
          enum:
            - initial
            - apiEstimate
            - final
            - actual
        deliveryEstimate:
          type: number
        taxEstimates:
          type: array
          items:
            $ref: '#/components/schemas/TransactionFee'
        feeEstimates:
          type: array
          items:
            $ref: '#/components/schemas/TransactionFee'
      required:
        - fidelity
        - deliveryEstimate
        - taxEstimates
        - feeEstimates
    Entity:
      type: object
      properties:
        id:
          type: string
          description: >-
            Use this field to pass your internal uuid for an entity, or let
            Cardinal Gray generate one
        type:
          type: string
          enum:
            - PERSON
            - DEALERSHIP
            - BUSINESS
            - LIENHOLDER
          description: Type of entity
        name:
          type: string
          description: >-
            Full name of owner in First Middle Last format. If found in Last,
            First Middle format, convert it
        name_first:
          type: string
          description: First name component
        name_middle:
          type: string
          description: Middle name component
        name_last:
          type: string
          description: Last name component
        name_suffix:
          type: string
          description: Name suffix (e.g., Jr., Sr., III)
        oats_names:
          type: array
          items:
            type: string
            description: >-
              Each additional name for the owner in First Middle Last format; do
              not confuse separate owners for an oats name
          description: >-
            Sometimes the same document can contain multiple names for the same
            person (i.e. the mailing info says Harper Smith but the section
            under titled or registered owners says John Smith-Avery), please
            list the additional names (in this case the former) in the
            oats_names array
        addr:
          $ref: '#/components/schemas/Address'
          description: Physical/residential address of the owner
        contact_phone:
          type: string
          description: Phone number for the owner
        contact_email:
          type: string
          description: Email address for the owner
      required:
        - type
        - name
        - addr
    DriversLicense:
      type: object
      properties:
        number:
          type: string
          description: Driver's license number
        state:
          type: string
          description: Two-letter code of state that issued the license
        sex:
          type: string
          description: Gender/sex as listed on license (typically 'M' or 'F')
        expiration_date:
          type: string
          description: License expiration date, format MM/DD/YYYY preferred
        first_name:
          type: string
          description: First name as it appears on license
        middle_name:
          type: string
          description: Middle name or initial as it appears on license
        last_name:
          type: string
          description: Last name as it appears on license
        suffix:
          type: string
          description: Name suffix (e.g., Jr., Sr., III)
        addr:
          $ref: '#/components/schemas/Address'
          description: Address as it appears on the driver's license
      required:
        - number
        - state
        - sex
    VehicleBrandEnum:
      type: string
      enum:
        - SALVAGE
        - REBUILT
        - RECONSTRUCTED
        - DISMANTLED
        - JUNK
        - CRUSHED
        - EXPORT_ONLY
        - TOTALED
        - OWNER_RETAINED
        - PRIOR_OWNER_RETAINED
        - NON_REPAIRABLE_REPAIRED
        - SALVAGE_RETENTION
        - SALVAGE_OTHER
        - FLOOD
        - SALT_WATER_DAMAGE
        - FIRE_DAMAGE
        - LEMON
        - WARRANTY_RETURN
        - MANUFACTURER_BUYBACK
        - REPLICA
        - GRAY_MARKET
        - VIN_REPLACED
        - ACTUAL_MILEAGE
        - NOT_ACTUAL_MILEAGE
        - TAMPERING_VERIFIED
        - EXEMPT_ODOMETER
        - EXCEEDS_MECHANICAL_LIMITS
        - ODOMETER_ALTERED
        - ODOMETER_REPLACED
        - ODOMETER_DISCREPANCY
        - CARS_PENDING_JUNK
        - CARS_JUNK
        - MEMORANDUM_COPY
        - CALL_TITLE_DIVISION
        - PENDING_INVESTIGATION
        - UNKNOWN
        - NONE
      description: >-
        Vehicle title brand designation. Includes NMVTIS brands covering damage,
        environmental, manufacturer, odometer, and administrative categories.
    OdometerStatusEnum:
      type: string
      enum:
        - ACTUAL
        - NOT_ACTUAL
        - EXCESS
        - EXEMPT
      description: Odometer reading status
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Response'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Response'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````