diff --git a/game_api.txt b/game_api.txt
index 47df8e7..4500cac 100644
--- a/game_api.txt
+++ b/game_api.txt
@@ -569,6 +569,7 @@ sfinv API by its author: https://rubenwardy.com/minetest_modding_book/en/chapter
 **Pages**
 
 * sfinv.set_page(player, pagename) - changes the page
+* sfinv.get_page(player) - get the current page name. Will never return nil
 * sfinv.get_homepage_name(player) - get the page name of the first page to show to a player
 * sfinv.register_page(name, def) - register a page, see section below
 * sfinv.override_page(name, def) - overrides fields of an page registered with register_page.
diff --git a/mods/sfinv/api.lua b/mods/sfinv/api.lua
index b9ddb39..cd5b5e8 100644
--- a/mods/sfinv/api.lua
+++ b/mods/sfinv/api.lua
@@ -135,6 +135,11 @@ function sfinv.set_page(player, pagename)
 	sfinv.set_player_inventory_formspec(player, context)
 end
 
+function sfinv.get_page(player)
+	local context = sfinv.contexts[player:get_player_name()]
+	return context and context.page or sfinv.get_homepage_name(player)
+end
+
 minetest.register_on_joinplayer(function(player)
 	if sfinv.enabled then
 		sfinv.set_player_inventory_formspec(player)