If I read correctly, you call an API with an Exec and it works, and if you schedule with the same exec action it does not work. Strange.
Have you tried using the Include action instead of Exec? Can’t see that changing anything, but ???
I think the main difference here is that with the API there is an http request, and there isn’t with the scheduler, so perhaps you are using a SERVER var that isn’t the same??? Again, wild guess.
You might want to get the Advanced Logger extension and start logging a bunch of details so you can see where the difference lies.