diff --git a/sg-backend/main.py b/sg-backend/main.py
index 006d15eb447edc226e057c9f745f9fe42a9b43db..09f417de89826902b9b165b125d44b538e564075 100644
--- a/sg-backend/main.py
+++ b/sg-backend/main.py
@@ -46,14 +46,14 @@ app.add_middleware(
 
 
 @app.get("/software")
-@cache(expire=60, key_builder=lambda *args, **kwargs: "software")
+@cache(expire=300, key_builder=lambda *args, **kwargs: "software")
 async def software():
     results = driver.get_softwares()
     return {"softwares": json.loads(json.dumps(results))}
 
 
 @app.get("/software-graph")
-@cache(expire=60, key_builder=lambda *args, **kwargs: "software-graph")
+@cache(expire=300, key_builder=lambda *args, **kwargs: "software-graph")
 async def software():
     nodes = driver.get_nodes()
     jnodes = json.loads(json.dumps(nodes))
@@ -87,9 +87,15 @@ async def software():
     return jsondata
 
 
+def dynamic_software_merge_key_builder(func, *args, **kwargs):
+    search: SoftwareSearch = kwargs['kwargs']['search']
+    key = f"software-merge-{search.software1}-{search.software2}"
+    return key
+
+
 @app.post("/software-search")
+@cache(expire=300, key_builder=dynamic_software_merge_key_builder)
 async def software_search(search: SoftwareSearch):
-    print(search.software1, search.software2)
     res = driver.get_softwares_shortest_path(search)
     return {"softwares": res}