Modernize Home Services Ping Post API

This document contains detailed instructions and examples for how to sell leads to Modernize Home Services through our Ping Post web API, using a two-step process known as "Ping/Post."

All material confidential. Materials constitute proprietary information of Modernize Home Services and QuinStreet, Inc. and may be used by the recipient solely to evaluate an existing business relationship with Modernize Home Services. All other rights reserved by Modernize Home Services.

Contents:

How It Works

Ping/Post is a two-step process:

  1. Ping - You offer a lead to us by first sending our API partial information about the lead, e.g., service and zipcode. We respond, indicating whether we can buy the lead and for how much ($).
  2. Post - You send us the full details of the lead. We respond, confirming receipt. If the lead is a duplicate or invalid lead, we return an error response indicating the reason.

Details for each step are explained in-depth below.

Before You Start

Before you start sending leads, you will need the following:

Environments

Modernize hosts two API environments, one for production operations and another for testing:

Environment Hostname
Production https://example.leadprosper.tech
Staging (Test) https://example.leadprosper.tech

The Staging environment is for testing. No staging environment leads will be billable.

IMPORTANT: Before sending real leads to the Production environment, you must first test using the Staging environment. Doing so verifies that you are correctly authenticating, formatting data fields, and authorized to send us leads for your given service(s). Once you have tested and determined that everything is behaving as expected on the Staging environment, you can move to the Production environment.

Ping

Use the following HTTP API to offer a lead for sale to Modernize by sending partial information about the lead.

URL https://example.leadprosper.tech/modernize/coreg/hsleadcapture
HTTP Method POST
Required Request Headers Content-Type: application/x-www-form-urlencoded
Request Body Must contain all Common Parameters required for Ping, plus any required Service-Specific Parameters. Keys and values must be encoded in key-value pairs separated by &, with a = between the key and the value. Non-alphanumeric characters in both keys and values must be URL-Encoded.

Post

Use the following API after a successful Ping response (see above) to transact a sale of a lead to Modernize Home Services, by sending full details the lead along with a PingToken.

Base URL https://example.leadprosper.tech/modernize/coreg/hsleadcapture
HTTP Method POST
Required Request Headers Content-Type: application/x-www-form-urlencoded
Request Body Must contain all Common Parameters required for Post, plus Service-Specific Parameters. Keys and values must be encoded in key-value pairs separated by &, with a = between the key and the value. Non-alphanumeric characters in both keys and values must be URL-Encoded.

Common Parameters [CASE-SENSITIVE]

Unless otherwise indicated, the parameters below are accepted for all services.

IMPORTANT:

