The problem was I was only passing the baseTemplate to it. However, for these Lists, I needed to mention the GUID of the Feature, that contained the schema of the new List. Following is the modified code.
Namespace:
using Microsoft.SharePoint.Client;
//use one of the templateName that suits your purpose string templateName = "Promoted Links";string templateName = "Report Library";string templateName = "Asset Library"; ClientContext ctx = new ClientContext(weburl); ctx.Credentials = new SharePointOnlineCredentials(userName, passWord); Web web = ctx.Web; // Get the list template by name ListTemplate listTemplate = web.ListTemplates.GetByName(templateName); ctx.Load(listTemplate); ctx.ExecuteQuery(); // Create a new object for ListCreationInformation class - used to specify the // properties of the new list ListCreationInformation creationInfo = new ListCreationInformation(); // Specify the title of your List creationInfo.Title = "My Custom List"; // Specify the list description, if any creationInfo.Description = "Description"; // Set a value that specifies the feature identifier of the feature // that contains the list schema for the new list. creationInfo.TemplateFeatureId = listTemplate.FeatureId; // Set a value that specifies the list server template of the new list creationInfo.TemplateType = listTemplate.ListTemplateTypeKind; web.Lists.Add(creationInfo); ctx.ExecuteQuery();