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.
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.
- 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.
- 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.
- History and supplier rescue, $49. Every report exported and organised, plus the supplier records typed into a clean spreadsheet, which is the part with no export button.
- Label template rebuild, $150. Your label rebuilt at the exact size you actually use, with a test sheet you print on your own printer before you trust it.
- The whole move, $300. Both of the above, your receiving flow rebuilt on native purchase orders and transfers and tested end to end, and a one page instruction sheet for whoever receives stock.
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.