Parameter Key/Name Value(s) Required on Ping? Required on Post? Example
pingType PING ONLY. Set to v2 for all Pings. Do not set on Posts. Yes No v2
PingToken POST ONLY. Set to PingToken value received from successful Ping response. No Yes 1234567890
tagID (provided by account manager). IMPORTANT: tagID varies by environment. When submitting to the production environment, use your production tagID. Test submissions to the staging environment should use 204670250. Note that test submissions are not billable. Yes Yes 204670250
BuyTimeframe (Immediately, 1-6 months, Don't know) Yes Yes Immediately
OwnHome (Yes, No) If not the owner, but is authorized to make improvements, use Yes Yes Yes Yes
service see Service-Specific Parameter below Yes Yes WINDOWS
PC 5-digit US zip code Yes Yes 99751
HomePhoneConsent PING ONLY. Indicates whether you gathered consent prior to pinging Modernize Home Services. Leave blank or use No if you did not acquire consent. (Yes, No) Yes No Yes
HomePhoneConsentLanguage POST ONLY. Complete, URL-encoded string of of consent language displayed to consumer. Send on Posts only. No Yes Fake%20example%20I%20consent%20to%20receiving%20calls%20etc. (abbreviated for clarity)
LeadIDToken 32-char Jornaya LeadiD Token Yes* Yes* EAF0AAF2-55CD-08A7-DE78-C5A090B3A57B
TrustedFormToken TrustedForm token or token URL Yes* Yes* https%3A%2F%2Fcert.trustedform.com%2F5d9f37382eca1518c752db469cacb6668049c8d3
PartnerSourceID Value to identify campaigns by marketing efforts or channels on the publisher side. Helps Modernize track and report quality back to publisher Yes Yes CampaignA
PublisherSubID Publisher's own transaction-level identifier for the lead. No Yes 123456
FN First name No Yes Quin
LN Last name No Yes Street
S1 Address No Yes 9305%20Nimbus%20Ave
CT City No Yes Kobuk
SP State (USPS abbreviation) No Yes AK
HP Phone (10-digit US, no special chars) No Yes 5039065030
EM Email No Yes bizdev%40quinstreet.com

* A compliance certification token is required on all leads. You must pass either or both of LeadIDToken (Jornaya) or TrustedFormToken (ActiveProspect) for a lead to be accepted.

Service-Specific Parameters [CASE-SENSITIVE]

IMPORTANT: All parameters and values are CASE-SENSITIVE. If you pass incorrectly cased parameters or values, they may be treated as invalid

The following parameters should be used on BOTH Ping and Post requests for the service indicated. If Parameter Name is N/A below, no additional parameters are required for the service.

Common Services

Service Parameter Name Possible Values Required? Example (URL-Encoded)
BATH_REMODEL OptIn1 Whether the remodel requires removing or adding any walls (No, Yes) No No
BATHROOM_REFACING N/A
GUTTER_COVERS GuttersProjectScope (Install, Repair) Yes Install
GUTTER_COVERS CommercialLocation Kind of location (Business, Home) Yes, If Install Home
GUTTERS GutterType (Copper, Galvanized, PVC, Seamless Metal, Wood) Yes Seamless%20Metal
GUTTERS GuttersProjectScope (Install, Repair) Yes Install
GUTTERS CommercialLocation (Business, Home) Yes Home
HOME_SECURITY HomeSecurityProjectScope (Equipment, Install, Reactivate) Yes Install
HOME_SECURITY SecuritySystemInstallationType (NoPreference, SelfInstall, ProfessionalInstall) Yes ProfessionalInstall
HOME_SECURITY CommercialLocation (Business, Home) Yes Home
HOME_WARRANTY Interest Why are you interested? (BuyHome, ProtectHome, RealEstateProfessional, Other) Yes BuyHome
HVAC HVACInterest (Install Boiler/Radiator, Install Central AC, Install Central Heating, Repair Boiler/Radiator, Repair Central AC, Repair Central Heating ) Yes Install%20Central%20AC
HVAC BoilerSystemInstallType (NaturalGas, Electric, Oil, PropaneGas, Do Not Know) Yes, if Install Boiler/Radiator NaturalGas
HVAC CentralHeatingInstallType (NaturalGas, Electric, Oil, PropaneGas, Do Not Know) Yes, if Install Central Heating NaturalGas
HVAC BoilerSystemRepairType (NaturalGas, Electric, Oil, PropaneGas) Yes, if Repair Boiler/Radiator NaturalGas
HVAC CentralHeatingRepairType (NaturalGas, Electric, Oil, PropaneGas) Yes, if Repair Central Heating NaturalGas
ROOFING_ASPHALT RoofingPlan (Completely replace roof, Repair existing roof, Install roof on new construction) Yes Completely%20replace%20roof
ROOFING_CEDAR_SHAKE RoofingPlan (Completely replace roof, Repair existing roof, Install roof on new construction) Yes Completely%20replace%20roof
ROOFING_COMPOSITE RoofingPlan (Completely replace roof, Repair existing roof, Install roof on new construction) Yes Completely%20replace%20roof
ROOFING_METAL RoofingPlan (Completely replace roof, Repair existing roof, Install roof on new construction) Yes Completely%20replace%20roof
ROOFING_NATURAL_SLATE RoofingPlan (Completely replace roof, Repair existing roof, Install roof on new construction) Yes Completely%20replace%20roof
ROOFING_TAR_TORCHDOWN RoofingPlan (Completely replace roof, Repair existing roof, Install roof on new construction) Yes Completely%20replace%20roof
ROOFING_TILE RoofingPlan (Completely replace roof, Repair existing roof, Install roof on new construction) Yes Completely%20replace%20roof
SIDING_ALUMINIUM ProjectPlan (Siding for a new home, Replace existing siding, Repair section(s) of siding, Siding for a new addition) Yes Replace%20existing%20siding
SIDING_BRICKFACE ProjectPlan (Siding for a new home, Replace existing siding, Repair section(s) of siding, Siding for a new addition) Yes Replace%20existing%20siding
SIDING_COMPOSITE_WOOD ProjectPlan (Siding for a new home, Replace existing siding, Repair section(s) of siding, Siding for a new addition) Yes Replace%20existing%20siding
SIDING_STONEFACE ProjectPlan (Siding for a new home, Replace existing siding, Repair section(s) of siding, Siding for a new addition) Yes Replace%20existing%20siding
SIDING_VINYL ProjectPlan (Siding for a new home, Replace existing siding, Repair section(s) of siding, Siding for a new addition) Yes Replace%20existing%20siding
SOLAR ElectricBill (Under $100, $100 - $200, $200 - $300, $300+) Yes %24200%20-%20%24300
WALK_IN_TUBS Interest (Safety, Therapeutic, Other) Yes Safety
WINDOWS NumberOfWindows (1, 2, 3-5, 6-9) If more than 9 windows, use 6-9 Yes 6-9
WINDOWS WindowsProjectScope (Install, Repair) Yes Install
WALK_IN_SHOWERS N/A

Other Services

Service Parameter Name Possible Values Required? Example (URL-Encoded)
ARCHITECTURAL_PLAN_DESIGNS N/A
ASPHALT N/A
BASEMENT_REMODELING N/A
BASEMENT_WATERPROOFING N/A
BRICK_WORK N/A
CABINET_INSTALL N/A
CABINET_REFACING N/A
CARPENTRY N/A
CARPET_WHOLESALE N/A
CHIMNEY_CLEANING N/A
CARPET_CLEANING N/A
HOUSE_CLEANING N/A
OFFICE_CLEANING N/A
UPHOLSTERY_CLEANING N/A
WINDOWS_CLEANING N/A
CONCRETE_FLATWORK ConcreteProjectScope (Install, Repair) Yes Install
CONCRETE_FLATWORK CommercialLocation (Home,Business) Yes Home
CONCRETE_FOUNDATION ConcreteProjectScope (Install, Repair) Yes Install
CONCRETE_FOUNDATION CommercialLocation (Home,Business) Yes Home
CONCRETE_STAMPED_COLOR ConcreteProjectScope (Install, Repair) Yes Install
CONCRETE_STAMPED_COLOR CommercialLocation (Home,Business) Yes Home
COUNTERTOP CountertopType (Concrete, Granite, Laminate, Marble, Other Solid Stone, Solid Surface, Stainless Steel, Wood) Yes Marble
COUNTERTOP CountertopProjectScope (Install, Repair) Yes Install
CUSTOM_HOMES_WITH_LOT N/A
CUSTOM_HOMES_WITHOUT_LOT N/A
DECK DeckProjectScope (Cleaning, Install, Repair) Yes Install
DOOR DoorType (Storm Door, Exterior, Interior, Sliding Door) Yes Storm%20Door
DOOR DoorProjectScope (Install, Repair) Yes Install
DOOR CommercialLocation (Business, Home) Yes Home
DRAINAGE N/A
DRYROT N/A
DRYWALL_SHEETROCK DrywallProjectScope (Install, Repair) Yes Install
ELECTRICAL ElectricalProjectScope (Install, Repair) Yes Install
EXCAVATION N/A
FENCE_VINYL FencingProjectScope (Install, Repair) Yes Install
FENCE_WOOD FencingProjectScope (Install, Repair) Yes Install
FENCING_CHAINLINK FencingProjectScope (Install, Repair) Yes Install
CARPET FlooringProjectScope (Install, Repair) Yes Install
CARPET MaterialPurchase Have you already purchased materials (Yes, No) Yes, If Install No
FLOORING_HARDWOOD FlooringProjectScope (Install, Repair, Refinishing) Yes Install
FLOORING_HARDWOOD MaterialPurchase Have you already purchased materials (Yes, No) Yes, If Install No
FLOORING_HARDWOOD CommercialLocation Kind of location (Business, Home) Yes, If Repair Home
FLOORING_LAMINATE FlooringProjectScope (Install, Repair) Yes Install
FLOORING_LAMINATE MaterialPurchase Have you already purchased materials (Yes, No) Yes, If Install No
FLOORING_LAMINATE CommercialLocation Kind of location (Business, Home) Yes, If Repair Home
FLOORING_SUBFLOORS FlooringProjectScope (Install, Repair) Yes Install
FLOORING_TILE FlooringProjectScope (Install, Repair) Yes Install
FLOORING_VINYL_LINOLEUM FlooringProjectScope (Install, Repair) Yes Install
FLOORING_VINYL_LINOLEUM MaterialPurchase Have you already purchased materials (Yes, No) Yes, If Install No
FLOORING_VINYL_LINOLEUM CommercialLocation Kind of location (Business, Home) Yes, If Repair Home
FRAMING N/A
GARAGE_DOOR GarageDoorProjectScope (Install, Repair) Yes Install
GARAGE_DOOR CommercialLocation Kind of location (Business, Home) Yes, If Repair Home
GARAGE_REMODEL CommercialLocation Kind of location (Business, Home) Yes Home
HANDYMAN CommercialLocation (Business, Home) Yes Home
HOME_MAGAZINE N/A
INSULATION SubProductService (Batts, Blown, Spray, NotSure) Yes Blown
DEBRIS_HAULING N/A
LANDSCAPING_ARCHITECT N/A
LANDSCAPING_DESIGN_INSTALL N/A
LANDSCAPING_LAWN_AERATING N/A
LANDSCAPING_LAWN_SEEDING N/A
LANDSCAPING_MAINTENANCE N/A
LANDSCAPING_SOD N/A
LAWN_TREATMENT N/A
RETAINING_WALLS N/A
SPRINKLER SprinklerProjectScope (Install, Repair) Yes Install
MARBLE_AND_GRANITE N/A
EXTERIOR_PAINTING N/A
INTERIOR_PAINTING NumberOfRooms (1-2, 3-4, 5-6, 7-8, 9 or more) Yes 9%20or%20more
PATIO_COVERS N/A
PEST_CONTROL PestType (BirdsBats, BugsInsects, Rodents, SmallAnimals, Termite) Yes BugsInsects
PEST_CONTROL CommercialLocation (Business, Home) Yes Home
PLUMBING PlumbingProjectScope (Install, Repair) Yes Repair
POOL PoolType (InGround, AboveGround) Yes InGround
POOL PoolProjectScope (Install, Maintenance, Repair) Yes Install
POOL InGroundType (Concrete, Fiberglass, VinylLined) Yes, if InGround Fiberglass
POOL CommercialLocation (Business, Home) Yes Home
POOL MaterialPurchase Have you already purchased materials (Yes, No) Yes, If AboveGround No
POWER_WASHING N/A
REMODELING N/A
ROOM_ADDITIONS N/A
SATELLITE_TV N/A
SEPTIC_SEWER N/A
SHEDS N/A
STUCCO_EXTERIOR ProjectPlan (Siding for a new home, Replace existing siding, Repair section(s) of siding, Siding for a new addition) Yes Replace%20existing%20siding
SKYLIGHT N/A
SNOW_REMOVAL N/A
STONE_MASONRY N/A
STORAGE N/A
STUCCO_INTERIOR N/A
SUNROOM N/A
TILE_EXTERIOR N/A
TILE_INTERIOR N/A
WALLPAPER N/A
WINDOW_BLINDS N/A
WINDOW_DRAPERIES N/A
WINDOW_SHUTTERS N/A
WIRING_LOW_VOLTAGE N/A

Examples

Ping Examples

Example Ping Request:

POST /modernize/coreg/hsleadcapture HTTP/1.1 Host: https://example.leadprosper.tech Content-Type: application/x-www-form-urlencoded Content-Length: 350 pingType=v2&tagId=204670250&service=WINDOWS&PC=99751&NumberOfWindows=6-9&WindowsProjectScope=Install&BuyTimeframe=Immediately&OwnHome=Yes&HomePhoneConsent=Yes&LeadIDToken=EAF0AAF2-55CD-08A7-DE78-C5A090B3A57B&TrustedFormToken=https%3A%2F%2Fcert.trustedform.com%2F5d9f37382eca1518c752db469cacb6668049c8d3&PublisherSubID=123456&PartnerSourceID=CampaignA

Example Ping Response - Success:

200 OK { "STATUS":"SUCCESS", "PINGTOKEN":"50108462152", "PRICE":"50" }

Example Ping Response - Unmatched:

200 OK { "STATUS":"REJECTED" }

Example Error Response - Not Authorized for Service:

200 OK { "STATUS":"ERROR", "VALIDATION MESSAGE":"900- Service/Pricing not setup - please contact your account representative." }

Post Examples

Example Post Request (newline characters shown for clarity):

POST /modernize/coreg/hsleadcapture HTTP/1.1 Host: https://example.leadprosper.tech Content-Type: application/x-www-form-urlencoded Content-Length: 522 PingToken=50108510154&tagID=204670250&service=WINDOWS&PC=99751&NumberOfWindows=6-9&WindowsProjectScope=Install&BuyTimeframe=Immediately&OwnHome=Yes&LeadIDToken=EAF0AAF2-55CD-08A7-DE78-C5A090B3A57B&TrustedFormToken=https%3A%2F%2Fcert.trustedform.com%2F5d9f37382eca1518c752db469cacb6668049c8d3&PublisherSubID=123456&PartnerSourceID=CampaignA&HomePhoneConsentLanguage=Fake%20example%20I%20consent%20to%20receiving%20calls%20etc.&FN=Quin&LN=Street&S1=9305%20Nimbus%20Ave&CT=Kobuk&SP=AK&HP=5039065030&EM=bizdev%40quinstreet.com

Example Post Response - Accepted:

200 OK { "STATUS":"ACCEPTED", "GDCKEY":"10221479803" }

Example Post Response - Rejected for Validation Failure:

200 OK { "STATUS":"REJECTED", "VALIDATIONMESSAGE":"Lead is failed in Targus Validations" }

Example Post Response - Rejected for Vendor Duplicate

200 OK { "STATUS":"REJECTED", "VALIDATIONMESSAGE":"Lead already submitted for the vendors matched"} }

