Get personalized loan offers through Prosper –
/marketplace/application/offers API

offers API Overview

Use the POST /marketplace/application/offers/ method to send borrower information to Prosper for a set of loan offers.

If the borrower meets eligibility requirements based on the information you supplied, the response to this call will contain information about loan offers you can present to your user for acceptance.

The offers contain a partner referral code that will be part of all offer URLs. When the customer selects an offer, the URL will take them directly to the Prosper offer to accept the Terms and Conditions and view the Truth in Lending (TIL) statements. If the user completes a loan application, a loan listing will be created for investor funding of that loan.

Collecting loan applicant information for Prosper loan offers
To generate personalized loan offers for a user, Prosper requires 12 pieces of information about the loan applicant.

We’ll show you how to send this information to Prosper using the POST /marketplace/application/offers API a bit later, but this list will help you decide how to map out data collection within your web client.

The following user information is required to generate loan offers:

  • Loan Amount
  • Loan Purpose
  • First Name
  • Last Name
  • Date of Birth (DOB)
  • Email
  • Street Address
  • City
  • State
  • Zip code
  • Employment Status
  • Annual Income

To speed up the creation of a loan listing, Prosper can also accept additional information about the loan applicant:

  • Self reported credit score
  • Primary phone number
  • Secondary phone number
  • Employer name
  • Employer phone number
  • Work phone number
  • Employer start date
  • Occupation type
  • Social security number
  • Bank account number
  • Bank routing number

Whether you want to collect this additional information from your client, or let Prosper collect the information once an offer is accepted and a Prosper account is created is up to you. Even if you have a small subset of this information, it may help to pass it to Prosper to speed the loan application and listing creation process.

Supported methods

POST

Example URI

POST <prosper_base_address>/marketplace/application/offers/
   Authorization: bearer <access_token>
   Accept: application/json

<JSON POST BODY>

HTTP Headers

Field name Expected value Required?
Authorization bearer <access_token> Y
Accept application/json Y
timezone By default, all dates returned in the response are in UTC format.

However, you can specify the timezone in full format.

Examples:
America/Los_Angeles
America/New_York

N

Offers request JSON elements

The following tables describe the objects and elements within the JSON body of an offers API POST method call.

JSON objects within the offers POST body

An offers request contains seven JSON objects. Six of the objects within the request have required elements, so the request must have those JSON objects. However, not every element within each required object is required.

Name Type Required? Description
loan_info JSON object Y Loan request JSON object, containing the following elements:

  • loan_purpose_id
  • loan_amount
  • self_reported_credit_score
identification JSON object Y Client and partner identification JSON object, containing the following elements:

  • client_reference_id
  • partner_source_code
personal_info JSON object Y Borrower personal information JSON object, containing the following elements:

  • first_name
  • last_name
  • middle_initial
  • suffix
  • date_of_birth
  • ssn
address_info JSON object Y Borrower home address information JSON object, containing the following elements:

  • street
  • city
  • state
  • zip_code
contact_info JSON object Y Borrower contact information JSON object, containing the following elements:

  • email
  • home_phone
    • area_code
    • phone_number
  • mobile_phone
    • area_code
    • phone_number
  • work_phone
    • area_code
    • phone_number
employment_info JSON object Y Borrower employment information JSON object, containing the following elements:

  • employer_name
  • employer_phone
    • area_code
    • phone_number
  • employment_month
  • employment_year
  • employment_status_id
  • occupation_id
  • annual_income
  • is_income_verifiable
bank_account_info JSON object N Borrower bank account information JSON object, containing the following elements:

  • bank_name
  • first_account_holder_name
  • account_number
  • routing_number

Elements within the “loan_info” JSON object (required object)

Name Type Required? Description
loan_purpose_id integer Y The purpose of the loan request.
Accepted Values:

  • 1 – Debt consolidation
  • 2 – Home improvement
  • 6 – Auto
  • 7 – Other
  • 8 – Baby & adoption loans
  • 13 – Household Expenses
  • 14 – Large purchases
  • 15 – Medical/Dental
  • 18 – Taxes
  • 19 – Vacation
  • 21 – Special Occasion
