Set transient name

It looks you’re using different transient names in get_ and set_.

Try the following:

$transient_key = 'apidata_json_cache';
$expiration = 2*60; // 2 Minutes

if( false === ( $feed = get_transient( $transient_key ) ) ) {
    echo '<!--Fresh data-->';

    /*data extraction process here, which is than stored in $feed*/

    set_transient( $transient_key, $feed, $expiration );  
}