Get list of fulfilled orders using rest api

Topic summary

Main issue: A developer wants to fetch only fulfilled Shopify orders via the REST Admin API to auto-delete products after fulfillment. Their current call to /admin/api/2023-04/orders.json with fulfillment_status filtering isn’t returning the expected fulfilled-only set.

What was tried:

  • Initially used fulfillment_status=partial (returns non-fulfilled orders).
  • Switched to fulfillment_status=fulfilled as suggested, but the response “shows all orders except fulfilled,” not the desired result.

New guidance offered:

  • Include query parameters directly in the request URL and add status=any (e.g., /admin/api/2023-10/orders.json?status=any). Rationale: default status filtering may exclude some orders (e.g., closed), affecting which fulfilled orders appear.

Current status:

  • No confirmed resolution from the original poster; another participant reports the same issue.

Key technical notes:

  • fulfillment_status and status are query parameters that filter orders. status=any can broaden results beyond the default state.
  • Code snippets and exact query parameters are central to understanding the problem and proposed fix.
Summarized with AI on January 11. AI used: gpt-5.

Hello all,

I am working on to delete product automatically from admin when order fulfilled. I have getting all orders using api but I want only fulfilled orders for that I am using following line of api, for this I can not get fulfilled orders.

Can anyone please help me in this issue ?

$getOrders = shopify_call($access_token, $shop, "/admin/api/2023-04/orders.json", array("fulfillment_status" => 'partial'), 'GET');

If you want to get only the orders that are fulfilled, you should filter the orders using the value ‘fulfilled’.

$getOrders = shopify_call($access_token, $shop, "/admin/api/2023-04/orders.json", array("fulfillment_status" => 'fulfilled'), 'GET');

Hello @okur90 ,

I have tried this way but it is not working. It display all orders except fulfilled and I want only fulfilled orders.

Have you managed to find the solution? I am having the same problem…

you should use query params in the request, for example:

yourstore.com/2023-10/orders.json, won’t bring fulfilled orders, so you should do:

yourstore.com/2023-10/orders.json?status=any ← the status is the “secret”