As this is not well documented you could query all existing panel properties like this:
import bpy
from bpy.types import Panel
from collections import defaultdict
def all_panels():
for prop in dir(bpy.types):
cls = getattr(bpy.types, prop)
if hasattr(cls, "mro"):
if Panel in cls.mro():
yield cls
attrs = ["bl_space_type", "bl_region_type", "bl_context"]
options = defaultdict(lambda: set())
for panel in all_panels():
for attr in attrs:
if hasattr(panel, attr):
value = getattr(panel, attr)
options[attr].add(value)
for opt, values in options.items():
print(60*"-")
print(opt)
print(values)
This will print these results:
bl_space_type
{'OUTLINER', 'DOPESHEET_EDITOR', 'NLA_EDITOR', 'VIEW_3D', 'FILE_BROWSER', 'TOPBAR', 'SEQUENCE_EDITOR', 'GRAPH_EDITOR', 'PROPERTIES', 'CLIP_EDITOR', 'PREFERENCES', 'IMAGE_EDITOR', 'TEXT_EDITOR', 'NODE_EDITOR'}
------------------------------------------------------------
bl_region_type
{'TOOL_PROPS', 'WINDOW', 'HEADER', 'UI', 'EXECUTE', 'TOOLS', 'NAVIGATION_BAR'}
------------------------------------------------------------
bl_context
{'object', 'interface', 'particle', '.paint_common', 'material', 'scene', '.vertexpaint', 'constraint', 'file_paths', 'data', 'physics', '.imagepaint_2d', 'save_load', '.mesh_edit', '.greasepencil_paint', '.posemode', '.imagepaint', '.objectmode', 'output', '.greasepencil_sculpt', 'system', 'input', 'world', '.paint_common_2d', 'render', 'editing', 'navigation', 'experimental', 'viewport', 'view_layer', '.armature_edit', '.greasepencil_vertex', 'modifier', 'addons', '.uv_sculpt', '.particlemode', 'animation', 'lights', 'shaderfx', 'keymap', 'bone_constraint', 'texture', 'bone', 'themes', '.weightpaint', '.sculpt_mode', '.greasepencil_weight'}