diff --git a/src/services/terms.js b/src/services/terms.js
index 82184f1b..affd8ad9 100644
--- a/src/services/terms.js
+++ b/src/services/terms.js
@@ -95,10 +95,22 @@ class TermsService {
    * @param  {Number|String} termId id of the term
    * @return {Promise}       promise of the request result
    */
-  getTermDetails(termId) {
-    // looks like server cache responses, to prevent it we add nocache param with always new value
-    return this.private.api.get(`/terms/${termId}`)
-      .then(res => (res.ok ? res.json() : Promise.reject(res.json())));
+  async getTermDetails(termId) {
+    let termDetails = {};
+    let isLegacyTerm = false;
+    if (/^[\d]{5,8}$/.test(termId)) {
+      isLegacyTerm = true;
+      termDetails = await this.private.api.get(`/terms?legacyId=${termId}`)
+        .then(res => (res.ok ? res.json() : Promise.reject(res.json())))
+        .then(res => (res.result ? res.result[0] : Promise.reject(res.json())));
+    } else {
+      termDetails = await this.private.api.get(`/terms/${termId}`)
+        .then(res => (res.ok ? res.json() : Promise.reject(res.json())));
+    }
+    return {
+      ...termDetails,
+      isLegacyTerm,
+    };
   }
 
   /**