diff --git a/src/Tree/Controllers/TreeController.cs b/src/Tree/Controllers/TreeController.cs
index 9a8074d5ea1738bbb1a6578696d7155c4b3dfbef..47f7b3878fb250d81c362b885d791ff92f03f717 100644
--- a/src/Tree/Controllers/TreeController.cs
+++ b/src/Tree/Controllers/TreeController.cs
@@ -22,6 +22,7 @@ using VDS.RDF.Parsing;
 using VDS.RDF.Writing;
 using Coscine.ResourceLoader;
 using Coscine.Configuration;
+using Coscine.ResourceTypeBase;
 
 namespace Coscine.Api.Tree.Controllers
 {
@@ -84,6 +85,7 @@ namespace Coscine.Api.Tree.Controllers
         [HttpGet("[controller]/{resourceId}/{*path}")]
         public async Task<IActionResult> GetMetadata(string resourceId, string path)
         {
+            var rawPath = path;
             path = $"/{path}";
             if (path.Contains("%2F") || path.Contains("%2f"))
             {
@@ -144,6 +146,8 @@ namespace Coscine.Api.Tree.Controllers
                                 Kind = x.Key[(x.Key.LastIndexOf(".") + 1)..],
                                 Provider = resource.Type.DisplayName
                             };
+                            var resourceTypeOptions = _resourceModel.GetResourceTypeOptions(resource.Id);
+                            var resourceTypeDefinition = ResourceTypeFactory.CreateResourceTypeObject(resource.Type.DisplayName, _configuration);
                             var objectMetaInfoReturnObject = new ObjectMetaInfoReturnObject(objectMetaInfo, _blobApiLink, resource.Id.ToString());
                             var result = new JObject
                             {
@@ -156,7 +160,7 @@ namespace Coscine.Api.Tree.Controllers
                                 ["Provider"] = objectMetaInfoReturnObject.Provider,
                                 ["IsFolder"] = objectMetaInfoReturnObject.IsFolder,
                                 ["IsFile"] = objectMetaInfoReturnObject.IsFile,
-                                ["Action"] = new JObject { 
+                                ["Action"] = new JObject {
                                     ["Delete"] = new JObject {
                                         ["Method"] = "DELETE",
                                         ["Url"] = objectMetaInfoReturnObject.DeleteLink
@@ -164,12 +168,12 @@ namespace Coscine.Api.Tree.Controllers
                                     ["Download"] = new JObject
                                     {
                                         ["Method"] = "GET",
-                                        ["Url"] = objectMetaInfoReturnObject.DownloadLink
+                                        ["Url"] = resourceTypeDefinition?.GetEntryDownloadUrl(rawPath, null, resourceTypeOptions).Result.ToString()
                                     },
                                     ["Upload"] = new JObject
                                     {
                                         ["Method"] = "PUT",
-                                        ["Url"] = objectMetaInfoReturnObject.UploadLink
+                                        ["Url"] = resourceTypeDefinition?.GetEntryStoreUrl(rawPath, null, resourceTypeOptions).Result.ToString()
                                     }
                                 }
                             };
@@ -320,6 +324,7 @@ namespace Coscine.Api.Tree.Controllers
             return NoContent();
 
         }
+
         /// <summary>
         /// Checks the resource Id and the path
         /// </summary>