We are making GET requests on behalf of our customers and something has changed in the past day or so. It appears as though the Customers API endpoint is no longer honoring the provided since_id param:
When this request executes, we are receiving Customer results with ID's less than the since_id, for example: 678875332644 < 789838168100. The docs indicate that since_id restricts the API response:
Restrict results to those after the specified ID.
This appears to no longer be the case as of yesterday across multiple Shopify stores. What's going wrong? Was there a recent change in this behavior over the past 24 hours?
I am no longer experiencing this bug. I've tested with both the 2019-07 and 2019-10 api versions. I think you need to set since_id to 0 in your initial request. Then for each subsequent request, set since_id to the id of the last customer object in the response, as they are (or should be) always ordered by id smallest to largest.
Yes - a fix for this went out. @customology hit the nail on the head with their explanation above as well - if you're following those steps then you should be able to paginate through all of a shop's customers.
Yes the same approach will work with the myshopify.com/admin/api/<api_version>/products.json endpoint to fetch all products. Set since_id=0 for the first request, then for each subsequent response, set since_id to the id of the last product in the list of product objects returned by the response. I also recommend setting limit=250, (the max it can be) to reduce the number of API requests required.