The Portal API is a RESTful service. It uses resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
PRODUCTION ACCESS
You will use our sandbox until your integration is reviewed and approved. Once approved we'll provide keys to use our production API at https://api.portal.io
SANDBOX ACCESS
STEP 1
Sign up for a free Sandbox Account at https://sandbox.portal.io. This is a dealer test account you will use to exchange test data.
STEP 2
After you have a sandbox account, let your Portal rep know, and they will provide you an API Application Key, as well as a Secret Key (used to hach the signature in your requests)
STEP 3
You're now ready to get your User Key. Please refer to the User Authentication section, which is next in these docs. The User Key is the last thing you'll need to start making requests to the sandbox API at https://sandbox.api.portal.io
To start making API calls you’ll need a User Key. You’ll make a request at https://sandbox.api.portal.io/authenticate/apikeyexchange.
Send your Portal account Username and Password and pass the following headers:
SANDBOX SAMPLE SIGNATURE - GET a User Key
GEThttps://sandbox.api.portal.io/authenticate/apikeyexchangeMon, 29 Aug 2022 13:30:55 GMT
**Important** The signature must be hashed with HMAC SHA256 using Secret Key and converted to Base64
Once you have your User Key you are ready to start making requests. The signature format for all requests is as follows. Notice the UserKey is added to the end of the concatenated string.
[Verb of the Request][its URL][Content Type][Date Timestamp][User API key]
SANDBOX SAMPLE SIGNATURE - GET Proposal List
GEThttps://api.portal.io/proposalsMon, 29 Aug 2022 13:30:55 GMTGhr/FRUWkligku/RQC49bWl0PohT46mQaX0ptShYMvk=
Note, there is no content type for Get request.
**Important** The signature must be hashed with HMAC SHA256 using Secret Key and converted to Base64
Sign In
Success
Invalid credentials or User Email is not verified
{- "userId": "string",
- "sessionId": "string",
- "userName": "string",
- "displayName": "string",
- "referrerUrl": "string",
- "bearerToken": "string",
- "refreshToken": "string",
- "refreshTokenExpiry": "2019-08-24T14:15:22Z",
- "profileUrl": "string",
- "roles": [
- "string"
], - "permissions": [
- "string"
], - "responseStatus": {
- "errorCode": "string",
- "message": "string",
- "stackTrace": "string",
- "errors": [
- {
- "errorCode": "string",
- "fieldName": "string",
- "message": "string",
- "meta": {
- "property1": "string",
- "property2": "string"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}
}, - "meta": {
- "property1": "string",
- "property2": "string"
}
}
The 'Proposals' service contains two main endpoints: Search & Get Proposal List, and Get Proposal Details. The search endpoint provides you basic summary information about proposals, including the Proposal Id, which you can then use to query the Proposal details endpoint, and get full detail, including line items.
Returns a list of all proposals, with summary information such as Status, Total and Customer.
Proposal List.
Not Authorized to access this endpoint or your HMAC hash was incorrect.
This action requires an active subscription.
You do not have permission for this API call.
{- "proposals": [
- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "proposalTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "customer": {
- "id": 0,
- "contactType": "Undefined",
- "contactCategory": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}
}
], - "proposalCount": 0
}
Using the Proposal ID you can get all the details for a proposal. It's important to understand the data structure of our proposals so you know where to find the item details.
Proposal
Areas
Options
Items
Items are contained within Options, and Options are contained with Areas. Options allow the client to choose between different variations of an area. Only a single option can be accepted. We show you the declined options as well so you'll need to ignore those if you only care about items on accepted proposals.
Proposal Details
Not Authorized to access this endpoint or your HMAC hash was incorrect.
You do not have permission for this API call.
{- "id": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "clientLastDecisionDate": "2019-08-24T14:15:22Z",
- "lastCompletedDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "financialSummary": {
- "partsSubtotal": 0,
- "partsDiscountType": "Percentage",
- "partsDiscountPercentage": 0,
- "partsDiscount": 0,
- "partsTotal": 0,
- "laborTotal": 0,
- "proposalSubtotal": 0,
- "salesTax": {
- "taxStatus": "Undefined",
- "total": 0,
- "calculation": {
- "method": "ClientLocation",
- "applyTo": [ ],
- "partsTax": 0,
- "partsTaxName": "string",
- "laborTax": 0,
- "laborTaxName": "string",
- "hasMultipleTaxSupport": true,
- "partsTax2": 0,
- "partsTax2Name": "string",
- "laborTax2": 0,
- "laborTax2Name": "string",
- "taxLocation": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "isTaxJarAvailable": true
}
}, - "proposalTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "changeOrders": [
- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "customer": {
- "id": 0,
- "contactType": "Undefined",
- "contactCategory": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z"
}
], - "number": 0,
- "name": "string",
- "status": "Undefined",
- "lastSubmittedDate": "2019-08-24T14:15:22Z",
- "clientLastOpenedDate": "2019-08-24T14:15:22Z",
- "customer": {
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "id": 0,
- "contactType": "Undefined",
- "contactCategory": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "dealer": {
- "companyName": "string",
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "salesperson": {
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "webSiteUrl": "string",
- "companyPhone": "string",
- "companyLogoUrl": "string"
}, - "coverpageImageUrl": "string",
- "aboutUs": "string",
- "projectDescription": "string",
- "areas": [
- {
- "id": 0,
- "name": "string",
- "options": [
- {
- "id": 0,
- "status": "Draft",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "clientDescription": "string",
- "installerDescription": "string",
- "items": [
- {
- "id": 0,
- "parentId": 0,
- "itemType": "Part",
- "referencedItemId": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "brand": "string",
- "model": "string",
- "description": "string",
- "name": "string",
- "shortDescription": "string",
- "clientNote": "string",
- "imageUrl": "string",
- "msrp": 0,
- "sellPrice": 0,
- "cost": 0,
- "costUpdateDate": "2019-08-24T14:15:22Z",
- "supplier": "string",
- "quantity": 0,
- "total": {
- "amount": null,
- "currency": null,
- "isCombinedPrice": null
}, - "isTaxExempt": true,
- "isRecurringService": true,
- "linkedOrders": [
- null
]
}
], - "total": 0,
- "totalRecurringService": 0
}
]
}
], - "profit": {
- "total": 0,
- "percentage": 0,
- "partTotal": 0,
- "partPercentage": 0,
- "laborTotal": 0,
- "laborPercentage": 0,
- "isProfitIncludeCos": true
}, - "recurringServices": {
- "items": [
- {
- "name": "string",
- "sellPrice": 0,
- "quantity": 0
}
], - "totalRecurringService": 0
}, - "paymentSchedule": {
- "customerDescription": "string",
- "payments": [
- {
- "calculation": "string",
- "amount": 0,
- "due": {
- "date": "2019-08-24T14:15:22Z",
- "milestone": "string"
}
}
]
}, - "paymentRequests": [
- {
- "id": 0,
- "status": "Undefined",
- "amount": 0,
- "dueDate": "2019-08-24T14:15:22Z",
- "description": "string",
- "paymentMethod": "string"
}
], - "projectTerms": "string",
- "lastModifiedUser": {
- "firstName": "string",
- "lastName": "string"
}
}
Get Change Order Details
Change Order Details
Not Authorized to access this endpoint or your HMAC hash was incorrect.
You do not have permission for this API call.
{- "id": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "clientLastDecisionDate": "2019-08-24T14:15:22Z",
- "lastCompletedDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "financialSummary": {
- "partsSubtotal": 0,
- "partsDiscountType": "Percentage",
- "partsDiscountPercentage": 0,
- "partsDiscount": 0,
- "partsTotal": 0,
- "laborTotal": 0,
- "changeOrderSubtotal": 0,
- "salesTax": {
- "taxStatus": "Undefined",
- "total": 0,
- "calculation": {
- "method": "ClientLocation",
- "applyTo": [ ],
- "partsTax": 0,
- "partsTaxName": "string",
- "laborTax": 0,
- "laborTaxName": "string",
- "hasMultipleTaxSupport": true,
- "partsTax2": 0,
- "partsTax2Name": "string",
- "laborTax2": 0,
- "laborTax2Name": "string",
- "taxLocation": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "isTaxJarAvailable": true
}
}, - "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "number": 0,
- "name": "string",
- "status": "Undefined",
- "lastSubmittedDate": "2019-08-24T14:15:22Z",
- "clientLastOpenedDate": "2019-08-24T14:15:22Z",
- "customer": {
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "id": 0,
- "contactType": "Undefined",
- "contactCategory": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "dealer": {
- "companyName": "string",
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "salesperson": {
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "webSiteUrl": "string",
- "companyPhone": "string",
- "companyLogoUrl": "string"
}, - "coverpageImageUrl": "string",
- "aboutUs": "string",
- "projectDescription": "string",
- "areas": [
- {
- "id": 0,
- "name": "string",
- "options": [
- {
- "id": 0,
- "status": "Draft",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "clientDescription": "string",
- "installerDescription": "string",
- "items": [
- {
- "id": 0,
- "parentId": 0,
- "itemType": "Part",
- "referencedItemId": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "brand": "string",
- "model": "string",
- "description": "string",
- "name": "string",
- "shortDescription": "string",
- "clientNote": "string",
- "imageUrl": "string",
- "msrp": 0,
- "sellPrice": 0,
- "cost": 0,
- "costUpdateDate": "2019-08-24T14:15:22Z",
- "supplier": "string",
- "quantity": 0,
- "total": {
- "amount": null,
- "currency": null,
- "isCombinedPrice": null
}, - "isTaxExempt": true,
- "isRecurringService": true,
- "linkedOrders": [
- null
]
}
], - "total": 0,
- "totalRecurringService": 0
}
]
}
], - "profit": {
- "total": 0,
- "percentage": 0,
- "partTotal": 0,
- "partPercentage": 0,
- "laborTotal": 0,
- "laborPercentage": 0,
- "isProfitIncludeCos": true
}, - "recurringServices": {
- "items": [
- {
- "name": "string",
- "sellPrice": 0,
- "quantity": 0
}
], - "totalRecurringService": 0
}, - "paymentSchedule": {
- "customerDescription": "string",
- "payments": [
- {
- "calculation": "string",
- "amount": 0,
- "due": {
- "date": "2019-08-24T14:15:22Z",
- "milestone": "string"
}
}
]
}, - "paymentRequests": [
- {
- "id": 0,
- "status": "Undefined",
- "amount": 0,
- "dueDate": "2019-08-24T14:15:22Z",
- "description": "string",
- "paymentMethod": "string"
}
], - "projectTerms": "string",
- "lastModifiedUser": {
- "firstName": "string",
- "lastName": "string"
}
}
Returns a list of all change orders for a particular proposal, with summary information such as Status, Total and Customer.
Change Order List by Proposal.
Not Authorized to access this endpoint or your HMAC hash was incorrect.
This action requires an active subscription.
You do not have permission for this API call.
[- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "customer": {
- "id": 0,
- "contactType": "Undefined",
- "contactCategory": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z"
}
]
Search & Get Contact List
Contact List.
Not Authorized to access this endpoint or your HMAC hash was incorrect.
This action requires an active subscription.
You do not have permission for this API call.
{- "people": [
- {
- "id": 0,
- "contactType": "Undefined",
- "contactCategory": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}
], - "peopleCount": 0
}
Create a New Contact
Success
Not Authorized to access this endpoint or your HMAC hash was incorrect.
This action requires an active subscription.
You do not have permission for this API call.
ContactType=string&ContactCategory=string&FirstName=string&LastName=string&CompanyName=string&ContactEmail=string&ContactEmailCC=string&ContactPhone=string&Notes=string
{- "notes": "string",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "primaryLocation": {
- "contactFirstName": "string",
- "contactLastName": "string",
- "contactPhoneNumber": "string",
- "contactEmail": "string",
- "isPrimary": true,
- "isBilling": true,
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "billingLocation": {
- "contactFirstName": "string",
- "contactLastName": "string",
- "contactPhoneNumber": "string",
- "contactEmail": "string",
- "isPrimary": true,
- "isBilling": true,
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "proposalCount": 0,
- "paymentCount": 0,
- "id": 0,
- "contactType": "Undefined",
- "contactCategory": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}
Get Contact Details
Success
Person not found.
Not Authorized to access this endpoint or your HMAC hash was incorrect.
You do not have permission for this API call.
{- "notes": "string",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "primaryLocation": {
- "contactFirstName": "string",
- "contactLastName": "string",
- "contactPhoneNumber": "string",
- "contactEmail": "string",
- "isPrimary": true,
- "isBilling": true,
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "billingLocation": {
- "contactFirstName": "string",
- "contactLastName": "string",
- "contactPhoneNumber": "string",
- "contactEmail": "string",
- "isPrimary": true,
- "isBilling": true,
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "proposalCount": 0,
- "paymentCount": 0,
- "id": 0,
- "contactType": "Undefined",
- "contactCategory": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}
Get Contact Location List
Contact Location list
Not Authorized to access this endpoint or your HMAC hash was incorrect.
You do not have permission for this API call.
{- "contactLocations": [
- {
- "contactFirstName": "string",
- "contactLastName": "string",
- "contactPhoneNumber": "string",
- "contactEmail": "string",
- "isPrimary": true,
- "isBilling": true,
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}
], - "locationCount": 0
}
Create New Contact Location
Contact Location
Not Authorized to access this endpoint or your HMAC hash was incorrect.
This action requires an active subscription.
You do not have permission for this API call.
This person does not exists.
ContactFirstName=string&ContactLastName=string&ContactPhoneNumber=string&ContactEmail=string&Street=string&Suite=string&City=string&PostalCode=string&State=string&Country=string&IsPrimary=true&IsBilling=true
{- "contactFirstName": "string",
- "contactLastName": "string",
- "contactPhoneNumber": "string",
- "contactEmail": "string",
- "isPrimary": true,
- "isBilling": true,
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}
**These endpoints require separate authorization**
The Catalog service provides access to all items in the Portal catalog, including information about their MSRP, cost, sell prices and suppliers.
Search & Get Catalog Items
A catalog response
Not Authorized to access this endpoint or your HMAC hash was incorrect.
This action requires an active subscription.
You do not have permission for this API call.
Internal error.
{- "items": [
- {
- "id": 0,
- "brand": "string",
- "model": "string",
- "shortDescription": "string",
- "primaryImageUrl": "string",
- "parentCategoryId": 0,
- "categoryId": 0,
- "categories": [
- "string"
], - "isFavorite": true,
- "isDiscontinued": true,
- "msrp": {
- "msrpUsd": 0,
- "regularValue": 0,
- "isCustom": true,
- "futurePrice": {
- "value": 0,
- "effectiveDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "isInUse": true
}, - "value": 0,
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "modifiedBy": "string",
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "defaultCost": {
- "supplierName": "string",
- "supplierSku": "string",
- "managePriceStatus": "None",
- "accountNumber": "string",
- "isInStock": true,
- "isPromo": true,
- "lastVerifiedDate": "2019-08-24T14:15:22Z",
- "unitOfMeasure": "string",
- "discountPercentage": 0,
- "regularValue": 0,
- "isCustom": true,
- "futurePrice": {
- "value": 0,
- "effectiveDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "isInUse": true
}, - "value": 0,
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "modifiedBy": "string",
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "sellPrice": {
- "type": "string",
- "costMultiplier": 0,
- "value": 0,
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "modifiedBy": "string",
- "currency": {
- "code": "string",
- "symbol": "string"
}
}
}
], - "favoriteItems": [
- {
- "id": 0,
- "brand": "string",
- "model": "string",
- "shortDescription": "string",
- "primaryImageUrl": "string",
- "parentCategoryId": 0,
- "categoryId": 0,
- "categories": [
- "string"
], - "isFavorite": true,
- "isDiscontinued": true,
- "msrp": {
- "msrpUsd": 0,
- "regularValue": 0,
- "isCustom": true,
- "futurePrice": {
- "value": 0,
- "effectiveDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "isInUse": true
}, - "value": 0,
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "modifiedBy": "string",
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "defaultCost": {
- "supplierName": "string",
- "supplierSku": "string",
- "managePriceStatus": "None",
- "accountNumber": "string",
- "isInStock": true,
- "isPromo": true,
- "lastVerifiedDate": "2019-08-24T14:15:22Z",
- "unitOfMeasure": "string",
- "discountPercentage": 0,
- "regularValue": 0,
- "isCustom": true,
- "futurePrice": {
- "value": 0,
- "effectiveDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "isInUse": true
}, - "value": 0,
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "modifiedBy": "string",
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "sellPrice": {
- "type": "string",
- "costMultiplier": 0,
- "value": 0,
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "modifiedBy": "string",
- "currency": {
- "code": "string",
- "symbol": "string"
}
}
}
], - "categoryFacets": [
- {
- "name": "string",
- "itemCount": 0
}
], - "brandFacets": [
- {
- "name": "string",
- "itemCount": 0
}
], - "supplierFacets": [
- {
- "name": "string",
- "itemCount": 0
}
], - "totalItemCount": 0,
- "processingTimeMS": 0,
- "favoriteItemCount": 0,
- "labors": [
- {
- "id": 0,
- "imageAssetId": 0,
- "brand": "string",
- "model": "string",
- "name": "string",
- "shortDescription": "string",
- "sellPrice": 0,
- "cost": 0,
- "sellPercentage": 0,
- "costPercentage": 0,
- "sellPercentageBasis": "string",
- "costPercentageBasis": "string",
- "isTaxExempt": true,
- "isRecurringService": true,
- "modifiedDate": "2019-08-24T14:15:22Z",
- "categoryId": 0,
- "imageUrl": "string",
- "deleted": true,
- "profit": {
- "profit": 0,
- "percentage": 0
}
}
], - "customItems": [
- {
- "modelNumber": "string",
- "id": 0,
- "imageAssetId": 0,
- "brand": "string",
- "model": "string",
- "name": "string",
- "shortDescription": "string",
- "sellPrice": 0,
- "cost": 0,
- "sellPercentage": 0,
- "costPercentage": 0,
- "sellPercentageBasis": "string",
- "costPercentageBasis": "string",
- "isTaxExempt": true,
- "isRecurringService": true,
- "modifiedDate": "2019-08-24T14:15:22Z",
- "categoryId": 0,
- "imageUrl": "string",
- "deleted": true,
- "profit": {
- "profit": 0,
- "percentage": 0
}
}
]
}
Return the current category structure.
A catalog response
Not Authorized to access this endpoint or your HMAC hash was incorrect.
This action requires an active subscription.
You do not have permission for this API call.
Internal error.
[- {
- "id": 0,
- "name": "string",
- "categories": [
- {
- "id": 0,
- "name": "string",
- "imageUrl": "string",
- "subCategories": [
- { }
]
}
]
}
]
Get Catalog Item Details
Product Details
The requested item doesn't exist
Not Authorized to access this endpoint or your HMAC hash was incorrect.
This action requires an active subscription.
You do not have permission for this API call.
{- "description": "string",
- "productUrl": "string",
- "manufacturerProductUrl": "string",
- "additionalImageUrls": [
- "string"
], - "pdfResourceLinks": [
- {
- "name": "string",
- "url": "string"
}
], - "videoResourceLinks": [
- {
- "name": "string",
- "url": "string"
}
], - "specs": [
- {
- "name": "string",
- "value": "string"
}
], - "suppliers": [
- {
- "id": 0,
- "name": "string",
- "cost": {
- "isPromo": true,
- "lastVerifiedDate": "2019-08-24T14:15:22Z",
- "unitOfMeasure": "string",
- "discountPercentage": 0,
- "regularValue": 0,
- "isCustom": true,
- "futurePrice": {
- "value": 0,
- "effectiveDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "isInUse": true
}, - "value": 0,
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "modifiedBy": "string",
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "isDefault": true,
- "sku": "string",
- "isInStock": true,
- "isDiscontinued": "string",
- "status": "string",
- "createdDate": "2019-08-24T14:15:22Z",
- "accountNumber": "string"
}
], - "id": 0,
- "brand": "string",
- "model": "string",
- "shortDescription": "string",
- "primaryImageUrl": "string",
- "parentCategoryId": 0,
- "categoryId": 0,
- "categories": [
- "string"
], - "isFavorite": true,
- "isDiscontinued": true,
- "msrp": {
- "msrpUsd": 0,
- "regularValue": 0,
- "isCustom": true,
- "futurePrice": {
- "value": 0,
- "effectiveDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "isInUse": true
}, - "value": 0,
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "modifiedBy": "string",
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "defaultCost": {
- "supplierName": "string",
- "supplierSku": "string",
- "managePriceStatus": "None",
- "accountNumber": "string",
- "isInStock": true,
- "isPromo": true,
- "lastVerifiedDate": "2019-08-24T14:15:22Z",
- "unitOfMeasure": "string",
- "discountPercentage": 0,
- "regularValue": 0,
- "isCustom": true,
- "futurePrice": {
- "value": 0,
- "effectiveDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "isInUse": true
}, - "value": 0,
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "modifiedBy": "string",
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "sellPrice": {
- "type": "string",
- "costMultiplier": 0,
- "value": 0,
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "modifiedBy": "string",
- "currency": {
- "code": "string",
- "symbol": "string"
}
}
}