NAV Navbar
JSON
Agilant Solutions, Inc.
TOGa Core API v2.3
Updated 1/4/2021

Overview

Introduction

This API implements functionality for utilizing the core features of Agilant’s TOGa system through a RESTful HTTP transaction containing a JSON payload.

Endpoints

Beta/Test/Sandbox Environment
https://api.beta.agilantsolutions.com


Production Environment
https://api.agilantsolutions.com

Structure & Schema

Authentication & Authorization

Required Request Headers for Every Transaction

Header FieldTypeDescription
Content-TypeStringMust be set to application/json
TimestampStringThe current timestamp of your transaction in ISO 8601 notation.
Example: 2019-01-02T17:34:52-05:00
AuthorizationStringConcatenated string of your public API key, followed by a literal period (.), followed by your signature. Your signature is your timestamp value, signed using your secret API key through the HMAC-SHA-256 cryptographic hash algorithm in a raw binary format and then Base64 encoded.
Format: {publicKey}.{signatureOfTimestampUsingSecretKey}

Sample Authentication Request Headers


Content-Type: application/json
Timestamp: 2019-01-02T17:34:52-05:00
Authorization: 1111AAAA-22BB-33CC-44DD-555555EEEEEE.Omjruf/UNd+rKEbjobxJzky84h6XOE9o9jz6/IKqc7Q=

Sample Authentication Request Headers

See the sample request using the sample information below.

Sample PHP Code for Assembling Request Headers

<?php

$publicApiKey 
'1111AAAA-22BB-33CC-44DD-555555EEEEEE';     // Replace with your Public API Key
$secretApiKey 'EEEE5555-DD44-CC33-BB22-AAAAAA111111';     // Replace with your Secret API Key

$timestamp date('c'time());
$headers = [
    
'Content-Type: application/json',
    (
'Timestamp: '.$timestamp),
    (
'Authorization: '.$publicApiKey.'.'.base64_encode(hash_hmac('SHA256'$timestamp$secretApiKeytrue)))
];

?>

Responses

Sample Response Headers


Content-Type: application/json
Content-Length: 354

Response Headers for Every Transaction

Header FieldTypeDescription
Content-TypeStringWill always be set to application/json
Content-LengthIntegerLength of the response payload in bytes.

Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
201 CREATEDThe record was successfully created.
(Applicable only to POST requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.
401 UNAUTHORIZEDAuthentication or authorization failed.Review the returned errors and correct the issue. If the problem persists, you may not be permitted to perform this API call.
403 FORBIDDENAccess was denied when trying to retrieve data for a record.Ensure you have proper authorization to access the record.
404 NOT FOUNDThe record could not be located.Ensure you have requested a record that exists.
405 METHOD NOT ALLOWEDThe requested action is not supported.Ensure that you are calling a valid API method and using the correct method and route.
408 REQUEST TIMEOUTA connection error was encountered and the request may or may not have completed successfully.Retry the transaction and/or perform other GET requests to check if the previous request succeeded.
422 UNPROCESSABLE ENTITYThe request structure is correct and the server understands the request but is unable to process the transaction. This typically can occur in a POST request if the record being created or changed already exists.Ensure you are not trying to create the same record that was already processed in a previous transaction.
500 INTERNAL SERVER ERRRORAn unexpected internal server error was encountered.Contact the administrator. Further analysis and debugging may need to be performed.
502 BAD GATEWAYA temporary network issue occurred when receiving the request. This is rare and typically caused by a very temporary network issue which should resolve within a few seconds.Retry the transaction or try again later. If the problem persists, please contact the administrator.
504 GATEWAY TIMEOUTA network issue occurred when receiving the request.Retry the transaction or try again later. If the problem persists, please contact the administrator.

PHP Example

<?php

$endpoint 
'https://api.beta.agilantsolutions.com';        // SANDBOX ENDPOINT
//$endpoint = 'https://api.agilantsolutions.com';           // PRODUCTION ENDPOINT

$publicApiKey '1111AAAA-22BB-33CC-44DD-555555EEEEEE';     // Replace with your Public API Key
$secretApiKey 'EEEE5555-DD44-CC33-BB22-AAAAAA111111';     // Replace with your Secret API Key

$method 'GET';
$route '/provider';
$payload '{"providers":["C638C170-3EC1-4DF2-942C-1D1C3AD74FBC","16527A9E-4048-452CA8DF-605E1038A313"]}';

//////////////////////////////////////////////////

$url = ($endpoint $route);
$timestamp date('c'time());
$headers = [
    
'Content-Type: application/json',
    (
'Timestamp: '.$timestamp),
    (
'Authorization: '.$publicApiKey.'.'.base64_encode(hash_hmac('SHA256'$timestamp$secretApiKeytrue)))
];
$ch curl_init($url);
curl_setopt($chCURLOPT_CUSTOMREQUEST$method);
curl_setopt($chCURLOPT_POSTFIELDS$payload);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
curl_setopt($chCURLOPT_HTTPHEADER$headers);
$responseBody curl_exec($ch);
$responseCode curl_getinfo($chCURLINFO_HTTP_CODE);
curl_close($ch);

echo 
'responseCode=' $responseCode '<br>';
echo 
'responseBody=' $responseBody;

///////////////////////////////////////////////

/*

EXAMPLE OUTPUT:

responseCode=200
responseBody=
{
    "success": true,
    "error": "",
    "providers": [
        {
            "providerId": "C638C170-3EC1-4DF2-942C-1D1C3AD74FBC",
            "providerName": "Porch",
            "avgRating": 4.3,
            "reviews": [
                {
                    "name": "Jane Doe",
                    "rating": 4.7,
                    "review": "I like this service very much!"
                },
                {
                    "name": "John Smith",
                    "rating": 3.5,
                    "review": "I was quite happy!"
                }
            ]
        },
        {
            "providerId": "16527A9E-4048-452C-A8DF-605E1038A313",
            "providerName": "Hello Tech",
            "avgRating": 3.1,
            "reviews": [
                {
                    "name": "Mary Doe",
                    "rating": 2.7,
                    "review": "I was not happy with this service.
                },
                {
                    "name": "Jim Dean",
                    "rating": 4.1,
                    "review": "This looks really nice!"
                }
            ]
        }
    ]
}
*/

Enumerated Lists

Cart Statuses

Defines the overall status of the appointments within a cart.

Values

ValueDescription
PENDINGThe appointment window request is pending submission for processing
IN_PROGRESSThe appointment window request is processing
CONFIRMEDThe appointment window request is confirmed
COMPLETEThe appointment is completed
CANCELLEDThe appointment window request was cancelled

Question Types

Defines the types of question.

Values

ValueDescription
BOOLEANShould be shown as a YES/NO question
RADIOShould be shown as a radio question with multiple options where only one answer can be selected
CHECKBOXShould be shown as a checkbox question with multiple options where multiple answers can be selected
DROPDOWNShould be shown as a dropdown/select question with multiple options where onlt one answer can be selected
TEXTFIELDShould be shown as a single line text field allowing for manual user input
TEXTAREAShould be shown as a multiple line text area field allowing for manual user input

Data Objects

Customer

Sample Customer Object


{
    "id" : "3b8cfce7-e219-e4f9-b1d6-c95c589380e4",
    "businessName" : "XYZ Industries",
    "firstName" : "John",
    "lastName" : "Smith",
    "emailAddress" : "jsmith@xyzindustries.com",
    "phoneNumber" : "123-456-7890",
    "address1" : "123 Test Street",
    "address2" : "Suite 543",
    "city" : "Testville",
    "state" : "TN",
    "zipCode" : "92956",
    "notes" : "Please call upon arrival"
}

Represents a customer record.

FieldTypeDescription
idStringYour unique identifer of the customer record in your system to reference later.
businessNameStringCustomer's business name
firstNameStringCustomer's first name
lastNameStringCustomer's last name
emailAddressStringCustomer's email address
phoneNumberStringCustomer's phone number
address1StringCustomer's appointment service address line 1
address2StringCustomer's appointment service address line 2
cityStringCustomer's appointment city
stateStringCustomer's appointment state
zipCodeStringCustomer's appointment zipCode
notesStringCustomer notes which will be passed through to the provider for the appointment

Geolocation

Sample Geolocation Object


{
    "zipCode" : "92956",
    "latitude" : 53.36236,
    "longitude" : -6.261633,
    "accuracy" : 150
}

Represents a geographical location object.

FieldTypeDescription
zipCodeStringZIP code used for finding available services
latitudeFloatLatitude to use for finding available services
longitudeFloatLongitude to use for finding available services
accuracyIntegerEstimated accuracy (in meters) of radius around the latitude/longitude to use for finding available services

Product

Sample Product Object


{
    "id" : "73316544-3729-c452-b3f3-83223529369e",
    "departmentCode" : "200",
    "classCode" : "210",
    "subclassCode" : "220",
    "familyCode" : "260",
    "skuNumber" : "PS140E-03CU8",
    "upcCode" : "89072345907825967245",
    "manufacturer" : "Toshiba",
    "model" : "Satellite 1400-153E",
    "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
    "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
    "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
    "answer" : [
        "71ee9886-48b9-6ffb-7fc4-c5008586c848",
        "99e01d04-c154-e813-11b8-7ac70f4ee179"
    ]
}

Represents a product object.

FieldTypeDescription
idStringYour unique product reference number or identifier to the product record in your system.
departmentCodeStringProduct department code
classCodeStringProduct class code
subclassCodeStringProduct subclass code
familyCodeStringProduct family code
skuNumberStringProduct SKU number
upcCodeStringProduct UPC code
manufacturerStringProduct manufacturer
modelStringProduct model number
shortDescriptionStringShort description of the product
longDescriptionStringLong description of the product
scrubDataStringLong text block of the product details used to scrub and locate applicable services.
answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.

Availability

Sample Availability Object


{
    "id" : "3e80732c-9c38-e5a8-fb0a-068b1404a1b8",
    "serviceId" : "5df9fc2a-759e-8c2d-94e1-8ec82034db1a",
    "providerId" : "e774d149-3170-2d59-a29e-1569a58b6525",
    "windowStart" : "2020-07-01T15:30:00-05:00",
    "windowEnd" : "2020-07-01T17:30:00-05:00"
}

Represents a service appointment availability object.

FieldTypeDescription
idStringUnique identifer of the availabilty record
serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
providerIdStringUnique identifer of the provider record handling this appointment
windowStartDate/TimeStarting date/time of the appointment window
windowEndDate/TimeEnding date/time of the appointment window

Answer

Sample Answer Object


{
    "id" : "e897c60c-8eee-c10f-f21c-e9b60499ffc1",
    "answer" : "I have not backed up my system recently"
}

Represents an answer to a question object.

FieldTypeDescription
idStringUnique identifer of the answer record for a particular question
answerStringThe answer option to be presented to the customer

Question

Sample Question Object


{
    "id" : "15e43784-fe92-51bf-6176-eb0f2abbf0b2",
    "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
    "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
    "visibleOnAnswerId" : null,
    "sortOrder" : 1,
    "required" : true,
    "type" : "BOOLEAN",
    "question" : "Is the installation location on ground level?",
    "answer" : [
        {
            "id" : "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
            "answer" : "Yes"
        },
        {
            "id" : "e18b9c0e-f2b3-d586-89e7-3f8bc276dc05",
            "answer" : "No"
        }
    ]
}

Represents a product question object.

FieldTypeDescription
idStringUnique identifer of the question record
productIdStringYour unique product reference number or identifier to the product record in your system.
serviceIdStringUnique service reference identifier.
visibleOnAnswerIdStringIf this is a null value, then this question should always be visible to the customer. If this field does have a value, then this question should not appear until the corresponding answer{}.id has been selected by the customer.
sortOrderIntegerSort order the question should appear in
requiredBooleanWhether or not the question is required to be answered
typeStringThe type of question. See Question Types for all possible values.
questionStringThe question to be asked of the customer
answer[]ArrayAn array of Answer objects only applicable to BOOLEAN, RADIO, CHECKBOX, and DROPDOWN question types.
answer[]{}.idStringUnique identifer of the answer record for a particular question
answer[]{}.answerStringThe answer option to be presented to the customer

User Review

Sample Review Object


{
    "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
    "name" : "Jane Doe",
    "rating" : 5,
    "review" : "This service is great! I use it all the time!"
}

Represents a user review object.

FieldTypeDescription
idStringUnique identifier of the review record.
nameStringName of the reviewer
ratingFloatUser rating of the service on a scale between 1.0 and 5.0
reviewStringText block of the user's review

Provider

Sample Provider Object


{
    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
    "productId" : "c62e34fa-14bf-b11f-18d6-62bf9ff39ee1",
    "name" : "Install Guys",
    "cost" : 49.99,
    "avgRating" : 4.5,
    "review" : [
        {
            "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
            "name" : "Jane Doe",
            "rating" : 5,
            "review" : "This service is great! I use it all the time!"
        },
        {
            "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
            "name" : "James Smith",
            "rating" : 4,
            "review" : "Very polite and knoweledgable technician!  Thanks!"
        }
    ]
}

Represents a provider object.

FieldTypeDescription
idStringUnique identifier of the provider record
productIdStringYour identifier of the product this service is for.
nameStringProvider's name
costFloatUsed within service records, this represents the unit cost of the service for that provider
avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
review[]{}.idStringUnique identifier of the review record.
review[]{}.nameStringName of the reviewer
review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
review[]{}.reviewStringText block of the user's review

Service

Sample Service Object


{
    "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
    "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
    "sortOrder" : 1,
    "skuNumber" : "IHIO-DOORBELL",
    "upcCode" : "823567917726452456",
    "price" : 99.99,
    "shortDescription" : "In-Home Smart Doorbell Installation",
    "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
    "minAvailabilityWindows" : 1,
    "maxAvailabilityWindows" : 3,
    "nextAvailableProviderId" : "65d7299b-d4f7-9a57-c56b-ef1761e2851f",
    "nextAvailableStart" : "2020-09-01T14:00:00-05:00",
    "nextAvailableEnd" : "2020-09-01T16:00:00-05:00",
    "provider" : [
        {
            "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "name" : "Install Guys",
            "cost" : 49.99,
            "avgRating" : 4.5,
            "review" : [
                {
                    "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                    "name" : "Jane Doe",
                    "rating" : 5,
                    "review" : "This service is great! I use it all the time!"
                },
                {
                    "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                    "name" : "James Smith",
                    "rating" : 4,
                    "review" : "Very polite and knoweledgable technician!  Thanks!"
                }
            ]
        },
        {
            "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "name" : "Autohome Inc",
            "cost" : 39.99,
            "avgRating" : 3.5,
            "review" : [
                {
                    "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                    "name" : "Debby Smith",
                    "rating" : 3,
                    "review" : "They were all right, I'd probably use them again."
                },
                {
                    "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                    "name" : "Todd Peterson",
                    "rating" : 4,
                    "review" : "Was quite happy with the way it turned out!"
                }
            ]
        }
    ],
    "availability" : [
        {
            "id" : "3a8cec43-e477-9137-6aa2-9e16cf4d6960",
            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "windowStart" : "2020-07-01T15:30:00-05:00",
            "windowEnd" : "2020-07-01T17:30:00-05:00"
        },
        {
            "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "windowStart" : "2020-07-01T17:30:00-05:00",
            "windowEnd" : "2020-07-01T19:30:00-05:00"
        },
        {
            "id" : "f43f65fd-7fa5-e50f-6a37-7e8e29560c86",
            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "providerId" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
            "windowStart" : "2020-07-01T15:30:00-05:00",
            "windowEnd" : "2020-07-02T17:30:00-05:00"
        }
    ],
    "confirmedAvailability" : {
        "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
        "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
        "windowStart" : "2020-07-01T17:30:00-05:00",
        "windowEnd" : "2020-07-01T19:30:00-05:00"
    }
}

Represents a service object.

FieldTypeDescription
idStringUnique identifier of the service record
productIdStringYour identifier of the product this service is for.
preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
sortOrderIntegerSort order the service should appear in
skuNumberStringSKU number of the service
upcCodeStringUPC code of the service
priceFloatUnit sell price of the service
shortDescriptionStringShort description of the service
longDescriptionStringLong description of the service
minAvailabilityWindowsIntegerThe minimum number of availability windows the customer needs to select to create an appointment.
maxAvailabilityWindowsIntegerThe maximum number of availability windows the customer needs to select to create an appointment.
nextAvailableProviderIdStringUsed within calls that utilize a Geolocation object. Identifer of the provider with the next available appointment window.
nextAvailableStartDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window start date/time.
nextAvailableEndDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window end date/time.
provider[]ArrayAn array of Provider objects capable of providing this service
provider[]{}.idStringUnique identifier of the provider record
provider[]{}.productIdStringYour identifier of the product this service is for.
provider[]{}.nameStringProvider's name
provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
provider[]{}.review[]{}.idStringUnique identifier of the review record.
provider[]{}.review[]{}.nameStringName of the reviewer
provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
provider[]{}.review[]{}.reviewStringText block of the user's review
availability[]ArrayAn array of Availability objects representing available appointment windows for this service.
availability[]{}.idStringUnique identifer of the availabilty record
availability[]{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
availability[]{}.providerIdStringUnique identifer of the provider record handling this appointment
availability[]{}.windowStartDate/TimeStarting date/time of the appointment window
availability[]{}.windowEndDate/TimeEnding date/time of the appointment window
confirmedAvailability{}AvailabilityAvailability object of the confirmed appointment
confirmedAvailability{}.idStringUnique identifer of the availabilty record
confirmedAvailability{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
confirmedAvailability{}.providerIdStringUnique identifer of the provider record handling this appointment
confirmedAvailability{}.windowStartDate/TimeStarting date/time of the appointment window
confirmedAvailability{}.windowEndDate/TimeEnding date/time of the appointment window

Cart

Sample Cart Object


{
    "id" : "e2b99b5e-6b64-d72f-c761-c87abe52f152",
    "status" : "CONFIRMED",
    "purchaseOrder" : "46273279ABC",
    "customer" : {
        "id" : "3b8cfce7-e219-e4f9-b1d6-c95c589380e4",
        "businessName" : "XYZ Industries",
        "firstName" : "John",
        "lastName" : "Smith",
        "emailAddress" : "jsmith@xyzindustries.com",
        "phoneNumber" : "123-456-7890",
        "address1" : "123 Test Street",
        "address2" : "Suite 543",
        "city" : "Testville",
        "state" : "TN",
        "zipCode" : "92956",
        "notes" : "Please call upon arrival"
    },
    "geolocation" : {
        "zipCode" : "92956",
        "latitude" : 53.36236,
        "longitude" : -6.261633,
        "accuracy" : 150
    },
    "product" : [
        {
            "id" : "73316544-3729-c452-b3f3-83223529369e",
            "departmentCode" : "200",
            "classCode" : "210",
            "subclassCode" : "220",
            "familyCode" : "260",
            "skuNumber" : "PS140E-03CU8",
            "upcCode" : "89072345907825967245",
            "manufacturer" : "Toshiba",
            "model" : "Satellite 1400-153E",
            "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
            "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
            "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
            "answer" : [
                "71ee9886-48b9-6ffb-7fc4-c5008586c848",
                "99e01d04-c154-e813-11b8-7ac70f4ee179"
            ]
        },
        {
            "id" : "51b7e3a4-ca48-0d6e-5aaf-ac6286a71a59",
            "departmentCode" : "200",
            "classCode" : "210",
            "subclassCode" : "220",
            "familyCode" : "260",
            "skuNumber" : "PS460E-079K9",
            "upcCode" : "78569386973496791038",
            "manufacturer" : "Toshiba",
            "model" : "Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD",
            "shortDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB",
            "longDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
            "scrubData" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
            "answer" : [
                "1cb93869-d385-b79c-09a3-7e1bbd58d681",
                "14d6ebe8-ca7b-42ce-a426-3b0286b57c50",
                "c128b155-203b-da68-2cbf-0f7394ee5af0"
            ]
        }
    ],
    "service" : [
        {
            "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 1,
            "skuNumber" : "IHIO-DOORBELL",
            "upcCode" : "823567917726452456",
            "price" : 99.99,
            "shortDescription" : "In-Home Smart Doorbell Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 3,
            "nextAvailableProviderId" : "65d7299b-d4f7-9a57-c56b-ef1761e2851f",
            "nextAvailableStart" : "2020-09-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-09-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 49.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                            "name" : "Jane Doe",
                            "rating" : 5,
                            "review" : "This service is great! I use it all the time!"
                        },
                        {
                            "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                            "name" : "James Smith",
                            "rating" : 4,
                            "review" : "Very polite and knoweledgable technician!  Thanks!"
                        }
                    ]
                },
                {
                    "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 39.99,
                    "avgRating" : 3.5,
                    "review" : [
                        {
                            "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                            "name" : "Debby Smith",
                            "rating" : 3,
                            "review" : "They were all right, I'd probably use them again."
                        },
                        {
                            "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                            "name" : "Todd Peterson",
                            "rating" : 4,
                            "review" : "Was quite happy with the way it turned out!"
                        }
                    ]
                }
            ],
            "availability" : [
                {
                    "id" : "3a8cec43-e477-9137-6aa2-9e16cf4d6960",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-01T15:30:00-05:00",
                    "windowEnd" : "2020-07-01T17:30:00-05:00"
                },
                {
                    "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-01T17:30:00-05:00",
                    "windowEnd" : "2020-07-01T19:30:00-05:00"
                },
                {
                    "id" : "f43f65fd-7fa5-e50f-6a37-7e8e29560c86",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "windowStart" : "2020-07-01T15:30:00-05:00",
                    "windowEnd" : "2020-07-02T17:30:00-05:00"
                }
            ],
            "confirmedAvailability" : {
                "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "windowStart" : "2020-07-01T17:30:00-05:00",
                "windowEnd" : "2020-07-01T19:30:00-05:00"
            }
        },
        {
            "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 2,
            "skuNumber" : "IHIO-SMARTTV",
            "upcCode" : "234527259871235915",
            "price" : 129.99,
            "shortDescription" : "In-Home Smart TV Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 2,
            "nextAvailableProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "nextAvailableStart" : "2020-10-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-10-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 89.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                            "name" : "Sally Stewart",
                            "rating" : 5,
                            "review" : "Very professional job, thank you!"
                        },
                        {
                            "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                            "name" : "Donna Meadows",
                            "rating" : 4,
                            "review" : "Happy with my TV installation!"
                        }
                    ]
                },
                {
                    "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 69.99,
                    "avgRating" : 3,
                    "review" : [
                        {
                            "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                            "name" : "Albert Macintosh",
                            "rating" : 3,
                            "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                        },
                        {
                            "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                            "name" : "Bob Fancy",
                            "rating" : 3,
                            "review" : "A few minutes late to show up but they did a nice job!"
                        }
                    ]
                }
            ],
            "availability" : [
                {
                    "id" : "75e9c27f-e10f-4be9-b12a-fe838df53cfc",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-09T15:30:00-05:00",
                    "windowEnd" : "2020-07-09T17:30:00-05:00"
                },
                {
                    "id" : "b4a46ba1-24ab-c1ed-d6ad-15205a348426",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-09T17:30:00-05:00",
                    "windowEnd" : "2020-07-09T19:30:00-05:00"
                },
                {
                    "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-10T15:30:00-05:00",
                    "windowEnd" : "2020-07-10T17:30:00-05:00"
                }
            ],
            "confirmedAvailability" : {
                "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                "windowStart" : "2020-07-10T15:30:00-05:00",
                "windowEnd" : "2020-07-10T17:30:00-05:00"
            }
        }
    ],
    "question" : [
        {
            "id" : "15e43784-fe92-51bf-6176-eb0f2abbf0b2",
            "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
            "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
            "visibleOnAnswerId" : null,
            "sortOrder" : 1,
            "required" : true,
            "type" : "BOOLEAN",
            "question" : "Is the installation location on ground level?",
            "answer" : [
                {
                    "id" : "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
                    "answer" : "Yes"
                },
                {
                    "id" : "e18b9c0e-f2b3-d586-89e7-3f8bc276dc05",
                    "answer" : "No"
                }
            ]
        },
        {
            "id" : "9b2f1470-c5da-2223-57a3-7c19928b57e6",
            "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
            "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
            "visibleOnAnswerId" : null,
            "sortOrder" : 2,
            "required" : true,
            "type" : "DROPDOWN",
            "question" : "Approximately how heavy is the smart TV?",
            "answer" : [
                {
                    "id" : "573b972a-57b5-e17d-3645-a066e85b9b4a",
                    "answer" : "Under 25 pounds"
                },
                {
                    "id" : "ee6848ba-31d2-c827-eab3-ef1cadc2a624",
                    "answer" : "25-50 pounds"
                },
                {
                    "id" : "f7df97d0-9167-7ad2-58cb-15ed1aca3553",
                    "answer" : "Over 50 pounds"
                }
            ]
        }
    ],
    "answer" : [
        "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
        "ee6848ba-31d2-c827-eab3-ef1cadc2a624"
    ]
}

