openapi: 3.0.3
info:
title: Engine by MoneyLion Analytics Prefill 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: Prefill
paths:
/originator/prefills/{prefillToken}:
get:
parameters:
- name: prefillToken
in: path
required: true
description: The UUID of the prefill token
schema:
type: string
format: uuid
x-implemented-by:
service: originator
path: /prefills/{prefillToken}
summary: Get prefill data
description: First-party Prefill data.
operationId: getPrefill
security:
- publishableBearerToken: []
tags:
- Prefill
responses:
'200':
description: The original Prefill data
content:
application/json:
schema:
$ref: '#/components/schemas/LeadCreateData'
'401':
$ref: '#/components/responses/UnauthorizedRequest'
'404':
description: Prefill token not found
/originator/prefills:
post:
x-implemented-by:
service: originator
path: /prefills
summary: Prefill data
description: Second-party Prefill data.
operationId: prefill
security:
- publishableBearerToken: []
tags:
- Prefill
requestBody:
description: A prefill object
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LeadCreateData'
responses:
'200':
description: The generated `PrefillResponse`
content:
application/json:
schema:
$ref: '#/components/schemas/PrefillResponse'
examples:
pendingLoanRateTable:
$ref: '#/components/examples/PrefillResponse'
'400':
description: Bad Request
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ApiError'
'401':
$ref: '#/components/responses/UnauthorizedRequest'
components:
schemas:
LeadCreateData:
type: object
properties:
productTypes:
type: array
description: Product types in which the `Lead` is interested
items:
$ref: '#/components/schemas/ProductType'
uuid:
type: string
format: uuid
description: Primary UUID for a `Lead`
sessionUuid:
type: string
format: uuid
description: UUID used to link leads across verticals, unique per user per supply sub-account
deviceId:
type: string
format: uuid
description: Unique identifier for the lead's device.
loanInformation:
$ref: '#/components/schemas/LeadLoanInformationJson'
personalInformation:
$ref: '#/components/schemas/LeadPersonalInformation'
personalReferenceInformation:
$ref: '#/components/schemas/LeadPersonalReferenceInformationJson'
mortgageInformation:
$ref: '#/components/schemas/LeadMortgageInformationJson'
creditCardInformation:
$ref: '#/components/schemas/LeadCreditCardInformationJson'
savingsInformation:
$ref: '#/components/schemas/LeadSavingsInformationJson'
creditInformation:
$ref: '#/components/schemas/LeadCreditInformationJson'
financialInformation:
$ref: '#/components/schemas/LeadFinancialInformation'
employmentInformation:
$ref: '#/components/schemas/LeadEmploymentInformationJson'
legalInformation:
$ref: '#/components/schemas/LeadLegalInformationJson'
educationInformation:
$ref: '#/components/schemas/LeadEducationInformationJson'
coApplicantInformation:
$ref: '#/components/schemas/LeadCoApplicantInformationJson'
healthInformation:
$ref: '#/components/schemas/LeadHealthInformationJson'
autoInsuranceInformation:
$ref: '#/components/schemas/LeadAutoInsuranceInformationJson'
refinanceLoans:
type: array
items:
$ref: '#/components/schemas/LeadRefinanceLoanInformationJson'
description: One or more loans that the lead wishes to refinance or consolidate
identificationInformation:
$ref: '#/components/schemas/LeadIdentificationInformationJson'
clientTags:
$ref: '#/components/schemas/LeadClientTagsJson'
sessionInformation:
$ref: '#/components/schemas/LeadSessionInformationJson'
formCompleted:
type: boolean
description: Whether the `Lead` has completed an application form
deprecated: true
referralCompanyUuid:
type: string
format: uuid
description: UUID of company from which the `Lead` was referred
deprecated: true
trackingUuid:
type: string
format: uuid
description: UUID for internal Engine by MoneyLion tracking purposes. This field should never be set by 3rd party API consumers
deprecated: true
partnerUserId:
type: string
format: string
description: A tracking identifier that references a unique user for an API partner
example:
productTypes:
- loan
- savings
personalInformation:
firstName: John
lastName: Doe
email: john@example.com
city: New York
state: NY
workPhone: '2125551234'
primaryPhone: '2125556789'
address1: 45 West 21st Street
address2: 5th Floor
zipcode: '10010'
monthsAtAddress: 5
driversLicenseNumber: '111222333'
driversLicenseState: NY
ipAddress: 8.8.8.8
activeMilitary: false
militaryVeteran: true
dateOfBirth: '1993-10-09'
ssn: 111-22-3333
loanInformation:
purpose: debt_consolidation
loanAmount: 10000
mortgageInformation:
propertyType: condo
propertyStatus: own_with_mortgage
propertyValue: 200000
mortgageBalance: 10000
lenderName: Bank OF NY
hasFHALoan: true
currentWithLoan: true
creditCardInformation:
allowAnnualFee: true
cardPurposes:
- travel_incentives
savingsInformation:
minDepositAmount: 1000
creditInformation:
providedCreditRating: excellent
providedNumericCreditScore: 750
financialInformation:
creditCardDebt: 5000
employmentStatus: employed
employmentPayFrequency: weekly
annualIncome: 120000
monthlyNetIncome: 10000
bankName: Santander
bankRoutingNumber: '231372691'
bankAccountType: savings
monthsAtBank: 10
bankAccountNumber: '1234567890'
employmentInformation:
employerName: Engine by MoneyLion
employerAddress: 45 W 21st St
employerCity: New York
employerState: NY
employerZip: '10010'
jobTitle: Software Engineer
monthsEmployed: 14
directDeposit: true
payDate1: '2004-10-06'
payDate2: '2004-11-06'
educationInformation:
educationLevel: masters
graduateDegreeType: master_of_science
universityAttended: Johns Hopkins University
coApplicantInformation:
firstName: Jane
lastName: Doe
dateOfBirth: '1984-03-06'
annualIncome: 100000
streetAddress1: 45 West 21st Street
streetAddress2: 5th Floor
city: New York
state: NY
zipcode: '10010'
healthInformation:
gender: male
heightInInches: 72
weightInPounds: 195
tobaccoSmoker: false
autoInsuranceInformation:
numberOfVehicles: 1
hasAutoInsurance: true
legalInformation:
consentsToFcra: true
consentsToTcpa: true
fcraLanguage: By checking this box/clicking 'agree' I hereby consent to the 'E-Sign Agreement', the 'Credit Authorization Agreement', the Terms of Service and Privacy Policy, and I am providing written consent under the Fair Credit Reporting Act (FCRA) for [Engine by MoneyLion and/or Insert Company Name], its partners and financial institutions to obtain consumer report information from my credit profile. I request that my information be provided to their partners, lenders, and financial services partners to provide me with financial recommendations, which may also include debt relief, credit repair, credit monitoring or other related services
tcpaLanguage: I agree to be contacted by [Engine by MoneyLion and/or Insert Company Name] its partners and their affiliated companies and financial institutions via email, postal mail service and/or at the telephone number(s) I have provided above to explore various financial products and services I inquired about, including contact through automatic dialing systems, artificial or pre-recorded voice messaging, or text message. Consent is not required as a condition to utilize the service, and you may choose to be contacted by an individual customer care representative(s) by calling XXXXX or emailing XXXX
clientTags:
hello:
- world
- there
something:
- else
LeadPersonalReferenceInformationJson:
type: object
properties:
firstName:
type: string
description: The first name of the personal reference supplied by the lead
lastName:
type: string
description: The last name of the personal reference supplied by the lead
primaryPhone:
type: string
pattern: ^1?\d{10}$
description: The phone number of the personal reference supplied by the lead
relationType:
$ref: '#/components/schemas/PersonalReferenceRelationType'
description: The relation of the personal reference supplied by the lead
PropertyType:
type: string
enum:
- rent
- condo
- multi_unit
- single_family
- townhouse
LeadFinancialInformation:
type: object
properties:
employmentStatus:
$ref: '#/components/schemas/EmploymentStatus'
employmentPayFrequency:
$ref: '#/components/schemas/EmploymentPayFrequency'
annualIncome:
type: integer
format: int32
monthlyNetIncome:
type: integer
format: int32
bankName:
type: string
bankRoutingNumber:
type: string
bankAccountType:
$ref: '#/components/schemas/BankAccountType'
creditCardDebt:
type: integer
format: int32
monthsAtBank:
type: integer
format: int32
bankAccountNumber:
type: string
monthlyDebt:
type: integer
format: int32
totalAssets:
type: integer
format: int32
monthlyHousingPayment:
type: integer
format: int32
availableAssets:
type: integer
format: int32
additionalIncome:
type: integer
format: int32
description: The amount of additional income the lead recieves
additionalIncomeFrequency:
$ref: '#/components/schemas/EmploymentPayFrequency'
description: The frequency the lead recieves additional income
hasDirectDeposit:
type: boolean
description: Do you have a direct deposit?
totalUnsecuredDebt:
type: integer
format: int32
description: Approximate total unsecured debt in dollars
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
PersonalReferenceRelationType:
type: string
enum:
- parent
- employer
- spouse
- guardian
- sibling
- relative
- friend
- other
LeadSavingsInformationJson:
type: object
properties:
minDepositAmount:
type: integer
format: int32
description: The minimum amount a `Lead` is interested in depositing when opening a new savings account
maxDepositAmount:
type: integer
format: int32
description: The maximum amount a `Lead` is interested in depositing when opening a new savings account
State:
type: string
format: state
title: state
description: A two character upper case state, Puerto Rico, or District of Columbia code
enum:
- AK
- AL
- AR
- AZ
- CA
- CO
- CT
- DC
- DE
- FL
- GA
- HI
- IA
- ID
- IL
- IN
- KS
- KY
- LA
- MA
- MD
- ME
- MI
- MN
- MO
- MS
- MT
- NC
- ND
- NE
- NH
- NJ
- NM
- NV
- NY
- OH
- OK
- OR
- PA
- PR
- RI
- SC
- SD
- TN
- TX
- UT
- VA
- VI
- VT
- WA
- WI
- WV
- WY
LeadEmploymentInformationJson:
type: object
properties:
employerName:
type: string
employerAddress:
type: string
employerAddress2:
type: string
employerCity:
type: string
employerPhone:
type: string
employerState:
type: string
employerZip:
type: string
jobTitle:
type: string
monthsEmployed:
type: integer
format: int32
directDeposit:
type: boolean
description: Whether a `Lead` uses direct deposit for their salary
payDate1:
type: string
format: date
payDate2:
type: string
format: date
startDate:
type: string
format: date
description: The date the lead started working at their current employer (YYYY-MM-DD)
ProductType:
type: string
enum:
- credit_card
- generic
- auto_insurance
- insurance
- life_insurance
- loan
- mortgage
- savings
- other
- unknown
PrefillResponse:
type: object
properties:
productTypes:
type: array
description: Product types in which the `Prefill` is associated
items:
$ref: '#/components/schemas/ProductType'
prefillToken:
type: string
format: uuid
description: The Prefill token used for retrieving the prefill data
expiresInSeconds:
type: number
format: int32
description: The number of seconds until the prefill token expires
maxUses:
type: number
format: int32
description: The maximum number of times the prefill token can be used
partnerPageUrl:
type: string
format: uri
description: The URL to the partner's page
embedSnippet:
type: string
format: html
description: The snippet to be embedded in the partner's page
required:
- productTypes
- prefillToken
- expiresInSeconds
- maxUses
example:
productTypes:
- loan
prefillToken: d9b212a8-b284-5986-813e-a8d8e87c1863
expiresInSeconds: 180
maxUses: 1
partnerPageUrl: https://www.moneylion.com/network/meratas/loans/search/loan-purpose?tag.partnerKey=meratas-pp-loans&prefillToken=e9c6b1a2-4f8d-4d2c-b9e6-91f2a6d8b0a4
embedSnippet:
EducationLevel:
type: string
enum:
- high_school
- associate
- bachelors
- masters
- doctorate
- other_grad_degree
- certificate
- did_not_graduate
- still_enrolled
- other
IdType:
type: string
enum:
- driver_license
- state_id
- passport
CitizenshipStatus:
type: string
description: Citizenship status
enum:
- citizen
- permanent_resident
- other
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
PropertyStatus:
type: string
enum:
- own_outright
- own_with_mortgage
- rent
LeadCreditCardInformationJson:
type: object
properties:
allowAnnualFee:
type: boolean
cardPurposes:
type: array
items:
$ref: '#/components/schemas/CardPurpose'
description: A list of card purposes in which the lead is interested
BankAccountType:
type: string
enum:
- checking
- savings
- other
MortechCreditRating:
type: string
enum:
- Excellent (780-850)
- Excellent (760-779)
- Excellent (740-759)
- Good (720-739)
- Good (700-719)
- Fair (680-699)
- Fair (660-679)
- Poor (640-659)
- Poor (620-639)
- Poor (580-619)
- Poor (Under 580)
MortgageLoanType:
type: string
enum:
- ten_year_fixed
- fifteen_year_fixed
- twenty_year_fixed
- thirty_year_fixed
- forty_year_fixed
- three_year_intro_30_year_adjustable
- five_year_intro_30_year_adjustable
- seven_year_intro_30_year_adjustable
- ten_year_intro_30_year_adjustable
EmploymentStatus:
type: string
enum:
- employed
- employed_full_time
- employed_part_time
- military
- not_employed
- self_employed
- retired
- other
BatchConsentVersion:
type: string
enum:
- v1
- v2
LeadHealthInformationJson:
type: object
properties:
gender:
$ref: '#/components/schemas/Gender'
heightInInches:
type: integer
format: int32
weightInPounds:
type: integer
format: int32
tobaccoSmoker:
type: boolean
LeadCoApplicantInformationJson:
type: object
description: 'The personal information of a co-applicant that may be considered in the
underwriting and approval of a loan.
'
properties:
firstName:
type: string
lastName:
type: string
dateOfBirth:
type: string
format: date
annualIncome:
type: integer
format: int32
streetAddress1:
type: string
description: Street address (primary address line)
streetAddress2:
type: string
description: Secondary address line
city:
type: string
state:
$ref: '#/components/schemas/State'
zipcode:
type: string
pattern: ^\d{5}([-\s]\d{4})?$
LeadRefinanceLoanInformationJson:
type: object
title: Refinance loan information
properties:
accountNumber:
type: string
description: The account number for a loan the lead is refinancing
incomeBasedRepayment:
type: boolean
description: If the repayment is income-based for a loan the lead is refinancing
interestRate:
type: number
description: The interest rate for a loan the lead is refinancing
loanAmount:
type: integer
format: int32
description: The loan amount for a loan the lead is refinancing
loanServicer:
type: string
description: The name of a loan servicer of a loan the lead is refinancing
loanType:
$ref: '#/components/schemas/RefinanceLoanType'
description: The loan type for a loan the lead is refinancing
nextPaymentAmount:
type: number
description: The amount the next payment will be on a loan the lead is refinancing
nextPaymentDate:
type: string
format: date
description: The next payment date for a loan the lead is refinancing
LeadMortgageInformationJson:
type: object
properties:
propertyType:
$ref: '#/components/schemas/PropertyType'
propertyValue:
type: integer
format: int32
mortgageBalance:
type: integer
format: int32
lenderName:
type: string
hasFHALoan:
type: boolean
currentWithLoan:
type: boolean
propertyStatus:
$ref: '#/components/schemas/PropertyStatus'
mortgageType:
$ref: '#/components/schemas/MortgageType'
mortgageAmount:
type: integer
format: int32
description: Amount the lead will borrow
downPaymentAmount:
type: integer
format: int32
propertyState:
type: string
propertyCounty:
type: string
propertyAddress1:
type: string
description: Street address (primary address line)
propertyAddress2:
type: string
description: Secondary address line
propertyZipcode:
type: string
propertyCity:
type: string
refinanceAmount:
type: integer
format: int32
description: Amount the lead will borrow for refinancing an existing mortgage
cashOutAmount:
type: integer
format: int32
description: Additional amount the lead will borrow against existing home equity in the case of refinance
occupancyType:
$ref: '#/components/schemas/OccupancyType'
refinanceType:
$ref: '#/components/schemas/RefinanceType'
propertySearchStatus:
$ref: '#/components/schemas/PropertySearchStatus'
numUnits:
type: integer
format: int32
description: The number of legal units on the property
closingDate:
type: string
format: date
purchaseStatus:
$ref: '#/components/schemas/PurchaseStatus'
purchaseDate:
type: string
format: date
monthlyHoaFee:
type: number
description: The amount of the HOA fee for the lead
mortgageCompany:
type: string
description: The name of the company holding the lead's mortgage
mortgageEscrowAmount:
type: number
description: The amount of escrow the lead pays
includeFhaLoans:
type: boolean
description: 'If true, the lead will receive FHA loan offers; if false, they will not.
'
includeVaLoans:
type: boolean
description: 'If true, the lead will receive VA loan offers; if false, they will not.
'
requestedLoanTerms:
type: array
items:
$ref: '#/components/schemas/MortgageLoanType'
mortechCreditRating:
$ref: '#/components/schemas/MortechCreditRating'
LeadLoanInformationJson:
type: object
properties:
purpose:
$ref: '#/components/schemas/LoanPurpose'
loanAmount:
type: integer
format: int32
Gender:
type: string
enum:
- male
- female
ApiErrorDetails:
type: object
additionalProperties:
type: string
LeadIdentificationInformationJson:
type: object
properties:
idNumber:
type: string
description: The ID number supplied by the lead
idState:
type: string
description: The state of issue of the supplied ID
idType:
$ref: '#/components/schemas/IdType'
description: The form of the ID number supplied by the lead
LeadCreditInformationJson:
type: object
description: Credit history information relating to a `Lead`
properties:
providedCreditRating:
$ref: '#/components/schemas/ProvidedCreditRating'
providedNumericCreditScore:
type: integer
format: int32
description: FICO credit score provided by a `Lead`
OpeId:
type: string
pattern: ^\d{6}[A-Za-z\d]{2}$
description: identification number used by the U.S. Department of Education's Office of Postsecondary Education (OPE) to identify schools that have Program Participation Agreements (PPA) so that its students are eligible to participate in Federal Student Financial Assistance programs under Title IV regulations. This is a 6-digit number followed by a 2-digit suffix used to identify branches, additional locations, and other entities that are part of the eligible institution.
LeadClientTagsJson:
type: object
description: Arbitrary key-values mappings to associate with a `Lead`. This field can be use to attach `subid`s to a `Lead`
additionalProperties:
type: array
items:
type: string
maxProperties: 1
minProperties: 1
example:
subid:
- '123'
LeadPersonalInformation:
type: object
properties:
firstName:
type: string
lastName:
type: string
aliasFirstName:
type: string
description: The first name the lead uses as an alias
aliasLastName:
type: string
description: The last name the lead uses as an alias
email:
type: string
format: email
pattern: ^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$
city:
type: string
state:
$ref: '#/components/schemas/State'
workPhone:
type: string
pattern: ^1?\d{10}$
primaryPhone:
type: string
pattern: ^1?\d{10}$
bestTimeToCall:
$ref: '#/components/schemas/LeadBestTimeToCall'
address1:
type: string
description: Street address (primary address line)
address2:
type: string
description: Secondary address line
addressMoveInDate:
type: string
format: date
description: The date the lead moved into their current address
zipcode:
type: string
pattern: ^\d{5}([-\s]\d{4})?$
monthsAtAddress:
type: integer
format: int32
description: Number of months the provided address has been the lead's primary residence
driversLicenseNumber:
type: string
driversLicenseState:
type: string
description: State in which the driver's license was issued
ipAddress:
type: string
format: ip
description: IP address
activeMilitary:
type: boolean
description: Whether the lead is currently in the military (not a veteran)
militaryVeteran:
type: boolean
description: Whether the lead is a veteran (should not be used if the lead is active in the military)
dateOfBirth:
type: string
format: date
educationLevel:
deprecated: true
allOf:
- $ref: '#/components/schemas/EducationLevel'
ssn:
type: string
pattern: ^(?!\b(\d)\1+-(\d)\1+-(\d)\1+\b)(?!123-45-6789|219-09-9999|078-05-1120)(?!666|000|9\d{2})\d{3}-(?!00)\d{2}-(?!0{4})\d{4}$
citizenshipStatus:
$ref: '#/components/schemas/CitizenshipStatus'
LeadBestTimeToCall:
type: string
enum:
- morning
- afternoon
- evening
- night
PropertySearchStatus:
type: string
enum:
- found
- not_found
LeadSessionInformationJson:
type: object
description: Browsing session information accociated with a `Lead`
properties:
ipAddress:
type: string
userAgent:
type: string
browserFingerprint:
type: string
LeadEducationInformationJson:
type: object
properties:
educationLevel:
$ref: '#/components/schemas/EducationLevel'
graduateDegreeType:
$ref: '#/components/schemas/GraduateDegreeType'
universityAttended:
type: string
description: 'Name of university where a lead received their undergraduate degree.
A lookup service for possible universities is available from using the /leads/universities endpoint.
To maximize returned offers, this string must match one of the names returned from the lookup.
'
deprecated: true
universityOpeId:
type: string
$ref: '#/components/schemas/OpeId'
graduationDate:
type: string
format: date
description: Date the lead graudated from undergrad (YYYY-MM-DD)
deprecated: true
graduateGraduationDate:
type: string
format: date
description: Lead's graduate school graduation date (YYYY-MM-DD)
graduateLastAttendedDate:
type: string
format: date
description: Lead's last attended month/year for graduate school (YYYY-MM-DD)
graduateUniversityAttended:
type: string
description: 'Name of university where a lead received their graduate degree.
A lookup service for possible universities is available from using the /leads/universities endpoint.
To maximize returned offers, this string must match one of the names returned from the lookup.
'
graduateUniversityOpeId:
$ref: '#/components/schemas/OpeId'
undergraduateGraduationDate:
type: string
format: date
description: Date the lead graduated from undergrad (YYYY-MM-DD).
undergraduateLastAttendedDate:
type: string
format: date
description: Lead's last attended month/year for undergrad (YYYY-MM-DD)
undergraduateUniversityAttended:
type: string
description: 'Name of university where a lead received their undergraduate degree.
A lookup service for possible universities is available from using the /leads/universities endpoint.
To maximize returned offers, this string must match one of the names returned from the lookup.
'
undergraduateUniversityOpeId:
type: string
$ref: '#/components/schemas/OpeId'
OccupancyType:
type: string
enum:
- primary
- secondary
- investment
EmploymentPayFrequency:
type: string
enum:
- weekly
- biweekly
- twice_monthly
- monthly
MortgageType:
type: string
enum:
- purchase
- refinance
RefinanceLoanType:
type: string
enum:
- federal_student_loan
- private_student_loan
ProvidedCreditRating:
type: string
enum:
- excellent
- good
- fair
- poor
- limited
- unknown
PurchaseStatus:
type: string
enum:
- no_offer
- offer_accepted
- offer_pending
- under_contract
LeadLegalInformationJson:
type: object
description: Information regarding a `Lead`'s communication consent
properties:
consentsToFcra:
type: boolean
description: Whether the lead was shown, and consented to a Fair Credit Reporting Act notice
consentsToSms:
type: boolean
description: The lead agrees to recieve SMS text messages from the Financial Institution
consentsToTcpa:
type: boolean
description: Whether the lead was shown, and consented to a Telephone Consumer Protection Act notice
batchConsentVersion:
$ref: '#/components/schemas/BatchConsentVersion'
fcraLanguage:
type: string
description: The exact FCRA language to which the lead consented
tcpaLanguage:
type: string
description: The exact TCPA language to which the lead consented
batchConsentLanguage:
type: string
description: The exact batch consent language to which the lead consented
RefinanceType:
type: string
enum:
- cash_out
- rate_term
ApiError:
type: object
properties:
attribute:
type: string
description: 'The attribute that this error applies to. Omitted if this error is not in the context of a resource, or cannot be isolated to a single attribute.
'
type:
type: string
description: 'A classification for this error, which can be used to render the appropriate custom error template, or take other programmatic actions.
'
details:
description: 'Variables associated with this error that can be injected into a custom error template, or used to parameterize any other programatic actions.
'
allOf:
- $ref: '#/components/schemas/ApiErrorDetails'
message:
type: string
description: 'A human-readable, English description of the error.
'
LeadAutoInsuranceInformationJson:
type: object
properties:
numberOfVehicles:
type: integer
format: int32
hasAutoInsurance:
type: boolean
priorCarrierInformation:
type: object
title: Prior Carrier Information
properties:
carrierName:
type: string
description: Name of the prior insurance carrier
timeInsuredMonths:
type: integer
format: int32
description: Duration in months the lead was insured with the prior carrier
policyEffectiveDate:
type: string
format: date
coverageInformation:
type: object
title: Coverage Information
properties:
bodilyInjuryAmount:
type: integer
format: int32
description: Bodily injury coverage amount
propertyDamageAmount:
type: integer
format: int32
description: Property damage coverage amount
collisionAmount:
type: integer
format: int32
description: Collision coverage amount
garageInformation:
type: object
title: Garage Information
properties:
address1:
type: string
description: Street address line 1 of the garage location
address2:
type: string
description: Street address line 2 of the garage location (optional)
city:
type: string
description: City where the vehicle is garaged
state:
type: string
description: State where the vehicle is garaged
zipCode:
type: string
description: ZIP code of the garage address
vehiclesInformation:
type: array
items:
type: object
title: Vehicle information
properties:
monthlyPayment:
type: integer
format: int32
description: The lead's monthly auto loan payment
estimatedMileage:
type: integer
format: int32
description: The vehicle's estimated number of miles driven
vehicleIdentificationNumber:
type: string
description: The vehicle identification number (VIN) of the financed vehicle
vehicleUuid:
type: string
format: uuid
description: The UUID representing the unique Year/Make/Model/Trim of the financed vehicle
driversInformation:
type: array
items:
type: object
title: Driver Information
properties:
role:
type: string
enum:
- primary
- secondary
- unlisted
gender:
$ref: '#/components/schemas/Gender'
description: Driver's gender
personalInformation:
$ref: '#/components/schemas/LeadPersonalInformation'
description: Personal information of the driver
GraduateDegreeType:
type: string
enum:
- doctor_of_medicine
- doctor_of_osteopathic_medicine
- doctor_of_optometry
- doctor_of_dental_medicine
- dentariae_medicinae_doctoris
- doctor_of_dental_surgery
- doctor_of_veterinary_medicine
- doctor_of_pharmacy
- veterinariae_medicinae_doctoris
- master_of_arts
- master_of_science
- master_of_research
- master_of_research_project
- master_of_studies
- master_of_business_administration
- master_of_library_science
- master_of_public_administration
- master_of_public_health
- master_of_laws
- master_of_arts_liberal_studies
- master_of_fine_arts
- master_of_music
- master_of_education
- master_of_engineering
- master_of_architecture
- juris_doctor
- other
examples:
PrefillResponse:
summary: Prefill Response
value:
productTypes:
- loan
prefillToken: d9b212a8-b284-5986-813e-a8d8e87c1863
expiresInSeconds: 180
maxUses: 1
partnerPageUrl: https://www.moneylion.com/network/meratas/loans/search/loan-purpose?tag.partnerKey=meratas-pp-loans&prefillToken=e9c6b1a2-4f8d-4d2c-b9e6-91f2a6d8b0a4
embedSnippet:
responses:
UnauthorizedRequest:
description: Unauthorized request
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ApiError'
examples:
missingAccessToken:
summary: Access token was not specified
value:
- message: Access token is missing
securitySchemes:
publishableBearerToken:
type: http
scheme: bearer
description: 'A bearer token that is assumed to be published in application code and downloaded to a user''s device. As a result, it only has restricted access to the API.
'
confidentialBearerToken:
type: http
scheme: bearer
description: 'A bearer token that is assumed to be managed like a password or any other confidential secret. As a result, it has access to sensitive API endpoints.
'
experimentalBearerToken:
type: http
scheme: bearer
description: 'A bearer token that is used to access experimental endpoints that are not yet available for all partners. It may be treated the same as a `publishableBearerToken`.
'
externalDocs:
description: Engine by MoneyLion API Reference
url: https://engine.tech/docs/api-reference/