> ## 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

Use this endpoint to list title entries, look up a single entry by VIN, or return aggregate counts by title state.

## Response Shapes

Default list responses use:

<ResponseField name="items" type="array">
  Title entries in the current page.
</ResponseField>

<ResponseField name="count" type="number">
  Number of entries in the current page.
</ResponseField>

<ResponseField name="nextToken" type="string">
  Pagination token for the next page, when more results are available.
</ResponseField>

<ResponseField name="hasMore" type="boolean">
  Whether another page of results is available.
</ResponseField>

When `vin` is supplied, the API returns a single title entry or `404` if no matching entry exists. Single-entry reads rewrite document paths to presigned URLs.

When `stateMap=true` is supplied, the API returns a map of state codes to counts, such as:

```json theme={null}
{
  "CA": 42,
  "TX": 17
}
```


## 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://api.cardinalzyn.com
    description: Staging
  - url: https://api.cardinalgray.com
    description: Production
security:
  - bearerAuth: []
  - basicAuth: []
  - cookieAuth: []
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'
        - $ref: '#/components/parameters/stateMap'
      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 with presigned URLs (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
                      count:
                        type: integer
                        description: Number of items in this page
                        example: 25
                      nextToken:
                        type: string
                        description: >-
                          Token for retrieving the next page of results (only
                          present if more results available)
                        nullable: true
                      hasMore:
                        type: boolean
                        description: Whether another page of results is available
                    required:
                      - items
                      - count
                      - hasMore
                  - type: object
                    description: State-count map returned when using ?stateMap=true
                    additionalProperties:
                      type: integer
                    example:
                      CA: 42
                      TX: 17
        '403':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '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
    stateMap:
      name: stateMap
      in: query
      required: false
      schema:
        type: boolean
        example: true
      description: >-
        When true, returns counts grouped by title state instead of a paginated
        entry list
  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:
          description: >-
            Timestamp when this entry was created. Stored loosely by the API and
            may be a number, string, or date-like value.
        processingStartTime:
          type: number
          description: Epoch timestamp when processing started
        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
        processingTimeMs:
          type: number
          description: Total processing duration in milliseconds
        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
        private_enrichment_pending:
          type: boolean
          description: >-
            Whether a private enrichment job has been enqueued and is still
            pending
        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)
        form_title_delivery:
          type: string
          description: S3 path to the title delivery form PDF
        form_ucc1:
          type: string
          description: S3 path to the UCC-1 form PDF
        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
        forms_status:
          $ref: '#/components/schemas/FormsStatus'
          description: Latest form generation status for this title entry
        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: '#/components/schemas/DataPullStatus'
          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:
          $ref: '#/components/schemas/DataPullStatus'
          description: >-
            State DMV pull status: 'found' (record exists), 'not_found' (no
            record), 'error' (CG failure, retry), 'unavailable' (source down)
        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: '#/components/schemas/DataPullStatus'
          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
        public_pull:
          type: string
          description: >-
            S3 URL to JSON file containing public enrichment results as
            AccountData
        public_report_pdf:
          type: string
          description: S3 path to the public enrichment report PDF
        public_found_status:
          $ref: '#/components/schemas/DataPullStatus'
          description: Public enrichment pull status
        public_txn_id:
          type: string
          description: Transaction ID for public enrichment
        public_last_fetch:
          type: string
          description: Timestamp of last public enrichment data fetch
        sftp_exported_at:
          type: number
          description: Epoch timestamp when this entry was exported over SFTP
        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
        title_collection:
          $ref: '#/components/schemas/TitleCollection'
        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'
        submission_id:
          type: string
          description: Submission workflow identifier associated with this title entry
        account_discrepancies:
          type: object
          deprecated: true
          description: >-
            Deprecated. 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
          deprecated: true
          description: >-
            Deprecated. 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)
        account_facts:
          $ref: '#/components/schemas/AccountFacts'
          description: >-
            Preview / not-GA. Crystallized yes/no judgements for title review,
            derived from the reconcile engine. Returned only for eligible
            preview organizations when job_status is complete.
        enrichment_slack_channel_id:
          type: string
          description: Slack channel ID for the enrichment thread
        enrichment_slack_message_ts:
          type: string
          description: Slack message timestamp for the enrichment thread
        enrichment_slack_thread_started_at:
          type: number
          description: Epoch timestamp when the enrichment Slack thread was started
      required:
        - website
        - entryId
        - userId
        - job_status
        - s3Index
        - createdAt
        - VIN
        - state
        - Borrower
        - attachment
        - loanData
        - account_data
        - account_status
        - lenderLoanId
        - tracking_url_provider
    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
            - LOS_INPUT
          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'
        txn_quick_reference:
          $ref: '#/components/schemas/TxnQuickReference'
          description: Quick transaction classification used to route title workflows
      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
        release_rejection_reason:
          type: string
          description: Reason provided when an ELT lien release was rejected
        release_rejection_date:
          type: string
          description: Date an ELT lien release rejection was recorded
        messages:
          type: array
          items:
            type: object
            properties:
              message:
                $ref: '#/components/schemas/IndividualMessage'
              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
    FormsStatus:
      type: string
      enum:
        - generated
        - skipped_no_data
        - skipped_no_spec
        - skipped_no_state
        - error
      description: Form generation status for a title entry
    DataPullStatus:
      type: string
      enum:
        - pending
        - found
        - not_found
        - error
        - unavailable
        - skipped
      description: >-
        Status of data pull operations. 'pending' - enrichment enqueued; 'found'
        - record exists; 'not_found' - no record; 'error' - CG failure, retry;
        'unavailable' - source down; 'skipped' - source unavailable or not
        applicable
    TitleCollection:
      type: object
      description: >-
        Physical title return guidance. Present when the organization is
        enrolled in physical title collection and the title's signing state
        requires the original paper title to be shipped back to Cardinal Gray
        (e.g. Texas). Additive and may be absent — clients must tolerate its
        absence. Created at most once per title: repeated sign actions and
        retries return the same collection_id rather than creating a new
        collection.
      properties:
        collection_id:
          type: string
          format: uuid
          description: >-
            Stable identifier for this title's collection. Does not change
            across retries or repeated sign requests.
        mode:
          type: string
          enum:
            - STUB
            - LIVE
          description: >-
            Fulfillment mode: LIVE is a real, trackable UPS shipment; STUB is
            the sandbox experience (sample non-postage label, null
            tracking_number, no qr_url). The field contract is identical in both
            modes.
        carrier:
          type: string
          enum:
            - UPS
          description: Shipping carrier for the title return.
        service:
          type: string
          description: Carrier service used, e.g. "UPS Electronic Return Label".
        tracking_number:
          type: string
          nullable: true
          description: >-
            Carrier tracking number. Null until a carrier shipment exists.
            Clients must handle null.
        label_url:
          type: string
          format: uri
          description: >-
            URL of the printable UPS return label. The guaranteed printable
            fallback when present. In sandbox (STUB) responses this renders a
            UPS sample label that is not valid postage.
        qr_url:
          type: string
          format: uri
          description: >-
            Optional URL of a UPS mobile drop-off QR barcode. Present only when
            qr_verified is true. Clients must not assume this field exists.
        qr_verified:
          type: boolean
          description: >-
            True only when qr_url is a verified UPS mobile drop-off barcode
            accepted at UPS locations.
        assets_expires_at:
          type: string
          format: date-time
          description: >-
            Expiry of the presigned label/QR asset URLs. Do not cache asset URLs
            indefinitely.
        return_address:
          type: string
          description: Postal address the original title must be returned to.
        instructions:
          type: array
          items:
            type: string
          description: Ordered, human-readable instructions to present to the borrower.
        created_at:
          type: string
          format: date-time
          description: When the collection was created.
      required:
        - collection_id
        - mode
        - carrier
        - service
        - return_address
        - instructions
        - created_at
    SignatureRequest:
      type: object
      properties:
        transaction_access_url:
          type: string
          format: uri
          readOnly: true
          description: >-
            Top-level transaction URL. Only populated after an explicit activate
            action on a DRAFT Notarize/Proof request. For the initial create
            response, look at each signer's transaction_access_url instead.
        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
            - NONE
          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
          description: >-
            Signers on this request. In the response from POST /title/{id}/sign,
            each signer object includes a transaction_access_url field with the
            per-signer signing link (Notarize/Proof provider only).
          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
    AccountFacts:
      type: object
      description: >-
        Crystallized judgements derived from the vehicle reconciliation engine.
        Always a projection of a reconciliation — never computed from raw
        account_data alone.
      properties:
        computed_at:
          type: string
          format: date-time
          description: >-
            ISO 8601 timestamp when the facts were derived (computed live on
            read).
        source:
          type: string
          enum:
            - reconcile
          description: Provenance of the judgements.
        borrower_on_title:
          allOf:
            - $ref: '#/components/schemas/AccountFact'
          description: >-
            True when every submitted obligor borrower matches a reconciled
            title owner (fuzzy name matching).
        borrower_signature_only_needed_for_title:
          allOf:
            - $ref: '#/components/schemas/AccountFact'
          description: >-
            True when the title is OR-titled or wholly owned by the submitted
            borrower(s), so the borrower's signature alone is sufficient.
        has_problematic_brands:
          allOf:
            - $ref: '#/components/schemas/AccountFact'
          description: >-
            True when the title carries a title-impairing brand (e.g. salvage,
            flood, junk). Odometer and administrative brands are excluded.
        are_there_active_liens:
          allOf:
            - $ref: '#/components/schemas/AccountFact'
          description: >-
            True when at least one unreleased lien remains on the title, or when
            has_liens is true without lien detail.
      required:
        - computed_at
        - source
        - borrower_on_title
        - borrower_signature_only_needed_for_title
        - has_problematic_brands
        - are_there_active_liens
      example:
        computed_at: '2026-06-18T18:42:11.123Z'
        source: reconcile
        borrower_on_title:
          value: true
          summary: All 1 submitted borrower(s) (Thomas A. Lopez) match a title owner.
          references:
            - field_path: /loan/borrower/0/name
              value: Thomas A. Lopez
              from:
                kind: submitted_borrower
                ref_id: loan.borrower[0]
            - field_path: /vehicle/title/owners
              value:
                - THOMAS LOPEZ
              from:
                kind: reconciled_title
        borrower_signature_only_needed_for_title:
          value: true
          summary: >-
            All title owners are the submitted borrower(s); the borrower's
            signature alone is sufficient.
          references:
            - field_path: /vehicle/title/is_or
              value: false
              from:
                kind: reconciled_title
            - field_path: /vehicle/title/owners
              value:
                - THOMAS LOPEZ
              from:
                kind: reconciled_title
        has_problematic_brands:
          value: false
          summary: No problematic title brands (e.g. salvage, flood, junk) were found.
          references:
            - field_path: /vehicle/title/brands
              value: null
              from:
                kind: reconciled_title
        are_there_active_liens:
          value: false
          summary: No active liens were found on the title.
          references: []
    Response:
      type: object
      properties:
        error:
          type: string
          description: Error message
        statusCode:
          type: number
          description: >-
            HTTP status code. Present on selected success responses, such as
            DELETE /title/{id}.
        disallowedFields:
          type: array
          items:
            type: string
          description: >-
            Fields rejected by PATCH /title/{id} when attempting to modify
            restricted top-level fields
    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
            - CANCELLED
          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
                  - BRAND
                  - 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
    TxnQuickReference:
      type: string
      enum:
        - refi
        - free_clear
        - leasebuyout
        - sale_p2p
        - sale_dealer
      description: Quick transaction classification used to route title workflows
    IndividualMessage:
      type: object
      properties:
        messageId:
          type: string
        messageType:
          type: string
        loanNumber:
          type: string
        vin:
          type: string
        documentId:
          type: string
          nullable: true
        documentType:
          type: string
          nullable: true
        messageContent:
          type: string
        eventDate:
          type: string
        responseExpected:
          type: string
        stateFee:
          type: string
      required:
        - messageId
        - messageType
        - loanNumber
        - vin
        - documentId
        - documentType
        - messageContent
        - eventDate
        - responseExpected
    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
              enum:
                - registered_owner
                - titled_owner
                - co_owner
                - lessor
                - lessee
                - debtor
                - tod_beneficiary
              description: Relationship this person has to the vehicle or transaction
            is_nonobligor:
              type: boolean
              description: Whether this person is a non-obligor on the loan
            transaction_access_url:
              type: string
              format: uri
              readOnly: true
              description: >-
                Per-signer URL for accessing the signature transaction. Present
                on signers in the response from POST /title/{id}/sign when the
                provider is Notarize/Proof. Not applicable to DocuSign-based
                requests.
          required:
            - dob
    TransactionFee:
      type: object
      properties:
        feeType:
          $ref: '#/components/schemas/FeeKind'
          description: Type of fee (e.g., 'StateTax', 'TitleFee', 'RegFee')
        name:
          type: string
          description: Human-readable name of the fee
        description:
          type: string
          description: Human-readable description or source note for the fee
        value:
          type: number
          description: Fee amount in dollars
        metadata:
          type: object
          additionalProperties: true
          description: Additional fee-specific metadata
        relevant_transactions:
          type: array
          description: Transaction types or conditions for which this fee applies
          items:
            oneOf:
              - type: string
              - type: object
                additionalProperties: true
        max:
          type: number
          description: Maximum fee amount when the fee is capped
        county:
          type: string
          description: County where this fee applies
        city:
          type: string
          description: City where this fee applies
        subtract:
          type: boolean
          description: Whether this fee should be subtracted from the total
        src:
          type: object
          description: Source URL and retrieval date for the fee
          properties:
            url:
              type: string
            date:
              type: string
        late_conditions:
          type: array
          description: Conditions that cause this late fee to apply
          items:
            type: object
            additionalProperties: true
        last_updated:
          type: string
          description: Date the fee definition was last updated
      required:
        - feeType
        - value
    RemittanceInstructions:
      type: object
      properties:
        payable_to:
          type: string
        address:
          $ref: '#/components/schemas/Address'
      required:
        - payable_to
        - address
    AccountFact:
      type: object
      description: >-
        A single yes/no judgement with a plain-language explanation and
        supporting references.
      properties:
        value:
          type: boolean
          description: >-
            The judgement. For data-dependent facts, `false` can mean either a
            genuine negative answer or that required inputs were absent (e.g. no
            submitted borrowers or no reconciled owners). Use `summary` to
            disambiguate.
        summary:
          type: string
          description: >-
            Human-readable one-liner explaining the judgement. Also
            disambiguates a no-data `false` from a genuine negative.
        references:
          type: array
          description: Supporting field paths and values used to reach the judgement.
          items:
            $ref: '#/components/schemas/AccountFactReference'
      required:
        - value
        - summary
        - references
    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)
        prev_action_date:
          type: string
          description: Date associated with the previous title action
    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'
        lien_release_signed:
          type: boolean
          description: >-
            Whether the title document shows the prior lien was released or
            acknowledged
        lien_release_date:
          type: string
          description: Date shown for the prior lien release
      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
            signatory:
              $ref: '#/components/schemas/Person'
              description: Person authorized to sign on behalf of the dealership
          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
    FeeKind:
      type: string
      enum:
        - StateTax
        - TaxRate
        - LateTaxRate
        - LateTitleFee
        - LateRegFee
        - TitleFee
        - TitleLienFee
        - RegFee
        - RegRate
        - CountyDiff
        - CityDiff
      description: Kind of fee or rate represented by a transaction fee item
    AccountFactReference:
      type: object
      description: >-
        A pointer into account_data or reconciled title data supporting an
        AccountFact judgement.
      properties:
        field_path:
          type: string
          description: >-
            JSON pointer into account_data or reconciled vehicle data (e.g.
            `/loan/borrower/0/name`, `/vehicle/title/owners`).
        value:
          description: The value observed at field_path when the fact was computed.
        from:
          type: object
          description: Optional provenance for the reference.
          properties:
            kind:
              type: string
              enum:
                - submitted_borrower
                - reconciled_title
              description: >-
                Where the referenced value came from: the original POST /title
                submission, or reconciled title data.
            ref_id:
              type: string
              description: >-
                Optional locator within the source (e.g. `loan.borrower[0]`,
                `lien_date:01/20/2023`).
      required:
        - field_path
        - value
    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'
    NotFound:
      description: Not found
      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
      description: 'API key or Clerk JWT supplied as Authorization: Bearer <token>'
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Legacy API key authentication supplied with Authorization: Basic
        <api_key>
    cookieAuth:
      type: apiKey
      in: cookie
      name: __session
      description: Clerk session cookie authentication

````