diff --git a/src/Plugin/rest/resource/RestMenuItemsCachableDepenency.php b/src/Plugin/rest/resource/RestMenuItemsCachableDepenency.php
index 942001a..37dea1b 100644
--- a/src/Plugin/rest/resource/RestMenuItemsCachableDepenency.php
+++ b/src/Plugin/rest/resource/RestMenuItemsCachableDepenency.php
@@ -9,6 +9,7 @@
 namespace Drupal\rest_menu_items\Plugin\rest\resource;
 
 use Drupal\Core\Cache\CacheableDependencyInterface;
+use Drupal\Core\Cache\Cache;
 
 class RestMenuItemsCachableDepenency implements CacheableDependencyInterface {
 
@@ -18,13 +19,17 @@ class RestMenuItemsCachableDepenency implements CacheableDependencyInterface {
   // Maximum depth parameter
   protected $maxDepth = 1;
 
+  // the menu being exposed
+  protected $menuName = '';
+
   /**
    * RestMenuItemsCachableDepenency constructor.
    *
    * @param int $minDepth The minimum depth to be used as a cache context
    * @param int $maxDepth The maximum depth to be used as a cache context
    */
-  public function __construct($minDepth, $maxDepth) {
+  public function __construct($menuName, $minDepth, $maxDepth) {
+    $this->menuName = $menuName;
     $this->minDepth = $minDepth;
     $this->maxDepth = $maxDepth;
   }
@@ -47,6 +52,7 @@ class RestMenuItemsCachableDepenency implements CacheableDependencyInterface {
    */
   public function getCacheTags() {
     $tags = [];
+    $tags[] = 'config:system.menu.' . $this->menuName;
     return $tags;
   }
 
@@ -54,8 +60,7 @@ class RestMenuItemsCachableDepenency implements CacheableDependencyInterface {
    * {@inheritdoc}
    */
   public function getCacheMaxAge() {
-    // Default to 1 hour
-    return 3600;
+    return Cache::PERMANENT;
   }
 
 }
diff --git a/src/Plugin/rest/resource/RestMenuItemsResource.php b/src/Plugin/rest/resource/RestMenuItemsResource.php
index 3c54207..d9aa183 100644
--- a/src/Plugin/rest/resource/RestMenuItemsResource.php
+++ b/src/Plugin/rest/resource/RestMenuItemsResource.php
@@ -176,7 +176,7 @@ class RestMenuItemsResource extends ResourceBase {
 
       // Configure caching for minDepth and maxDepth parameters
       if ($response instanceof CacheableResponseInterface) {
-        $response->addCacheableDependency(new RestMenuItemsCachableDepenency($this->minDepth, $this->maxDepth));
+        $response->addCacheableDependency(new RestMenuItemsCachableDepenency($menu_name, $this->minDepth, $this->maxDepth));
       }
 
       return $response;
