Free Stocky API export script, before the API stops on August 31

Stocky's API stops answering on August 31, 2026. Most of the advice about leaving Stocky covers the CSV exports, and those matter, but the API carries two things the CSV does not and they are the two you cannot rebuild afterwards. This page explains both, gives you the check that proves your pull was complete, and links a script that does the whole thing for nothing.

Published by Aislekit, who make a Shopify label printing app. We name it where it is relevant and say plainly when you do not need it. Every fact here was checked against Shopify's own transition documentation.

Download: stocky_export.py (one file, no install, MIT licensed: licence). Run it with python3 stocky_export.py --store yourstore.myshopify.com --key YOUR_KEY. The key comes from Stocky itself, under Preferences then API. It is read only, you generate it yourself, and you can delete it the moment you are done. Nothing is uploaded anywhere: it runs on your machine and writes files to your disk.

What the API gives you that the CSV does not

Two fields, and both are per line item rather than per order. supplier_cost_price is what you actually paid on that delivery. received_at is the date it actually landed, not the date the order was raised. Order dates come out in the CSV. Delivery dates do not, so anything you want to say later about supplier lead times has to come out of the API before the end of the month.

The two traps, both of which fail silently

Both are in Stocky's own docs rather than being bugs, which is exactly why they are easy to walk past. Neither produces an error.

  1. Why does my Stocky purchase order export come back empty? Because purchase_orders pages backwards. Its since_id returns orders with ID values less than the one you pass, while suppliers, stock adjustments and tax types all return greater than. Starting at since_id=0 and walking upward returns an empty array and reads exactly like a store with no purchase orders in it. If you tried the API, got nothing, and concluded it was already switched off, this is worth a second look.
  2. The status filter has eight values, not the four you would guess. draft, draft-archived, draft-unarchived, confirmed, confirmed-archived, confirmed-unarchived, archived and unarchived. The docs do not state what an unfiltered list contains, so request each status separately and merge on id.

How do I know my Stocky export is complete?

Count it three ways and make them agree. Request each status separately and merge on id, compare that against a plain unfiltered call, then compare both against the row count of the CSV you exported from inside Stocky. Nothing errors when a pull is short, so a number that disagrees is the only warning you get.

Do this now rather than in the last few days of the month. If a count comes out wrong you want time to work out why while the API is still answering.

What no export can reach at all

Free text. There is no notes field on a supplier or on a purchase order anywhere in the API, and no par levels resource. Those have to be copied out by hand while the app still opens. Every year of vendor specific knowledge lives in those boxes, and there is no button for it.

Where this script stands, stated plainly

It has never been run against a live Stocky store, because Stocky was removed from the App Store in February 2026 and cannot be installed fresh. Every field name, pagination direction and status value here comes from Stocky's published API docs rather than from a live response. It is tested against a mock that implements those documented semantics, 28 assertions, and it degrades to a named warning rather than dying if a resource is missing.

That is exactly why it is free. Running it on your own store costs you nothing, tells you something useful either way, and if a field name turns out to be wrong we would genuinely like to know. It is read only, so the worst case is an incomplete file rather than a changed one.

If you would rather not do it yourself

We do this migration for stores as a fixed price job. Same people who wrote this page. You pay when the work is delivered and you have checked it, never up front.

Most jobs come back inside two working days. Tell us your store size and which step you are stuck on and you get a straight yes or no, with a firm price, the same day: aislekit@gmail.com.

This page is one part of the complete Stocky exit checklist, which covers all six steps in order.