The API always stops running when there are no players in the game, but should spin up automatically once a player has entered the game. You might have a script that does something on startup and is causing an error, or you might just need to wait a minute for it to finish spinning up when you first enter the game. What scripts are you using? Do you usually see an error message in the API Output Console? You don't need to exit the game to restart the sandbox. I recommend simply keeping the API Script Page open in a separate window (I shrink the window down so I only see the API Output Console in the corner of the screen) so you can see if an error is thrown at some point. I also suggest using the API Heartbeat script if you want a visual indication in-game when the API stops working. This is also very useful for 'silent' errors that don't show up on the API Output Console. I also use this small scriptlet to notify me in-game when the API has finished spinning up (I modified it from the link listed on the first line). You can uncomment line 14 if you want a message in game when the API is starting to spin up as well. // <a href="https://app.roll20.net/forum/post/9379560/script-help-new-to-scripting-need-help-on-one-started#post-9412121" rel="nofollow">https://app.roll20.net/forum/post/9379560/script-help-new-to-scripting-need-help-on-one-started#post-9412121</a> const APIStartup = (()=>{ const scriptName = "API Startup"; const version = '0.1'; const OuterStyleStart = `width: 75%; margin: auto; padding: 0px; border-radius: 4px; box-shadow: 1px 1px 1px #707070;`; const InnerStyleStart = `text-align: center; vertical-align: middle; padding: 0px 0px; margin: 0px auto; border: 1px solid #000; border-radius: 4px; color: #000; background-image: -webkit-linear-gradient(-45deg, #a7c7dc 0%,#85b2d3 100%); text-shadow: 0px 0px #222, 0px 0px #222, 0px 0px #222, 0px 0px #222 , 0px 0px #222;`; let timestamp = (new Date()).toLocaleString("en-US", {timeZone: "America/Los_Angeles"}); const checkInstall = function() { log('-=> ' + scriptName + ' v' + version + ' <=-'); setTimeout(()=>log(`API Wakeup Complete at ` +timestamp),0); sendChat("API Startup", `/w gm <div style='${OuterStyleStart}'><div style='${InnerStyleStart}'>API Wakeup Complete</div></div>`,null,{noarchive:true}); }; log(`API Wakeup Begun...`); // sendChat("API Startup", `/w gm <div style='${OuterStyleStart}'><div style='${InnerStyleStart}'>API Starting Up</div></div>`,null,{noarchive:true}); on("ready",() => { checkInstall(); }); })();