code: public function getRecord($phone, $ageMinutes, $cacheOnly = false)
      {
          /** @var PluginEnhancerBlacklist $record */
          $record = $this->getRepository()->findByPhone($phone);
  
          if (null === $record || $record->getDateAdded()->getTimestamp() > (time() - ($ageMinutes * 60))) {
              // Do not make the API request if cacheOnly.
              if ($cacheOnly) {
                  return false;
              }
  
              // Blacklist service does not support E164 standard.
              $uri = rtrim($this->endpoint, '/').
                  '/Lookup/key/'.trim($this->key).'/response/json/phone/'.
                  ltrim($phone, '+');
              $httpClient = new Client();
              $response   = $httpClient->request('GET', $uri, ['timeout' => 3, 'connect_timeout' => 2]);
              $result     = json_decode($response->getBody()->getContents(), true);
  
              if (null === $record) {
                  $record = new PluginEnhancerBlacklist();
                  $record->setPhone($phone);
              }
              if ($result['sid']) {
                  $record->setSid($result['sid']);
              }
              if ($result['code']) {
                  $record->setCode($result['code']);
              }
              if ($result['results']) {
                  $record->setResult($result['results']);
              }
              if ($result['wireless']) {
                  $record->setWireless($result['wireless']);
              }
              $record->setDateAdded(new \DateTime());
              $this->getRepository()->saveEntity($record);
          }
  
          return $record;
      }
docs: Gets from local cache and/or calls the Blacklist serivice.
  See documentation at http://developer.theblacklist.click.
  
  @param string $phone
  @param int    $ageMinutes
  @param bool   $cacheOnly  only pull cache records
  
  @return string
  @return PluginEnhancerBlacklist
  
  @throws \GuzzleHttp\Exception\GuzzleException