Update: having just concluded some testing on this, I wouldn’t recommend using Schedule API workflow on a list at all, here’s why.
I ran a test to make changes to a list of 2000 items, using the following 3 methods. The change was the same for each item (setting a date field to the current date/time).
Here are the results.
Schedule API Worfklow on a List
A workflow to make changes to a single thing, being scheduled to run on the list of 2000 things.
Time to complete: 16 minutes
WU Cost: 7,225
Using A Recursive Worklow
A worklfow to make changes to a single thing, running recursively through the list of 2000 things
Time to complete: 13 minutes
WU Cost: 4,793
Make Changes To A List Of Things
A single backend workflow, with just a single action to make changes to the full list of 2000 things
Time to complete: 2 minutes
WU Cost: 1,149
So, a pretty significant difference in both WU cost and speed… with Running the workflow on the list costing more than 6 times as much and taking 8 times longer than using a single workflow action to modify a list of thing.
Obviously, that won’t always be the best option in all cases, and bear in mind you’re still governed by the 5 minute timeout limit on workflows, but it should give you an idea of what the best methods to explore for your use case are.
To be honest I’m not sure why there was any difference in WU cost between using a recursive workflow and scheduling the workflow to run on the list - in theory it’s the same number of server actions, the same number of schedule actions, and the same number of searches, and the same amount of data being searched for - but there you go… one of the mysteries of WUs.