If you want to retain the same display name, but just change how the name is displayed in Site Contents, I suggest that you do a little jQuery hack.
var termsOfUseLink = $('#applist a.ms-vl-apptitle[title="TermsOfUse"]');
$(termsOfUseLink).text("Terms Of Use for Web API");
Of course you need to make sure that jQuery is referenced, you also need to include your javascript. Make sure your code is executed when the page has loaded completely:
$(document).ready(function() {
// code goes here
});
Include both javascript files (jQuery and your code) in your solution using a Custom Action (EDIT: TWO Custom Actions) with ScriptLink attribute.
In order for the code not to be executed on every page, just the Site Contents, place the code inside this statement:
if ((window.location.href.toLowerCase().indexOf("viewlsts.aspx") > -1) && window.location.href.toLowerCase().indexOf("_layouts/15") > -1) {
}
Hope this helps.