loan_amount decimal Y A decimal value indicating the amount of the loan request.
Do not pass in currency symbols, or commas in the value.
Minimum amount 2000.00 and maximum amount 35000.00.
Examples:

  • 2000.00
  • 35000.00
self_reported_credit_score integer N The credit score of the applicant.
Acceptable Values:

  • 1 – Excellent Credit (760+)
  • 2 – Good Credit (700-759)
  • 3 – Fair Credit (640-699)
  • 4 – Poor Credit

Elements within the “identification” JSON object (required object)

Name Type Required? Description
client_reference_id string N String the partner client can provide as pass-through information to identify marketing channel, source or campaign related to the transaction. Prosper will pass this response back to allow the partner client to make appropriate attribution and complete the transaction. This field must be a non-unique channel identifier.

Note: Maximum length of this string is 255 characters.

partner_source_code string Y Unique string provided by Prosper that identifies the partner for referral purposes.

Elements within the “personal_info” JSON object (required object)

Name Type Required? Description
first_name string Y The borrower’s first name.
last_name string Y The borrower’s last name.
middle_initial string N The borrower’s middle initial in unicode.
suffix string N The borrower’s suffix.
Can be one of the following values.

  • Sr – Senior
  • Jr – Junior
  • 2 – Second
  • 3 – Third
  • 4 – Fourth
  • II – Second
  • III – Third
  • IV – Fourth
date_of_birth string Y Format: MM/dd/yyyy

Example:01/01/1979

ssn string N The borrower’s Social Security Number
Format:666720553

Elements within the “address_info” JSON object (required object)

Name Type Required? Description
street string Y Address, including apartment number (if applicable) and street where borrower resides.

Note: PO Box addresses are not allowed.

Example:6451 Wishbone Ter

city string Y City where borrower resides.
state string Y State where borrower resides, in two-letter U.S. Postal Service code abbreviation.
Example:MD
zip_code string Y Standard 5 digit or 5+4 U.S. Postal Service zipcode where borrower resides.
Examples:

  • 20818
  • 20818-2451

Elements within the “contact_info” JSON object (required object)

Name Type Required? Description
email string Y The borrower’s email, in a valid email format.
Example:[email protected]
home_phone JSON object N An object with two elements that comprise a phone number:

  • area_code – Three-character string representing the area code. Example:801
  • phone_number – Seven-character string representing the local number.
    Example:7484944
mobile_phone JSON object N An object with two elements that comprise a phone number:

  • area_code – Three-character string representing the area code. Example: =801
  • phone_number – Seven-character string representing the local number.
    Example:7484944
work_phone JSON object N An object with two elements that comprise a phone number:

  • area_code – Three-character string representing the area code. Example:801
  • phone_number – Seven-character string representing the local number.
    Example:7484944

Elements within the “employment_info” JSON object (required object)

Name Type Required? Description
employer_name string N The name of the borrower’s employer.
employer_phone JSON object N An object with two elements that comprise a phone number:

  • area_code – Three-character string representing the area code.
    Example:801
  • phone_number – Seven-character string representing the local number.
    Example:7484944
employment_month integer N Two-digit number representing the month current employment began.

  • 01 – January
  • 02 – February
  • 03 – March
  • 04 – April
  • 05 – May
  • 06 – June
  • 07 – July
  • 08 – August
  • 09 – September
  • 10 – October
  • 11 – November
  • 12 – December
employment_year integer N Four-digit number representing the year current employment began.
Example: 1999
employment_status_id integer Y Integer matching borrower’s employment status from the list below.

  • 3 – Self Employed
  • 5 – Not Employed
  • 6 – Other
  • 7 – Employed
