docs: def _geolocation_extract(response):
      """
      Mimics the exception handling logic in ``client._get_body``, but
      for geolocation which uses a different response format.
      """
      body = response.json()
      if response.status_code in (200, 404):
          return body
  
      try:
          error = body["error"]["errors"][0]["reason"]
      except KeyError:
          error = None
  
      if response.status_code == 403:
          raise exceptions._OverQueryLimit(response.status_code, error)
      else:
          raise exceptions.ApiError(response.status_code, error)