code: def get_file_report(self, resource, allinfo=1, timeout=None):
          
          params = {'apikey': self.api_key, 'resource': resource, 'allinfo': allinfo}
  
          try:
              response = requests.get(self.base + 'file/report', params=params, proxies=self.proxies, timeout=timeout)
          except requests.RequestException as e:
              return dict(error=str(e))
  
          return _return_response_and_status_code(response)
docs: Get the scan results for a file.
  
          Retrieves a concluded file scan report for a given file. Unlike the public API, this call allows you to also
          access all the information we have on a particular file (VirusTotal metadata, signature information, structural
          information, etc.) by using the allinfo parameter described later on.
  
          :param resource: An md5/sha1/sha256 hash of a file for which you want to retrieve the most recent antivirus
          report. You may also specify a scan_id (sha256-timestamp as returned by the scan API) to access a specific
          report. You can also specify a CSV list made up of a combination of hashes and scan_ids (up to 25 items),
          this allows you to perform a batch request with just one single call.
          :param allinfo: (optional) If specified and set to one, the call will return additional info, other than the
          antivirus results, on the file being queried. This additional info includes the output of several tools acting
          on the file (PDFiD, ExifTool, sigcheck, TrID, etc.), metadata regarding VirusTotal submissions (number of
          unique sources that have sent the file in the past, first seen date, last seen date, etc.), the output of
          in-house technologies such as a behavioural sandbox, etc.
          :param timeout: The amount of time in seconds the request should wait before timing out.
  
          :return: JSON response