occupation_id integer N Integer matching borrower’s occupation, from the list below:

  • 1 – Accountant/CPA
  • 2 – Analyst
  • 3 – Architect
  • 4 – Attorney
  • 5 – Biologist
  • 6 – Bus Driver
  • 7 – Car Dealer
  • 8 – Chemist
  • 9 – Civil Service
  • 10 – Clergy
  • 11 – Clerical
  • 12 – Computer Programmer
  • 13 – Construction
  • 14 – Dentist
  • 16 – Doctor
  • 17 – Engineer – Chemical
  • 18 – Engineer – Electrical
  • 19 – Engineer – Mechanical
  • 20 – Executive
  • 21 – Fireman
  • 22 – Flight Attendant
  • 23 – Food Service
  • 24 – Food Service Management
  • 25 – Homemaker
  • 26 – Judge
  • 27 – Laborer
  • 28 – Landscaping
  • 29 – Medical Technician
  • 30 – Military Enlisted
  • 31 – Military Officer
  • 32 – Nurse (LPN)
  • 33 – Nurse (RN)
  • 34 – Nurse’s Aide
  • 35 – Pharmacist
  • 36 – Pilot Private/Commercial
  • 37 – Police Officer/Correction Officer
  • 38 – Postal Service
  • 39 – Principal
  • 40 – Professional
  • 41 – Professor
  • 42 – Psychologist
  • 43 – Realtor
  • 44 – Religious
  • 45 – Retail Management
  • 47 – Sales Commission
  • 48 – Sales Retail
  • 49 – Scientist
  • 50 – Administrative Assistant
  • 52 – Skilled Labor
  • 53 – Social Worker
  • 54 – Student – College Freshman
  • 55 – Student – College Sophomore
  • 56 – Student – College Junior
  • 57 – Student – College Senior
  • 58 – Student – College Graduate Student
  • 59 – Student – Community College
  • 60 – Student – Technical School
  • 61 – Teacher
  • 62 – Teacher’s Aide
  • 63 – Tradesman – Carpenter
  • 64 – Tradesman – Electrician
  • 65 – Tradesman – Mechanic
  • 66 – Tradesman – Plumber
  • 67 – Truck Driver
  • 69 – Waiter/Waitress
  • 70 – Other
  • 71 – Investor
annual_income decimal Y Reported annual gross income. Annual income will later be verified by Prosper during the verification process.
Example: 95000
is_income_verifiable boolean N A Boolean value that signifies if the annual income has been verified.
Example: true | false
(This element has been deprecated.)

Elements within the “bank_account_info” JSON object (optional object)

Name Type Required? Description
bank_name string N The name of the bank where the loan will be deposited and where the monthly loan payments will be withdrawn.
first_account_holder_name string N The account holder’s name as it appears for the account.
account_number integer N The account number.
Example: 122345547
routing_number integer N The routing number for processing payments.
Example: 113024520

Offers Response

The following tables describe the elements within the offers response you will receive from a successful POST method call.

offers response elements

Name Type Description
referral_code string A unique code assigned to this offer response. This referral code is part of each offer URL in the response, and allows Prosper to create (and track) the set of offers associated with each offer request.
offers_url string The direct link a Prosper page with the set of offers in this response.
identification object An object containing the client application id and partner source code that uniquely identifies the partner client making the request.

  • client_reference_id – string – String identifying the marketing channel, source or campaign related to the transaction.
  • partner_source_code – string – Unique string identifying the partner for referral purposes.
offers array of offer objects An array of individual offers that you can display to the user. The offers object elements are described in the next table.

offers object elements

Name Type Description
id integer A unique id for this loan offer.
apr decimal The annual percentage rate of the loan, expressed as a decimal.
loan_amount integer The total amount of the loan, including origination fees.
loan_rate decimal The interested rate charged for the loan.
loan_term_in_months integer The length, in months, or the loan repayment.
Possible values:

  • 36
  • 60
loan_term_in_years integer The length, in years, or the loan repayment.
Possible values:

  • 3
  • 5
monthly_payment decimal The total amount of each monthly loan payment.
offer_url string Direct link to the Prosper offer.

Example

Retrieving loan offers from Prosper:
The following example passes borrower information to Prosper for a set of loan offers:

Request Header:

POST <prosper_base_address>/marketplace/application/offers/
   Authorization: bearer <access_token>
   Accept: application/json

JSON Request Body:

