docs: def _get(self, version, method, url_or_urls, **kwargs):
          """
          _get makes the actual call to api.embed.ly
          """
          if not url_or_urls:
              raise ValueError('%s requires a url or a list of urls given: %s' %
                               (method.title(), url_or_urls))
  
          # a flag we can use instead of calling isinstance() all the time
          multi = isinstance(url_or_urls, list)
  
          # throw an error early for too many URLs
          if multi and len(url_or_urls) > 20:
              raise ValueError('Embedly accepts only 20 urls at a time. Url '
                               'Count:%s' % len(url_or_urls))
  
          query = ''
  
          key = kwargs.get('key', self.key)
  
          # make sure that a key was set on the client or passed in
          if not key:
              raise ValueError('Requires a key. None given: %s' % key)
  
          kwargs['key'] = key
  
          query += urlencode(kwargs)
  
          if multi:
              query += '&urls=%s&' % ','.join([quote(url) for url in url_or_urls])
          else:
              query += '&url=%s' % quote(url_or_urls)
  
          url = 'http://api.embed.ly/%s/%s?%s' % (version, method, query)
  
          http = httplib2.Http(timeout=self.timeout)
  
          headers = {'User-Agent': self.user_agent,
                     'Connection': 'close'}
  
          resp, content = http.request(url, headers=headers)
  
          if resp['status'] == '200':
              data = json.loads(content.decode('utf-8'))
  
              if kwargs.get('raw', False):
                  data['raw'] = content
          else:
              data = {'type': 'error',
                      'error': True,
                      'error_code': int(resp['status'])}
  
          if multi:
              return map(lambda url, data: Url(data, method, url),
                         url_or_urls, data)
  
          return Url(data, method, url_or_urls)