Fetching of JSON data through an API with AngularJS
Your loop is only executed after the data has been fetched, so improving it will not have any effect on how long it takes for the data to be fetched.

JavaScript doesn't have block scope but does have function scope, so variables declared within a function are hoisted to the top of that function. So the fact that you declare your variables inside the for loop has no effect on the speed of your loop.

function foo () {
    var fruits = ["apple", "banana", "cherry"];

    for (var i = 0; i &lt; fruits.length; i++) {
        var fruit = fruits[i];
        console.log(fruit);
    }
}


is the same as

function foo() {
    var fruits = ["apple", "banana", "cherry"];
    var fruit;

    for (var i = 0; i &lt; fruits.length; i++) {
        fruit = fruits[i];
        console.log(fruit);
    }
}


I think your problem is that you are fetching large amounts of data. Displaying 30000 results in one go is not good practice. Does the api you are calling support paging in any way? Can you specify an offset (or something similar) in the request? For example, can you do 

$http.get("http://www.APIcall.com/phrase=" + $scope.search + "&amp;perpage=25&amp;offset=0") // get results 1-25        

$http.get("http://www.APIcall.com/phrase=" + $scope.search + "&amp;perpage=25&amp;offset=25") // get results 25-50

$http.get("http://www.APIcall.com/phrase=" + $scope.search + "&amp;perpage=25&amp;offset=60") // get results 60-85 


If you can't restrict the number of results returned that way, you can at least make sure that you only display a manageable number of results in one go. I.e don't add all the results to the DOM at once, only add them when the user clicks "Next" (if you add some paging controls), or scrolls down far enough (if you implement an "infinite scrolling" solution).

Having said the above, there a couple of small improvements you can make to your loop i.e. cache response.tracks.length and response.tracks[i].

function fetch(){
    $http.get("http://www.APIcall.com/phrase=" + $scope.search + "&amp;perpage=25000").success(function(response){
        $scope.songs = [];
        $scope.details = response;

        for(var i=0, numOfTracks = response.tracks.length; i &lt; numOfTracks; i++){
          var track = response.tracks[i];
          var labelName = track.label_fk;
          var labelLow = labelName.toLowerCase();
          var resultUrl = "http://APIcall.com/stream_music_file.php?lbl="+labelLow+"&amp;alb="+track.album_num+"&amp;trk="+track.track_num+"";
          var imgUrl = "http://www.APIcall.com/online/music/display_album_cover/"+labelLow+"/"+track.album_num+"";

          var allTracks = {
              id: track.track_id,
              lbl_fk: track.label_fk,
              alb_num: track.album_num,
              track_num: track.track_num,
              track_descr: track.description,
              track_dur: track.duration,
              title: track.primary_title,
              artist: track.composers,
              img: imgUrl,
              url: resultUrl
          };

          $scope.songs.push(allTracks);
      }
  });
}


Seeing as I don't think the loop is the bottleneck, I would be tempted to use map which arguably results in more readable code.

    var trackToSong = function (track) {var labelName = track.label_fk;
          var labelLow = labelName.toLowerCase();
          var resultUrl = "http://APIcall.com/stream_music_file.php?lbl="+labelLow+"&amp;alb="+track.album_num+"&amp;trk="+track.track_num+"";
          var imgUrl = "http://www.APIcall.com/online/music/display_album_cover/"+labelLow+"/"+track.album_num+"";

          return {
              id: track.track_id,
              lbl_fk: track.label_fk,
              alb_num: track.album_num,
              track_num: track.track_num,
              track_descr: track.description,
              track_dur: track.duration,
              title: track.primary_title,
              artist: track.composers,
              img: imgUrl,
              url: resultUrl
          };
    }

    function fetch(){
      $http.get("http://www.APIcall.com/phrase=" + $scope.search + "&amp;perpage=25000").success(function(response){
            $scope.details = response;
            $scope.songs = response.tracks.map(trackToSong);
          }
      });
    }