diff --git a/README.md b/README.md
index 5e33c914cce02a5c048b78a9c498dafc52e861fb..680c88429526b9cceb12ad17b60ef38ccb074459 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[PACKAGE]: ../../raw/master/mkp/juniper_bgp_peer-1.0.0-20230613.mkp "juniper_bgp_peer-1.0.0-20230613.mkp"
+[PACKAGE]: ../../raw/master/mkp/juniper_bgp_peer-1.0.1-20250329.mkp "juniper_bgp_peer-1.0.1-20250329.mkp"
 # Juniper BGP Peer
 
 Monitors status of Juniper BGP peers (IPv4 and IPv6)
diff --git a/mkp/juniper_bgp_peer-1.0.1-20250329.mkp b/mkp/juniper_bgp_peer-1.0.1-20250329.mkp
new file mode 100644
index 0000000000000000000000000000000000000000..17f3fd431b49e0f0294ab12ed927363722faa9ea
Binary files /dev/null and b/mkp/juniper_bgp_peer-1.0.1-20250329.mkp differ
diff --git a/source/agent_based/inv_juniper_bgp_peer.py b/source/cmk_addons_plugins/bgp_peer/agent_based/inv_juniper_bgp_peer.py
similarity index 93%
rename from source/agent_based/inv_juniper_bgp_peer.py
rename to source/cmk_addons_plugins/bgp_peer/agent_based/inv_juniper_bgp_peer.py
index 8fec6aed3c93c3d1efe62aa15b345b1e95cb221e..2613dc4881d028b1f5f8f0edc22fce41e7c81114 100644
--- a/source/agent_based/inv_juniper_bgp_peer.py
+++ b/source/cmk_addons_plugins/bgp_peer/agent_based/inv_juniper_bgp_peer.py
@@ -11,29 +11,28 @@
 #
 # THX to Jeff Fern jeff[dash]cmk[at]fcse[dot]co[dot]uk for testing and providing feedback to make this addon happen
 #
+
 # 2022-04-30: code cleanup/streamlining
-#
+# 2025-03-29: moved to check APIv2 to prepare for CMK2.4
 
 
 from typing import List
-from cmk.base.plugins.agent_based.agent_based_api.v1 import (
-    register,
-    SNMPTree,
+from cmk.agent_based.v2 import (
     OIDBytes,
-    startswith,
     OIDEnd,
-)
-from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
+    SNMPSection,
+    SNMPTree,
     StringByteTable,
+    startswith,
 )
-from cmk.base.plugins.agent_based.utils.bgp_peer import (
+from cmk_addons.plugins.bgp_peer.lib.bgp_peer import (
     InvBgpPeer,
     bgp_error_as_string,
     bgp_error_code_as_hex,
     bgp_render_ip_address,
     get_bgp_type,
 )
-from cmk.base.plugins.agent_based.utils.juniper_bgp_peer import (
+from cmk_addons.plugins.bgp_peer.lib.juniper_bgp_peer import (
     juniper_afi_safi_mapping,
 )
 
@@ -86,7 +85,7 @@ def parse_inv_juniper_bgp_peer(string_table: List[StringByteTable]):
     return bgp_peers
 
 
-register.snmp_section(
+snmp_section_inv_juniper_bgp_peer=SNMPSection(
     name='inv_juniper_bgp_peer',
     parse_function=parse_inv_juniper_bgp_peer,
     parsed_section_name='inv_bgp_peer',
diff --git a/source/agent_based/juniper_bgp_peer.py b/source/cmk_addons_plugins/bgp_peer/agent_based/juniper_bgp_peer.py
similarity index 95%
rename from source/agent_based/juniper_bgp_peer.py
rename to source/cmk_addons_plugins/bgp_peer/agent_based/juniper_bgp_peer.py
index df60dceeddf9b17f26f033438c3c8b58c53acedb..6c5db353b457306f55dde17599c03061483b45a1 100644
--- a/source/agent_based/juniper_bgp_peer.py
+++ b/source/cmk_addons_plugins/bgp_peer/agent_based/juniper_bgp_peer.py
@@ -18,30 +18,29 @@
 # 2023-01-25: fixed routing instance in item
 # 2023-02-20: fixed crash on unexpected input data (i.e. in_prefixes_active)
 #             THX stephen[dot]Chrobot[dash]Hudson[at]nominet[dot]uk
-#
+# 2025-03-29: moved to check APIv2 to prepare for CMK2.4
+
 
 import copy
 from typing import List, Dict, Optional, Tuple
 from dataclasses import dataclass
 
-from cmk.base.plugins.agent_based.agent_based_api.v1 import (
-    register,
-    SNMPTree,
-    startswith,
-    OIDEnd,
+from cmk.agent_based.v2 import (
     OIDBytes,
-)
-from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
+    OIDEnd,
+    SNMPSection,
+    SNMPTree,
     StringByteTable,
+    startswith,
 )
 
-from cmk.base.plugins.agent_based.utils.bgp_peer import (
+from cmk_addons.plugins.bgp_peer.lib.bgp_peer import (
     BgpPeer,
     bgp_get_peer_entry,
     bgp_render_ip_address,
 )
 
-from cmk.base.plugins.agent_based.utils.juniper_bgp_peer import (
+from cmk_addons.plugins.bgp_peer.lib.juniper_bgp_peer import (
     juniper_afi_safi_mapping,
 )
 
@@ -120,7 +119,7 @@ def parse_juniper_bgp_peer(string_table: List[StringByteTable]) -> Optional[Dict
     return peer_table
 
 
-register.snmp_section(
+snmp_section_juniper_bgp_peer=SNMPSection(
     name='juniper_bgp_peer',
     parse_function=parse_juniper_bgp_peer,
     parsed_section_name='bgp_peer',
diff --git a/source/agent_based/utils/juniper_bgp_peer.py b/source/cmk_addons_plugins/bgp_peer/lib/juniper_bgp_peer.py
similarity index 100%
rename from source/agent_based/utils/juniper_bgp_peer.py
rename to source/cmk_addons_plugins/bgp_peer/lib/juniper_bgp_peer.py
diff --git a/source/packages/juniper_bgp_peer b/source/packages/juniper_bgp_peer
index fad30f3267b99bfc01b495304b762916e583ef5d..dca9323a8ab2d541e02b4631ff2621454cbd8053 100644
--- a/source/packages/juniper_bgp_peer
+++ b/source/packages/juniper_bgp_peer
@@ -20,12 +20,12 @@
                 'NOTE: this plugin will supersede the original '
                 'juniper_bgp_status plugin.\n',
  'download_url': 'https://thl-cmk.hopto.org/gitlab/checkmk/juniper-networks/juniper_bgp_peer',
- 'files': {'agent_based': ['juniper_bgp_peer.py',
-                           'inv_juniper_bgp_peer.py',
-                           'utils/juniper_bgp_peer.py']},
+ 'files': {'cmk_addons_plugins': ['bgp_peer/agent_based/inv_juniper_bgp_peer.py',
+                                  'bgp_peer/agent_based/juniper_bgp_peer.py',
+                                  'bgp_peer/lib/juniper_bgp_peer.py']},
  'name': 'juniper_bgp_peer',
  'title': 'Juniper BGP peer',
- 'version': '1.0.0-20230613',
- 'version.min_required': '2.0.0b1',
- 'version.packaged': '2.2.0p24',
- 'version.usable_until': None}
+ 'version': '1.0.1-20250329',
+ 'version.min_required': '2.3.0b1',
+ 'version.packaged': 'cmk-mkp-tool 0.2.0',
+ 'version.usable_until': '2.5.0b1'}