diff --git a/scripts/operator_api/generate_api.py b/scripts/operator_api/generate_api.py
index fd33466..afe12c1 100644
--- a/scripts/operator_api/generate_api.py
+++ b/scripts/operator_api/generate_api.py
@@ -107,6 +107,9 @@
             if attType in serTosaTypeMap.keys():
                 init = f"const {attType} {attName} = translate_client_{serTosaTypeMap[att['dType']]}(client_{attName});"
             # Initialize Serialization library attributes to their matching function parameter
+            elif tosaOpName == "avg_pool2d" and attName == "accum_dtype":
+                init = f"const tosa::DType {attName} = translate_client_acc_size(client_acc_size);"
+                att["dType"] = "tosa::DType"
             elif attName in tosaArgsDict:
                 if att["SV"] == "V":
                     if tosaArgsDict[attName]["type"] == "tosa_tensor_t":
@@ -275,10 +278,15 @@
     argsXml = opXml.getElementsByTagName("argument")
     tosaTensorTypes = getTosaArgTypes(tosaXml)
     tosaTypeMap = {"bool_t": "bool", "uint6_t": "uint8_t", "mode_t": "tosa_mode_t"}
+    tensorElemTypeMap = {
+        "resize_mode_t": "tosa_mode_t",
+        "acc_size_t": "tosa_acc_size_t",
+    }
     for xmlArg in argsXml:
         argName = xmlArg.getAttribute("name").lower()
-        if xmlArg.getAttribute("tensor-element-type") == "resize_mode_t":
-            argType = "tosa_mode_t"
+        tensorElemType = xmlArg.getAttribute("tensor-element-type")
+        if tensorElemType in tensorElemTypeMap:
+            argType = tensorElemTypeMap[tensorElemType]
         else:
             argType = xmlArg.getAttribute("type")
         argShape = xmlArg.getAttribute("shape")
