Even Financial Offer Preview API

Preview offers are matched based upon a simple set of anonymous criteria and as a result are not personalized. This is useful if you'd like to display offers without requesting personalized data. For example, you can improve a search experience by presenting example offers to the user prior to asking more detailed questions. Offers returned by these endpoints are identical to those that would be included in a rate table. But keep in mind that they are not personalized, and it's a better user experience to ultimtely present personalized offers to a user.

OpenAPI Specification

even-financial-offer-preview-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Engine by MoneyLion Analytics Offer Preview API
  version: 1.106.0
  termsOfService: https://engine.tech/about/legal#terms
  contact:
    name: API Support
    url: https://engine.tech/docs
    email: help@engine.tech
  description: "### Introduction\n\nWelcome to Engine by MoneyLion's Integration Guide for our Supply Analytics data product, which provides funnel, payout and client tag data on specific leads and lead segments to better improve your monetization, consumer  experience and efficiency of user acquisition.\n\nRefer to [Developer Center](https://engine.tech/developer-center/loans-savings-second-look-marketplace/reporting-options-for-channel-partners/channel-partner-reporting-analytics-api-1) for detailed information on how to use this API.\n\nSupply Analytics offers three different reporting endpoints optimized for streaming time series datasets out of the Engine by MoneyLion API and into your system via periodic polling, as well as an endpoint to obtain a snapshot of all information regarding a single lead. This document contains everything needed to understand and integrate with all 4 endpoints offered.\n### API Versions\nThis document describes version 3 of the Supply Analytics API. The previous version available to partners is referred to as version 1. Version 2 was an internal release.\nAll HTTP requests for this version must include header `API-Version: 2025-04-01`.\n\n### API Endpoints\n\nWe currently offer the following reporting endpoints providing real time insights into the funnel from user acquisition through conversion:\n\n1. LeadEvents: This endpoint tracks the lead funnel’s journey. With the Lead Events API, you can pull KPI related data for your funnel, measure conversions, and iterate so that you can meet your business goals.\n\n2. LeadPayouts: This endpoint tracks payout by conversion on a per-lead basis.\n\n3. LeadClientTags: This endpoint is used to check and confirm which client tags (ie. subID, clickID, or trafficsource) you have appended to each lead (unique Engine by MoneyLion generated leadUuid). It provides better customer segmentation and attribution by returning your supplied client-tags (key/value) pairs associated with a lead. It's explained with examples in depth in the \"Get  lead client tags endpoint\" section.\n\nThe above endpoints can be used to stream information into your system and will be referred to as streaming endpoints. Additionally, we have the following endpoint to access an on-demand snapshot of lead information:\n\n4. LeadsInfo: This endpoint provides a combined snapshot of information about a single lead — all of its events, payouts and client tags in a single request.\n\n### Basic Request to Supply Analytics API\n\nEvery request to the Supply Analytics API streaming endpoints will return a JSON object with the following properties:\n\n- `data` is the array of objects that should be analyzed / loaded into your\n  database.\n\n- `nextUrl` is the URL that should be persisted and used for the next\n  request. It will include a `paginationToken`.\n\n- `shouldContinuePolling` is a boolean which signals if calling `nextUrl`\n  will have published data available.\n\n- `paginationToken` is an opaque cursor that identifies the end of the\n  current page and is used for the next request. It is already included in\n  `nextUrl` and also provided separately for convenience.\n\n\nEvents from financial institutions or other external systems may not be shared with Engine by MoneyLion for hours or days after they occur; using `paginationToken` ensures that backfilled records are not missed.\n\nA response contains all available data subject to the response size limit and any applied filters (such as `untilTimestamp`). Requesting a URL with a `sinceTimestamp` that is less than five minutes old will return an error, as it can take a few minutes to prepare the response. We suggest polling hourly as a starting point, but as long as you follow shouldContinuePolling, you can poll at any interval (>5 minutes). For convenience, we provide a `shouldContinuePolling` flag to indicate whether you should continue to poll the Supply Analytics endpoint. If `true`, continue with the `nextUrl`. If not, no further data is currently available.\n``` curl -X GET \\\n  'https://api.engine.tech/supplyAnalytics/leadEvents?sinceTimestamp=2019-08-24T14%3A15%3A22Z' \\\n  -H 'Accept: application/json' \\\n  -H 'Authorization: Bearer {access-token}' \\\n  -H 'API-Version: 2025-04-01'\n```\nSince `paginationToken` is initially not known, the initial request may specify the `sinceTimestamp` parameter. In the absence of both of them, the endpoint will start with the oldest record in the system. The `nextUrl` from response will only include `paginationToken`.\n### Developer's Note About Time Zones\nTimestamps without an explicit timezone (timezones missing a suffix of `Z`, for example) are interpreted as UTC. However, we recommend passing an explicit timezone offset of Z in the timestamp query string parameter. All timestamps in responses, whether in the event as a field, or in the `nextUrl`, are UTC.\n### Developer's Note About Flexible JSON Objects\nEngine by MoneyLion's goal is to enrich the data provided by the Supply Analytics endpoint over time to improve your insight and analytical abilities. Therefore, it is recommended that any integration or initial setup be created with the future possibility of additional data fields in mind. These will take the form of additional JSON keys. We'd recommend that your integration remain compatible if there are additional JSON key-values present. This will allow new rollouts and improvements to the supply analytics endpoint to happen as smoothly as possible.\n### Backfilling\nWhen backfilling, the `sinceTimestamp` of your initial request URL should be to your starting point. You should request each subsequent URL in succession until you're caught up. You can use `untilTimestamp` to define the end time of backfill windows.\n\n### Resources\nPartners can contact their assigned Engine by MoneyLion Partner Manager or partnersupport@engine.tech for help.\n"
