diff --git a/include/class.api.php b/include/class.api.php
index 68e20c777a8701712299ff8cf5aab482afb24fd3..5fe585eb2e82730779ca4bf2e9a5b883ce91ed71 100644
--- a/include/class.api.php
+++ b/include/class.api.php
@@ -245,7 +245,7 @@ class ApiController {
         global $ost;
 
         foreach ($data as $key=>$info) {
-            if (is_array($structure) and is_array($info)) {
+            if (is_array($structure) && (is_array($info) || $info instanceof ArrayAccess)) {
                 $search = (isset($structure[$key]) && !is_numeric($key)) ? $key : "*";
                 if (isset($structure[$search])) {
                     $this->validateRequestStructure($info, $structure[$search], "$prefix$key/", $strict);