{
   "loan_info" : {   
      "loan_purpose_id": 15,  
      "loan_amount": 12000,
      "self_reported_credit_score": 1 
    },
    "identification": { 
       "client_reference_id":"APP101", 
       "partner_source_code": "THSYU87-HTNSS43-HJTUS98" 
    },
    "personal_info": { 
      "first_name": "Carolyn", 
      "last_name": "Brace", 
      "middle_initial": "", 
      "suffix": "", 
      "date_of_birth": "01/01/1979", 
      "ssn": "666720553" 
    },
    "address_info": { 
      "street": "3039 CANAL WALK RD", 
      "city": "HENDERSON",
      "state": "NV", 
      "zip_code": "89052" 
    },
    "contact_info": { 
      "email": "[email protected]", 
      "home_phone": { 
        "area_code": "206", 
        "phone_number": "66118881" 
      },
      "mobile_phone": { 
        "area_code": "206", 
        "phone_number": "7487484" 
      },
      "work_phone": { 
        "area_code": "216", 
        "phone_number": "7569484" 
      }
    },
    "employment_info": { 
      "employer_name": "ABC Com", 
      "employer_phone": { 
        "area_code": "801", 
        "phone_number": "7484944" 
      },
      "employment_month": 3, 
      "employment_year": 1999, 
      "employment_status_id": 7, 
      "occupation_id": 17, 
      "annual_income": 120000
    },
    "bank_account_info": { 
      "bank_name": "Test Bank", 
      "first_account_holder_name": "Carolyn Brace", 
      "account_number": 122345547,
      "routing_number": 113024520 
    }
}

Response:

The response to the above call will provide a referral code that will be part of all offer URLs, a set of loan offers you can present to the user (if the borrower is approved for an offer), and URLs that will take your user directly to accept the Prosper loan offers.

{
  "referral_code": "5e8f54e3-6b54-428e-b1b5-d42",
  "offers_url":"<Prosper_offer_url_that_shows_all_offers>",
  "identification": {
       "client_reference_id":"APP101",
       "partner_source_code": “THSYU87-HTNSS43-HJTUS98”
    },
  "offers": [
    {
      "id": 309003,
      "apr": 0.0749,
      "loan_amount": 2000,
      "loan_rate": 0.0613,
      "loan_term_in_months": 36,
      "loan_term_in_years": 3,
      "origination_fee":4500,
      "monthly_payment": 60.96,
      "offer_url": "<Prosper_offer_url_specific_to_this_offer>"
    },
    {
      "id": 309004,
      "apr": 0.1052,
      "loan_amount": 2000,
      "loan_rate": 0.0832,
      "loan_term_in_months": 60,
      "loan_term_in_years": 5, 
      "monthly_payment": 40.86,
      "offer_url": "<Prosper_offer_url_specific_to_this_offer>"
    }
  ],
  "errors": [ // Populated when validation has failed or offers are not generated per Prosper rules
      {
	 "code": "",
        "message": ""
      }
  ]
 }
   
}

Example error response:

The following error message would be returned for a request body that did not include a loan_amount or a personal_info object.

{
   "errors": [ 
       { "code": "MKTPL-1012",
         "message": "The applicant's data was missing or not formatted correctly."
         "assertions": [
            { "code": "MKTPL-1012-101",
              "message": "Loan amount is null or empty, and is required to generate an offer."
            },
            { "code": "MKTPL-1012-131",  
              "message": "Name is null or empty, and is required to generate an offer."
            }
          ] 
       }
    ]
}

Offers API Error Codes

Main error codes

Error Code HTTP Status Code Message
MKTPL-100 200 Pre-existing customer.
MKTPL-1001 401 The partner source code is missing.
MKTPL-1004 401 Unauthorized access, the submitted partner source code is invalid (either expired or incorrect).
MKTPL-1006 200 The applicant does not meet the minimum age requirement.
MKTPL-1007 200 Prosper does not conduct business in the state where the applicant resides.
MKTPL-1008 200 The amount requested exceeds Prosper’s limits for the state where the applicant resides.
MKTPL-1009 200 Based on the information presented, Prosper could not find any matching offers.
MKTPL-1012 200 The applicant’s data was not formatted correctly.

