# REST API V3
QL's REST API allows you to programmatically interact with our platform over HTTPS.
The API provides endpoints to interact with the following segments:
- Price Recommendations - list all or accepted price recommendations generated by QL's pricing engine.
- Products - create and update products in bulk and list enabled or disabled products.
- Analytics - update periodical analytics (views, conversions, revenue) for your products
- Competitors - update competitor prices for your products
# API base URI
API calls should be made to the REST API endpoint that is set up for your account. This information can be found in our UI under Settings > Integration Settings, as show in the example below.
For the remainder of this guide, we'll use the API base URL
https://rest.quicklizard.com. Please make sure you adapt your code
to the correct endpoint, as shown in our UI.
Please set up your API client with the correct API base URI. Do not confuse this API with our legacy API, which is available on https://api.quicklizard.com (opens new window).
# Common terms used through the documentation
- Account - Your account on QL. An account is a billable entity, and as a QL client you should have a single account that you own.
- Site - An online store, that is operated by or is affiliated with you. Your account can have one or more sites associated with it. Each site is identified by a unique string named "client_key".
- Product - A data structure that contains information about a product sold on one of your sites, for pricing purposes. Each site can have multiple products, and each product belongs to one site only.
- Competitor - An entity that holds information about the one of your site's competitors.
- Competitor Price - An entity that holds information about a specific competitor’s price for a single product. Each product can have one or more competitor prices.
- uid - An internal unique identifier used by QL to identify a specific product.
- client_key - A unique identifier used to identify one of your sites.
- channel - The pricing channel to which related pricing data belongs (applicable to omni-channel systems only)
# Data Formatting Notes
QL's API accepts JSON payloads only. Your data should be sent as a valid JSON document, and you should make sure the following requirements are met:
- UTF encoding - Strings should be encoded in UTF8, to avoid any issues with non-English characters parsing.
- Double Quotes - Strings should be wrapped in double quotes and not single quotes.
- JSON field names - JSON field names are always in lowercase, underscore format, unless otherwise specified.
- Numbers - Numbers must be sent as unquoted values in float64 format, without thousands separator, and with a dot decimal separator.
# API Authentication
Any calls made to the QL's REST API must contain specific headers that allow us to identify who is making the request and that the request itself is authentic.
Before you begin working on your integration with us, please take a few moments to read our API authentication documentation and familiarize yourself with the technical aspects of authenticating your API calls to QL.
Your API_KEY and API_SECRET are available in the account settings area on our online UI.
Unlike our legacy API, the REST API authentication is done at the Account level, and not at the Site level. For relevant API calls, you can specify the Site or Sites you wish to interact with.
# Integration & Debugging
Please be sure to go over the API integration documentation which details design considerations and useful information that will help you integrate with our platform more smoothly.
To ensure you're able to quickly identify and handle any technical problems that arise during initial API integration, and later on when your platform is already integrated with QL, please be sure to go over the Debugging section.
In addition, we highly recommend that you set up detailed logging of your API calls, that'll make it easier for you to pin-point problems, and raise them with our support team if needed.
At the very least your logs should include the following:
- API request URL and HTTP method
- API request payload for POST / PUT requests
- HTTP request headers
- API response