Handling common problems with the API

I'm getting a 500 error

There are several reasons for getting a 500 error from our API, mainly due to either incorrect request signatures or malformed request payloads.

API signature errors

If our backend cannot authenticate your API call using the signature you passed in the API_DIGEST header, it will return a 500 error telling you that you are not authorized to make the call.

Please check the following:

  • Signature is created from the correct request components:
    • GET requests - request path, query-string, API secret
    • POST / PUT requests - request path, query-string, request body, API secret
  • Use the request path (API endpoint) without HTTP schema and host. For example /api/v2/recommendations/allnothttps://rest.quicklizard.com/api/v2/recommendations/all
  • For POST / PUT requests with JSON payload, the request body must be the stringified version of your JSON payload
Stale requests

If your API call timestamp parameter (qts) is not a UTC Unix timestamp in milliseconds, our backend will consider your request to be stale and will return a 500 error telling you the request is stale and your timestamp should be renewed.

Please make sure your qts query-string parameter is a Unix timestamp, in milliseconds and not seconds, and is generated in UTC timezone rather than local timezone.

JSON payload errors

If your request is a POST / PUT request, with JSON payload (request body), you must verify that the JSON you're sending is valid and complies with the structure detailed in the relevant API endpoint documentation.

Invalid or malformed JSONs may cause our backend to fail when parsing your request and return a 500 error.

You may validate your JSON using an Online JSON Validator.

Please Note - POST / PUT requests with JSON payloads (request body) must add a Content-Type: application/json header to the API call. All other requests (GET requests, or POST / PUT with normal request body) should not add a Content-Type header.

I don't see my created / updated products

Our API can be used to create new products or update existing products in our system. Creating and updating products via our API is done asynchronously and can take up to 30 minutes to process (depending on the current load in our internal systems).

If created products or updates to existing products done via our API do not appear on our system, please check the following:

  • JSON format of your API call - badly formatted payloads can cause the creation process to fail
  • Required properties - each product must contain one or more properties as detailed in the relevant API documentation.
  • Payload length - both create and update operations are limited to 50 products per API call.

For product updates only, please also check the following:

  • Disabled flag is set to the correct value if used. Disabled products (disabled=1) will not run through our pricing engine, and will disappear from the default products page in our UI within 24 hours.
  • Non-existing products - The update API will reject any products sent for update that do not already exist in our DB.