Errors with this error code will contain an assertions object with one or more code and error message objects, letting you know what data was not formatted correctly.

MKTPL-1012 SubErrorCodes

All errors of type MKTPL-1012 will have an assertion with a SubErrorCode and error message. The following table contains the list of SubErrorCode and message assertions.

Error Code HTTP Status Code Message
MKTPL-1012-101 200 Loan amount is null or empty, and is required to generate an offer.
MKTPL-1012-102 200 Loan amount [decimal] ({0}) is not a valid format.
MKTPL-1012-103 200 Requested loan amount ({0}) is less than the Prosper minimum (2000).
MKTPL-1012-104 200 Requested loan amount ({0}) is greater than the Prosper maximum (35000).
MKTPL-1012-111 200 Loan purpose id is null or empty, and is required to generate an offer.
MKTPL-1012-112 200 Loan purpose id must be an integer value: {0}. Refer to the documentation for acceptable values.
MKTPL-1012-121 200 Self reported credit score is null or empty, and is required to generate an offer.
MKTPL-1012-122 200 Self reported credit score must be an integer value: {0}. Refer to the documentation for acceptable values.
MKTPL-1012-123 200 Self reported credit score is not a valid value: {0}. Refer to the documentation for acceptable values.
MKTPL-1012-112 200 Loan purpose id is not a valid value: {0}. Refer to the documentation for acceptable values.
MKTPL-1012-131 200 Name is null or empty, and is required to generate an offer.
MKTPL-1012-141 200 First name is null or empty, and is required to generate an offer.
MKTPL-1012-142 200 Name is null or empty, and is required to generate an offer.
MKTPL-1012-151 200 Last name is null or empty, and is required to generate an offer.
MKTPL-1012-152 200 Last name ({0}), is not a valid format.
MKTPL-1012-161 200 Middle initial can only contain a single-letter character ({0}), not a valid format.
MKTPL-1012-171 200 Date of birth is null or empty, and is required to generate an offer.
MKTPL-1012-172 200 Date of birth is not a date value: {0}. Please use “MM/dd/yyyy” or “MM-dd-yyyy”.
MKTPL-1012-173 200 The applicant does not meet the minimum age requirement.
MKTPL-1012-181 200 Enter a valid 9 digit social security number.
MKTPL-1012-191 200 Address is null or empty, and is required to generate an offer.
MKTPL-1012-201 200 Street is null or empty, and is required to generate an offer.
MKTPL-1012-202 200 Applicant’s address can not contain a PO Box.
MKTPL-1012-211 200 City is null or empty, and is required to generate an offer.
MKTPL-1012-221 200 State is null or empty, and is required to generate an offer. The state must be a two character code.
MKTPL-1012-222 200 State contains invalid characters, and is required to generate an offer. The state must be a two character code.
MKTPL-1012-231 200 Zipcode is null or empty, and is required to generate an offer.
MKTPL-1012-232 200 Zipcode format is not valid, and is required to generate an offer. Prosper accepts a 5 digit or 5 + 4 zipcode format.
MKTPL-1012-242 200 Email address is null or empty, and is required to generate an offer.
MKTPL-1012-243 200 Applicant’s email address is not in a valid format.
MKTPL-1012-261 200 Employment month contains invalid characters, and is required to generate an offer.
MKTPL-1012-271 200 Employment year contains invalid characters, and is required to generate an offer.
MKTPL-1012-281 200 Employment status id is null or empty, and is required to generate an offer.
MKTPL-1012-282 200 Employment status id must be a valid integer value (Self-employed = 3; Not employed = 5; Other = 6; Employed = 7): {0}.
MKTPL-1012-291 200 Yearly income is null or empty, and is required to generate an offer.
MKTPL-1012-292 200 Yearly income [decimal] ({0}) is not a valid format.
MKTPL-1012-293 200 Yearly income amount ({0}) exceeds the Prosper maximum amount.

Contact us

Do you have any questions, comments for us, or problems integrating the offers API into your website?

Contact us at [email protected].