get('https://api.coingecko.com/api/v3/exchange_rates', []); if($res->getStatusCode() != 200) { echo "failed to make query to coingecko."; } else { $parsed = json_decode($res->getBody(),true); if(array_key_exists('rates', $parsed)) { foreach($parsed['rates'] as $rate) { // grab our BTC object, since all results are relative to it. $btc = Currency::Where('id', 1)->first(); // setup a Currency object if we don't have one already. if(!$currency = Currency::where('name', '=', $rate['name'])->first()) { $currency = new Currency(['name'=> $rate['name'], 'unit' => $rate['unit']]); $currency->save(); } // build rate. $rateObj = new Rates; $rateObj->value = $rate['value']; $rateObj->currency_id = $currency->id; $rateObj->relative_id = $btc->id; $rateObj->save(); } } } } }