Example Post Response - Error, Invalid Zip

200 OK { "STATUS":"REJECTED", "VALIDATION MESSAGE":"Lead is rejected", "ERRORS":[ "Invalid Zip Code" ] }

Example Post Response - Error, Invalid Service

200 OK { "STATUS":"REJECTED", "VALIDATION MESSAGE":"Lead is rejected", "ERRORS":[ "Please fix the service code: WAS" ] }

Response & Error Codes

Ping

STATUS VALIDATION MESSAGE Meaning
REJECTED N/A No matches were found for the given lead
ERROR 100-Invalid Username and Password You are not authorized to use the service with the given credentials. Check your tagId and consult with your account manager if needed. IMPORTANT: tagID varies by environment. When submitting to the production environment, use your production tagID. Test submissions to the staging environment should use 204670250. Test submissions are not billable.
ERROR 200-Service is required A service field was either not given or contains an invalid value. NOTE: check casing of both the key and value. See Common Parameters and list of service codes above.
ERROR 300-Zipcode is required A zip/postal code (PC field) was either not found or is invalid.
ERROR 900- Duplicate Ping Request The ping is a duplicate, meaning we have received another ping with the same service + zip from you within the past 10 minutes.
ERROR 900- Service/Pricing not setup - please contact your account representative. You are not authorized to post leads for the given service code. Consult your account manager if needed.

Post

STATUS VALIDATION MESSAGE ERRORS Meaning
REJECTED Lead is rejected N/A No matches were found for the given lead.
REJECTED Lead is already submitted for the vendors matched N/A Matched vendors have already received the lead.
REJECTED Lead is rejected as rejected by matched vendors N/A Matched vendors did not accept the lead.
REJECTED Lead is rejected OwnHome () is a Required field Invalid or missing OwnHome field.
REJECTED Lead is rejected Service () is a Required field Invalid or missing service field.
REJECTED Lead is rejected [{}] Another validation error occurred. Examples include: invalid contact information (first name, last name, address), obscenity, invalid compliance token (e.g., TrustedForm), fraud detected, or other error.

Additional Tips

tagId Field

The tagId is unique to your publisher account and authorizes you to send leads for particular services. tagID=204670250 is used only for the Staging environment. Once we confirm stage tests and you move to using the production API, this value must be replaced with the tagID value given to you by your account manager. NOTE: Test submissions are not billable.

pingType and PingToken Fields

Compliance Certification Token