Load a temporary level and return

I want to do a thing a bit like Final Fantasy battles, where the players are teleported to a new level to do a sub-game (which might be fighting, but will also be other stuff) and are then transported back to the current level at the end. Is there an API for this, or must I cache the entire state of the actors in the level, load the temporary one, then load the previous one and restore everything?

The Game Instance from @Rama appears to be what you want, It is a pretty simple way to store persistent data between levels.