Represents a cart object.

FieldTypeDescription
idStringYour unique identifier of the cart record in your system to reference again later.
statusStringOverall appointment status. See Cart Statuses for all possible values.
purchaseOrderStringYour purchase order number to pass through to the provider.
customer{}CustomerThe customer object containing details this cart is for.
customer{}.idStringYour unique identifer of the customer record in your system to reference later.
customer{}.businessNameStringCustomer's business name
customer{}.firstNameStringCustomer's first name
customer{}.lastNameStringCustomer's last name
customer{}.emailAddressStringCustomer's email address
customer{}.phoneNumberStringCustomer's phone number
customer{}.address1StringCustomer's appointment service address line 1
customer{}.address2StringCustomer's appointment service address line 2
customer{}.cityStringCustomer's appointment city
customer{}.stateStringCustomer's appointment state
customer{}.zipCodeStringCustomer's appointment zipCode
customer{}.notesStringCustomer notes which will be passed through to the provider for the appointment
geolocation{}GeolocationThe geolocation object containing location details of this cart which is used for finding availability.
geolocation{}.zipCodeStringZIP code used for finding available services
geolocation{}.latitudeFloatLatitude to use for finding available services
geolocation{}.longitudeFloatLongitude to use for finding available services
geolocation{}.accuracyIntegerEstimated accuracy (in meters) of radius around the latitude/longitude to use for finding available services
product[]ArrayAn array of Product objects in the cart
product[]{}.idStringYour unique product reference number or identifier to the product record in your system.
product[]{}.departmentCodeStringProduct department code
product[]{}.classCodeStringProduct class code
product[]{}.subclassCodeStringProduct subclass code
product[]{}.familyCodeStringProduct family code
product[]{}.skuNumberStringProduct SKU number
product[]{}.upcCodeStringProduct UPC code
product[]{}.manufacturerStringProduct manufacturer
product[]{}.modelStringProduct model number
product[]{}.shortDescriptionStringShort description of the product
product[]{}.longDescriptionStringLong description of the product
product[]{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.
product[]{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.
service[]ArrayAn array of Service objects in the cart
service[]{}.idStringUnique identifier of the service record
service[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
service[]{}.sortOrderIntegerSort order the service should appear in
service[]{}.skuNumberStringSKU number of the service
service[]{}.upcCodeStringUPC code of the service
service[]{}.priceFloatUnit sell price of the service
service[]{}.shortDescriptionStringShort description of the service
service[]{}.longDescriptionStringLong description of the service
service[]{}.minAvailabilityWindowsIntegerThe minimum number of availability windows the customer needs to select to create an appointment.
service[]{}.maxAvailabilityWindowsIntegerThe maximum number of availability windows the customer needs to select to create an appointment.
service[]{}.nextAvailableProviderIdStringUsed within calls that utilize a Geolocation object. Identifer of the provider with the next available appointment window.
service[]{}.nextAvailableStartDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window start date/time.
service[]{}.nextAvailableEndDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window end date/time.
service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
service[]{}.provider[]{}.idStringUnique identifier of the provider record
service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.provider[]{}.nameStringProvider's name
service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review
service[]{}.availability[]ArrayAn array of Availability objects representing available appointment windows for this service.
service[]{}.availability[]{}.idStringUnique identifer of the availabilty record
service[]{}.availability[]{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
service[]{}.availability[]{}.providerIdStringUnique identifer of the provider record handling this appointment
service[]{}.availability[]{}.windowStartDate/TimeStarting date/time of the appointment window
service[]{}.availability[]{}.windowEndDate/TimeEnding date/time of the appointment window
service[]{}.confirmedAvailability{}AvailabilityAvailability object of the confirmed appointment
service[]{}.confirmedAvailability{}.idStringUnique identifer of the availabilty record
service[]{}.confirmedAvailability{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
service[]{}.confirmedAvailability{}.providerIdStringUnique identifer of the provider record handling this appointment
service[]{}.confirmedAvailability{}.windowStartDate/TimeStarting date/time of the appointment window
service[]{}.confirmedAvailability{}.windowEndDate/TimeEnding date/time of the appointment window
question[]ArrayAn array of Question objects representing the questions to be asked of the customer for the products in the cart.
question[]{}.idStringUnique identifer of the question record
question[]{}.productIdStringYour unique product reference number or identifier to the product record in your system.
question[]{}.serviceIdStringUnique service reference identifier.
question[]{}.visibleOnAnswerIdStringIf this is a null value, then this question should always be visible to the customer. If this field does have a value, then this question should not appear until the corresponding answer{}.id has been selected by the customer.
question[]{}.sortOrderIntegerSort order the question should appear in
question[]{}.requiredBooleanWhether or not the question is required to be answered
question[]{}.typeStringThe type of question. See Question Types for all possible values.
question[]{}.questionStringThe question to be asked of the customer
question[]{}.answer[]ArrayAn array of Answer objects only applicable to BOOLEAN, RADIO, CHECKBOX, and DROPDOWN question types.
question[]{}.answer[]{}.idStringUnique identifer of the answer record for a particular question
question[]{}.answer[]{}.answerStringThe answer option to be presented to the customer
answer[]ArrayA simple array of answer{}.id values which have been answered by the customer and are used to locate applicable products.

Products

Retrieve Product ServicesGET /product/services

Use this request to retrieve all services applicable to a product.

Sample Request

GET /product/services

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "product" : {
        "id" : "73316544-3729-c452-b3f3-83223529369e",
        "departmentCode" : "200",
        "classCode" : "210",
        "subclassCode" : "220",
        "familyCode" : "260",
        "skuNumber" : "PS140E-03CU8",
        "upcCode" : "89072345907825967245",
        "manufacturer" : "Toshiba",
        "model" : "Satellite 1400-153E",
        "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
        "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
        "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
        "answer" : [
            "71ee9886-48b9-6ffb-7fc4-c5008586c848",
            "99e01d04-c154-e813-11b8-7ac70f4ee179"
        ]
    }
}

Input/Request Parameters

FieldTypeDescriptionRequired
product{}ProductProduct to be used in lookup.Yes
product{}.idStringYour unique product reference number or identifier to the product record in your system.Yes
product{}.departmentCodeStringProduct department codeNo
product{}.classCodeStringProduct class codeNo
product{}.subclassCodeStringProduct subclass codeNo
product{}.familyCodeStringProduct family codeNo
product{}.skuNumberStringProduct SKU numberNo
product{}.upcCodeStringProduct UPC codeNo
product{}.manufacturerStringProduct manufacturerNo
product{}.modelStringProduct model numberNo
product{}.shortDescriptionStringShort description of the productNo
product{}.longDescriptionStringLong description of the productNo
product{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.No
product{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.No

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "service" : [
        {
            "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 1,
            "skuNumber" : "IHIO-DOORBELL",
            "upcCode" : "823567917726452456",
            "price" : 99.99,
            "shortDescription" : "In-Home Smart Doorbell Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 49.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                            "name" : "Jane Doe",
                            "rating" : 5,
                            "review" : "This service is great! I use it all the time!"
                        },
                        {
                            "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                            "name" : "James Smith",
                            "rating" : 4,
                            "review" : "Very polite and knoweledgable technician!  Thanks!"
                        }
                    ]
                },
                {
                    "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 39.99,
                    "avgRating" : 3.5,
                    "review" : [
                        {
                            "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                            "name" : "Debby Smith",
                            "rating" : 3,
                            "review" : "They were all right, I'd probably use them again."
                        },
                        {
                            "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                            "name" : "Todd Peterson",
                            "rating" : 4,
                            "review" : "Was quite happy with the way it turned out!"
                        }
                    ]
                }
            ]
        },
        {
            "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 2,
            "skuNumber" : "IHIO-SMARTTV",
            "upcCode" : "234527259871235915",
            "price" : 129.99,
            "shortDescription" : "In-Home Smart TV Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 2,
            "nextAvailableProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "nextAvailableStart" : "2020-10-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-10-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 89.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                            "name" : "Sally Stewart",
                            "rating" : 5,
                            "review" : "Very professional job, thank you!"
                        },
                        {
                            "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                            "name" : "Donna Meadows",
                            "rating" : 4,
                            "review" : "Happy with my TV installation!"
                        }
                    ]
                },
                {
                    "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 69.99,
                    "avgRating" : 3,
                    "review" : [
                        {
                            "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                            "name" : "Albert Macintosh",
                            "rating" : 3,
                            "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                        },
                        {
                            "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                            "name" : "Bob Fancy",
                            "rating" : 3,
                            "review" : "A few minutes late to show up but they did a nice job!"
                        }
                    ]
                }
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
service[]ArrayAn array of Service objects.
service[]{}.idStringUnique identifier of the service record
service[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
service[]{}.sortOrderIntegerSort order the service should appear in
service[]{}.skuNumberStringSKU number of the service
service[]{}.upcCodeStringUPC code of the service
service[]{}.priceFloatUnit sell price of the service
service[]{}.shortDescriptionStringShort description of the service
service[]{}.longDescriptionStringLong description of the service
service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
service[]{}.provider[]{}.idStringUnique identifier of the provider record
service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.provider[]{}.nameStringProvider's name
service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve Available ServicesGET /product/services/available

Use this request to retrieve all available services applicable to a product in a certain geographical location.

Sample Request

GET /product/services/available

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "product" : {
        "id" : "73316544-3729-c452-b3f3-83223529369e",
        "departmentCode" : "200",
        "classCode" : "210",
        "subclassCode" : "220",
        "familyCode" : "260",
        "skuNumber" : "PS140E-03CU8",
        "upcCode" : "89072345907825967245",
        "manufacturer" : "Toshiba",
        "model" : "Satellite 1400-153E",
        "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
        "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
        "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
        "answer" : [
            "71ee9886-48b9-6ffb-7fc4-c5008586c848",
            "99e01d04-c154-e813-11b8-7ac70f4ee179"
        ]
    },
    "geolocation" : {
        "zipCode" : "92956",
        "latitude" : 53.36236,
        "longitude" : -6.261633,
        "accuracy" : 150
    }
}

Input/Request Parameters

FieldTypeDescriptionRequired
product{}ProductThe product to use for locating available servicesYes
product{}.idStringYour unique product reference number or identifier to the product record in your system.Yes
product{}.departmentCodeStringProduct department codeNo
product{}.classCodeStringProduct class codeNo
product{}.subclassCodeStringProduct subclass codeNo
product{}.familyCodeStringProduct family codeNo
product{}.skuNumberStringProduct SKU numberNo
product{}.upcCodeStringProduct UPC codeNo
product{}.manufacturerStringProduct manufacturerNo
product{}.modelStringProduct model numberNo
product{}.shortDescriptionStringShort description of the productNo
product{}.longDescriptionStringLong description of the productNo
product{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.No
product{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.No
geolocation{}GeolocationThe geolocation parameters used to find services aroundYes
geolocation{}.zipCodeStringZIP code used for finding available servicesNo
geolocation{}.latitudeFloatLatitude to use for finding available servicesNo
geolocation{}.longitudeFloatLongitude to use for finding available servicesNo
geolocation{}.accuracyIntegerEstimated accuracy (in meters) of radius around the latitude/longitude to use for finding available servicesNo

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "service" : [
        {
            "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 1,
            "skuNumber" : "IHIO-DOORBELL",
            "upcCode" : "823567917726452456",
            "price" : 99.99,
            "shortDescription" : "In-Home Smart Doorbell Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
            "provider" : {
                "0" : {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 49.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                            "name" : "Jane Doe",
                            "rating" : 5,
                            "review" : "This service is great! I use it all the time!"
                        },
                        {
                            "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                            "name" : "James Smith",
                            "rating" : 4,
                            "review" : "Very polite and knoweledgable technician!  Thanks!"
                        }
                    ]
                },
                "1" : {
                    "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 39.99,
                    "avgRating" : 3.5,
                    "review" : [
                        {
                            "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                            "name" : "Debby Smith",
                            "rating" : 3,
                            "review" : "They were all right, I'd probably use them again."
                        },
                        {
                            "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                            "name" : "Todd Peterson",
                            "rating" : 4,
                            "review" : "Was quite happy with the way it turned out!"
                        }
                    ]
                },
                "availability" : [
                    {
                        "id" : "3a8cec43-e477-9137-6aa2-9e16cf4d6960",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "windowStart" : "2020-07-01T15:30:00-05:00",
                        "windowEnd" : "2020-07-01T17:30:00-05:00"
                    },
                    {
                        "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "windowStart" : "2020-07-01T17:30:00-05:00",
                        "windowEnd" : "2020-07-01T19:30:00-05:00"
                    },
                    {
                        "id" : "f43f65fd-7fa5-e50f-6a37-7e8e29560c86",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                        "windowStart" : "2020-07-01T15:30:00-05:00",
                        "windowEnd" : "2020-07-02T17:30:00-05:00"
                    }
                ]
            }
        },
        {
            "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 2,
            "skuNumber" : "IHIO-SMARTTV",
            "upcCode" : "234527259871235915",
            "price" : 129.99,
            "shortDescription" : "In-Home Smart TV Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 2,
            "nextAvailableProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "nextAvailableStart" : "2020-10-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-10-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 89.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                            "name" : "Sally Stewart",
                            "rating" : 5,
                            "review" : "Very professional job, thank you!"
                        },
                        {
                            "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                            "name" : "Donna Meadows",
                            "rating" : 4,
                            "review" : "Happy with my TV installation!"
                        }
                    ]
                },
                {
                    "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 69.99,
                    "avgRating" : 3,
                    "review" : [
                        {
                            "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                            "name" : "Albert Macintosh",
                            "rating" : 3,
                            "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                        },
                        {
                            "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                            "name" : "Bob Fancy",
                            "rating" : 3,
                            "review" : "A few minutes late to show up but they did a nice job!"
                        }
                    ]
                }
            ],
            "availability" : [
                {
                    "id" : "75e9c27f-e10f-4be9-b12a-fe838df53cfc",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-09T15:30:00-05:00",
                    "windowEnd" : "2020-07-09T17:30:00-05:00"
                },
                {
                    "id" : "b4a46ba1-24ab-c1ed-d6ad-15205a348426",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-09T17:30:00-05:00",
                    "windowEnd" : "2020-07-09T19:30:00-05:00"
                },
                {
                    "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-10T15:30:00-05:00",
                    "windowEnd" : "2020-07-10T17:30:00-05:00"
                }
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
service[]ArrayAn array of Service objects.
service[]{}.idStringUnique identifier of the service record
service[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
service[]{}.sortOrderIntegerSort order the service should appear in
service[]{}.skuNumberStringSKU number of the service
service[]{}.upcCodeStringUPC code of the service
service[]{}.priceFloatUnit sell price of the service
service[]{}.shortDescriptionStringShort description of the service
service[]{}.longDescriptionStringLong description of the service
service[]{}.minAvailabilityWindowsIntegerThe minimum number of availability windows the customer needs to select to create an appointment.
service[]{}.maxAvailabilityWindowsIntegerThe maximum number of availability windows the customer needs to select to create an appointment.
service[]{}.nextAvailableProviderIdStringUsed within calls that utilize a Geolocation object. Identifer of the provider with the next available appointment window.
service[]{}.nextAvailableStartDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window start date/time.
service[]{}.nextAvailableEndDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window end date/time.
service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
service[]{}.provider[]{}.idStringUnique identifier of the provider record
service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.provider[]{}.nameStringProvider's name
service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review
service[]{}.availability[]ArrayAn array of Availability objects representing available appointment windows for this service.
service[]{}.availability[]{}.idStringUnique identifer of the availabilty record
service[]{}.availability[]{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
service[]{}.availability[]{}.providerIdStringUnique identifer of the provider record handling this appointment
service[]{}.availability[]{}.windowStartDate/TimeStarting date/time of the appointment window
service[]{}.availability[]{}.windowEndDate/TimeEnding date/time of the appointment window

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve Product ProvidersGET /product/providers

Use this request to retrieve all service provider details based upon a product.

Sample Request

GET /product/providers

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "product" : {
        "id" : "73316544-3729-c452-b3f3-83223529369e",
        "departmentCode" : "200",
        "classCode" : "210",
        "subclassCode" : "220",
        "familyCode" : "260",
        "skuNumber" : "PS140E-03CU8",
        "upcCode" : "89072345907825967245",
        "manufacturer" : "Toshiba",
        "model" : "Satellite 1400-153E",
        "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
        "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
        "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
        "answer" : [
            "71ee9886-48b9-6ffb-7fc4-c5008586c848",
            "99e01d04-c154-e813-11b8-7ac70f4ee179"
        ]
    },
    "geolocation" : {
        "zipCode" : "92956",
        "latitude" : 53.36236,
        "longitude" : -6.261633,
        "accuracy" : 150
    }
}

Input/Request Parameters

FieldTypeDescriptionRequired
product{}ProductThe product to use for locating available servicesYes
product{}.idStringYour unique product reference number or identifier to the product record in your system.Yes
product{}.departmentCodeStringProduct department codeNo
product{}.classCodeStringProduct class codeNo
product{}.subclassCodeStringProduct subclass codeNo
product{}.familyCodeStringProduct family codeNo
product{}.skuNumberStringProduct SKU numberNo
product{}.upcCodeStringProduct UPC codeNo
product{}.manufacturerStringProduct manufacturerNo
product{}.modelStringProduct model numberNo
product{}.shortDescriptionStringShort description of the productNo
product{}.longDescriptionStringLong description of the productNo
product{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.No
product{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.No
geolocation{}GeolocationThe geolocation parameters used to find services aroundYes
geolocation{}.zipCodeStringZIP code used for finding available servicesNo
geolocation{}.latitudeFloatLatitude to use for finding available servicesNo
geolocation{}.longitudeFloatLongitude to use for finding available servicesNo
geolocation{}.accuracyIntegerEstimated accuracy (in meters) of radius around the latitude/longitude to use for finding available servicesNo

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "provider" : [
        {
            "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "name" : "Install Guys",
            "cost" : 49.99,
            "avgRating" : 4.5,
            "review" : [
                {
                    "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                    "name" : "Jane Doe",
                    "rating" : 5,
                    "review" : "This service is great! I use it all the time!"
                },
                {
                    "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                    "name" : "James Smith",
                    "rating" : 4,
                    "review" : "Very polite and knoweledgable technician!  Thanks!"
                }
            ]
        },
        {
            "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "name" : "Autohome Inc",
            "cost" : 39.99,
            "avgRating" : 3.5,
            "review" : [
                {
                    "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                    "name" : "Debby Smith",
                    "rating" : 3,
                    "review" : "They were all right, I'd probably use them again."
                },
                {
                    "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                    "name" : "Todd Peterson",
                    "rating" : 4,
                    "review" : "Was quite happy with the way it turned out!"
                }
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
provider[]ArrayAn array of Provider objects.
provider[]{}.idStringUnique identifier of the provider record
provider[]{}.productIdStringYour identifier of the product this service is for.
provider[]{}.nameStringProvider's name
provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
provider[]{}.review[]{}.idStringUnique identifier of the review record.
provider[]{}.review[]{}.nameStringName of the reviewer
provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
provider[]{}.review[]{}.reviewStringText block of the user's review

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve RecommendationsGET /product/recommended

Use this request to retrieve both recommended services and products of a product.

Sample Request

GET /product/recommended

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "product" : {
        "id" : "73316544-3729-c452-b3f3-83223529369e",
        "departmentCode" : "200",
        "classCode" : "210",
        "subclassCode" : "220",
        "familyCode" : "260",
        "skuNumber" : "PS140E-03CU8",
        "upcCode" : "89072345907825967245",
        "manufacturer" : "Toshiba",
        "model" : "Satellite 1400-153E",
        "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
        "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
        "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
        "answer" : [
            "71ee9886-48b9-6ffb-7fc4-c5008586c848",
            "99e01d04-c154-e813-11b8-7ac70f4ee179"
        ]
    }
}

Input/Request Parameters

FieldTypeDescriptionRequired
product{}ProductThe product to use for locating available servicesYes
product{}.idStringYour unique product reference number or identifier to the product record in your system.Yes
product{}.departmentCodeStringProduct department codeNo
product{}.classCodeStringProduct class codeNo
product{}.subclassCodeStringProduct subclass codeNo
product{}.familyCodeStringProduct family codeNo
product{}.skuNumberStringProduct SKU numberNo
product{}.upcCodeStringProduct UPC codeNo
product{}.manufacturerStringProduct manufacturerNo
product{}.modelStringProduct model numberNo
product{}.shortDescriptionStringShort description of the productNo
product{}.longDescriptionStringLong description of the productNo
product{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.No
product{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.No

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "service" : [
        {
            "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 1,
            "skuNumber" : "IHIO-DOORBELL",
            "upcCode" : "823567917726452456",
            "price" : 99.99,
            "shortDescription" : "In-Home Smart Doorbell Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 49.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                            "name" : "Jane Doe",
                            "rating" : 5,
                            "review" : "This service is great! I use it all the time!"
                        },
                        {
                            "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                            "name" : "James Smith",
                            "rating" : 4,
                            "review" : "Very polite and knoweledgable technician!  Thanks!"
                        }
                    ]
                },
                {
                    "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 39.99,
                    "avgRating" : 3.5,
                    "review" : [
                        {
                            "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                            "name" : "Debby Smith",
                            "rating" : 3,
                            "review" : "They were all right, I'd probably use them again."
                        },
                        {
                            "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                            "name" : "Todd Peterson",
                            "rating" : 4,
                            "review" : "Was quite happy with the way it turned out!"
                        }
                    ]
                }
            ]
        },
        {
            "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 2,
            "skuNumber" : "IHIO-SMARTTV",
            "upcCode" : "234527259871235915",
            "price" : 129.99,
            "shortDescription" : "In-Home Smart TV Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 89.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                            "name" : "Sally Stewart",
                            "rating" : 5,
                            "review" : "Very professional job, thank you!"
                        },
                        {
                            "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                            "name" : "Donna Meadows",
                            "rating" : 4,
                            "review" : "Happy with my TV installation!"
                        }
                    ]
                },
                {
                    "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 69.99,
                    "avgRating" : 3,
                    "review" : [
                        {
                            "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                            "name" : "Albert Macintosh",
                            "rating" : 3,
                            "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                        },
                        {
                            "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                            "name" : "Bob Fancy",
                            "rating" : 3,
                            "review" : "A few minutes late to show up but they did a nice job!"
                        }
                    ]
                }
            ]
        }
    ],
    "product" : [
        {
            "id" : "73316544-3729-c452-b3f3-83223529369e",
            "departmentCode" : "200",
            "classCode" : "210",
            "subclassCode" : "220",
            "familyCode" : "260",
            "skuNumber" : "PS140E-03CU8",
            "upcCode" : "89072345907825967245",
            "manufacturer" : "Toshiba",
            "model" : "Satellite 1400-153E",
            "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
            "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)"
        },
        {
            "id" : "51b7e3a4-ca48-0d6e-5aaf-ac6286a71a59",
            "departmentCode" : "200",
            "classCode" : "210",
            "subclassCode" : "220",
            "familyCode" : "260",
            "skuNumber" : "PS460E-079K9",
            "upcCode" : "78569386973496791038",
            "manufacturer" : "Toshiba",
            "model" : "Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD",
            "shortDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB",
            "longDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)"
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
service[]ArrayAn array of recommended Service objects.
service[]{}.idStringUnique identifier of the service record
service[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
service[]{}.sortOrderIntegerSort order the service should appear in
service[]{}.skuNumberStringSKU number of the service
service[]{}.upcCodeStringUPC code of the service
service[]{}.priceFloatUnit sell price of the service
service[]{}.shortDescriptionStringShort description of the service
service[]{}.longDescriptionStringLong description of the service
service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
service[]{}.provider[]{}.idStringUnique identifier of the provider record
service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.provider[]{}.nameStringProvider's name
service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review
product[]ArrayAn array of recommended Product objects.
product[]{}.idStringYour unique product reference number or identifier to the product record in your system.
product[]{}.departmentCodeStringProduct department code
product[]{}.classCodeStringProduct class code
product[]{}.subclassCodeStringProduct subclass code
product[]{}.familyCodeStringProduct family code
product[]{}.skuNumberStringProduct SKU number
product[]{}.upcCodeStringProduct UPC code
product[]{}.manufacturerStringProduct manufacturer
product[]{}.modelStringProduct model number
product[]{}.shortDescriptionStringShort description of the product
product[]{}.longDescriptionStringLong description of the product

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve Recommended ServicesGET /product/recommended/services

Use this request to retrieve recommended services for a product.

Sample Request

GET /product/recommended/services

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "product" : {
        "id" : "73316544-3729-c452-b3f3-83223529369e",
        "departmentCode" : "200",
        "classCode" : "210",
        "subclassCode" : "220",
        "familyCode" : "260",
        "skuNumber" : "PS140E-03CU8",
        "upcCode" : "89072345907825967245",
        "manufacturer" : "Toshiba",
        "model" : "Satellite 1400-153E",
        "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
        "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
        "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
        "answer" : [
            "71ee9886-48b9-6ffb-7fc4-c5008586c848",
            "99e01d04-c154-e813-11b8-7ac70f4ee179"
        ]
    }
}

Input/Request Parameters

FieldTypeDescriptionRequired
product{}ProductThe product to use for locating available servicesYes
product{}.idStringYour unique product reference number or identifier to the product record in your system.Yes
product{}.departmentCodeStringProduct department codeNo
product{}.classCodeStringProduct class codeNo
product{}.subclassCodeStringProduct subclass codeNo
product{}.familyCodeStringProduct family codeNo
product{}.skuNumberStringProduct SKU numberNo
product{}.upcCodeStringProduct UPC codeNo
product{}.manufacturerStringProduct manufacturerNo
product{}.modelStringProduct model numberNo
product{}.shortDescriptionStringShort description of the productNo
product{}.longDescriptionStringLong description of the productNo
product{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.No
product{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.No

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "service" : [
        {
            "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 1,
            "skuNumber" : "IHIO-DOORBELL",
            "upcCode" : "823567917726452456",
            "price" : 99.99,
            "shortDescription" : "In-Home Smart Doorbell Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 49.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                            "name" : "Jane Doe",
                            "rating" : 5,
                            "review" : "This service is great! I use it all the time!"
                        },
                        {
                            "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                            "name" : "James Smith",
                            "rating" : 4,
                            "review" : "Very polite and knoweledgable technician!  Thanks!"
                        }
                    ]
                },
                {
                    "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 39.99,
                    "avgRating" : 3.5,
                    "review" : [
                        {
                            "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                            "name" : "Debby Smith",
                            "rating" : 3,
                            "review" : "They were all right, I'd probably use them again."
                        },
                        {
                            "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                            "name" : "Todd Peterson",
                            "rating" : 4,
                            "review" : "Was quite happy with the way it turned out!"
                        }
                    ]
                }
            ]
        },
        {
            "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 2,
            "skuNumber" : "IHIO-SMARTTV",
            "upcCode" : "234527259871235915",
            "price" : 129.99,
            "shortDescription" : "In-Home Smart TV Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 89.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                            "name" : "Sally Stewart",
                            "rating" : 5,
                            "review" : "Very professional job, thank you!"
                        },
                        {
                            "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                            "name" : "Donna Meadows",
                            "rating" : 4,
                            "review" : "Happy with my TV installation!"
                        }
                    ]
                },
                {
                    "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 69.99,
                    "avgRating" : 3,
                    "review" : [
                        {
                            "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                            "name" : "Albert Macintosh",
                            "rating" : 3,
                            "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                        },
                        {
                            "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                            "name" : "Bob Fancy",
                            "rating" : 3,
                            "review" : "A few minutes late to show up but they did a nice job!"
                        }
                    ]
                }
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
service[]ArrayAn array of recommended Service objects.
service[]{}.idStringUnique identifier of the service record
service[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
service[]{}.sortOrderIntegerSort order the service should appear in
service[]{}.skuNumberStringSKU number of the service
service[]{}.upcCodeStringUPC code of the service
service[]{}.priceFloatUnit sell price of the service
service[]{}.shortDescriptionStringShort description of the service
service[]{}.longDescriptionStringLong description of the service
service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
service[]{}.provider[]{}.idStringUnique identifier of the provider record
service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.provider[]{}.nameStringProvider's name
service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve Recommended ProductsGET /product/recommended/products

Use this request to retrieve recommended products for a product.

Sample Request

GET /product/recommended/products

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "product" : {
        "id" : "73316544-3729-c452-b3f3-83223529369e",
        "departmentCode" : "200",
        "classCode" : "210",
        "subclassCode" : "220",
        "familyCode" : "260",
        "skuNumber" : "PS140E-03CU8",
        "upcCode" : "89072345907825967245",
        "manufacturer" : "Toshiba",
        "model" : "Satellite 1400-153E",
        "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
        "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
        "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
        "answer" : [
            "71ee9886-48b9-6ffb-7fc4-c5008586c848",
            "99e01d04-c154-e813-11b8-7ac70f4ee179"
        ]
    }
}

Input/Request Parameters

FieldTypeDescriptionRequired
product{}ProductThe product to use for locating available servicesYes
product{}.idStringYour unique product reference number or identifier to the product record in your system.Yes
product{}.departmentCodeStringProduct department codeNo
product{}.classCodeStringProduct class codeNo
product{}.subclassCodeStringProduct subclass codeNo
product{}.familyCodeStringProduct family codeNo
product{}.skuNumberStringProduct SKU numberNo
product{}.upcCodeStringProduct UPC codeNo
product{}.manufacturerStringProduct manufacturerNo
product{}.modelStringProduct model numberNo
product{}.shortDescriptionStringShort description of the productNo
product{}.longDescriptionStringLong description of the productNo
product{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.No
product{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.No

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "product" : [
        {
            "id" : "73316544-3729-c452-b3f3-83223529369e",
            "departmentCode" : "200",
            "classCode" : "210",
            "subclassCode" : "220",
            "familyCode" : "260",
            "skuNumber" : "PS140E-03CU8",
            "upcCode" : "89072345907825967245",
            "manufacturer" : "Toshiba",
            "model" : "Satellite 1400-153E",
            "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
            "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)"
        },
        {
            "id" : "51b7e3a4-ca48-0d6e-5aaf-ac6286a71a59",
            "departmentCode" : "200",
            "classCode" : "210",
            "subclassCode" : "220",
            "familyCode" : "260",
            "skuNumber" : "PS460E-079K9",
            "upcCode" : "78569386973496791038",
            "manufacturer" : "Toshiba",
            "model" : "Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD",
            "shortDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB",
            "longDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)"
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
product[]ArrayAn array of recommended Product objects.
product[]{}.idStringYour unique product reference number or identifier to the product record in your system.
product[]{}.departmentCodeStringProduct department code
product[]{}.classCodeStringProduct class code
product[]{}.subclassCodeStringProduct subclass code
product[]{}.familyCodeStringProduct family code
product[]{}.skuNumberStringProduct SKU number
product[]{}.upcCodeStringProduct UPC code
product[]{}.manufacturerStringProduct manufacturer
product[]{}.modelStringProduct model number
product[]{}.shortDescriptionStringShort description of the product
product[]{}.longDescriptionStringLong description of the product

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve Product QuestionsGET /product/questions

Use this request to retrieve questions to be answered by the customer for a product.

Sample Request

GET /product/questions

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "product" : {
        "id" : "73316544-3729-c452-b3f3-83223529369e",
        "departmentCode" : "200",
        "classCode" : "210",
        "subclassCode" : "220",
        "familyCode" : "260",
        "skuNumber" : "PS140E-03CU8",
        "upcCode" : "89072345907825967245",
        "manufacturer" : "Toshiba",
        "model" : "Satellite 1400-153E",
        "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
        "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
        "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
        "answer" : [
            "71ee9886-48b9-6ffb-7fc4-c5008586c848",
            "99e01d04-c154-e813-11b8-7ac70f4ee179"
        ]
    }
}

Input/Request Parameters

FieldTypeDescriptionRequired
product{}ProductThe product to use for locating available servicesYes
product{}.idStringYour unique product reference number or identifier to the product record in your system.Yes
product{}.departmentCodeStringProduct department codeNo
product{}.classCodeStringProduct class codeNo
product{}.subclassCodeStringProduct subclass codeNo
product{}.familyCodeStringProduct family codeNo
product{}.skuNumberStringProduct SKU numberNo
product{}.upcCodeStringProduct UPC codeNo
product{}.manufacturerStringProduct manufacturerNo
product{}.modelStringProduct model numberNo
product{}.shortDescriptionStringShort description of the productNo
product{}.longDescriptionStringLong description of the productNo
product{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.No

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "question" : [
        {
            "id" : "15e43784-fe92-51bf-6176-eb0f2abbf0b2",
            "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
            "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
            "visibleOnAnswerId" : null,
            "sortOrder" : 1,
            "required" : true,
            "type" : "BOOLEAN",
            "question" : "Is the installation location on ground level?",
            "answer" : [
                {
                    "id" : "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
                    "answer" : "Yes"
                },
                {
                    "id" : "e18b9c0e-f2b3-d586-89e7-3f8bc276dc05",
                    "answer" : "No"
                }
            ]
        },
        {
            "id" : "9b2f1470-c5da-2223-57a3-7c19928b57e6",
            "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
            "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
            "visibleOnAnswerId" : null,
            "sortOrder" : 2,
            "required" : true,
            "type" : "DROPDOWN",
            "question" : "Approximately how heavy is the smart TV?",
            "answer" : [
                {
                    "id" : "573b972a-57b5-e17d-3645-a066e85b9b4a",
                    "answer" : "Under 25 pounds"
                },
                {
                    "id" : "ee6848ba-31d2-c827-eab3-ef1cadc2a624",
                    "answer" : "25-50 pounds"
                },
                {
                    "id" : "f7df97d0-9167-7ad2-58cb-15ed1aca3553",
                    "answer" : "Over 50 pounds"
                }
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
question[]ArrayAn array of Question objects.
question[]{}.idStringUnique identifer of the question record
question[]{}.productIdStringYour unique product reference number or identifier to the product record in your system.
question[]{}.serviceIdStringUnique service reference identifier.
question[]{}.visibleOnAnswerIdStringIf this is a null value, then this question should always be visible to the customer. If this field does have a value, then this question should not appear until the corresponding answer{}.id has been selected by the customer.
question[]{}.sortOrderIntegerSort order the question should appear in
question[]{}.requiredBooleanWhether or not the question is required to be answered
question[]{}.typeStringThe type of question. See Question Types for all possible values.
question[]{}.questionStringThe question to be asked of the customer
question[]{}.answer[]ArrayAn array of Answer objects only applicable to BOOLEAN, RADIO, CHECKBOX, and DROPDOWN question types.
question[]{}.answer[]{}.idStringUnique identifer of the answer record for a particular question
question[]{}.answer[]{}.answerStringThe answer option to be presented to the customer

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Cart

Create a CartPOST /cart/{cart.id}

Use this request to save an initial cart and/or create a new appointment reservation.

Sample Request

POST /cart/e2b99b5e-6b64-d72f-c761-c87abe52f152

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "cart" : {
        "id" : "e2b99b5e-6b64-d72f-c761-c87abe52f152",
        "purchaseOrder" : "46273279ABC",
        "customer" : {
            "id" : "3b8cfce7-e219-e4f9-b1d6-c95c589380e4",
            "businessName" : "XYZ Industries",
            "firstName" : "John",
            "lastName" : "Smith",
            "emailAddress" : "jsmith@xyzindustries.com",
            "phoneNumber" : "123-456-7890",
            "address1" : "123 Test Street",
            "address2" : "Suite 543",
            "city" : "Testville",
            "state" : "TN",
            "zipCode" : "92956",
            "notes" : "Please call upon arrival"
        },
        "geolocation" : {
            "zipCode" : "92956",
            "latitude" : 53.36236,
            "longitude" : -6.261633,
            "accuracy" : 150
        },
        "product" : [
            {
                "id" : "73316544-3729-c452-b3f3-83223529369e",
                "departmentCode" : "200",
                "classCode" : "210",
                "subclassCode" : "220",
                "familyCode" : "260",
                "skuNumber" : "PS140E-03CU8",
                "upcCode" : "89072345907825967245",
                "manufacturer" : "Toshiba",
                "model" : "Satellite 1400-153E",
                "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
                "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
                "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
                "answer" : [
                    "71ee9886-48b9-6ffb-7fc4-c5008586c848",
                    "99e01d04-c154-e813-11b8-7ac70f4ee179"
                ]
            },
            {
                "id" : "51b7e3a4-ca48-0d6e-5aaf-ac6286a71a59",
                "departmentCode" : "200",
                "classCode" : "210",
                "subclassCode" : "220",
                "familyCode" : "260",
                "skuNumber" : "PS460E-079K9",
                "upcCode" : "78569386973496791038",
                "manufacturer" : "Toshiba",
                "model" : "Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD",
                "shortDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB",
                "longDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
                "scrubData" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
                "answer" : [
                    "1cb93869-d385-b79c-09a3-7e1bbd58d681",
                    "14d6ebe8-ca7b-42ce-a426-3b0286b57c50",
                    "c128b155-203b-da68-2cbf-0f7394ee5af0"
                ]
            }
        ],
        "answer" : [
            "71ee9886-48b9-6ffb-7fc4-c5008586c848",
            "99e01d04-c154-e813-11b8-7ac70f4ee179"
        ],
        "service" : [
            "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "d4c624b3-dc3b-e736-7590-721bb898480f"
        ],
        "availability" : [
            "54f42f62-2cff-5149-446b-60d6f2cb2b6d"
        ]
    }
}

Input/Request Parameters

FieldTypeDescriptionRequired
cart{}CartThe cart data you are passing with this transaction.Yes
cart{}.idStringYour unique identifier of the cart record in your system to reference again later.Yes
cart{}.purchaseOrderStringYour purchase order number to pass through to the provider.No
cart{}.customer{}CustomerThe customer object containing details this cart is for.Yes
cart{}.customer{}.idStringYour unique identifer of the customer record in your system to reference later.Yes
cart{}.customer{}.businessNameStringCustomer's business nameNo
cart{}.customer{}.firstNameStringCustomer's first nameNo
cart{}.customer{}.lastNameStringCustomer's last nameNo
cart{}.customer{}.emailAddressStringCustomer's email addressNo
cart{}.customer{}.phoneNumberStringCustomer's phone numberNo
cart{}.customer{}.address1StringCustomer's appointment service address line 1No
cart{}.customer{}.address2StringCustomer's appointment service address line 2No
cart{}.customer{}.cityStringCustomer's appointment cityNo
cart{}.customer{}.stateStringCustomer's appointment stateNo
cart{}.customer{}.zipCodeStringCustomer's appointment zipCodeNo
cart{}.customer{}.notesStringCustomer notes which will be passed through to the provider for the appointmentNo
cart{}.geolocation{}GeolocationThe geolocation object containing location details of this cart which is used for finding availability.No
cart{}.geolocation{}.zipCodeStringZIP code used for finding available servicesNo
cart{}.geolocation{}.latitudeFloatLatitude to use for finding available servicesNo
cart{}.geolocation{}.longitudeFloatLongitude to use for finding available servicesNo
cart{}.geolocation{}.accuracyIntegerEstimated accuracy (in meters) of radius around the latitude/longitude to use for finding available servicesNo
cart{}.product[]ArrayAn array of Product objects in the cartNo
cart{}.product[]{}.idStringYour unique product reference number or identifier to the product record in your system.No
cart{}.product[]{}.departmentCodeStringProduct department codeNo
cart{}.product[]{}.classCodeStringProduct class codeNo
cart{}.product[]{}.subclassCodeStringProduct subclass codeNo
cart{}.product[]{}.familyCodeStringProduct family codeNo
cart{}.product[]{}.skuNumberStringProduct SKU numberNo
cart{}.product[]{}.upcCodeStringProduct UPC codeNo
cart{}.product[]{}.manufacturerStringProduct manufacturerNo
cart{}.product[]{}.modelStringProduct model numberNo
cart{}.product[]{}.shortDescriptionStringShort description of the productNo
cart{}.product[]{}.longDescriptionStringLong description of the productNo
cart{}.product[]{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.No
cart{}.product[]{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.No
cart{}.answer[]ArrayA simple array of answer{}.id values which have been answered by the customer and are used to locate applicable products.No
cart{}.service[]ArrayA simple array of service{}.id strings referencing the services in the cart.
cart{}.availability[]ArrayA simple array of availability{}.id strings referencing the availability windows chosen for the cart.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "cart" : {
        "id" : "e2b99b5e-6b64-d72f-c761-c87abe52f152",
        "status" : "CONFIRMED",
        "purchaseOrder" : "46273279ABC",
        "customer" : {
            "id" : "3b8cfce7-e219-e4f9-b1d6-c95c589380e4",
            "businessName" : "XYZ Industries",
            "firstName" : "John",
            "lastName" : "Smith",
            "emailAddress" : "jsmith@xyzindustries.com",
            "phoneNumber" : "123-456-7890",
            "address1" : "123 Test Street",
            "address2" : "Suite 543",
            "city" : "Testville",
            "state" : "TN",
            "zipCode" : "92956",
            "notes" : "Please call upon arrival"
        },
        "geolocation" : {
            "zipCode" : "92956",
            "latitude" : 53.36236,
            "longitude" : -6.261633,
            "accuracy" : 150
        },
        "product" : [
            {
                "id" : "73316544-3729-c452-b3f3-83223529369e",
                "departmentCode" : "200",
                "classCode" : "210",
                "subclassCode" : "220",
                "familyCode" : "260",
                "skuNumber" : "PS140E-03CU8",
                "upcCode" : "89072345907825967245",
                "manufacturer" : "Toshiba",
                "model" : "Satellite 1400-153E",
                "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
                "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
                "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
                "answer" : [
                    "71ee9886-48b9-6ffb-7fc4-c5008586c848",
                    "99e01d04-c154-e813-11b8-7ac70f4ee179"
                ]
            },
            {
                "id" : "51b7e3a4-ca48-0d6e-5aaf-ac6286a71a59",
                "departmentCode" : "200",
                "classCode" : "210",
                "subclassCode" : "220",
                "familyCode" : "260",
                "skuNumber" : "PS460E-079K9",
                "upcCode" : "78569386973496791038",
                "manufacturer" : "Toshiba",
                "model" : "Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD",
                "shortDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB",
                "longDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
                "scrubData" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
                "answer" : [
                    "1cb93869-d385-b79c-09a3-7e1bbd58d681",
                    "14d6ebe8-ca7b-42ce-a426-3b0286b57c50",
                    "c128b155-203b-da68-2cbf-0f7394ee5af0"
                ]
            }
        ],
        "service" : [
            {
                "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "sortOrder" : 1,
                "skuNumber" : "IHIO-DOORBELL",
                "upcCode" : "823567917726452456",
                "price" : 99.99,
                "shortDescription" : "In-Home Smart Doorbell Installation",
                "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
                "minAvailabilityWindows" : 1,
                "maxAvailabilityWindows" : 3,
                "nextAvailableProviderId" : "65d7299b-d4f7-9a57-c56b-ef1761e2851f",
                "nextAvailableStart" : "2020-09-01T14:00:00-05:00",
                "nextAvailableEnd" : "2020-09-01T16:00:00-05:00",
                "provider" : [
                    {
                        "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                        "name" : "Install Guys",
                        "cost" : 49.99,
                        "avgRating" : 4.5,
                        "review" : [
                            {
                                "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                                "name" : "Jane Doe",
                                "rating" : 5,
                                "review" : "This service is great! I use it all the time!"
                            },
                            {
                                "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                                "name" : "James Smith",
                                "rating" : 4,
                                "review" : "Very polite and knoweledgable technician!  Thanks!"
                            }
                        ]
                    },
                    {
                        "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                        "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                        "name" : "Autohome Inc",
                        "cost" : 39.99,
                        "avgRating" : 3.5,
                        "review" : [
                            {
                                "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                                "name" : "Debby Smith",
                                "rating" : 3,
                                "review" : "They were all right, I'd probably use them again."
                            },
                            {
                                "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                                "name" : "Todd Peterson",
                                "rating" : 4,
                                "review" : "Was quite happy with the way it turned out!"
                            }
                        ]
                    }
                ],
                "availability" : [
                    {
                        "id" : "3a8cec43-e477-9137-6aa2-9e16cf4d6960",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "windowStart" : "2020-07-01T15:30:00-05:00",
                        "windowEnd" : "2020-07-01T17:30:00-05:00"
                    },
                    {
                        "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "windowStart" : "2020-07-01T17:30:00-05:00",
                        "windowEnd" : "2020-07-01T19:30:00-05:00"
                    },
                    {
                        "id" : "f43f65fd-7fa5-e50f-6a37-7e8e29560c86",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                        "windowStart" : "2020-07-01T15:30:00-05:00",
                        "windowEnd" : "2020-07-02T17:30:00-05:00"
                    }
                ],
                "confirmedAvailability" : {
                    "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-01T17:30:00-05:00",
                    "windowEnd" : "2020-07-01T19:30:00-05:00"
                }
            },
            {
                "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
                "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "sortOrder" : 2,
                "skuNumber" : "IHIO-SMARTTV",
                "upcCode" : "234527259871235915",
                "price" : 129.99,
                "shortDescription" : "In-Home Smart TV Installation",
                "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
                "minAvailabilityWindows" : 1,
                "maxAvailabilityWindows" : 2,
                "nextAvailableProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "nextAvailableStart" : "2020-10-01T14:00:00-05:00",
                "nextAvailableEnd" : "2020-10-01T16:00:00-05:00",
                "provider" : [
                    {
                        "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                        "name" : "Install Guys",
                        "cost" : 89.99,
                        "avgRating" : 4.5,
                        "review" : [
                            {
                                "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                                "name" : "Sally Stewart",
                                "rating" : 5,
                                "review" : "Very professional job, thank you!"
                            },
                            {
                                "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                                "name" : "Donna Meadows",
                                "rating" : 4,
                                "review" : "Happy with my TV installation!"
                            }
                        ]
                    },
                    {
                        "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                        "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                        "name" : "Autohome Inc",
                        "cost" : 69.99,
                        "avgRating" : 3,
                        "review" : [
                            {
                                "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                                "name" : "Albert Macintosh",
                                "rating" : 3,
                                "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                            },
                            {
                                "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                                "name" : "Bob Fancy",
                                "rating" : 3,
                                "review" : "A few minutes late to show up but they did a nice job!"
                            }
                        ]
                    }
                ],
                "availability" : [
                    {
                        "id" : "75e9c27f-e10f-4be9-b12a-fe838df53cfc",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                        "windowStart" : "2020-07-09T15:30:00-05:00",
                        "windowEnd" : "2020-07-09T17:30:00-05:00"
                    },
                    {
                        "id" : "b4a46ba1-24ab-c1ed-d6ad-15205a348426",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "windowStart" : "2020-07-09T17:30:00-05:00",
                        "windowEnd" : "2020-07-09T19:30:00-05:00"
                    },
                    {
                        "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                        "windowStart" : "2020-07-10T15:30:00-05:00",
                        "windowEnd" : "2020-07-10T17:30:00-05:00"
                    }
                ],
                "confirmedAvailability" : {
                    "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-10T15:30:00-05:00",
                    "windowEnd" : "2020-07-10T17:30:00-05:00"
                }
            }
        ],
        "question" : [
            {
                "id" : "15e43784-fe92-51bf-6176-eb0f2abbf0b2",
                "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
                "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
                "visibleOnAnswerId" : null,
                "sortOrder" : 1,
                "required" : true,
                "type" : "BOOLEAN",
                "question" : "Is the installation location on ground level?",
                "answer" : [
                    {
                        "id" : "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
                        "answer" : "Yes"
                    },
                    {
                        "id" : "e18b9c0e-f2b3-d586-89e7-3f8bc276dc05",
                        "answer" : "No"
                    }
                ]
            },
            {
                "id" : "9b2f1470-c5da-2223-57a3-7c19928b57e6",
                "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
                "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
                "visibleOnAnswerId" : null,
                "sortOrder" : 2,
                "required" : true,
                "type" : "DROPDOWN",
                "question" : "Approximately how heavy is the smart TV?",
                "answer" : [
                    {
                        "id" : "573b972a-57b5-e17d-3645-a066e85b9b4a",
                        "answer" : "Under 25 pounds"
                    },
                    {
                        "id" : "ee6848ba-31d2-c827-eab3-ef1cadc2a624",
                        "answer" : "25-50 pounds"
                    },
                    {
                        "id" : "f7df97d0-9167-7ad2-58cb-15ed1aca3553",
                        "answer" : "Over 50 pounds"
                    }
                ]
            }
        ],
        "answer" : [
            "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
            "ee6848ba-31d2-c827-eab3-ef1cadc2a624"
        ]
    }
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
cart{}CartCurrent snapshot of the cart object after your transaction.
cart{}.idStringYour unique identifier of the cart record in your system to reference again later.
cart{}.statusStringOverall appointment status. See Cart Statuses for all possible values.
cart{}.purchaseOrderStringYour purchase order number to pass through to the provider.
cart{}.customer{}CustomerThe customer object containing details this cart is for.
cart{}.customer{}.idStringYour unique identifer of the customer record in your system to reference later.
cart{}.customer{}.businessNameStringCustomer's business name
cart{}.customer{}.firstNameStringCustomer's first name
cart{}.customer{}.lastNameStringCustomer's last name
cart{}.customer{}.emailAddressStringCustomer's email address
cart{}.customer{}.phoneNumberStringCustomer's phone number
cart{}.customer{}.address1StringCustomer's appointment service address line 1
cart{}.customer{}.address2StringCustomer's appointment service address line 2
cart{}.customer{}.cityStringCustomer's appointment city
cart{}.customer{}.stateStringCustomer's appointment state
cart{}.customer{}.zipCodeStringCustomer's appointment zipCode
cart{}.customer{}.notesStringCustomer notes which will be passed through to the provider for the appointment
cart{}.geolocation{}GeolocationThe geolocation object containing location details of this cart which is used for finding availability.
cart{}.geolocation{}.zipCodeStringZIP code used for finding available services
cart{}.geolocation{}.latitudeFloatLatitude to use for finding available services
cart{}.geolocation{}.longitudeFloatLongitude to use for finding available services
cart{}.geolocation{}.accuracyIntegerEstimated accuracy (in meters) of radius around the latitude/longitude to use for finding available services
cart{}.product[]ArrayAn array of Product objects in the cart
cart{}.product[]{}.idStringYour unique product reference number or identifier to the product record in your system.
cart{}.product[]{}.departmentCodeStringProduct department code
cart{}.product[]{}.classCodeStringProduct class code
cart{}.product[]{}.subclassCodeStringProduct subclass code
cart{}.product[]{}.familyCodeStringProduct family code
cart{}.product[]{}.skuNumberStringProduct SKU number
cart{}.product[]{}.upcCodeStringProduct UPC code
cart{}.product[]{}.manufacturerStringProduct manufacturer
cart{}.product[]{}.modelStringProduct model number
cart{}.product[]{}.shortDescriptionStringShort description of the product
cart{}.product[]{}.longDescriptionStringLong description of the product
cart{}.product[]{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.
cart{}.product[]{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.
cart{}.service[]ArrayAn array of Service objects in the cart
cart{}.service[]{}.idStringUnique identifier of the service record
cart{}.service[]{}.productIdStringYour identifier of the product this service is for.
cart{}.service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
cart{}.service[]{}.sortOrderIntegerSort order the service should appear in
cart{}.service[]{}.skuNumberStringSKU number of the service
cart{}.service[]{}.upcCodeStringUPC code of the service
cart{}.service[]{}.priceFloatUnit sell price of the service
cart{}.service[]{}.shortDescriptionStringShort description of the service
cart{}.service[]{}.longDescriptionStringLong description of the service
cart{}.service[]{}.minAvailabilityWindowsIntegerThe minimum number of availability windows the customer needs to select to create an appointment.
cart{}.service[]{}.maxAvailabilityWindowsIntegerThe maximum number of availability windows the customer needs to select to create an appointment.
cart{}.service[]{}.nextAvailableProviderIdStringUsed within calls that utilize a Geolocation object. Identifer of the provider with the next available appointment window.
cart{}.service[]{}.nextAvailableStartDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window start date/time.
cart{}.service[]{}.nextAvailableEndDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window end date/time.
cart{}.service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
cart{}.service[]{}.provider[]{}.idStringUnique identifier of the provider record
cart{}.service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
cart{}.service[]{}.provider[]{}.nameStringProvider's name
cart{}.service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
cart{}.service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
cart{}.service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
cart{}.service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
cart{}.service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
cart{}.service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
cart{}.service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review
cart{}.service[]{}.availability[]ArrayAn array of Availability objects representing available appointment windows for this service.
cart{}.service[]{}.availability[]{}.idStringUnique identifer of the availabilty record
cart{}.service[]{}.availability[]{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
cart{}.service[]{}.availability[]{}.providerIdStringUnique identifer of the provider record handling this appointment
cart{}.service[]{}.availability[]{}.windowStartDate/TimeStarting date/time of the appointment window
cart{}.service[]{}.availability[]{}.windowEndDate/TimeEnding date/time of the appointment window
cart{}.service[]{}.confirmedAvailability{}AvailabilityAvailability object of the confirmed appointment
cart{}.service[]{}.confirmedAvailability{}.idStringUnique identifer of the availabilty record
cart{}.service[]{}.confirmedAvailability{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
cart{}.service[]{}.confirmedAvailability{}.providerIdStringUnique identifer of the provider record handling this appointment
cart{}.service[]{}.confirmedAvailability{}.windowStartDate/TimeStarting date/time of the appointment window
cart{}.service[]{}.confirmedAvailability{}.windowEndDate/TimeEnding date/time of the appointment window
cart{}.question[]ArrayAn array of Question objects representing the questions to be asked of the customer for the products in the cart.
cart{}.question[]{}.idStringUnique identifer of the question record
cart{}.question[]{}.productIdStringYour unique product reference number or identifier to the product record in your system.
cart{}.question[]{}.serviceIdStringUnique service reference identifier.
cart{}.question[]{}.visibleOnAnswerIdStringIf this is a null value, then this question should always be visible to the customer. If this field does have a value, then this question should not appear until the corresponding answer{}.id has been selected by the customer.
cart{}.question[]{}.sortOrderIntegerSort order the question should appear in
cart{}.question[]{}.requiredBooleanWhether or not the question is required to be answered
cart{}.question[]{}.typeStringThe type of question. See Question Types for all possible values.
cart{}.question[]{}.questionStringThe question to be asked of the customer
cart{}.question[]{}.answer[]ArrayAn array of Answer objects only applicable to BOOLEAN, RADIO, CHECKBOX, and DROPDOWN question types.
cart{}.question[]{}.answer[]{}.idStringUnique identifer of the answer record for a particular question
cart{}.question[]{}.answer[]{}.answerStringThe answer option to be presented to the customer
cart{}.answer[]ArrayA simple array of answer{}.id values which have been answered by the customer and are used to locate applicable products.

Typical Response Codes

HTTP CodeMeaningRequired Action
201 CREATEDThe record was successfully created.
(Applicable only to POST requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.
422 UNPROCESSABLE ENTITYThe request structure is correct and the server understands the request but is unable to process the transaction. This typically can occur in a POST request if the record being created or changed already exists.Ensure you are not trying to create the same record that was already processed in a previous transaction.

Change a CartPUT /cart/{cart.id}

Use this request to change a cart, or modify/cancel an appointment reservation of a cart{}.id.

Sample Request

PUT /cart/e2b99b5e-6b64-d72f-c761-c87abe52f152

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "cart" : {
        "id" : "e2b99b5e-6b64-d72f-c761-c87abe52f152",
        "purchaseOrder" : "46273279ABC",
        "customer" : {
            "id" : "3b8cfce7-e219-e4f9-b1d6-c95c589380e4",
            "businessName" : "XYZ Industries",
            "firstName" : "John",
            "lastName" : "Smith",
            "emailAddress" : "jsmith@xyzindustries.com",
            "phoneNumber" : "123-456-7890",
            "address1" : "123 Test Street",
            "address2" : "Suite 543",
            "city" : "Testville",
            "state" : "TN",
            "zipCode" : "92956",
            "notes" : "Please call upon arrival"
        },
        "geolocation" : {
            "zipCode" : "92956",
            "latitude" : 53.36236,
            "longitude" : -6.261633,
            "accuracy" : 150
        },
        "product" : [
            {
                "id" : "73316544-3729-c452-b3f3-83223529369e",
                "departmentCode" : "200",
                "classCode" : "210",
                "subclassCode" : "220",
                "familyCode" : "260",
                "skuNumber" : "PS140E-03CU8",
                "upcCode" : "89072345907825967245",
                "manufacturer" : "Toshiba",
                "model" : "Satellite 1400-153E",
                "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
                "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
                "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
                "answer" : [
                    "71ee9886-48b9-6ffb-7fc4-c5008586c848",
                    "99e01d04-c154-e813-11b8-7ac70f4ee179"
                ]
            },
            {
                "id" : "51b7e3a4-ca48-0d6e-5aaf-ac6286a71a59",
                "departmentCode" : "200",
                "classCode" : "210",
                "subclassCode" : "220",
                "familyCode" : "260",
                "skuNumber" : "PS460E-079K9",
                "upcCode" : "78569386973496791038",
                "manufacturer" : "Toshiba",
                "model" : "Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD",
                "shortDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB",
                "longDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
                "scrubData" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
                "answer" : [
                    "1cb93869-d385-b79c-09a3-7e1bbd58d681",
                    "14d6ebe8-ca7b-42ce-a426-3b0286b57c50",
                    "c128b155-203b-da68-2cbf-0f7394ee5af0"
                ]
            }
        ],
        "answer" : [
            "71ee9886-48b9-6ffb-7fc4-c5008586c848",
            "99e01d04-c154-e813-11b8-7ac70f4ee179"
        ],
        "service" : [
            "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "d4c624b3-dc3b-e736-7590-721bb898480f"
        ],
        "availability" : [
            "54f42f62-2cff-5149-446b-60d6f2cb2b6d"
        ]
    }
}

Input/Request Parameters

FieldTypeDescriptionRequired
cart{}CartThe cart data you are passing with this transaction.Yes
cart{}.idStringYour unique identifier of the cart record in your system to reference again later.No
cart{}.purchaseOrderStringYour purchase order number to pass through to the provider.No
cart{}.customer{}CustomerThe customer object containing details this cart is for.No
cart{}.customer{}.idStringYour unique identifer of the customer record in your system to reference later.No
cart{}.customer{}.businessNameStringCustomer's business nameNo
cart{}.customer{}.firstNameStringCustomer's first nameNo
cart{}.customer{}.lastNameStringCustomer's last nameNo
cart{}.customer{}.emailAddressStringCustomer's email addressNo
cart{}.customer{}.phoneNumberStringCustomer's phone numberNo
cart{}.customer{}.address1StringCustomer's appointment service address line 1No
cart{}.customer{}.address2StringCustomer's appointment service address line 2No
cart{}.customer{}.cityStringCustomer's appointment cityNo
cart{}.customer{}.stateStringCustomer's appointment stateNo
cart{}.customer{}.zipCodeStringCustomer's appointment zipCodeNo
cart{}.customer{}.notesStringCustomer notes which will be passed through to the provider for the appointmentNo
cart{}.geolocation{}GeolocationThe geolocation object containing location details of this cart which is used for finding availability.No
cart{}.geolocation{}.zipCodeStringZIP code used for finding available servicesNo
cart{}.geolocation{}.latitudeFloatLatitude to use for finding available servicesNo
cart{}.geolocation{}.longitudeFloatLongitude to use for finding available servicesNo
cart{}.geolocation{}.accuracyIntegerEstimated accuracy (in meters) of radius around the latitude/longitude to use for finding available servicesNo
cart{}.product[]ArrayAn array of Product objects in the cartNo
cart{}.product[]{}.idStringYour unique product reference number or identifier to the product record in your system.No
cart{}.product[]{}.departmentCodeStringProduct department codeNo
cart{}.product[]{}.classCodeStringProduct class codeNo
cart{}.product[]{}.subclassCodeStringProduct subclass codeNo
cart{}.product[]{}.familyCodeStringProduct family codeNo
cart{}.product[]{}.skuNumberStringProduct SKU numberNo
cart{}.product[]{}.upcCodeStringProduct UPC codeNo
cart{}.product[]{}.manufacturerStringProduct manufacturerNo
cart{}.product[]{}.modelStringProduct model numberNo
cart{}.product[]{}.shortDescriptionStringShort description of the productNo
cart{}.product[]{}.longDescriptionStringLong description of the productNo
cart{}.product[]{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.No
cart{}.product[]{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.No
cart{}.answer[]ArrayA simple array of answer{}.id values which have been answered by the customer and are used to locate applicable products.No
cart{}.service[]ArrayA simple array of service{}.id strings referencing the services in the cart.
cart{}.availability[]ArrayA simple array of availability{}.id strings referencing the availability windows chosen for the cart.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "cart" : {
        "id" : "e2b99b5e-6b64-d72f-c761-c87abe52f152",
        "status" : "CONFIRMED",
        "purchaseOrder" : "46273279ABC",
        "customer" : {
            "id" : "3b8cfce7-e219-e4f9-b1d6-c95c589380e4",
            "businessName" : "XYZ Industries",
            "firstName" : "John",
            "lastName" : "Smith",
            "emailAddress" : "jsmith@xyzindustries.com",
            "phoneNumber" : "123-456-7890",
            "address1" : "123 Test Street",
            "address2" : "Suite 543",
            "city" : "Testville",
            "state" : "TN",
            "zipCode" : "92956",
            "notes" : "Please call upon arrival"
        },
        "geolocation" : {
            "zipCode" : "92956",
            "latitude" : 53.36236,
            "longitude" : -6.261633,
            "accuracy" : 150
        },
        "product" : [
            {
                "id" : "73316544-3729-c452-b3f3-83223529369e",
                "departmentCode" : "200",
                "classCode" : "210",
                "subclassCode" : "220",
                "familyCode" : "260",
                "skuNumber" : "PS140E-03CU8",
                "upcCode" : "89072345907825967245",
                "manufacturer" : "Toshiba",
                "model" : "Satellite 1400-153E",
                "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
                "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
                "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
                "answer" : [
                    "71ee9886-48b9-6ffb-7fc4-c5008586c848",
                    "99e01d04-c154-e813-11b8-7ac70f4ee179"
                ]
            },
            {
                "id" : "51b7e3a4-ca48-0d6e-5aaf-ac6286a71a59",
                "departmentCode" : "200",
                "classCode" : "210",
                "subclassCode" : "220",
                "familyCode" : "260",
                "skuNumber" : "PS460E-079K9",
                "upcCode" : "78569386973496791038",
                "manufacturer" : "Toshiba",
                "model" : "Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD",
                "shortDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB",
                "longDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
                "scrubData" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
                "answer" : [
                    "1cb93869-d385-b79c-09a3-7e1bbd58d681",
                    "14d6ebe8-ca7b-42ce-a426-3b0286b57c50",
                    "c128b155-203b-da68-2cbf-0f7394ee5af0"
                ]
            }
        ],
        "service" : [
            {
                "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "sortOrder" : 1,
                "skuNumber" : "IHIO-DOORBELL",
                "upcCode" : "823567917726452456",
                "price" : 99.99,
                "shortDescription" : "In-Home Smart Doorbell Installation",
                "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
                "minAvailabilityWindows" : 1,
                "maxAvailabilityWindows" : 3,
                "nextAvailableProviderId" : "65d7299b-d4f7-9a57-c56b-ef1761e2851f",
                "nextAvailableStart" : "2020-09-01T14:00:00-05:00",
                "nextAvailableEnd" : "2020-09-01T16:00:00-05:00",
                "provider" : [
                    {
                        "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                        "name" : "Install Guys",
                        "cost" : 49.99,
                        "avgRating" : 4.5,
                        "review" : [
                            {
                                "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                                "name" : "Jane Doe",
                                "rating" : 5,
                                "review" : "This service is great! I use it all the time!"
                            },
                            {
                                "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                                "name" : "James Smith",
                                "rating" : 4,
                                "review" : "Very polite and knoweledgable technician!  Thanks!"
                            }
                        ]
                    },
                    {
                        "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                        "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                        "name" : "Autohome Inc",
                        "cost" : 39.99,
                        "avgRating" : 3.5,
                        "review" : [
                            {
                                "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                                "name" : "Debby Smith",
                                "rating" : 3,
                                "review" : "They were all right, I'd probably use them again."
                            },
                            {
                                "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                                "name" : "Todd Peterson",
                                "rating" : 4,
                                "review" : "Was quite happy with the way it turned out!"
                            }
                        ]
                    }
                ],
                "availability" : [
                    {
                        "id" : "3a8cec43-e477-9137-6aa2-9e16cf4d6960",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "windowStart" : "2020-07-01T15:30:00-05:00",
                        "windowEnd" : "2020-07-01T17:30:00-05:00"
                    },
                    {
                        "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "windowStart" : "2020-07-01T17:30:00-05:00",
                        "windowEnd" : "2020-07-01T19:30:00-05:00"
                    },
                    {
                        "id" : "f43f65fd-7fa5-e50f-6a37-7e8e29560c86",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                        "windowStart" : "2020-07-01T15:30:00-05:00",
                        "windowEnd" : "2020-07-02T17:30:00-05:00"
                    }
                ],
                "confirmedAvailability" : {
                    "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-01T17:30:00-05:00",
                    "windowEnd" : "2020-07-01T19:30:00-05:00"
                }
            },
            {
                "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
                "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "sortOrder" : 2,
                "skuNumber" : "IHIO-SMARTTV",
                "upcCode" : "234527259871235915",
                "price" : 129.99,
                "shortDescription" : "In-Home Smart TV Installation",
                "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
                "minAvailabilityWindows" : 1,
                "maxAvailabilityWindows" : 2,
                "nextAvailableProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "nextAvailableStart" : "2020-10-01T14:00:00-05:00",
                "nextAvailableEnd" : "2020-10-01T16:00:00-05:00",
                "provider" : [
                    {
                        "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                        "name" : "Install Guys",
                        "cost" : 89.99,
                        "avgRating" : 4.5,
                        "review" : [
                            {
                                "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                                "name" : "Sally Stewart",
                                "rating" : 5,
                                "review" : "Very professional job, thank you!"
                            },
                            {
                                "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                                "name" : "Donna Meadows",
                                "rating" : 4,
                                "review" : "Happy with my TV installation!"
                            }
                        ]
                    },
                    {
                        "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                        "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                        "name" : "Autohome Inc",
                        "cost" : 69.99,
                        "avgRating" : 3,
                        "review" : [
                            {
                                "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                                "name" : "Albert Macintosh",
                                "rating" : 3,
                                "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                            },
                            {
                                "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                                "name" : "Bob Fancy",
                                "rating" : 3,
                                "review" : "A few minutes late to show up but they did a nice job!"
                            }
                        ]
                    }
                ],
                "availability" : [
                    {
                        "id" : "75e9c27f-e10f-4be9-b12a-fe838df53cfc",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                        "windowStart" : "2020-07-09T15:30:00-05:00",
                        "windowEnd" : "2020-07-09T17:30:00-05:00"
                    },
                    {
                        "id" : "b4a46ba1-24ab-c1ed-d6ad-15205a348426",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "windowStart" : "2020-07-09T17:30:00-05:00",
                        "windowEnd" : "2020-07-09T19:30:00-05:00"
                    },
                    {
                        "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                        "windowStart" : "2020-07-10T15:30:00-05:00",
                        "windowEnd" : "2020-07-10T17:30:00-05:00"
                    }
                ],
                "confirmedAvailability" : {
                    "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-10T15:30:00-05:00",
                    "windowEnd" : "2020-07-10T17:30:00-05:00"
                }
            }
        ],
        "question" : [
            {
                "id" : "15e43784-fe92-51bf-6176-eb0f2abbf0b2",
                "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
                "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
                "visibleOnAnswerId" : null,
                "sortOrder" : 1,
                "required" : true,
                "type" : "BOOLEAN",
                "question" : "Is the installation location on ground level?",
                "answer" : [
                    {
                        "id" : "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
                        "answer" : "Yes"
                    },
                    {
                        "id" : "e18b9c0e-f2b3-d586-89e7-3f8bc276dc05",
                        "answer" : "No"
                    }
                ]
            },
            {
                "id" : "9b2f1470-c5da-2223-57a3-7c19928b57e6",
                "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
                "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
                "visibleOnAnswerId" : null,
                "sortOrder" : 2,
                "required" : true,
                "type" : "DROPDOWN",
                "question" : "Approximately how heavy is the smart TV?",
                "answer" : [
                    {
                        "id" : "573b972a-57b5-e17d-3645-a066e85b9b4a",
                        "answer" : "Under 25 pounds"
                    },
                    {
                        "id" : "ee6848ba-31d2-c827-eab3-ef1cadc2a624",
                        "answer" : "25-50 pounds"
                    },
                    {
                        "id" : "f7df97d0-9167-7ad2-58cb-15ed1aca3553",
                        "answer" : "Over 50 pounds"
                    }
                ]
            }
        ],
        "answer" : [
            "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
            "ee6848ba-31d2-c827-eab3-ef1cadc2a624"
        ]
    }
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
cart{}CartCurrent snapshot of the cart object after your transaction.
cart{}.idStringYour unique identifier of the cart record in your system to reference again later.
cart{}.statusStringOverall appointment status. See Cart Statuses for all possible values.
cart{}.purchaseOrderStringYour purchase order number to pass through to the provider.
cart{}.customer{}CustomerThe customer object containing details this cart is for.
cart{}.customer{}.idStringYour unique identifer of the customer record in your system to reference later.
cart{}.customer{}.businessNameStringCustomer's business name
cart{}.customer{}.firstNameStringCustomer's first name
cart{}.customer{}.lastNameStringCustomer's last name
cart{}.customer{}.emailAddressStringCustomer's email address
cart{}.customer{}.phoneNumberStringCustomer's phone number
cart{}.customer{}.address1StringCustomer's appointment service address line 1
cart{}.customer{}.address2StringCustomer's appointment service address line 2
cart{}.customer{}.cityStringCustomer's appointment city
cart{}.customer{}.stateStringCustomer's appointment state
cart{}.customer{}.zipCodeStringCustomer's appointment zipCode
cart{}.customer{}.notesStringCustomer notes which will be passed through to the provider for the appointment
cart{}.geolocation{}GeolocationThe geolocation object containing location details of this cart which is used for finding availability.
cart{}.geolocation{}.zipCodeStringZIP code used for finding available services
cart{}.geolocation{}.latitudeFloatLatitude to use for finding available services
cart{}.geolocation{}.longitudeFloatLongitude to use for finding available services
cart{}.geolocation{}.accuracyIntegerEstimated accuracy (in meters) of radius around the latitude/longitude to use for finding available services
cart{}.product[]ArrayAn array of Product objects in the cart
cart{}.product[]{}.idStringYour unique product reference number or identifier to the product record in your system.
cart{}.product[]{}.departmentCodeStringProduct department code
cart{}.product[]{}.classCodeStringProduct class code
cart{}.product[]{}.subclassCodeStringProduct subclass code
cart{}.product[]{}.familyCodeStringProduct family code
cart{}.product[]{}.skuNumberStringProduct SKU number
cart{}.product[]{}.upcCodeStringProduct UPC code
cart{}.product[]{}.manufacturerStringProduct manufacturer
cart{}.product[]{}.modelStringProduct model number
cart{}.product[]{}.shortDescriptionStringShort description of the product
cart{}.product[]{}.longDescriptionStringLong description of the product
cart{}.product[]{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.
cart{}.product[]{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.
cart{}.service[]ArrayAn array of Service objects in the cart
cart{}.service[]{}.idStringUnique identifier of the service record
cart{}.service[]{}.productIdStringYour identifier of the product this service is for.
cart{}.service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
cart{}.service[]{}.sortOrderIntegerSort order the service should appear in
cart{}.service[]{}.skuNumberStringSKU number of the service
cart{}.service[]{}.upcCodeStringUPC code of the service
cart{}.service[]{}.priceFloatUnit sell price of the service
cart{}.service[]{}.shortDescriptionStringShort description of the service
cart{}.service[]{}.longDescriptionStringLong description of the service
cart{}.service[]{}.minAvailabilityWindowsIntegerThe minimum number of availability windows the customer needs to select to create an appointment.
cart{}.service[]{}.maxAvailabilityWindowsIntegerThe maximum number of availability windows the customer needs to select to create an appointment.
cart{}.service[]{}.nextAvailableProviderIdStringUsed within calls that utilize a Geolocation object. Identifer of the provider with the next available appointment window.
cart{}.service[]{}.nextAvailableStartDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window start date/time.
cart{}.service[]{}.nextAvailableEndDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window end date/time.
cart{}.service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
cart{}.service[]{}.provider[]{}.idStringUnique identifier of the provider record
cart{}.service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
cart{}.service[]{}.provider[]{}.nameStringProvider's name
cart{}.service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
cart{}.service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
cart{}.service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
cart{}.service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
cart{}.service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
cart{}.service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
cart{}.service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review
cart{}.service[]{}.availability[]ArrayAn array of Availability objects representing available appointment windows for this service.
cart{}.service[]{}.availability[]{}.idStringUnique identifer of the availabilty record
cart{}.service[]{}.availability[]{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
cart{}.service[]{}.availability[]{}.providerIdStringUnique identifer of the provider record handling this appointment
cart{}.service[]{}.availability[]{}.windowStartDate/TimeStarting date/time of the appointment window
cart{}.service[]{}.availability[]{}.windowEndDate/TimeEnding date/time of the appointment window
cart{}.service[]{}.confirmedAvailability{}AvailabilityAvailability object of the confirmed appointment
cart{}.service[]{}.confirmedAvailability{}.idStringUnique identifer of the availabilty record
cart{}.service[]{}.confirmedAvailability{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
cart{}.service[]{}.confirmedAvailability{}.providerIdStringUnique identifer of the provider record handling this appointment
cart{}.service[]{}.confirmedAvailability{}.windowStartDate/TimeStarting date/time of the appointment window
cart{}.service[]{}.confirmedAvailability{}.windowEndDate/TimeEnding date/time of the appointment window
cart{}.question[]ArrayAn array of Question objects representing the questions to be asked of the customer for the products in the cart.
cart{}.question[]{}.idStringUnique identifer of the question record
cart{}.question[]{}.productIdStringYour unique product reference number or identifier to the product record in your system.
cart{}.question[]{}.serviceIdStringUnique service reference identifier.
cart{}.question[]{}.visibleOnAnswerIdStringIf this is a null value, then this question should always be visible to the customer. If this field does have a value, then this question should not appear until the corresponding answer{}.id has been selected by the customer.
cart{}.question[]{}.sortOrderIntegerSort order the question should appear in
cart{}.question[]{}.requiredBooleanWhether or not the question is required to be answered
cart{}.question[]{}.typeStringThe type of question. See Question Types for all possible values.
cart{}.question[]{}.questionStringThe question to be asked of the customer
cart{}.question[]{}.answer[]ArrayAn array of Answer objects only applicable to BOOLEAN, RADIO, CHECKBOX, and DROPDOWN question types.
cart{}.question[]{}.answer[]{}.idStringUnique identifer of the answer record for a particular question
cart{}.question[]{}.answer[]{}.answerStringThe answer option to be presented to the customer
cart{}.answer[]ArrayA simple array of answer{}.id values which have been answered by the customer and are used to locate applicable products.

Typical Response Codes

HTTP CodeMeaningRequired Action
201 CREATEDThe record was successfully created.
(Applicable only to POST requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.
422 UNPROCESSABLE ENTITYThe request structure is correct and the server understands the request but is unable to process the transaction. This typically can occur in a POST request if the record being created or changed already exists.Ensure you are not trying to create the same record that was already processed in a previous transaction.

Delete a CartDELETE /cart/{cart.id}

Use this request to delete a cart and cancel all appointment reservations of a cart{}.id.

Sample Request

DELETE /cart/e2b99b5e-6b64-d72f-c761-c87abe52f152

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : ""
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.

Typical Response Codes

HTTP CodeMeaningRequired Action
201 CREATEDThe record was successfully created.
(Applicable only to POST requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.
422 UNPROCESSABLE ENTITYThe request structure is correct and the server understands the request but is unable to process the transaction. This typically can occur in a POST request if the record being created or changed already exists.Ensure you are not trying to create the same record that was already processed in a previous transaction.

Retreive a CartGET /cart/{cart.id}

Use this request to retrieve cart and appointment details for a cart{}.id.

Sample Request

GET /cart/e2b99b5e-6b64-d72f-c761-c87abe52f152

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "cart" : {
        "id" : "e2b99b5e-6b64-d72f-c761-c87abe52f152",
        "status" : "CONFIRMED",
        "purchaseOrder" : "46273279ABC",
        "customer" : {
            "id" : "3b8cfce7-e219-e4f9-b1d6-c95c589380e4",
            "businessName" : "XYZ Industries",
            "firstName" : "John",
            "lastName" : "Smith",
            "emailAddress" : "jsmith@xyzindustries.com",
            "phoneNumber" : "123-456-7890",
            "address1" : "123 Test Street",
            "address2" : "Suite 543",
            "city" : "Testville",
            "state" : "TN",
            "zipCode" : "92956",
            "notes" : "Please call upon arrival"
        },
        "geolocation" : {
            "zipCode" : "92956",
            "latitude" : 53.36236,
            "longitude" : -6.261633,
            "accuracy" : 150
        },
        "product" : [
            {
                "id" : "73316544-3729-c452-b3f3-83223529369e",
                "departmentCode" : "200",
                "classCode" : "210",
                "subclassCode" : "220",
                "familyCode" : "260",
                "skuNumber" : "PS140E-03CU8",
                "upcCode" : "89072345907825967245",
                "manufacturer" : "Toshiba",
                "model" : "Satellite 1400-153E",
                "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
                "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
                "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
                "answer" : [
                    "71ee9886-48b9-6ffb-7fc4-c5008586c848",
                    "99e01d04-c154-e813-11b8-7ac70f4ee179"
                ]
            },
            {
                "id" : "51b7e3a4-ca48-0d6e-5aaf-ac6286a71a59",
                "departmentCode" : "200",
                "classCode" : "210",
                "subclassCode" : "220",
                "familyCode" : "260",
                "skuNumber" : "PS460E-079K9",
                "upcCode" : "78569386973496791038",
                "manufacturer" : "Toshiba",
                "model" : "Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD",
                "shortDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB",
                "longDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
                "scrubData" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
                "answer" : [
                    "1cb93869-d385-b79c-09a3-7e1bbd58d681",
                    "14d6ebe8-ca7b-42ce-a426-3b0286b57c50",
                    "c128b155-203b-da68-2cbf-0f7394ee5af0"
                ]
            }
        ],
        "service" : [
            {
                "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "sortOrder" : 1,
                "skuNumber" : "IHIO-DOORBELL",
                "upcCode" : "823567917726452456",
                "price" : 99.99,
                "shortDescription" : "In-Home Smart Doorbell Installation",
                "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
                "minAvailabilityWindows" : 1,
                "maxAvailabilityWindows" : 3,
                "nextAvailableProviderId" : "65d7299b-d4f7-9a57-c56b-ef1761e2851f",
                "nextAvailableStart" : "2020-09-01T14:00:00-05:00",
                "nextAvailableEnd" : "2020-09-01T16:00:00-05:00",
                "provider" : [
                    {
                        "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                        "name" : "Install Guys",
                        "cost" : 49.99,
                        "avgRating" : 4.5,
                        "review" : [
                            {
                                "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                                "name" : "Jane Doe",
                                "rating" : 5,
                                "review" : "This service is great! I use it all the time!"
                            },
                            {
                                "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                                "name" : "James Smith",
                                "rating" : 4,
                                "review" : "Very polite and knoweledgable technician!  Thanks!"
                            }
                        ]
                    },
                    {
                        "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                        "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                        "name" : "Autohome Inc",
                        "cost" : 39.99,
                        "avgRating" : 3.5,
                        "review" : [
                            {
                                "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                                "name" : "Debby Smith",
                                "rating" : 3,
                                "review" : "They were all right, I'd probably use them again."
                            },
                            {
                                "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                                "name" : "Todd Peterson",
                                "rating" : 4,
                                "review" : "Was quite happy with the way it turned out!"
                            }
                        ]
                    }
                ],
                "availability" : [
                    {
                        "id" : "3a8cec43-e477-9137-6aa2-9e16cf4d6960",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "windowStart" : "2020-07-01T15:30:00-05:00",
                        "windowEnd" : "2020-07-01T17:30:00-05:00"
                    },
                    {
                        "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "windowStart" : "2020-07-01T17:30:00-05:00",
                        "windowEnd" : "2020-07-01T19:30:00-05:00"
                    },
                    {
                        "id" : "f43f65fd-7fa5-e50f-6a37-7e8e29560c86",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                        "windowStart" : "2020-07-01T15:30:00-05:00",
                        "windowEnd" : "2020-07-02T17:30:00-05:00"
                    }
                ],
                "confirmedAvailability" : {
                    "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-01T17:30:00-05:00",
                    "windowEnd" : "2020-07-01T19:30:00-05:00"
                }
            },
            {
                "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
                "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "sortOrder" : 2,
                "skuNumber" : "IHIO-SMARTTV",
                "upcCode" : "234527259871235915",
                "price" : 129.99,
                "shortDescription" : "In-Home Smart TV Installation",
                "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
                "minAvailabilityWindows" : 1,
                "maxAvailabilityWindows" : 2,
                "nextAvailableProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "nextAvailableStart" : "2020-10-01T14:00:00-05:00",
                "nextAvailableEnd" : "2020-10-01T16:00:00-05:00",
                "provider" : [
                    {
                        "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                        "name" : "Install Guys",
                        "cost" : 89.99,
                        "avgRating" : 4.5,
                        "review" : [
                            {
                                "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                                "name" : "Sally Stewart",
                                "rating" : 5,
                                "review" : "Very professional job, thank you!"
                            },
                            {
                                "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                                "name" : "Donna Meadows",
                                "rating" : 4,
                                "review" : "Happy with my TV installation!"
                            }
                        ]
                    },
                    {
                        "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                        "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                        "name" : "Autohome Inc",
                        "cost" : 69.99,
                        "avgRating" : 3,
                        "review" : [
                            {
                                "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                                "name" : "Albert Macintosh",
                                "rating" : 3,
                                "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                            },
                            {
                                "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                                "name" : "Bob Fancy",
                                "rating" : 3,
                                "review" : "A few minutes late to show up but they did a nice job!"
                            }
                        ]
                    }
                ],
                "availability" : [
                    {
                        "id" : "75e9c27f-e10f-4be9-b12a-fe838df53cfc",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                        "windowStart" : "2020-07-09T15:30:00-05:00",
                        "windowEnd" : "2020-07-09T17:30:00-05:00"
                    },
                    {
                        "id" : "b4a46ba1-24ab-c1ed-d6ad-15205a348426",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "windowStart" : "2020-07-09T17:30:00-05:00",
                        "windowEnd" : "2020-07-09T19:30:00-05:00"
                    },
                    {
                        "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                        "windowStart" : "2020-07-10T15:30:00-05:00",
                        "windowEnd" : "2020-07-10T17:30:00-05:00"
                    }
                ],
                "confirmedAvailability" : {
                    "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-10T15:30:00-05:00",
                    "windowEnd" : "2020-07-10T17:30:00-05:00"
                }
            }
        ],
        "question" : [
            {
                "id" : "15e43784-fe92-51bf-6176-eb0f2abbf0b2",
                "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
                "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
                "visibleOnAnswerId" : null,
                "sortOrder" : 1,
                "required" : true,
                "type" : "BOOLEAN",
                "question" : "Is the installation location on ground level?",
                "answer" : [
                    {
                        "id" : "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
                        "answer" : "Yes"
                    },
                    {
                        "id" : "e18b9c0e-f2b3-d586-89e7-3f8bc276dc05",
                        "answer" : "No"
                    }
                ]
            },
            {
                "id" : "9b2f1470-c5da-2223-57a3-7c19928b57e6",
                "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
                "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
                "visibleOnAnswerId" : null,
                "sortOrder" : 2,
                "required" : true,
                "type" : "DROPDOWN",
                "question" : "Approximately how heavy is the smart TV?",
                "answer" : [
                    {
                        "id" : "573b972a-57b5-e17d-3645-a066e85b9b4a",
                        "answer" : "Under 25 pounds"
                    },
                    {
                        "id" : "ee6848ba-31d2-c827-eab3-ef1cadc2a624",
                        "answer" : "25-50 pounds"
                    },
                    {
                        "id" : "f7df97d0-9167-7ad2-58cb-15ed1aca3553",
                        "answer" : "Over 50 pounds"
                    }
                ]
            }
        ],
        "answer" : [
            "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
            "ee6848ba-31d2-c827-eab3-ef1cadc2a624"
        ]
    }
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
cart{}CartYour requested cart details.
cart{}.idStringYour unique identifier of the cart record in your system to reference again later.
cart{}.statusStringOverall appointment status. See Cart Statuses for all possible values.
cart{}.purchaseOrderStringYour purchase order number to pass through to the provider.
cart{}.customer{}CustomerThe customer object containing details this cart is for.
cart{}.customer{}.idStringYour unique identifer of the customer record in your system to reference later.
cart{}.customer{}.businessNameStringCustomer's business name
cart{}.customer{}.firstNameStringCustomer's first name
cart{}.customer{}.lastNameStringCustomer's last name
cart{}.customer{}.emailAddressStringCustomer's email address
cart{}.customer{}.phoneNumberStringCustomer's phone number
cart{}.customer{}.address1StringCustomer's appointment service address line 1
cart{}.customer{}.address2StringCustomer's appointment service address line 2
cart{}.customer{}.cityStringCustomer's appointment city
cart{}.customer{}.stateStringCustomer's appointment state
cart{}.customer{}.zipCodeStringCustomer's appointment zipCode
cart{}.customer{}.notesStringCustomer notes which will be passed through to the provider for the appointment
cart{}.geolocation{}GeolocationThe geolocation object containing location details of this cart which is used for finding availability.
cart{}.geolocation{}.zipCodeStringZIP code used for finding available services
cart{}.geolocation{}.latitudeFloatLatitude to use for finding available services
cart{}.geolocation{}.longitudeFloatLongitude to use for finding available services
cart{}.geolocation{}.accuracyIntegerEstimated accuracy (in meters) of radius around the latitude/longitude to use for finding available services
cart{}.product[]ArrayAn array of Product objects in the cart
cart{}.product[]{}.idStringYour unique product reference number or identifier to the product record in your system.
cart{}.product[]{}.departmentCodeStringProduct department code
cart{}.product[]{}.classCodeStringProduct class code
cart{}.product[]{}.subclassCodeStringProduct subclass code
cart{}.product[]{}.familyCodeStringProduct family code
cart{}.product[]{}.skuNumberStringProduct SKU number
cart{}.product[]{}.upcCodeStringProduct UPC code
cart{}.product[]{}.manufacturerStringProduct manufacturer
cart{}.product[]{}.modelStringProduct model number
cart{}.product[]{}.shortDescriptionStringShort description of the product
cart{}.product[]{}.longDescriptionStringLong description of the product
cart{}.product[]{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.
cart{}.product[]{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.
cart{}.service[]ArrayAn array of Service objects in the cart
cart{}.service[]{}.idStringUnique identifier of the service record
cart{}.service[]{}.productIdStringYour identifier of the product this service is for.
cart{}.service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
cart{}.service[]{}.sortOrderIntegerSort order the service should appear in
cart{}.service[]{}.skuNumberStringSKU number of the service
cart{}.service[]{}.upcCodeStringUPC code of the service
cart{}.service[]{}.priceFloatUnit sell price of the service
cart{}.service[]{}.shortDescriptionStringShort description of the service
cart{}.service[]{}.longDescriptionStringLong description of the service
cart{}.service[]{}.minAvailabilityWindowsIntegerThe minimum number of availability windows the customer needs to select to create an appointment.
cart{}.service[]{}.maxAvailabilityWindowsIntegerThe maximum number of availability windows the customer needs to select to create an appointment.
cart{}.service[]{}.nextAvailableProviderIdStringUsed within calls that utilize a Geolocation object. Identifer of the provider with the next available appointment window.
cart{}.service[]{}.nextAvailableStartDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window start date/time.
cart{}.service[]{}.nextAvailableEndDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window end date/time.
cart{}.service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
cart{}.service[]{}.provider[]{}.idStringUnique identifier of the provider record
cart{}.service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
cart{}.service[]{}.provider[]{}.nameStringProvider's name
cart{}.service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
cart{}.service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
cart{}.service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
cart{}.service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
cart{}.service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
cart{}.service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
cart{}.service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review
cart{}.service[]{}.availability[]ArrayAn array of Availability objects representing available appointment windows for this service.
cart{}.service[]{}.availability[]{}.idStringUnique identifer of the availabilty record
cart{}.service[]{}.availability[]{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
cart{}.service[]{}.availability[]{}.providerIdStringUnique identifer of the provider record handling this appointment
cart{}.service[]{}.availability[]{}.windowStartDate/TimeStarting date/time of the appointment window
cart{}.service[]{}.availability[]{}.windowEndDate/TimeEnding date/time of the appointment window
cart{}.service[]{}.confirmedAvailability{}AvailabilityAvailability object of the confirmed appointment
cart{}.service[]{}.confirmedAvailability{}.idStringUnique identifer of the availabilty record
cart{}.service[]{}.confirmedAvailability{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
cart{}.service[]{}.confirmedAvailability{}.providerIdStringUnique identifer of the provider record handling this appointment
cart{}.service[]{}.confirmedAvailability{}.windowStartDate/TimeStarting date/time of the appointment window
cart{}.service[]{}.confirmedAvailability{}.windowEndDate/TimeEnding date/time of the appointment window
cart{}.question[]ArrayAn array of Question objects representing the questions to be asked of the customer for the products in the cart.
cart{}.question[]{}.idStringUnique identifer of the question record
cart{}.question[]{}.productIdStringYour unique product reference number or identifier to the product record in your system.
cart{}.question[]{}.serviceIdStringUnique service reference identifier.
cart{}.question[]{}.visibleOnAnswerIdStringIf this is a null value, then this question should always be visible to the customer. If this field does have a value, then this question should not appear until the corresponding answer{}.id has been selected by the customer.
cart{}.question[]{}.sortOrderIntegerSort order the question should appear in
cart{}.question[]{}.requiredBooleanWhether or not the question is required to be answered
cart{}.question[]{}.typeStringThe type of question. See Question Types for all possible values.
cart{}.question[]{}.questionStringThe question to be asked of the customer
cart{}.question[]{}.answer[]ArrayAn array of Answer objects only applicable to BOOLEAN, RADIO, CHECKBOX, and DROPDOWN question types.
cart{}.question[]{}.answer[]{}.idStringUnique identifer of the answer record for a particular question
cart{}.question[]{}.answer[]{}.answerStringThe answer option to be presented to the customer
cart{}.answer[]ArrayA simple array of answer{}.id values which have been answered by the customer and are used to locate applicable products.

Typical Response Codes

HTTP CodeMeaningRequired Action
201 CREATEDThe record was successfully created.
(Applicable only to POST requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.
422 UNPROCESSABLE ENTITYThe request structure is correct and the server understands the request but is unable to process the transaction. This typically can occur in a POST request if the record being created or changed already exists.Ensure you are not trying to create the same record that was already processed in a previous transaction.

Retreive CartsGET /cart

Use this request to retrieve cart and appointment details for multiple cart{}.ids.

Sample Request

GET /cart

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "cart" : [
        "e2b99b5e-6b64-d72f-c761-c87abe52f152"
    ]
}

Input/Request Parameters

FieldTypeDescriptionRequired
cart[]ArrayA simple array of cart{}.id strings to return cart details on.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "cart" : [
        {
            "id" : "e2b99b5e-6b64-d72f-c761-c87abe52f152",
            "status" : "CONFIRMED",
            "purchaseOrder" : "46273279ABC",
            "customer" : {
                "id" : "3b8cfce7-e219-e4f9-b1d6-c95c589380e4",
                "businessName" : "XYZ Industries",
                "firstName" : "John",
                "lastName" : "Smith",
                "emailAddress" : "jsmith@xyzindustries.com",
                "phoneNumber" : "123-456-7890",
                "address1" : "123 Test Street",
                "address2" : "Suite 543",
                "city" : "Testville",
                "state" : "TN",
                "zipCode" : "92956",
                "notes" : "Please call upon arrival"
            },
            "geolocation" : {
                "zipCode" : "92956",
                "latitude" : 53.36236,
                "longitude" : -6.261633,
                "accuracy" : 150
            },
            "product" : [
                {
                    "id" : "73316544-3729-c452-b3f3-83223529369e",
                    "departmentCode" : "200",
                    "classCode" : "210",
                    "subclassCode" : "220",
                    "familyCode" : "260",
                    "skuNumber" : "PS140E-03CU8",
                    "upcCode" : "89072345907825967245",
                    "manufacturer" : "Toshiba",
                    "model" : "Satellite 1400-153E",
                    "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
                    "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
                    "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
                    "answer" : [
                        "71ee9886-48b9-6ffb-7fc4-c5008586c848",
                        "99e01d04-c154-e813-11b8-7ac70f4ee179"
                    ]
                },
                {
                    "id" : "51b7e3a4-ca48-0d6e-5aaf-ac6286a71a59",
                    "departmentCode" : "200",
                    "classCode" : "210",
                    "subclassCode" : "220",
                    "familyCode" : "260",
                    "skuNumber" : "PS460E-079K9",
                    "upcCode" : "78569386973496791038",
                    "manufacturer" : "Toshiba",
                    "model" : "Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD",
                    "shortDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB",
                    "longDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
                    "scrubData" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
                    "answer" : [
                        "1cb93869-d385-b79c-09a3-7e1bbd58d681",
                        "14d6ebe8-ca7b-42ce-a426-3b0286b57c50",
                        "c128b155-203b-da68-2cbf-0f7394ee5af0"
                    ]
                }
            ],
            "service" : [
                {
                    "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "sortOrder" : 1,
                    "skuNumber" : "IHIO-DOORBELL",
                    "upcCode" : "823567917726452456",
                    "price" : 99.99,
                    "shortDescription" : "In-Home Smart Doorbell Installation",
                    "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
                    "minAvailabilityWindows" : 1,
                    "maxAvailabilityWindows" : 3,
                    "nextAvailableProviderId" : "65d7299b-d4f7-9a57-c56b-ef1761e2851f",
                    "nextAvailableStart" : "2020-09-01T14:00:00-05:00",
                    "nextAvailableEnd" : "2020-09-01T16:00:00-05:00",
                    "provider" : [
                        {
                            "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                            "name" : "Install Guys",
                            "cost" : 49.99,
                            "avgRating" : 4.5,
                            "review" : [
                                {
                                    "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                                    "name" : "Jane Doe",
                                    "rating" : 5,
                                    "review" : "This service is great! I use it all the time!"
                                },
                                {
                                    "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                                    "name" : "James Smith",
                                    "rating" : 4,
                                    "review" : "Very polite and knoweledgable technician!  Thanks!"
                                }
                            ]
                        },
                        {
                            "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                            "name" : "Autohome Inc",
                            "cost" : 39.99,
                            "avgRating" : 3.5,
                            "review" : [
                                {
                                    "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                                    "name" : "Debby Smith",
                                    "rating" : 3,
                                    "review" : "They were all right, I'd probably use them again."
                                },
                                {
                                    "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                                    "name" : "Todd Peterson",
                                    "rating" : 4,
                                    "review" : "Was quite happy with the way it turned out!"
                                }
                            ]
                        }
                    ],
                    "availability" : [
                        {
                            "id" : "3a8cec43-e477-9137-6aa2-9e16cf4d6960",
                            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                            "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                            "windowStart" : "2020-07-01T15:30:00-05:00",
                            "windowEnd" : "2020-07-01T17:30:00-05:00"
                        },
                        {
                            "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                            "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                            "windowStart" : "2020-07-01T17:30:00-05:00",
                            "windowEnd" : "2020-07-01T19:30:00-05:00"
                        },
                        {
                            "id" : "f43f65fd-7fa5-e50f-6a37-7e8e29560c86",
                            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                            "providerId" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                            "windowStart" : "2020-07-01T15:30:00-05:00",
                            "windowEnd" : "2020-07-02T17:30:00-05:00"
                        }
                    ],
                    "confirmedAvailability" : {
                        "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                        "windowStart" : "2020-07-01T17:30:00-05:00",
                        "windowEnd" : "2020-07-01T19:30:00-05:00"
                    }
                },
                {
                    "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "sortOrder" : 2,
                    "skuNumber" : "IHIO-SMARTTV",
                    "upcCode" : "234527259871235915",
                    "price" : 129.99,
                    "shortDescription" : "In-Home Smart TV Installation",
                    "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
                    "minAvailabilityWindows" : 1,
                    "maxAvailabilityWindows" : 2,
                    "nextAvailableProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "nextAvailableStart" : "2020-10-01T14:00:00-05:00",
                    "nextAvailableEnd" : "2020-10-01T16:00:00-05:00",
                    "provider" : [
                        {
                            "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                            "name" : "Install Guys",
                            "cost" : 89.99,
                            "avgRating" : 4.5,
                            "review" : [
                                {
                                    "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                                    "name" : "Sally Stewart",
                                    "rating" : 5,
                                    "review" : "Very professional job, thank you!"
                                },
                                {
                                    "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                                    "name" : "Donna Meadows",
                                    "rating" : 4,
                                    "review" : "Happy with my TV installation!"
                                }
                            ]
                        },
                        {
                            "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                            "name" : "Autohome Inc",
                            "cost" : 69.99,
                            "avgRating" : 3,
                            "review" : [
                                {
                                    "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                                    "name" : "Albert Macintosh",
                                    "rating" : 3,
                                    "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                                },
                                {
                                    "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                                    "name" : "Bob Fancy",
                                    "rating" : 3,
                                    "review" : "A few minutes late to show up but they did a nice job!"
                                }
                            ]
                        }
                    ],
                    "availability" : [
                        {
                            "id" : "75e9c27f-e10f-4be9-b12a-fe838df53cfc",
                            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                            "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                            "windowStart" : "2020-07-09T15:30:00-05:00",
                            "windowEnd" : "2020-07-09T17:30:00-05:00"
                        },
                        {
                            "id" : "b4a46ba1-24ab-c1ed-d6ad-15205a348426",
                            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                            "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                            "windowStart" : "2020-07-09T17:30:00-05:00",
                            "windowEnd" : "2020-07-09T19:30:00-05:00"
                        },
                        {
                            "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                            "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                            "windowStart" : "2020-07-10T15:30:00-05:00",
                            "windowEnd" : "2020-07-10T17:30:00-05:00"
                        }
                    ],
                    "confirmedAvailability" : {
                        "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                        "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                        "windowStart" : "2020-07-10T15:30:00-05:00",
                        "windowEnd" : "2020-07-10T17:30:00-05:00"
                    }
                }
            ],
            "question" : [
                {
                    "id" : "15e43784-fe92-51bf-6176-eb0f2abbf0b2",
                    "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
                    "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
                    "visibleOnAnswerId" : null,
                    "sortOrder" : 1,
                    "required" : true,
                    "type" : "BOOLEAN",
                    "question" : "Is the installation location on ground level?",
                    "answer" : [
                        {
                            "id" : "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
                            "answer" : "Yes"
                        },
                        {
                            "id" : "e18b9c0e-f2b3-d586-89e7-3f8bc276dc05",
                            "answer" : "No"
                        }
                    ]
                },
                {
                    "id" : "9b2f1470-c5da-2223-57a3-7c19928b57e6",
                    "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
                    "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
                    "visibleOnAnswerId" : null,
                    "sortOrder" : 2,
                    "required" : true,
                    "type" : "DROPDOWN",
                    "question" : "Approximately how heavy is the smart TV?",
                    "answer" : [
                        {
                            "id" : "573b972a-57b5-e17d-3645-a066e85b9b4a",
                            "answer" : "Under 25 pounds"
                        },
                        {
                            "id" : "ee6848ba-31d2-c827-eab3-ef1cadc2a624",
                            "answer" : "25-50 pounds"
                        },
                        {
                            "id" : "f7df97d0-9167-7ad2-58cb-15ed1aca3553",
                            "answer" : "Over 50 pounds"
                        }
                    ]
                }
            ],
            "answer" : [
                "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
                "ee6848ba-31d2-c827-eab3-ef1cadc2a624"
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
cart[]ArrayAn array of the cart objects requested.
cart[]{}.idStringYour unique identifier of the cart record in your system to reference again later.
cart[]{}.statusStringOverall appointment status. See Cart Statuses for all possible values.
cart[]{}.purchaseOrderStringYour purchase order number to pass through to the provider.
cart[]{}.customer{}CustomerThe customer object containing details this cart is for.
cart[]{}.customer{}.idStringYour unique identifer of the customer record in your system to reference later.
cart[]{}.customer{}.businessNameStringCustomer's business name
cart[]{}.customer{}.firstNameStringCustomer's first name
cart[]{}.customer{}.lastNameStringCustomer's last name
cart[]{}.customer{}.emailAddressStringCustomer's email address
cart[]{}.customer{}.phoneNumberStringCustomer's phone number
cart[]{}.customer{}.address1StringCustomer's appointment service address line 1
cart[]{}.customer{}.address2StringCustomer's appointment service address line 2
cart[]{}.customer{}.cityStringCustomer's appointment city
cart[]{}.customer{}.stateStringCustomer's appointment state
cart[]{}.customer{}.zipCodeStringCustomer's appointment zipCode
cart[]{}.customer{}.notesStringCustomer notes which will be passed through to the provider for the appointment
cart[]{}.geolocation{}GeolocationThe geolocation object containing location details of this cart which is used for finding availability.
cart[]{}.geolocation{}.zipCodeStringZIP code used for finding available services
cart[]{}.geolocation{}.latitudeFloatLatitude to use for finding available services
cart[]{}.geolocation{}.longitudeFloatLongitude to use for finding available services
cart[]{}.geolocation{}.accuracyIntegerEstimated accuracy (in meters) of radius around the latitude/longitude to use for finding available services
cart[]{}.product[]ArrayAn array of Product objects in the cart
cart[]{}.product[]{}.idStringYour unique product reference number or identifier to the product record in your system.
cart[]{}.product[]{}.departmentCodeStringProduct department code
cart[]{}.product[]{}.classCodeStringProduct class code
cart[]{}.product[]{}.subclassCodeStringProduct subclass code
cart[]{}.product[]{}.familyCodeStringProduct family code
cart[]{}.product[]{}.skuNumberStringProduct SKU number
cart[]{}.product[]{}.upcCodeStringProduct UPC code
cart[]{}.product[]{}.manufacturerStringProduct manufacturer
cart[]{}.product[]{}.modelStringProduct model number
cart[]{}.product[]{}.shortDescriptionStringShort description of the product
cart[]{}.product[]{}.longDescriptionStringLong description of the product
cart[]{}.product[]{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.
cart[]{}.product[]{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.
cart[]{}.service[]ArrayAn array of Service objects in the cart
cart[]{}.service[]{}.idStringUnique identifier of the service record
cart[]{}.service[]{}.productIdStringYour identifier of the product this service is for.
cart[]{}.service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
cart[]{}.service[]{}.sortOrderIntegerSort order the service should appear in
cart[]{}.service[]{}.skuNumberStringSKU number of the service
cart[]{}.service[]{}.upcCodeStringUPC code of the service
cart[]{}.service[]{}.priceFloatUnit sell price of the service
cart[]{}.service[]{}.shortDescriptionStringShort description of the service
cart[]{}.service[]{}.longDescriptionStringLong description of the service
cart[]{}.service[]{}.minAvailabilityWindowsIntegerThe minimum number of availability windows the customer needs to select to create an appointment.
cart[]{}.service[]{}.maxAvailabilityWindowsIntegerThe maximum number of availability windows the customer needs to select to create an appointment.
cart[]{}.service[]{}.nextAvailableProviderIdStringUsed within calls that utilize a Geolocation object. Identifer of the provider with the next available appointment window.
cart[]{}.service[]{}.nextAvailableStartDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window start date/time.
cart[]{}.service[]{}.nextAvailableEndDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window end date/time.
cart[]{}.service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
cart[]{}.service[]{}.provider[]{}.idStringUnique identifier of the provider record
cart[]{}.service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
cart[]{}.service[]{}.provider[]{}.nameStringProvider's name
cart[]{}.service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
cart[]{}.service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
cart[]{}.service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
cart[]{}.service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
cart[]{}.service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
cart[]{}.service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
cart[]{}.service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review
cart[]{}.service[]{}.availability[]ArrayAn array of Availability objects representing available appointment windows for this service.
cart[]{}.service[]{}.availability[]{}.idStringUnique identifer of the availabilty record
cart[]{}.service[]{}.availability[]{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
cart[]{}.service[]{}.availability[]{}.providerIdStringUnique identifer of the provider record handling this appointment
cart[]{}.service[]{}.availability[]{}.windowStartDate/TimeStarting date/time of the appointment window
cart[]{}.service[]{}.availability[]{}.windowEndDate/TimeEnding date/time of the appointment window
cart[]{}.service[]{}.confirmedAvailability{}AvailabilityAvailability object of the confirmed appointment
cart[]{}.service[]{}.confirmedAvailability{}.idStringUnique identifer of the availabilty record
cart[]{}.service[]{}.confirmedAvailability{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
cart[]{}.service[]{}.confirmedAvailability{}.providerIdStringUnique identifer of the provider record handling this appointment
cart[]{}.service[]{}.confirmedAvailability{}.windowStartDate/TimeStarting date/time of the appointment window
cart[]{}.service[]{}.confirmedAvailability{}.windowEndDate/TimeEnding date/time of the appointment window
cart[]{}.question[]ArrayAn array of Question objects representing the questions to be asked of the customer for the products in the cart.
cart[]{}.question[]{}.idStringUnique identifer of the question record
cart[]{}.question[]{}.productIdStringYour unique product reference number or identifier to the product record in your system.
cart[]{}.question[]{}.serviceIdStringUnique service reference identifier.
cart[]{}.question[]{}.visibleOnAnswerIdStringIf this is a null value, then this question should always be visible to the customer. If this field does have a value, then this question should not appear until the corresponding answer{}.id has been selected by the customer.
cart[]{}.question[]{}.sortOrderIntegerSort order the question should appear in
cart[]{}.question[]{}.requiredBooleanWhether or not the question is required to be answered
cart[]{}.question[]{}.typeStringThe type of question. See Question Types for all possible values.
cart[]{}.question[]{}.questionStringThe question to be asked of the customer
cart[]{}.question[]{}.answer[]ArrayAn array of Answer objects only applicable to BOOLEAN, RADIO, CHECKBOX, and DROPDOWN question types.
cart[]{}.question[]{}.answer[]{}.idStringUnique identifer of the answer record for a particular question
cart[]{}.question[]{}.answer[]{}.answerStringThe answer option to be presented to the customer
cart[]{}.answer[]ArrayA simple array of answer{}.id values which have been answered by the customer and are used to locate applicable products.

Typical Response Codes

HTTP CodeMeaningRequired Action
201 CREATEDThe record was successfully created.
(Applicable only to POST requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.
422 UNPROCESSABLE ENTITYThe request structure is correct and the server understands the request but is unable to process the transaction. This typically can occur in a POST request if the record being created or changed already exists.Ensure you are not trying to create the same record that was already processed in a previous transaction.

Retrieve Cart ServicesGET /cart/{cart.id}/services

Use this request to retrieve all applicable services to all products in the cart.

Sample Request

GET /cart/e2b99b5e-6b64-d72f-c761-c87abe52f152/services

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "service" : [
        {
            "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 1,
            "skuNumber" : "IHIO-DOORBELL",
            "upcCode" : "823567917726452456",
            "price" : 99.99,
            "shortDescription" : "In-Home Smart Doorbell Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 3,
            "nextAvailableProviderId" : "65d7299b-d4f7-9a57-c56b-ef1761e2851f",
            "nextAvailableStart" : "2020-09-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-09-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 49.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                            "name" : "Jane Doe",
                            "rating" : 5,
                            "review" : "This service is great! I use it all the time!"
                        },
                        {
                            "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                            "name" : "James Smith",
                            "rating" : 4,
                            "review" : "Very polite and knoweledgable technician!  Thanks!"
                        }
                    ]
                },
                {
                    "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 39.99,
                    "avgRating" : 3.5,
                    "review" : [
                        {
                            "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                            "name" : "Debby Smith",
                            "rating" : 3,
                            "review" : "They were all right, I'd probably use them again."
                        },
                        {
                            "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                            "name" : "Todd Peterson",
                            "rating" : 4,
                            "review" : "Was quite happy with the way it turned out!"
                        }
                    ]
                }
            ]
        },
        {
            "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 2,
            "skuNumber" : "IHIO-SMARTTV",
            "upcCode" : "234527259871235915",
            "price" : 129.99,
            "shortDescription" : "In-Home Smart TV Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 2,
            "nextAvailableProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "nextAvailableStart" : "2020-10-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-10-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 89.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                            "name" : "Sally Stewart",
                            "rating" : 5,
                            "review" : "Very professional job, thank you!"
                        },
                        {
                            "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                            "name" : "Donna Meadows",
                            "rating" : 4,
                            "review" : "Happy with my TV installation!"
                        }
                    ]
                },
                {
                    "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 69.99,
                    "avgRating" : 3,
                    "review" : [
                        {
                            "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                            "name" : "Albert Macintosh",
                            "rating" : 3,
                            "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                        },
                        {
                            "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                            "name" : "Bob Fancy",
                            "rating" : 3,
                            "review" : "A few minutes late to show up but they did a nice job!"
                        }
                    ]
                }
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
service[]ArrayAn array of Service objects.
service[]{}.idStringUnique identifier of the service record
service[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
service[]{}.sortOrderIntegerSort order the service should appear in
service[]{}.skuNumberStringSKU number of the service
service[]{}.upcCodeStringUPC code of the service
service[]{}.priceFloatUnit sell price of the service
service[]{}.shortDescriptionStringShort description of the service
service[]{}.longDescriptionStringLong description of the service
service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
service[]{}.provider[]{}.idStringUnique identifier of the provider record
service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.provider[]{}.nameStringProvider's name
service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve Available ServicesGET /cart/{cart.id}/services/available

Use this request to retrieve all available services applicable to products in a cart in a certain geographical location.

Sample Request

GET /cart/e2b99b5e-6b64-d72f-c761-c87abe52f152/services/available

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "service" : [
        {
            "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 1,
            "skuNumber" : "IHIO-DOORBELL",
            "upcCode" : "823567917726452456",
            "price" : 99.99,
            "shortDescription" : "In-Home Smart Doorbell Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 3,
            "nextAvailableProviderId" : "65d7299b-d4f7-9a57-c56b-ef1761e2851f",
            "nextAvailableStart" : "2020-09-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-09-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 49.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                            "name" : "Jane Doe",
                            "rating" : 5,
                            "review" : "This service is great! I use it all the time!"
                        },
                        {
                            "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                            "name" : "James Smith",
                            "rating" : 4,
                            "review" : "Very polite and knoweledgable technician!  Thanks!"
                        }
                    ]
                },
                {
                    "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 39.99,
                    "avgRating" : 3.5,
                    "review" : [
                        {
                            "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                            "name" : "Debby Smith",
                            "rating" : 3,
                            "review" : "They were all right, I'd probably use them again."
                        },
                        {
                            "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                            "name" : "Todd Peterson",
                            "rating" : 4,
                            "review" : "Was quite happy with the way it turned out!"
                        }
                    ]
                }
            ],
            "availability" : [
                {
                    "id" : "3a8cec43-e477-9137-6aa2-9e16cf4d6960",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-01T15:30:00-05:00",
                    "windowEnd" : "2020-07-01T17:30:00-05:00"
                },
                {
                    "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-01T17:30:00-05:00",
                    "windowEnd" : "2020-07-01T19:30:00-05:00"
                },
                {
                    "id" : "f43f65fd-7fa5-e50f-6a37-7e8e29560c86",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "windowStart" : "2020-07-01T15:30:00-05:00",
                    "windowEnd" : "2020-07-02T17:30:00-05:00"
                }
            ],
            "confirmedAvailability" : {
                "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "windowStart" : "2020-07-01T17:30:00-05:00",
                "windowEnd" : "2020-07-01T19:30:00-05:00"
            }
        },
        {
            "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 2,
            "skuNumber" : "IHIO-SMARTTV",
            "upcCode" : "234527259871235915",
            "price" : 129.99,
            "shortDescription" : "In-Home Smart TV Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 2,
            "nextAvailableProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "nextAvailableStart" : "2020-10-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-10-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 89.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                            "name" : "Sally Stewart",
                            "rating" : 5,
                            "review" : "Very professional job, thank you!"
                        },
                        {
                            "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                            "name" : "Donna Meadows",
                            "rating" : 4,
                            "review" : "Happy with my TV installation!"
                        }
                    ]
                },
                {
                    "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 69.99,
                    "avgRating" : 3,
                    "review" : [
                        {
                            "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                            "name" : "Albert Macintosh",
                            "rating" : 3,
                            "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                        },
                        {
                            "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                            "name" : "Bob Fancy",
                            "rating" : 3,
                            "review" : "A few minutes late to show up but they did a nice job!"
                        }
                    ]
                }
            ],
            "availability" : [
                {
                    "id" : "75e9c27f-e10f-4be9-b12a-fe838df53cfc",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-09T15:30:00-05:00",
                    "windowEnd" : "2020-07-09T17:30:00-05:00"
                },
                {
                    "id" : "b4a46ba1-24ab-c1ed-d6ad-15205a348426",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-09T17:30:00-05:00",
                    "windowEnd" : "2020-07-09T19:30:00-05:00"
                },
                {
                    "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-10T15:30:00-05:00",
                    "windowEnd" : "2020-07-10T17:30:00-05:00"
                }
            ],
            "confirmedAvailability" : {
                "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                "windowStart" : "2020-07-10T15:30:00-05:00",
                "windowEnd" : "2020-07-10T17:30:00-05:00"
            }
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
service[]ArrayAn array of Service objects.
service[]{}.idStringUnique identifier of the service record
service[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
service[]{}.sortOrderIntegerSort order the service should appear in
service[]{}.skuNumberStringSKU number of the service
service[]{}.upcCodeStringUPC code of the service
service[]{}.priceFloatUnit sell price of the service
service[]{}.shortDescriptionStringShort description of the service
service[]{}.longDescriptionStringLong description of the service
service[]{}.minAvailabilityWindowsIntegerThe minimum number of availability windows the customer needs to select to create an appointment.
service[]{}.maxAvailabilityWindowsIntegerThe maximum number of availability windows the customer needs to select to create an appointment.
service[]{}.nextAvailableProviderIdStringUsed within calls that utilize a Geolocation object. Identifer of the provider with the next available appointment window.
service[]{}.nextAvailableStartDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window start date/time.
service[]{}.nextAvailableEndDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window end date/time.
service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
service[]{}.provider[]{}.idStringUnique identifier of the provider record
service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.provider[]{}.nameStringProvider's name
service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review
service[]{}.availability[]ArrayAn array of Availability objects representing available appointment windows for this service.
service[]{}.availability[]{}.idStringUnique identifer of the availabilty record
service[]{}.availability[]{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
service[]{}.availability[]{}.providerIdStringUnique identifer of the provider record handling this appointment
service[]{}.availability[]{}.windowStartDate/TimeStarting date/time of the appointment window
service[]{}.availability[]{}.windowEndDate/TimeEnding date/time of the appointment window
service[]{}.confirmedAvailability{}AvailabilityAvailability object of the confirmed appointment
service[]{}.confirmedAvailability{}.idStringUnique identifer of the availabilty record
service[]{}.confirmedAvailability{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
service[]{}.confirmedAvailability{}.providerIdStringUnique identifer of the provider record handling this appointment
service[]{}.confirmedAvailability{}.windowStartDate/TimeStarting date/time of the appointment window
service[]{}.confirmedAvailability{}.windowEndDate/TimeEnding date/time of the appointment window

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve Cart ProvidersGET /cart/{cart.id}/providers

Use this request to retrieve all service provider details for products in a cart.

Sample Request

GET /cart/e2b99b5e-6b64-d72f-c761-c87abe52f152/providers

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "provider" : [
        {
            "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "name" : "Install Guys",
            "cost" : 89.99,
            "avgRating" : 4.5,
            "review" : [
                {
                    "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                    "name" : "Sally Stewart",
                    "rating" : 5,
                    "review" : "Very professional job, thank you!"
                },
                {
                    "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                    "name" : "Donna Meadows",
                    "rating" : 4,
                    "review" : "Happy with my TV installation!"
                }
            ]
        },
        {
            "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "name" : "Autohome Inc",
            "cost" : 69.99,
            "avgRating" : 3,
            "review" : [
                {
                    "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                    "name" : "Albert Macintosh",
                    "rating" : 3,
                    "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                },
                {
                    "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                    "name" : "Bob Fancy",
                    "rating" : 3,
                    "review" : "A few minutes late to show up but they did a nice job!"
                }
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
provider[]ArrayAn array of Provider objects.
provider[]{}.idStringUnique identifier of the provider record
provider[]{}.productIdStringYour identifier of the product this service is for.
provider[]{}.nameStringProvider's name
provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
provider[]{}.review[]{}.idStringUnique identifier of the review record.
provider[]{}.review[]{}.nameStringName of the reviewer
provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
provider[]{}.review[]{}.reviewStringText block of the user's review

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve RecommendationsGET /cart/{cart.id}/recommended

Use this request to retrieve both recommended services and products of products in a cart.

Sample Request

GET /cart/e2b99b5e-6b64-d72f-c761-c87abe52f152/recommended

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "service" : [
        {
            "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 1,
            "skuNumber" : "IHIO-DOORBELL",
            "upcCode" : "823567917726452456",
            "price" : 99.99,
            "shortDescription" : "In-Home Smart Doorbell Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 3,
            "nextAvailableProviderId" : "65d7299b-d4f7-9a57-c56b-ef1761e2851f",
            "nextAvailableStart" : "2020-09-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-09-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 49.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                            "name" : "Jane Doe",
                            "rating" : 5,
                            "review" : "This service is great! I use it all the time!"
                        },
                        {
                            "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                            "name" : "James Smith",
                            "rating" : 4,
                            "review" : "Very polite and knoweledgable technician!  Thanks!"
                        }
                    ]
                },
                {
                    "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 39.99,
                    "avgRating" : 3.5,
                    "review" : [
                        {
                            "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                            "name" : "Debby Smith",
                            "rating" : 3,
                            "review" : "They were all right, I'd probably use them again."
                        },
                        {
                            "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                            "name" : "Todd Peterson",
                            "rating" : 4,
                            "review" : "Was quite happy with the way it turned out!"
                        }
                    ]
                }
            ],
            "availability" : [
                {
                    "id" : "3a8cec43-e477-9137-6aa2-9e16cf4d6960",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-01T15:30:00-05:00",
                    "windowEnd" : "2020-07-01T17:30:00-05:00"
                },
                {
                    "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-01T17:30:00-05:00",
                    "windowEnd" : "2020-07-01T19:30:00-05:00"
                },
                {
                    "id" : "f43f65fd-7fa5-e50f-6a37-7e8e29560c86",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "windowStart" : "2020-07-01T15:30:00-05:00",
                    "windowEnd" : "2020-07-02T17:30:00-05:00"
                }
            ],
            "confirmedAvailability" : {
                "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "windowStart" : "2020-07-01T17:30:00-05:00",
                "windowEnd" : "2020-07-01T19:30:00-05:00"
            }
        },
        {
            "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 2,
            "skuNumber" : "IHIO-SMARTTV",
            "upcCode" : "234527259871235915",
            "price" : 129.99,
            "shortDescription" : "In-Home Smart TV Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 2,
            "nextAvailableProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "nextAvailableStart" : "2020-10-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-10-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 89.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                            "name" : "Sally Stewart",
                            "rating" : 5,
                            "review" : "Very professional job, thank you!"
                        },
                        {
                            "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                            "name" : "Donna Meadows",
                            "rating" : 4,
                            "review" : "Happy with my TV installation!"
                        }
                    ]
                },
                {
                    "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 69.99,
                    "avgRating" : 3,
                    "review" : [
                        {
                            "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                            "name" : "Albert Macintosh",
                            "rating" : 3,
                            "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                        },
                        {
                            "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                            "name" : "Bob Fancy",
                            "rating" : 3,
                            "review" : "A few minutes late to show up but they did a nice job!"
                        }
                    ]
                }
            ],
            "availability" : [
                {
                    "id" : "75e9c27f-e10f-4be9-b12a-fe838df53cfc",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-09T15:30:00-05:00",
                    "windowEnd" : "2020-07-09T17:30:00-05:00"
                },
                {
                    "id" : "b4a46ba1-24ab-c1ed-d6ad-15205a348426",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-09T17:30:00-05:00",
                    "windowEnd" : "2020-07-09T19:30:00-05:00"
                },
                {
                    "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-10T15:30:00-05:00",
                    "windowEnd" : "2020-07-10T17:30:00-05:00"
                }
            ],
            "confirmedAvailability" : {
                "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                "windowStart" : "2020-07-10T15:30:00-05:00",
                "windowEnd" : "2020-07-10T17:30:00-05:00"
            }
        }
    ],
    "product" : [
        {
            "id" : "73316544-3729-c452-b3f3-83223529369e",
            "departmentCode" : "200",
            "classCode" : "210",
            "subclassCode" : "220",
            "familyCode" : "260",
            "skuNumber" : "PS140E-03CU8",
            "upcCode" : "89072345907825967245",
            "manufacturer" : "Toshiba",
            "model" : "Satellite 1400-153E",
            "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
            "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
            "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
            "answer" : [
                "71ee9886-48b9-6ffb-7fc4-c5008586c848",
                "99e01d04-c154-e813-11b8-7ac70f4ee179"
            ]
        },
        {
            "id" : "51b7e3a4-ca48-0d6e-5aaf-ac6286a71a59",
            "departmentCode" : "200",
            "classCode" : "210",
            "subclassCode" : "220",
            "familyCode" : "260",
            "skuNumber" : "PS460E-079K9",
            "upcCode" : "78569386973496791038",
            "manufacturer" : "Toshiba",
            "model" : "Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD",
            "shortDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB",
            "longDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
            "scrubData" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
            "answer" : [
                "1cb93869-d385-b79c-09a3-7e1bbd58d681",
                "14d6ebe8-ca7b-42ce-a426-3b0286b57c50",
                "c128b155-203b-da68-2cbf-0f7394ee5af0"
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
service[]ArrayAn array of recommended Service objects.
service[]{}.idStringUnique identifier of the service record
service[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
service[]{}.sortOrderIntegerSort order the service should appear in
service[]{}.skuNumberStringSKU number of the service
service[]{}.upcCodeStringUPC code of the service
service[]{}.priceFloatUnit sell price of the service
service[]{}.shortDescriptionStringShort description of the service
service[]{}.longDescriptionStringLong description of the service
service[]{}.minAvailabilityWindowsIntegerThe minimum number of availability windows the customer needs to select to create an appointment.
service[]{}.maxAvailabilityWindowsIntegerThe maximum number of availability windows the customer needs to select to create an appointment.
service[]{}.nextAvailableProviderIdStringUsed within calls that utilize a Geolocation object. Identifer of the provider with the next available appointment window.
service[]{}.nextAvailableStartDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window start date/time.
service[]{}.nextAvailableEndDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window end date/time.
service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
service[]{}.provider[]{}.idStringUnique identifier of the provider record
service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.provider[]{}.nameStringProvider's name
service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review
service[]{}.availability[]ArrayAn array of Availability objects representing available appointment windows for this service.
service[]{}.availability[]{}.idStringUnique identifer of the availabilty record
service[]{}.availability[]{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
service[]{}.availability[]{}.providerIdStringUnique identifer of the provider record handling this appointment
service[]{}.availability[]{}.windowStartDate/TimeStarting date/time of the appointment window
service[]{}.availability[]{}.windowEndDate/TimeEnding date/time of the appointment window
service[]{}.confirmedAvailability{}AvailabilityAvailability object of the confirmed appointment
service[]{}.confirmedAvailability{}.idStringUnique identifer of the availabilty record
service[]{}.confirmedAvailability{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
service[]{}.confirmedAvailability{}.providerIdStringUnique identifer of the provider record handling this appointment
service[]{}.confirmedAvailability{}.windowStartDate/TimeStarting date/time of the appointment window
service[]{}.confirmedAvailability{}.windowEndDate/TimeEnding date/time of the appointment window
product[]ArrayAn array of recommended Product objects.
product[]{}.idStringYour unique product reference number or identifier to the product record in your system.
product[]{}.departmentCodeStringProduct department code
product[]{}.classCodeStringProduct class code
product[]{}.subclassCodeStringProduct subclass code
product[]{}.familyCodeStringProduct family code
product[]{}.skuNumberStringProduct SKU number
product[]{}.upcCodeStringProduct UPC code
product[]{}.manufacturerStringProduct manufacturer
product[]{}.modelStringProduct model number
product[]{}.shortDescriptionStringShort description of the product
product[]{}.longDescriptionStringLong description of the product
product[]{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.
product[]{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve Recommended ServicesGET /cart/{cart.id}/recommended/services

Use this request to retrieve recommended services for products in a cart.

Sample Request

GET /cart/e2b99b5e-6b64-d72f-c761-c87abe52f152/recommended/services

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "service" : [
        {
            "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 1,
            "skuNumber" : "IHIO-DOORBELL",
            "upcCode" : "823567917726452456",
            "price" : 99.99,
            "shortDescription" : "In-Home Smart Doorbell Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 3,
            "nextAvailableProviderId" : "65d7299b-d4f7-9a57-c56b-ef1761e2851f",
            "nextAvailableStart" : "2020-09-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-09-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 49.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                            "name" : "Jane Doe",
                            "rating" : 5,
                            "review" : "This service is great! I use it all the time!"
                        },
                        {
                            "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                            "name" : "James Smith",
                            "rating" : 4,
                            "review" : "Very polite and knoweledgable technician!  Thanks!"
                        }
                    ]
                },
                {
                    "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 39.99,
                    "avgRating" : 3.5,
                    "review" : [
                        {
                            "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                            "name" : "Debby Smith",
                            "rating" : 3,
                            "review" : "They were all right, I'd probably use them again."
                        },
                        {
                            "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                            "name" : "Todd Peterson",
                            "rating" : 4,
                            "review" : "Was quite happy with the way it turned out!"
                        }
                    ]
                }
            ],
            "availability" : [
                {
                    "id" : "3a8cec43-e477-9137-6aa2-9e16cf4d6960",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-01T15:30:00-05:00",
                    "windowEnd" : "2020-07-01T17:30:00-05:00"
                },
                {
                    "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-01T17:30:00-05:00",
                    "windowEnd" : "2020-07-01T19:30:00-05:00"
                },
                {
                    "id" : "f43f65fd-7fa5-e50f-6a37-7e8e29560c86",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "windowStart" : "2020-07-01T15:30:00-05:00",
                    "windowEnd" : "2020-07-02T17:30:00-05:00"
                }
            ],
            "confirmedAvailability" : {
                "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "windowStart" : "2020-07-01T17:30:00-05:00",
                "windowEnd" : "2020-07-01T19:30:00-05:00"
            }
        },
        {
            "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 2,
            "skuNumber" : "IHIO-SMARTTV",
            "upcCode" : "234527259871235915",
            "price" : 129.99,
            "shortDescription" : "In-Home Smart TV Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 2,
            "nextAvailableProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "nextAvailableStart" : "2020-10-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-10-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 89.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                            "name" : "Sally Stewart",
                            "rating" : 5,
                            "review" : "Very professional job, thank you!"
                        },
                        {
                            "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                            "name" : "Donna Meadows",
                            "rating" : 4,
                            "review" : "Happy with my TV installation!"
                        }
                    ]
                },
                {
                    "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 69.99,
                    "avgRating" : 3,
                    "review" : [
                        {
                            "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                            "name" : "Albert Macintosh",
                            "rating" : 3,
                            "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                        },
                        {
                            "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                            "name" : "Bob Fancy",
                            "rating" : 3,
                            "review" : "A few minutes late to show up but they did a nice job!"
                        }
                    ]
                }
            ],
            "availability" : [
                {
                    "id" : "75e9c27f-e10f-4be9-b12a-fe838df53cfc",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-09T15:30:00-05:00",
                    "windowEnd" : "2020-07-09T17:30:00-05:00"
                },
                {
                    "id" : "b4a46ba1-24ab-c1ed-d6ad-15205a348426",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-09T17:30:00-05:00",
                    "windowEnd" : "2020-07-09T19:30:00-05:00"
                },
                {
                    "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-10T15:30:00-05:00",
                    "windowEnd" : "2020-07-10T17:30:00-05:00"
                }
            ],
            "confirmedAvailability" : {
                "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                "windowStart" : "2020-07-10T15:30:00-05:00",
                "windowEnd" : "2020-07-10T17:30:00-05:00"
            }
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
service[]ArrayAn array of recommended Service objects.
service[]{}.idStringUnique identifier of the service record
service[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
service[]{}.sortOrderIntegerSort order the service should appear in
service[]{}.skuNumberStringSKU number of the service
service[]{}.upcCodeStringUPC code of the service
service[]{}.priceFloatUnit sell price of the service
service[]{}.shortDescriptionStringShort description of the service
service[]{}.longDescriptionStringLong description of the service
service[]{}.minAvailabilityWindowsIntegerThe minimum number of availability windows the customer needs to select to create an appointment.
service[]{}.maxAvailabilityWindowsIntegerThe maximum number of availability windows the customer needs to select to create an appointment.
service[]{}.nextAvailableProviderIdStringUsed within calls that utilize a Geolocation object. Identifer of the provider with the next available appointment window.
service[]{}.nextAvailableStartDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window start date/time.
service[]{}.nextAvailableEndDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window end date/time.
service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
service[]{}.provider[]{}.idStringUnique identifier of the provider record
service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.provider[]{}.nameStringProvider's name
service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review
service[]{}.availability[]ArrayAn array of Availability objects representing available appointment windows for this service.
service[]{}.availability[]{}.idStringUnique identifer of the availabilty record
service[]{}.availability[]{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
service[]{}.availability[]{}.providerIdStringUnique identifer of the provider record handling this appointment
service[]{}.availability[]{}.windowStartDate/TimeStarting date/time of the appointment window
service[]{}.availability[]{}.windowEndDate/TimeEnding date/time of the appointment window
service[]{}.confirmedAvailability{}AvailabilityAvailability object of the confirmed appointment
service[]{}.confirmedAvailability{}.idStringUnique identifer of the availabilty record
service[]{}.confirmedAvailability{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
service[]{}.confirmedAvailability{}.providerIdStringUnique identifer of the provider record handling this appointment
service[]{}.confirmedAvailability{}.windowStartDate/TimeStarting date/time of the appointment window
service[]{}.confirmedAvailability{}.windowEndDate/TimeEnding date/time of the appointment window

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve Recommended ProductsGET /cart/{cart.id}/recommended/products

Use this request to retrieve recommended products for products in a cart.

Sample Request

GET /cart/e2b99b5e-6b64-d72f-c761-c87abe52f152/recommende/products

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "product" : [
        {
            "id" : "73316544-3729-c452-b3f3-83223529369e",
            "departmentCode" : "200",
            "classCode" : "210",
            "subclassCode" : "220",
            "familyCode" : "260",
            "skuNumber" : "PS140E-03CU8",
            "upcCode" : "89072345907825967245",
            "manufacturer" : "Toshiba",
            "model" : "Satellite 1400-153E",
            "shortDescription" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB",
            "longDescription" : "Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
            "scrubData" : "Toshiba Satellite 1400-153E, 1.33 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg) Toshiba Satellite 1400-153E. Processor frequency: 1.33 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 7.5 lbs (3.4 kg)",
            "answer" : [
                "71ee9886-48b9-6ffb-7fc4-c5008586c848",
                "99e01d04-c154-e813-11b8-7ac70f4ee179"
            ]
        },
        {
            "id" : "51b7e3a4-ca48-0d6e-5aaf-ac6286a71a59",
            "departmentCode" : "200",
            "classCode" : "210",
            "subclassCode" : "220",
            "familyCode" : "260",
            "skuNumber" : "PS460E-079K9",
            "upcCode" : "78569386973496791038",
            "manufacturer" : "Toshiba",
            "model" : "Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD",
            "shortDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB",
            "longDescription" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
            "scrubData" : "Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD, 0.75 GHz, 14.1", 1024 x 768 pixels, 20 GB Toshiba Satellite Pro 4600 PIII750/128/20/14.1TFT/DVD. Processor frequency: 0.75 GHz. Display diagonal: 14.1", Display resolution: 1024 x 768 pixels. Total storage capacity: 20 GB. Weight: 6.99 lbs (3.17 kg)",
            "answer" : [
                "1cb93869-d385-b79c-09a3-7e1bbd58d681",
                "14d6ebe8-ca7b-42ce-a426-3b0286b57c50",
                "c128b155-203b-da68-2cbf-0f7394ee5af0"
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
product[]ArrayAn array of recommended Product objects.
product[]{}.idStringYour unique product reference number or identifier to the product record in your system.
product[]{}.departmentCodeStringProduct department code
product[]{}.classCodeStringProduct class code
product[]{}.subclassCodeStringProduct subclass code
product[]{}.familyCodeStringProduct family code
product[]{}.skuNumberStringProduct SKU number
product[]{}.upcCodeStringProduct UPC code
product[]{}.manufacturerStringProduct manufacturer
product[]{}.modelStringProduct model number
product[]{}.shortDescriptionStringShort description of the product
product[]{}.longDescriptionStringLong description of the product
product[]{}.scrubDataStringLong text block of the product details used to scrub and locate applicable services.
product[]{}.answer[]ArrayA simple array of answer{}.id strings which have been answered by the customer and is used to locate applicable services.

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve Cart QuestionsGET /cart/{cart.id}/questions

Use this request to retrieve questions to be answered by the customer for products in a cart.

Sample Request

GET /cart/e2b99b5e-6b64-d72f-c761-c87abe52f152/questions

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "question" : [
        {
            "id" : "15e43784-fe92-51bf-6176-eb0f2abbf0b2",
            "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
            "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
            "visibleOnAnswerId" : null,
            "sortOrder" : 1,
            "required" : true,
            "type" : "BOOLEAN",
            "question" : "Is the installation location on ground level?",
            "answer" : [
                {
                    "id" : "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
                    "answer" : "Yes"
                },
                {
                    "id" : "e18b9c0e-f2b3-d586-89e7-3f8bc276dc05",
                    "answer" : "No"
                }
            ]
        },
        {
            "id" : "9b2f1470-c5da-2223-57a3-7c19928b57e6",
            "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
            "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
            "visibleOnAnswerId" : null,
            "sortOrder" : 2,
            "required" : true,
            "type" : "DROPDOWN",
            "question" : "Approximately how heavy is the smart TV?",
            "answer" : [
                {
                    "id" : "573b972a-57b5-e17d-3645-a066e85b9b4a",
                    "answer" : "Under 25 pounds"
                },
                {
                    "id" : "ee6848ba-31d2-c827-eab3-ef1cadc2a624",
                    "answer" : "25-50 pounds"
                },
                {
                    "id" : "f7df97d0-9167-7ad2-58cb-15ed1aca3553",
                    "answer" : "Over 50 pounds"
                }
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
question[]ArrayAn array of Question objects.
question[]{}.idStringUnique identifer of the question record
question[]{}.productIdStringYour unique product reference number or identifier to the product record in your system.
question[]{}.serviceIdStringUnique service reference identifier.
question[]{}.visibleOnAnswerIdStringIf this is a null value, then this question should always be visible to the customer. If this field does have a value, then this question should not appear until the corresponding answer{}.id has been selected by the customer.
question[]{}.sortOrderIntegerSort order the question should appear in
question[]{}.requiredBooleanWhether or not the question is required to be answered
question[]{}.typeStringThe type of question. See Question Types for all possible values.
question[]{}.questionStringThe question to be asked of the customer
question[]{}.answer[]ArrayAn array of Answer objects only applicable to BOOLEAN, RADIO, CHECKBOX, and DROPDOWN question types.
question[]{}.answer[]{}.idStringUnique identifer of the answer record for a particular question
question[]{}.answer[]{}.answerStringThe answer option to be presented to the customer

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve AvailabilityGET /cart/{cart.id}/availability

Use this request to retrieve available appointment windows in a geolocation for products in a cart.

Sample Request

GET /cart/e2b99b5e-6b64-d72f-c761-c87abe52f152/availability

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "service" : [
        {
            "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 1,
            "skuNumber" : "IHIO-DOORBELL",
            "upcCode" : "823567917726452456",
            "price" : 99.99,
            "shortDescription" : "In-Home Smart Doorbell Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 3,
            "nextAvailableProviderId" : "65d7299b-d4f7-9a57-c56b-ef1761e2851f",
            "nextAvailableStart" : "2020-09-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-09-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 49.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                            "name" : "Jane Doe",
                            "rating" : 5,
                            "review" : "This service is great! I use it all the time!"
                        },
                        {
                            "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                            "name" : "James Smith",
                            "rating" : 4,
                            "review" : "Very polite and knoweledgable technician!  Thanks!"
                        }
                    ]
                },
                {
                    "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 39.99,
                    "avgRating" : 3.5,
                    "review" : [
                        {
                            "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                            "name" : "Debby Smith",
                            "rating" : 3,
                            "review" : "They were all right, I'd probably use them again."
                        },
                        {
                            "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                            "name" : "Todd Peterson",
                            "rating" : 4,
                            "review" : "Was quite happy with the way it turned out!"
                        }
                    ]
                }
            ],
            "availability" : [
                {
                    "id" : "3a8cec43-e477-9137-6aa2-9e16cf4d6960",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-01T15:30:00-05:00",
                    "windowEnd" : "2020-07-01T17:30:00-05:00"
                },
                {
                    "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-01T17:30:00-05:00",
                    "windowEnd" : "2020-07-01T19:30:00-05:00"
                },
                {
                    "id" : "f43f65fd-7fa5-e50f-6a37-7e8e29560c86",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "windowStart" : "2020-07-01T15:30:00-05:00",
                    "windowEnd" : "2020-07-02T17:30:00-05:00"
                }
            ],
            "confirmedAvailability" : {
                "id" : "dbd7029f-b79a-55a4-08f8-24b03cc0ec56",
                "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "windowStart" : "2020-07-01T17:30:00-05:00",
                "windowEnd" : "2020-07-01T19:30:00-05:00"
            }
        },
        {
            "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 2,
            "skuNumber" : "IHIO-SMARTTV",
            "upcCode" : "234527259871235915",
            "price" : 129.99,
            "shortDescription" : "In-Home Smart TV Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 2,
            "nextAvailableProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "nextAvailableStart" : "2020-10-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-10-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 89.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                            "name" : "Sally Stewart",
                            "rating" : 5,
                            "review" : "Very professional job, thank you!"
                        },
                        {
                            "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                            "name" : "Donna Meadows",
                            "rating" : 4,
                            "review" : "Happy with my TV installation!"
                        }
                    ]
                },
                {
                    "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 69.99,
                    "avgRating" : 3,
                    "review" : [
                        {
                            "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                            "name" : "Albert Macintosh",
                            "rating" : 3,
                            "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                        },
                        {
                            "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                            "name" : "Bob Fancy",
                            "rating" : 3,
                            "review" : "A few minutes late to show up but they did a nice job!"
                        }
                    ]
                }
            ],
            "availability" : [
                {
                    "id" : "75e9c27f-e10f-4be9-b12a-fe838df53cfc",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-09T15:30:00-05:00",
                    "windowEnd" : "2020-07-09T17:30:00-05:00"
                },
                {
                    "id" : "b4a46ba1-24ab-c1ed-d6ad-15205a348426",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "windowStart" : "2020-07-09T17:30:00-05:00",
                    "windowEnd" : "2020-07-09T19:30:00-05:00"
                },
                {
                    "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                    "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                    "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "windowStart" : "2020-07-10T15:30:00-05:00",
                    "windowEnd" : "2020-07-10T17:30:00-05:00"
                }
            ],
            "confirmedAvailability" : {
                "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
                "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
                "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
                "windowStart" : "2020-07-10T15:30:00-05:00",
                "windowEnd" : "2020-07-10T17:30:00-05:00"
            }
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
service[]ArrayAn array of Service objects containing availability details.
service[]{}.idStringUnique identifier of the service record
service[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
service[]{}.sortOrderIntegerSort order the service should appear in
service[]{}.skuNumberStringSKU number of the service
service[]{}.upcCodeStringUPC code of the service
service[]{}.priceFloatUnit sell price of the service
service[]{}.shortDescriptionStringShort description of the service
service[]{}.longDescriptionStringLong description of the service
service[]{}.minAvailabilityWindowsIntegerThe minimum number of availability windows the customer needs to select to create an appointment.
service[]{}.maxAvailabilityWindowsIntegerThe maximum number of availability windows the customer needs to select to create an appointment.
service[]{}.nextAvailableProviderIdStringUsed within calls that utilize a Geolocation object. Identifer of the provider with the next available appointment window.
service[]{}.nextAvailableStartDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window start date/time.
service[]{}.nextAvailableEndDate/TimeUsed within calls that utilize a Geolocation object. Next available appointment window end date/time.
service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
service[]{}.provider[]{}.idStringUnique identifier of the provider record
service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.provider[]{}.nameStringProvider's name
service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review
service[]{}.availability[]ArrayAn array of Availability objects representing available appointment windows for this service.
service[]{}.availability[]{}.idStringUnique identifer of the availabilty record
service[]{}.availability[]{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
service[]{}.availability[]{}.providerIdStringUnique identifer of the provider record handling this appointment
service[]{}.availability[]{}.windowStartDate/TimeStarting date/time of the appointment window
service[]{}.availability[]{}.windowEndDate/TimeEnding date/time of the appointment window
service[]{}.confirmedAvailability{}AvailabilityAvailability object of the confirmed appointment
service[]{}.confirmedAvailability{}.idStringUnique identifer of the availabilty record
service[]{}.confirmedAvailability{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
service[]{}.confirmedAvailability{}.providerIdStringUnique identifer of the provider record handling this appointment
service[]{}.confirmedAvailability{}.windowStartDate/TimeStarting date/time of the appointment window
service[]{}.confirmedAvailability{}.windowEndDate/TimeEnding date/time of the appointment window

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retreive Cart StatusesGET /cart/status

Use this request to retrieve only the cart status of multiple cart{}.id strings.

Sample Request

GET /cart/status

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "cart" : [
        "e2b99b5e-6b64-d72f-c761-c87abe52f152",
        "7f9d5988-d6fc-69eb-69f3-4469ca3b61a1"
    ]
}

Input/Request Parameters

FieldTypeDescriptionRequired
cart[]ArrayA simple array of cart{}.id strings to return cart details on.Yes

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "cart" : [
        {
            "id" : "e2b99b5e-6b64-d72f-c761-c87abe52f152",
            "status" : "CONFIRMED"
        },
        {
            "id" : "7f9d5988-d6fc-69eb-69f3-4469ca3b61a1",
            "status" : "COMPLETE"
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
cart[]ArrayAn array of the cart objects requested.
cart[]{}.idStringYour unique identifier of the cart record in your system to reference again later.
cart[]{}.statusStringOverall appointment status. See Cart Statuses for all possible values.

Typical Response Codes

HTTP CodeMeaningRequired Action
201 CREATEDThe record was successfully created.
(Applicable only to POST requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.
422 UNPROCESSABLE ENTITYThe request structure is correct and the server understands the request but is unable to process the transaction. This typically can occur in a POST request if the record being created or changed already exists.Ensure you are not trying to create the same record that was already processed in a previous transaction.

Retreive a Cart's StatusGET /cart/{cart.id}/status

Use this request to retrieve only the cart status of one cart{}.id.

Sample Request

GET /cart/e2b99b5e-6b64-d72f-c761-c87abe52f152/status

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "cart" : {
        "id" : "e2b99b5e-6b64-d72f-c761-c87abe52f152",
        "status" : "CONFIRMED"
    }
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
cart{}ArrayAn array of the cart objects requested.
cart{}.idStringYour unique identifier of the cart record in your system to reference again later.
cart{}.statusStringOverall appointment status. See Cart Statuses for all possible values.

Typical Response Codes

HTTP CodeMeaningRequired Action
201 CREATEDThe record was successfully created.
(Applicable only to POST requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.
422 UNPROCESSABLE ENTITYThe request structure is correct and the server understands the request but is unable to process the transaction. This typically can occur in a POST request if the record being created or changed already exists.Ensure you are not trying to create the same record that was already processed in a previous transaction.

Services

Retrieve ServicesGET /service

Use this request to retrieve the service details of multiple service{}.id records.

Sample Request

GET /service

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "service" : [
        "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
        "d4c624b3-dc3b-e736-7590-721bb898480f"
    ]
}

Input/Request Parameters

FieldTypeDescriptionRequired
service[]ArrayA simply array of service{}.id values to retrieve details on.Yes

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "service" : [
        {
            "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 1,
            "skuNumber" : "IHIO-DOORBELL",
            "upcCode" : "823567917726452456",
            "price" : 99.99,
            "shortDescription" : "In-Home Smart Doorbell Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 3,
            "nextAvailableProviderId" : "65d7299b-d4f7-9a57-c56b-ef1761e2851f",
            "nextAvailableStart" : "2020-09-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-09-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 49.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                            "name" : "Jane Doe",
                            "rating" : 5,
                            "review" : "This service is great! I use it all the time!"
                        },
                        {
                            "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                            "name" : "James Smith",
                            "rating" : 4,
                            "review" : "Very polite and knoweledgable technician!  Thanks!"
                        }
                    ]
                },
                {
                    "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 39.99,
                    "avgRating" : 3.5,
                    "review" : [
                        {
                            "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                            "name" : "Debby Smith",
                            "rating" : 3,
                            "review" : "They were all right, I'd probably use them again."
                        },
                        {
                            "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                            "name" : "Todd Peterson",
                            "rating" : 4,
                            "review" : "Was quite happy with the way it turned out!"
                        }
                    ]
                }
            ]
        },
        {
            "id" : "d4c624b3-dc3b-e736-7590-721bb898480f",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "sortOrder" : 2,
            "skuNumber" : "IHIO-SMARTTV",
            "upcCode" : "234527259871235915",
            "price" : 129.99,
            "shortDescription" : "In-Home Smart TV Installation",
            "longDescription" : "A qualified and experienced technician will come to your house to install your smart TV.",
            "minAvailabilityWindows" : 1,
            "maxAvailabilityWindows" : 2,
            "nextAvailableProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "nextAvailableStart" : "2020-10-01T14:00:00-05:00",
            "nextAvailableEnd" : "2020-10-01T16:00:00-05:00",
            "provider" : [
                {
                    "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Install Guys",
                    "cost" : 89.99,
                    "avgRating" : 4.5,
                    "review" : [
                        {
                            "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                            "name" : "Sally Stewart",
                            "rating" : 5,
                            "review" : "Very professional job, thank you!"
                        },
                        {
                            "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                            "name" : "Donna Meadows",
                            "rating" : 4,
                            "review" : "Happy with my TV installation!"
                        }
                    ]
                },
                {
                    "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
                    "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                    "name" : "Autohome Inc",
                    "cost" : 69.99,
                    "avgRating" : 3,
                    "review" : [
                        {
                            "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                            "name" : "Albert Macintosh",
                            "rating" : 3,
                            "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                        },
                        {
                            "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                            "name" : "Bob Fancy",
                            "rating" : 3,
                            "review" : "A few minutes late to show up but they did a nice job!"
                        }
                    ]
                }
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
service[]ArrayAn array of Service objects.
service[]{}.idStringUnique identifier of the service record
service[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
service[]{}.sortOrderIntegerSort order the service should appear in
service[]{}.skuNumberStringSKU number of the service
service[]{}.upcCodeStringUPC code of the service
service[]{}.priceFloatUnit sell price of the service
service[]{}.shortDescriptionStringShort description of the service
service[]{}.longDescriptionStringLong description of the service
service[]{}.provider[]ArrayAn array of Provider objects capable of providing this service
service[]{}.provider[]{}.idStringUnique identifier of the provider record
service[]{}.provider[]{}.productIdStringYour identifier of the product this service is for.
service[]{}.provider[]{}.nameStringProvider's name
service[]{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
service[]{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
service[]{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
service[]{}.provider[]{}.review[]{}.nameStringName of the reviewer
service[]{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
service[]{}.provider[]{}.review[]{}.reviewStringText block of the user's review

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve a ServiceGET /service/{service.id}

Use this request to retrieve the service details of a service{}.id record.

Sample Request

GET /service/7f038d35-81d2-8a30-ef00-4a30c8674d4a

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "service" : {
        "id" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
        "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
        "preferredProviderId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
        "sortOrder" : 1,
        "skuNumber" : "IHIO-DOORBELL",
        "upcCode" : "823567917726452456",
        "price" : 99.99,
        "shortDescription" : "In-Home Smart Doorbell Installation",
        "longDescription" : "A qualified and experienced technician will come to your house to install your smart doorbell.",
        "minAvailabilityWindows" : 1,
        "maxAvailabilityWindows" : 3,
        "nextAvailableProviderId" : "65d7299b-d4f7-9a57-c56b-ef1761e2851f",
        "nextAvailableStart" : "2020-09-01T14:00:00-05:00",
        "nextAvailableEnd" : "2020-09-01T16:00:00-05:00",
        "provider" : [
            {
                "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
                "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                "name" : "Install Guys",
                "cost" : 49.99,
                "avgRating" : 4.5,
                "review" : [
                    {
                        "id" : "d144e67d-2bce-dc3d-2c7c-d459469a1131",
                        "name" : "Jane Doe",
                        "rating" : 5,
                        "review" : "This service is great! I use it all the time!"
                    },
                    {
                        "id" : "2cf22bbd-9a49-f5b3-fb35-ac18969ff7fb",
                        "name" : "James Smith",
                        "rating" : 4,
                        "review" : "Very polite and knoweledgable technician!  Thanks!"
                    }
                ]
            },
            {
                "id" : "fc4b36ce-c561-fea8-7bde-6e216be58e54",
                "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
                "name" : "Autohome Inc",
                "cost" : 39.99,
                "avgRating" : 3.5,
                "review" : [
                    {
                        "id" : "be96cb14-37c7-d44d-35e7-36149e9db49f",
                        "name" : "Debby Smith",
                        "rating" : 3,
                        "review" : "They were all right, I'd probably use them again."
                    },
                    {
                        "id" : "02c6a553-1144-94ac-012d-8f4b57253a8b",
                        "name" : "Todd Peterson",
                        "rating" : 4,
                        "review" : "Was quite happy with the way it turned out!"
                    }
                ]
            }
        ]
    }
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
service{}ServiceThe service object containing your requested details.
service{}.idStringUnique identifier of the service record
service{}.productIdStringYour identifier of the product this service is for.
service{}.preferredProviderIdStringIdentifier of the provider who is most preferred according to your business logic
service{}.sortOrderIntegerSort order the service should appear in
service{}.skuNumberStringSKU number of the service
service{}.upcCodeStringUPC code of the service
service{}.priceFloatUnit sell price of the service
service{}.shortDescriptionStringShort description of the service
service{}.longDescriptionStringLong description of the service
service{}.provider[]ArrayAn array of Provider objects capable of providing this service
service{}.provider[]{}.idStringUnique identifier of the provider record
service{}.provider[]{}.productIdStringYour identifier of the product this service is for.
service{}.provider[]{}.nameStringProvider's name
service{}.provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
service{}.provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
service{}.provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
service{}.provider[]{}.review[]{}.idStringUnique identifier of the review record.
service{}.provider[]{}.review[]{}.nameStringName of the reviewer
service{}.provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
service{}.provider[]{}.review[]{}.reviewStringText block of the user's review

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve Service QuestionsGET /service/{service.id}/questions

Use this request to retrieve the questions to be answered by the customer for a service{}.id record.

Sample Request

GET /service/7f038d35-81d2-8a30-ef00-4a30c8674d4a/questions

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "question" : [
        {
            "id" : "15e43784-fe92-51bf-6176-eb0f2abbf0b2",
            "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
            "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
            "visibleOnAnswerId" : null,
            "sortOrder" : 1,
            "required" : true,
            "type" : "BOOLEAN",
            "question" : "Is the installation location on ground level?",
            "answer" : [
                {
                    "id" : "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
                    "answer" : "Yes"
                },
                {
                    "id" : "e18b9c0e-f2b3-d586-89e7-3f8bc276dc05",
                    "answer" : "No"
                }
            ]
        },
        {
            "id" : "9b2f1470-c5da-2223-57a3-7c19928b57e6",
            "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
            "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
            "visibleOnAnswerId" : null,
            "sortOrder" : 2,
            "required" : true,
            "type" : "DROPDOWN",
            "question" : "Approximately how heavy is the smart TV?",
            "answer" : [
                {
                    "id" : "573b972a-57b5-e17d-3645-a066e85b9b4a",
                    "answer" : "Under 25 pounds"
                },
                {
                    "id" : "ee6848ba-31d2-c827-eab3-ef1cadc2a624",
                    "answer" : "25-50 pounds"
                },
                {
                    "id" : "f7df97d0-9167-7ad2-58cb-15ed1aca3553",
                    "answer" : "Over 50 pounds"
                }
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
question[]ArrayAn array of Question objects.
question[]{}.idStringUnique identifer of the question record
question[]{}.productIdStringYour unique product reference number or identifier to the product record in your system.
question[]{}.serviceIdStringUnique service reference identifier.
question[]{}.visibleOnAnswerIdStringIf this is a null value, then this question should always be visible to the customer. If this field does have a value, then this question should not appear until the corresponding answer{}.id has been selected by the customer.
question[]{}.sortOrderIntegerSort order the question should appear in
question[]{}.requiredBooleanWhether or not the question is required to be answered
question[]{}.typeStringThe type of question. See Question Types for all possible values.
question[]{}.questionStringThe question to be asked of the customer
question[]{}.answer[]ArrayAn array of Answer objects only applicable to BOOLEAN, RADIO, CHECKBOX, and DROPDOWN question types.
question[]{}.answer[]{}.idStringUnique identifer of the answer record for a particular question
question[]{}.answer[]{}.answerStringThe answer option to be presented to the customer

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve Service AvailabilityGET /service/{service.id}/availability

Use this request to retrieve available appointment windows using geolocation information for a service{}.id record.

Sample Request

GET /service/9b2f1470-c5da-2223-57a3-7c19928b57e6/availability

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "geolocation" : {
        "zipCode" : "92956",
        "latitude" : 53.36236,
        "longitude" : -6.261633,
        "accuracy" : 150
    }
}

Input/Request Parameters

FieldTypeDescriptionRequired
geolocation{}GeolocationThe location of the customer used for finding availability.Yes
geolocation{}.zipCodeStringZIP code used for finding available servicesYes
geolocation{}.latitudeFloatLatitude to use for finding available servicesNo
geolocation{}.longitudeFloatLongitude to use for finding available servicesNo
geolocation{}.accuracyIntegerEstimated accuracy (in meters) of radius around the latitude/longitude to use for finding available servicesNo

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "availability" : [
        {
            "id" : "75e9c27f-e10f-4be9-b12a-fe838df53cfc",
            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
            "windowStart" : "2020-07-09T15:30:00-05:00",
            "windowEnd" : "2020-07-09T17:30:00-05:00"
        },
        {
            "id" : "b4a46ba1-24ab-c1ed-d6ad-15205a348426",
            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "windowStart" : "2020-07-09T17:30:00-05:00",
            "windowEnd" : "2020-07-09T19:30:00-05:00"
        },
        {
            "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
            "windowStart" : "2020-07-10T15:30:00-05:00",
            "windowEnd" : "2020-07-10T17:30:00-05:00"
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
availability[]ArrayArray of Availability objects.
availability[]{}.idStringUnique identifer of the availabilty record
availability[]{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
availability[]{}.providerIdStringUnique identifer of the provider record handling this appointment
availability[]{}.windowStartDate/TimeStarting date/time of the appointment window
availability[]{}.windowEndDate/TimeEnding date/time of the appointment window

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Availability

Retrieve an AvailabilityGET /availability/{availability.id}

Use this request to retrieve appointment window availability details of one availability{}.id string.

Sample Request

GET /availability/75e9c27f-e10f-4be9-b12a-fe838df53cfc

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "availability" : {
        "id" : "75e9c27f-e10f-4be9-b12a-fe838df53cfc",
        "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
        "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
        "windowStart" : "2020-07-09T15:30:00-05:00",
        "windowEnd" : "2020-07-09T17:30:00-05:00"
    }
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
availability{}AvailabilityObject contining the availability details.
availability{}.idStringUnique identifer of the availabilty record
availability{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
availability{}.providerIdStringUnique identifer of the provider record handling this appointment
availability{}.windowStartDate/TimeStarting date/time of the appointment window
availability{}.windowEndDate/TimeEnding date/time of the appointment window

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve AvailabilitiesGET /availability

Use this request to retrieve appointment window availability details of multiple availability{}.id strings.

Sample Request

GET /availability

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "availability" : [
        "75e9c27f-e10f-4be9-b12a-fe838df53cfc",
        "b4a46ba1-24ab-c1ed-d6ad-15205a348426",
        "54f42f62-2cff-5149-446b-60d6f2cb2b6d"
    ]
}

Input/Request Parameters

FieldTypeDescriptionRequired
availability[]ArrayA simply array of availability{}.id values to retrieve details on.Yes

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "availability" : [
        {
            "id" : "75e9c27f-e10f-4be9-b12a-fe838df53cfc",
            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
            "windowStart" : "2020-07-09T15:30:00-05:00",
            "windowEnd" : "2020-07-09T17:30:00-05:00"
        },
        {
            "id" : "b4a46ba1-24ab-c1ed-d6ad-15205a348426",
            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "providerId" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "windowStart" : "2020-07-09T17:30:00-05:00",
            "windowEnd" : "2020-07-09T19:30:00-05:00"
        },
        {
            "id" : "54f42f62-2cff-5149-446b-60d6f2cb2b6d",
            "serviceId" : "7f038d35-81d2-8a30-ef00-4a30c8674d4a",
            "providerId" : "7675bca8-0891-5667-3421-30fb64165aa3",
            "windowStart" : "2020-07-10T15:30:00-05:00",
            "windowEnd" : "2020-07-10T17:30:00-05:00"
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
availability[]ArrayAn array of Availability objects representing the available appointment windows.
availability[]{}.idStringUnique identifer of the availabilty record
availability[]{}.serviceIdStringUsed within calls returning multiple service records. This is the unique identifier of the service this Availability record is for.
availability[]{}.providerIdStringUnique identifer of the provider record handling this appointment
availability[]{}.windowStartDate/TimeStarting date/time of the appointment window
availability[]{}.windowEndDate/TimeEnding date/time of the appointment window

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Providers

Retrieve a ProviderGET /provider/{provider.id}

Use this request to retrieve provider details of one provider{}.id string.

Sample Request

GET /provider/7675bca8-0891-5667-3421-30fb64165aa3

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "provider" : {
        "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
        "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
        "name" : "Autohome Inc",
        "cost" : 69.99,
        "avgRating" : 3,
        "review" : [
            {
                "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                "name" : "Albert Macintosh",
                "rating" : 3,
                "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
            },
            {
                "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                "name" : "Bob Fancy",
                "rating" : 3,
                "review" : "A few minutes late to show up but they did a nice job!"
            }
        ]
    }
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
provider{}ProviderObject containing requested provider details.
provider{}.idStringUnique identifier of the provider record
provider{}.productIdStringYour identifier of the product this service is for.
provider{}.nameStringProvider's name
provider{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
provider{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
provider{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
provider{}.review[]{}.idStringUnique identifier of the review record.
provider{}.review[]{}.nameStringName of the reviewer
provider{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
provider{}.review[]{}.reviewStringText block of the user's review

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve ProvidersGET /provider

Use this request to retrieve provider details of multiple provider{}.id strings.

Sample Request

GET /provider

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "provider" : [
        "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
        "7675bca8-0891-5667-3421-30fb64165aa3"
    ]
}

Input/Request Parameters

FieldTypeDescriptionRequired
provider[]ArrayA simply array of provider{}.id values to retrieve details on.Yes

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "provider" : [
        {
            "id" : "05cce2b2-1b0b-02f8-c01e-406bc1c7e60b",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "name" : "Install Guys",
            "cost" : 89.99,
            "avgRating" : 4.5,
            "review" : [
                {
                    "id" : "45f21b40-66f9-d635-390b-71aa05cb8247",
                    "name" : "Sally Stewart",
                    "rating" : 5,
                    "review" : "Very professional job, thank you!"
                },
                {
                    "id" : "6941dab0-eda4-5bf1-3b9b-a03c3cfe729b",
                    "name" : "Donna Meadows",
                    "rating" : 4,
                    "review" : "Happy with my TV installation!"
                }
            ]
        },
        {
            "id" : "7675bca8-0891-5667-3421-30fb64165aa3",
            "productId" : "b25e54a4-c244-e904-a5ac-2a0a16835885",
            "name" : "Autohome Inc",
            "cost" : 69.99,
            "avgRating" : 3,
            "review" : [
                {
                    "id" : "1a127de1-e395-bc5b-cb79-b524545f5b96",
                    "name" : "Albert Macintosh",
                    "rating" : 3,
                    "review" : "Looks pretty good, they did scuff up my wall a little but otherwise, I'm happy."
                },
                {
                    "id" : "407c4d90-5963-d102-6b01-33f1c95c2661",
                    "name" : "Bob Fancy",
                    "rating" : 3,
                    "review" : "A few minutes late to show up but they did a nice job!"
                }
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
provider[]ArrayAn array of Provider objects containing the provider details.
provider[]{}.idStringUnique identifier of the provider record
provider[]{}.productIdStringYour identifier of the product this service is for.
provider[]{}.nameStringProvider's name
provider[]{}.costFloatUsed within service records, this represents the unit cost of the service for that provider
provider[]{}.avgRatingFloatUsed within service records, this represents the average provider rating of the service on a scale between 1.0 and 5.0
provider[]{}.review[]ArrayUsed within service records, this is an array of the most recent provider reviews for this service
provider[]{}.review[]{}.idStringUnique identifier of the review record.
provider[]{}.review[]{}.nameStringName of the reviewer
provider[]{}.review[]{}.ratingFloatUser rating of the service on a scale between 1.0 and 5.0
provider[]{}.review[]{}.reviewStringText block of the user's review

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Questions

Retrieve a QuestionGET /question/{question.id}

Use this request to retrieve question details of one question{}.id string.

Sample Request

GET /question/15e43784-fe92-51bf-6176-eb0f2abbf0b2

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

Input/Request Parameters

No input/request parameters are accepted.

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "question" : {
        "id" : "15e43784-fe92-51bf-6176-eb0f2abbf0b2",
        "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
        "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
        "visibleOnAnswerId" : null,
        "sortOrder" : 1,
        "required" : true,
        "type" : "BOOLEAN",
        "question" : "Is the installation location on ground level?",
        "answer" : [
            {
                "id" : "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
                "answer" : "Yes"
            },
            {
                "id" : "e18b9c0e-f2b3-d586-89e7-3f8bc276dc05",
                "answer" : "No"
            }
        ]
    }
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
question{}QuestionObject containing requested question details.
question{}.idStringUnique identifer of the question record
question{}.productIdStringYour unique product reference number or identifier to the product record in your system.
question{}.serviceIdStringUnique service reference identifier.
question{}.visibleOnAnswerIdStringIf this is a null value, then this question should always be visible to the customer. If this field does have a value, then this question should not appear until the corresponding answer{}.id has been selected by the customer.
question{}.sortOrderIntegerSort order the question should appear in
question{}.requiredBooleanWhether or not the question is required to be answered
question{}.typeStringThe type of question. See Question Types for all possible values.
question{}.questionStringThe question to be asked of the customer
question{}.answer[]ArrayAn array of Answer objects only applicable to BOOLEAN, RADIO, CHECKBOX, and DROPDOWN question types.
question{}.answer[]{}.idStringUnique identifer of the answer record for a particular question
question{}.answer[]{}.answerStringThe answer option to be presented to the customer

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.

Retrieve QuestionsGET /question

Use this request to retrieve question details of multiple question{}.id strings.

Sample Request

GET /question

Content-Type: application/json
Timestamp: (See Authentication & Authorization)
Authorization: (See Authentication & Authorization)

{
    "question" : [
        "15e43784-fe92-51bf-6176-eb0f2abbf0b2",
        "9b2f1470-c5da-2223-57a3-7c19928b57e6"
    ]
}

Input/Request Parameters

FieldTypeDescriptionRequired
question[]ArrayA simply array of question{}.id values to retrieve details on.Yes

Sample Response

HTTP/1.1 200 OK

{
    "success" : true,
    "error" : "",
    "question" : [
        {
            "id" : "15e43784-fe92-51bf-6176-eb0f2abbf0b2",
            "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
            "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
            "visibleOnAnswerId" : null,
            "sortOrder" : 1,
            "required" : true,
            "type" : "BOOLEAN",
            "question" : "Is the installation location on ground level?",
            "answer" : [
                {
                    "id" : "8d37ddf0-08e6-01cd-03f0-b3097bbad16a",
                    "answer" : "Yes"
                },
                {
                    "id" : "e18b9c0e-f2b3-d586-89e7-3f8bc276dc05",
                    "answer" : "No"
                }
            ]
        },
        {
            "id" : "9b2f1470-c5da-2223-57a3-7c19928b57e6",
            "productId" : "9b5b728a-f578-1a6e-8942-a63a3ab2f5f8",
            "serviceId" : "4ce443da-53ec-d878-1037-ee3542fadef9",
            "visibleOnAnswerId" : null,
            "sortOrder" : 2,
            "required" : true,
            "type" : "DROPDOWN",
            "question" : "Approximately how heavy is the smart TV?",
            "answer" : [
                {
                    "id" : "573b972a-57b5-e17d-3645-a066e85b9b4a",
                    "answer" : "Under 25 pounds"
                },
                {
                    "id" : "ee6848ba-31d2-c827-eab3-ef1cadc2a624",
                    "answer" : "25-50 pounds"
                },
                {
                    "id" : "f7df97d0-9167-7ad2-58cb-15ed1aca3553",
                    "answer" : "Over 50 pounds"
                }
            ]
        }
    ]
}

Output/Response Parameters

FieldTypeDescription
successBooleanWill return true or false for whether or not the transaction was successful.
errorStringIntelligible string of the error that occurred. Will be empty if no error occurred.
question[]ArrayAn array of Question objects containing the question details.
question[]{}.idStringUnique identifer of the question record
question[]{}.productIdStringYour unique product reference number or identifier to the product record in your system.
question[]{}.serviceIdStringUnique service reference identifier.
question[]{}.visibleOnAnswerIdStringIf this is a null value, then this question should always be visible to the customer. If this field does have a value, then this question should not appear until the corresponding answer{}.id has been selected by the customer.
question[]{}.sortOrderIntegerSort order the question should appear in
question[]{}.requiredBooleanWhether or not the question is required to be answered
question[]{}.typeStringThe type of question. See Question Types for all possible values.
question[]{}.questionStringThe question to be asked of the customer
question[]{}.answer[]ArrayAn array of Answer objects only applicable to BOOLEAN, RADIO, CHECKBOX, and DROPDOWN question types.
question[]{}.answer[]{}.idStringUnique identifer of the answer record for a particular question
question[]{}.answer[]{}.answerStringThe answer option to be presented to the customer

Typical Response Codes

HTTP CodeMeaningRequired Action
200 OKThe transaction was successful.
(Applicable to GET, PUT, and DELETE requests)
N/A
400 BAD REQUESTA logic error was encountered or the request was missing a required parameter.Review the returned errors and correct the issue.