That is very fast. How about you run the following:
call apoc.load.jsonParams(uri, options,null)
YIELD value AS listing
MERGE (l:Listing{cid:0})
I am trying to figure out if it is the parsing of the json? Even so, your path is not complicated, so I can't image it taking that long to pull out the value of 'listing.results[0].listing_id'. How complicated is the listing json? Can you share it?
Something seems very off. I used the apoc method to pull orders from a Shopify site I have and then pull out some data from the response. The json is fairly large and the response was instantaneous.