code: def api_url(self, **kwargs):
          
          query = {
              'Operation': self.Operation,
              'Service': "AWSECommerceService",
              'Timestamp': time.strftime(
                  "%Y-%m-%dT%H:%M:%SZ", time.gmtime()),
              'Version': self.Version,
          }
          query.update(kwargs)
  
          query['AWSAccessKeyId'] = self.AWSAccessKeyId
          query['Timestamp'] = time.strftime("%Y-%m-%dT%H:%M:%SZ",
                                             time.gmtime())
  
          if self.AssociateTag:
              query['AssociateTag'] = self.AssociateTag
  
          service_domain = SERVICE_DOMAINS[self.Region][0]
          quoted_strings = _quote_query(query)
  
          data = "GET\n" + service_domain + "\n/onca/xml\n" + quoted_strings
  
          # convert unicode to UTF8 bytes for hmac library
          if type(self.AWSSecretAccessKey) is unicode:
              self.AWSSecretAccessKey = self.AWSSecretAccessKey.encode('utf-8')
  
          if type(data) is unicode:
              data = data.encode('utf-8')
  
          # calculate sha256 signature
          digest = hmac.new(self.AWSSecretAccessKey, data, sha256).digest()
  
          # base64 encode and urlencode
          if sys.version_info[0] == 3:
              signature = urllib.parse.quote(b64encode(digest))
          else:
              signature = urllib.quote(b64encode(digest))
  
          return ("https://" + service_domain + "/onca/xml?" +
                  quoted_strings + "&Signature=%s" % signature)
docs: The URL for making the given query against the API.