servers:
- url: https://api.engine.tech
tags:
- name: Offer Preview
  description: 'Preview offers are matched based upon a simple set of anonymous criteria and as a result are not personalized. This is useful if you''d like to display offers without requesting personalized data. For example, you can improve a search experience by presenting example offers to the user prior to asking more detailed questions.


    Offers returned by these endpoints are identical to those that would be included in a rate table. But keep in mind that they are not personalized, and it''s a better user experience to ultimtely present personalized offers to a user.

    '
paths:
  /offerPreview/loanOffers:
    get:
      x-lint-skip:
      - index-endpoint-has-limit
      x-implemented-by:
        service: originator
        path: /preview/loanOffers
      summary: Get preview loan offers
      description: Get a list of non-personalized loan offers that match the specified critieria.
      operationId: getPreviewLoanOffers
      security:
      - publishableBearerToken: []
      tags:
      - Offer Preview
      parameters:
      - name: loanAmount
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: providedCreditRating
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/ProvidedCreditRating'
      - name: loanPurpose
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/LoanPurpose'
      - name: zipCode
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LoanOffer'
              examples:
                previewLoanOffers:
                  $ref: '#/components/examples/PreviewLoanOffers'
        '401':
          $ref: '#/components/responses/UnauthorizedRequest'
  /offerPreview/creditCardOffers:
    get:
      x-lint-skip:
      - index-endpoint-has-limit
      x-implemented-by:
        service: originator
        path: /preview/creditCardOffers
      summary: Get preview credit card offers
      description: Get a list of non-personalized credit card offers that match the specified critieria.
      operationId: getPreviewCreditCardOffers
      security:
      - publishableBearerToken: []
      tags:
      - Offer Preview
      parameters:
      - name: providedCreditRating
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/ProvidedCreditRating'
      - name: zipCode
        in: query
        required: false
        schema:
          type: string
      - name: cardPurposes
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/CardPurpose'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CreditCardOffer'
              examples:
                previewCreditCardOffers:
                  $ref: '#/components/examples/PreviewCreditCardOffers'
        '401':
          $ref: '#/components/responses/UnauthorizedRequest'
  /offerPreview/savingsOffers:
    get:
      x-lint-skip:
      - index-endpoint-has-limit
      x-implemented-by:
        service: originator
        path: /preview/savingsOffers
      summary: Get preview savings offers
      description: Get a list of non-personalized savings offers that match the specified critieria.
      operationId: getPreviewSavingsOffers
      security:
      - publishableBearerToken: []
      tags:
      - Offer Preview
      parameters:
      - name: maxDepositAmount
        in: query
        schema:
          type: integer
          format: int64
      - name: minDepositAmount
        in: query
        schema:
          type: integer
          format: int64
      - name: zipCode
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SavingsOffer'
              examples:
                previewSavingsOffers:
                  $ref: '#/components/examples/PreviewSavingsOffers'
        '401':
          $ref: '#/components/responses/UnauthorizedRequest'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  examples:
    PreviewSavingsOffers:
      summary: Preview savings offers
      value:
      - uuid: 9284470f-e430-5473-aeeb-f61c91adabc9
        productType: savings
        productSubType: savings_account
        partner:
          uuid: 91d08be0-2a8c-4d28-b399-7e1b38e2522e
          name: Beta Inc.
          description: Voluptas quas aspernatur aut nihil rerum. Voluptatibus laboriosam amet porro veniam ut.
          disclaimer: Est delectus et rem consequatur magni. Molestiae asperiores sit debitis et id corporis.
          supportsPersonalizedOffers: false
          supportsPreSelect: false
          shouldDisplayPreSelect: true
          imageUrl: https://aff-tag.evenfinancial.com/images/beta/Beta_120x80.png
        url: https://offers.evenfinancial.com/ref/0803947c-08a5-59eb-ae58-8468c62bb5a8
        recommendationScore: 170
        disclaimer: Accounts offered by Axos Bank, Member FDIC
        details:
          name: Beta Savings
          description: Pariatur et repellat quia aliquid. Sint qui aut harum qui aut.
          details: Praesentium asperiores est quisquam ad qui est. Sint culpa harum id totam. Ex fugit magni quis tempora sit.
          rate: 0.4
          annualPercentYield: 0.4
          compoundingMethod: continuous
          minimumDeposit: 0
          minimumDepositWithFees: 0
          monthlyFee: 0
          checkWriting: false
          effectiveAsOf: '2021-01-01T12:00:00Z'
    PreviewCreditCardOffers:
      summary: Preview credit card offers
      value:
      - uuid: 4ac18f1c-2e85-5e74-8df7-54ca2f47ca27
        productType: credit_card
        productSubType: credit_card
        partner:
          uuid: 005b235e-9388-5e96-9d43-d1b6fd587652
          name: Alpha, Inc.
          description: Consequatur est dolorum fugit. Dicta dolorem autem perspiciatis et.
          disclaimer: Et deserunt ut temporibus quia. Sed suscipit ad nostrum dolorem qui a.
          supportsPersonalizedOffers: false
          supportsPreSelect: true
          shouldDisplayPreSelect: false
          imageUrl: https://aff-tag.evenfinancial.com/images/alpha/Alpha_120x80.png
          subtextOverride: Alpha
        url: https://offers.evenfinancial.com/partner/ref/00adef6c-9fea-5910-99de-5cfb52979243/4ac18f1c-2e85-5e74-8df7-54ca2f47ca27
        recommendationScore: 0.7
        details:
          cardName: Alpha Credit Card
          cardImageUrl: https://assets.evenfinancial.com/requested/889123/Alpha%20Credit%20Card%20Art.png
          cardPurposes:
          - improve_credit
          - new_to_credit
          ratesUrl: https://www.example.com/cardmember_agreement
          maxPurchaseApr: 25.99
          minPurchaseApr: 25.99
          purchaseAprText: APR varies based on creditworthiness
          purchaseAprDisclaimer: APR may change
          maxPurchaseIntroApr: 0
          minPurchaseIntroApr: 0
          purchaseIntroAprTerm: 12
          purchaseIntroAprTermUnit: month
          purchaseIntroAprText: 0% intro APR for 12 months
          maxCashAdvanceApr: 26.99
          minCashAdvanceApr: 26.99
          cashAdvanceAprText: Cash advance APR is fixed
          maxBalanceTransferApr: 25.99
          minBalanceTransferApr: 25.99
          balanceTransferAprText: Balance transfer APR is fixed
          maxBalanceTransferIntroApr: 0
          minBalanceTransferIntroApr: 0
          balanceTransferIntroAprTerm: 12
          balanceTransferIntroAprTermUnit: month
          balanceTransferIntroAprText: 0% intro APR on balance transfers for 12 months
          balanceTransferFee: 5
          balanceTransferFeeDisclaimer: Balance transfer fee applies
          maxAnnualFee: 39
          minAnnualFee: 39
          annualFeeDisclaimer: Annual fee may vary
          annualIntroFee: 0
          annualIntroFeeTerm: 1
          introOfferAmount: 200
          introOfferText: Earn $200 bonus after spending $500
          introOfferType: cash_back
          details:
          - No deposit required
          - No penalty APR
          cardType: visa
          aprType: variable
          recommendedCreditRatings:
          - limited
          - poor
          - fair
          - good
          recommendedCreditRatingsDisclaimer: Credit ratings are for guidance only
          preQualified: false
          preApproved: false
          preSelected: false
          rewardsDescription: Earn unlimited 1.5% cash back on all purchases
          rewardsDisclaimer: Rewards may change
          minDepositAmount: 200
          minDepositDisclaimer: Minimum deposit required for secured card
          badges:
          - No Annual Fee
          - Cash Back Rewards
    PreviewLoanOffers:
      summary: Preview loan offers
      value:
      - uuid: 43292949-76eb-413e-9b0e-a332ae6e8ee3
        productType: loan
        productSubType: personal_loan
        originator:
          key: alpha
          name: Alpha, Inc.
          description: Consequatur est dolorum fugit. Dicta dolorem autem perspiciatis et.
          images:
          - sizeKey: 120x40
            url: https://aff-tag.evenfinancial.com/images/alpha/Alpha_120x80.png
          disclaimer: Et deserunt ut temporibus quia. Sed suscipit ad nostrum dolorem qui a.
          companyUuid: 1088017a-2ed9-5328-b03d-8351a6e58f7e
          financialInstitutionUuid: 32bd2f7c-79fd-5c54-bcb5-3a46454a465c
        originatorId: null
        termLength: 36
        termUnit: month
        maxAmount: 40000
        minAmount: 2000
        maxApr: 17.99
        minApr: 17.99
        meanApr: 17.99
        feeRate: null
        maxFeeRate: null
        minFeeRate: null
        feeFixed: null
        maxFeeFixed: null
        minFeeFixed: null
        allowPrepayment: true
        prepaymentFee: 0
        monthlyPayment: 361.48
        maxMonthlyPayment: 361.48
        minMonthlyPayment: 361.48
        meanMonthlyPayment: 361.48
        maxTotalPayment: 13014
        minTotalPayment: 13014
        meanTotalPayment: 13014
        terms: null
        url: https://offers.evenfinancial.com/partner/ref/ba4b1f43-fe02-5b52-93f5-6644e5c721c0/43292949-76eb-413e-9b0e-a332ae6e8ee3
        preQualified: false
        preApproved: false
        secured: false
        sponsored: false
        recommendationScore: 5
        payout: null
        aprType: fixed
        coApplicant: false
        aprDescription: null
        displayTermUnit: null
        productSubTypeDisclaimer: null
        monthlyPaymentDescription: null
        termDescription: null
  schemas:
    CardPurpose:
      type: string
      description: Purposes or categories related to a credit card
      enum:
      - balance_transfer
      - cash_back
      - earning_rewards
      - improve_credit
      - low_interest
      - new_to_credit
      - student
      - travel_incentives
    ProductSubType:
      type: string
      description: A type of financial product
      enum:
      - credit_card
      - secured_card
      - student_card
      - personal_loan
      - secured_loan
      - student_loan_refinance
      - co_applicant_loan
      - line_of_credit
      - automobile_refinance
      - home_equity_line_of_credit
      - purchase
      - refinance
      - savings_account
      - money_market_account
      - certificate_of_deposit
      - individual_retirement_account
      - cash_management_account
      - high_interest_checking
      - checking
      - accidental_death_benefits
      - term_life
      - term_life_instant
      - whole_life
      - bill_reduction
      - debt_relief
      - installment_loans
      - credit_builder
      - cash_advance
      - credit_repair
      - education_offers
      - employment_opportunity
      - financial_wellness
      - direct_affiliate
      - overdraft_protection
      - revenue_based_financing
      - installment_loan_more_offers
      - credit_card_more_offers
      - credit_repair_more_offers
      - student_loan
      - health
      - auto_and_vehicle
      - games
      - home
      - rewards
      - life_insurance
      - auto_insurance
      - specialty_vehicle_insurance
      - home_owners_insurance
      - renters_insurance
      - uncategorized
      - buy_now_pay_later
      - home_equity_agreements
      - cash_advance_moneylion
      - unknown
    IntroOfferType:
      type: string
      enum:
      - miles
      - points
      - statement_credit
    AprType:
      type: string
      enum:
      - variable
      - regular
      - fixed
    Originator:
      type: object
      required:
      - key
      - name
      - images
      properties:
        key:
          type: string
        name:
          type: string
        description:
          type: string
        images:
          type: array
          items:
            $ref: '#/components/schemas/OriginatorImage'
        disclaimer:
          type: string
        companyUuid:
          type: string
          format: uuid
        financialInstitutionUuid:
          type: string
          format: uuid
          description: 'A unique identifier for the associated financial institution. Only present for event types associated with financial institutions.

            '
    CreditCardOfferDetails:
      type: object
      required:
      - cardImageUrl
      - cardType
      - preQualified
      - preApproved
      - preSelected
      properties:
        cardName:
          type: string
          description: Display name of the card
        cardImageUrl:
          type: string
          format: url
          description: URL of the card image
        cardPurposes:
          type: array
          items:
            $ref: '#/components/schemas/CardPurpose'
        ratesUrl:
          type: string
          format: url
          description: External link to card rates, terms, and conditions
        maxPurchaseApr:
          type: number
          format: double
          description: Maximum purchase APR in percentage
        minPurchaseApr:
          type: number
          format: double
          description: Minimum purchase APR in percentage
        purchaseAprText:
          type: string
          description: Description of the purchase APR
        purchaseAprDisclaimer:
          type: string
          description: Disclaimer for the purchase APR
        maxPurchaseIntroApr:
          type: number
          format: double
          description: Maximum introductory purchase APR in percentage
        minPurchaseIntroApr:
          type: number
          format: double
          description: Minimum introductory purchase APR in percentage
        purchaseIntroAprTerm:
          type: integer
          format: int32
          description: Introductory purchase APR term length
        purchaseIntroAprTermUnit:
          $ref: '#/components/schemas/TermUnit'
        purchaseIntroAprText:
          type: string
          description: Description of the introductory purchase APR
        regularIntroAprCombinedText:
          type: string
          description: Description of introductory and regular APR combined
        maxCashAdvanceApr:
          type: number
          format: double
          description: Maximum cash advance APR in percentage
        minCashAdvanceApr:
          type: number
          format: double
          description: Minimum cash advance APR in percentage
        cashAdvanceAprText:
          type: string
          description: Description of the cash advance APR
        maxCashAdvanceIntroApr:
          type: number
          format: double
          description: Maximum introductory cash advance APR in percentage
        minCashAdvanceIntroApr:
          type: number
          format: double
          description: Minimum introductory cash advance APR in percentage
        cashAdvanceIntroAprTerm:
          type: integer
          format: int32
          description: Introductory cash advance APR term length
        cashAdvanceIntroAprTermUnit:
          $ref: '#/components/schemas/TermUnit'
        cashAdvanceIntroAprText:
          type: string
          description: Description of the introductory cash advance APR
        maxBalanceTransferApr:
          type: number
          format: double
          description: Maximum balance transfer APR in percentage
        minBalanceTransferApr:
          type: number
          format: double
          description: Minimum balance transfer APR in percentage
        balanceTransferAprText:
          type: string
          description: Description of the balance transfer APR
        maxBalanceTransferIntroApr:
          type: number
          format: double
          description: Maximum introductory balance transfer APR in percentage
        minBalanceTransferIntroApr:
          type: number
          format: double
          description: Minimum introductory balance transfer APR in percentage
        balanceTransferIntroAprTerm:
          type: integer
          format: int32
          description: Introductory balance transfer APR term length
        balanceTransferIntroAprTermUnit:
          $ref: '#/components/schemas/TermUnit'
        balanceTransferIntroAprText:
          type: string
          description: Description of the introductory balance transfer APR
        balanceTransferFee:
          type: number
          format: double
          description: Balance transfer fee as a percentage
        balanceTransferFeeDisclaimer:
          type: string
          description: Disclaimer related to the balance transfer fee
        maxAnnualFee:
          type: number
          format: double
          description: Maximum annual fee in dollars
        minAnnualFee:
          type: number
          format: double
          description: Minimum annual fee in dollars
        annualFeeDisclaimer:
          type: string
          description: Disclaimer for the annual fee
        annualFeeText:
          type: string
          description: Description for the annual fee
        annualIntroFee:
          type: number
          format: double
          description: Introductory annual fee in dollars
        annualIntroFeeTerm:
          type: integer
          format: int32
          description: Number of years the introductory annual fee is in effect
        introOfferAmount:
          type: number
          format: double
          description: Amount of the introductory offer
        introOfferText:
          type: string
          description: Description of the introductory offer
        introOfferDisclaimer:
          type: string
          description: Disclaimer for the introductory offer
        introOfferType:
          $ref: '#/components/schemas/IntroOfferType'
        introOfferTitle:
          type: string
          description: Title for the introductory offer
        details:
          type: array
          items:
            type: string
          description: List of card features which must be prominently displayed with the offer
        additionalDetails:
          type: array
          items:
            type: string
          description: List of card features which must be displayed with the offer
        previewDetails:
          type: array
          items:
            $ref: '#/components/schemas/PreviewDetail'
          description: Shorter list of descriptions and disclaimers suitable for display in a preview context
        cardType:
          $ref: '#/components/schemas/CardType'
        minimumCreditLine:
          type: number
          format: double
          description: Minimum credit line in dollars
        minimumPenaltyApr:
          type: number
          format: double
          description: Minimum penalty APR in percentage
        maximumPenaltyApr:
          type: number
          format: double
          description: Maximum penalty APR in percentage
        aprType:
          $ref: '#/components/schemas/AprType'
        cashAdvanceFee:
          type: number
          format: double
          description: Cash advance fee in dollars
        lateFee:
          type: number
          format: double
          description: Late fee in dollars
        foreignExchangeFee:
          type: number
          format: double
          description: Foreign exchange fee in dollars
        accountOpeningFee:
          type: number
          format: double
          description: Account opening fee in dollars
        returnPaymentFee:
          type: number
          format: double
          description: Return payment fee in dollars
        monthlyServiceFee:
          type: number
          format: double
          description: Monthly service fee in dollars
        recommendedCreditRatings:
          type: array
          items:
            $ref: '#/components/schemas/ProvidedCreditRating'
        recommendedCreditRatingsDisclaimer:
          type: string
          description: Disclaimer about the recommended credit rating
        recommendedCreditRatingsText:
          type: string
          description: Description about the recommended credit rating
        preQualified:
          type: boolean
        preApproved:
          type: boolean
        preSelected:
          type: boolean
          description: Indicates that Engine by MoneyLion has determined that the user has an increased likelihood of being approved for this card.
        foreignTransactionFee:
          type: number
          format: double
          description: Percentage represented in decimal format added to all foreign transactions
        earningProgram:
          type: object
          description: Credit card earning program details (arbitrary JSON object)
        cardBenefits:
          type: array
          items:
            $ref: '#/components/schemas/CardBenefit'
        rewardsDescription:
          type: string
          description: Description of rewards associated with the card
        rewardsDisclaimer:
          type: string
          description: Disclaimer for rewards
        rewardsTitle:
          type: string
          description: Title for rewards
        minDepositAmount:
          type: number
          format: double
          description: Minimum deposit required in dollars
        minDepositDisclaimer:
          type: string
          description: Disclaimer about the minimum deposit
        isITA:
          type: boolean
          description: Indicates if the card is an Invitation to Apply (ITA) offer
        badges:
          type: array
          items:
            type: string
    ProductType:
      type: string
      enum:
      - credit_card
      - generic
      - auto_insurance
      - insurance
      - life_insurance
      - loan
      - mortgage
      - savings
      - other
      - unknown
    Offer:
      type: object
      required:
      - uuid
      - partner
      - productType
      - productSubType
      - url
      properties:
        uuid:
          type: string
          format: uuid
        partner:
          $ref: '#/components/schemas/Partner'
        marketplace:
          $ref: '#/components/schemas/Partner'
        productType:
          $ref: '#/components/schemas/ProductType'
        productSubType:
          $ref: '#/components/schemas/ProductSubType'
        url:
          type: string
          format: url
        recommendationScore:
          type: number
        disclaimer:
          type: string
        productSubTypeDisclaimer:
          type: string
        expiresAt:
          type: string
          format: date-time
        rank:
          type: integer
    LoanPurpose:
      type: string
      enum:
      - auto
      - auto_purchase
      - auto_refinance
      - baby
      - boat
      - business
      - car_repair
      - cosmetic
      - credit_card_refi
      - debt_consolidation
      - emergency
      - engagement
      - green
      - home_improvement
      - home_purchase
      - home_refi
      - household_expenses
      - large_purchases
      - life_event
      - medical_dental
      - motorcycle
      - moving_relocation
      - other
      - rv
      - special_occasion
      - student_loan
      - student_loan_refi
      - taxes
      - vacation
      - wedding
    Partner:
      type: object
      required:
      - uuid
      - name
      - description
      - disclaimer
      - supportsPreSelect
      - shouldDisplayPreSelect
      - supportsPersonalizedOffers
      - imageUrl
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
        description:
          type: string
        disclaimer:
          type: string
        supportsPreSelect:
          type: boolean
        shouldDisplayPreSelect:
          type: boolean
        supportsPersonalizedOffers:
          type: boolean
          description: Whether the partner supports returning pre-qualified or pre-approved offers
        imageUrl:
          type: string
          format: url
        subtextOverride:
          type: string
        headquarters:
          type: string
        assets:
          type: string
        brandName:
          type: string
          description: The external-facing name that will appear on offer cards, marketing materials, and other end user touchpoints
        brandUuid:
          type: string
          format: uuid
    IncentiveUnit:
      type: string
      description: 'Unit of measure for incentives.

        '
      enum:
      - usd
      - other
    PreviewDetail:
      type: object
      properties:
        description:
          type: string
        disclaimer:
          type: string
      required:
      - description
    ApiErrorDetails:
      type: object
      additionalProperties:
        type: string
    IncentiveType:
      type: string
      description: 'Unit of measure for incentives.

        '
      enum:
      - cash_back
      - other
    CardType:
      type: string
      enum:
      - visa
      - mastercard
      - american_express
      - discover
   

# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/even-financial/refs/heads/main/openapi/even-financial-offer-preview-api-openapi.yml