docs: def call_validator_api(dsn, api_data):
      """
      Single call to the lipd.net validator API
  
      'api_data' format:
       [
          {"type": "csv", "filenameFull": /path/to/filename.csv, "data": "", ...},
          {"type": "json", "filenameFull": /path/to/metadata.jsonld, "data": "", ...},
          ...
      ]
      Result format:
          {"dat": <dict>, "feedback": <dict>, "filename": "", "status": ""}
  
      :param str dsn: Dataset name
      :param list api_data: Prepared payload for one LiPD dataset. All the sorted files (txt, jsonld, csv), API formatted
      :return list result: Validator result for one file
      """
      _filename = dsn + ".lpd"
  
      try:
          # Contact server and send LiPD metadata as the payload
          # print("Sending request to LiPD.net validator...\n")
          api_data = json.dumps(api_data)
  
          # The payload that is going to be sent with the JSON request
          payload = {'json_payload': api_data, 'apikey': 'lipd_linked'}
  
          # Development Link
          # response = requests.post('http://localhost:3000/api/validator', data=payload)
  
          # Production Link
          response = requests.post('http://www.lipd.net/api/validator', data=payload)
  
          if response.status_code == 413:
              result = {"dat": {}, "feedback": {}, "filename": _filename,
                        "status": "HTTP 413: Request Entity Too Large"}
          elif response.status_code == 404:
              result = {"dat": {}, "feedback": {}, "filename": _filename,
                        "status": "HTTP 404: Not Found"}
          elif response.status_code == 400:
              result = {"dat": {}, "feedback": {}, "filename": _filename,
                        "status": response.text}
  
          # For an example of the JSON Response, reference the "sample_data_response" below
  
          # Convert JSON string into a Python dictionary
          # print("Converting response to json...\n")
          else:
              result = json.loads(response.text)
  
      except TypeError as e:
          logger_validator_api.warning("get_validator_results: TypeError: {}".format(e))
          result = {"dat": {}, "feedback": {}, "filename": _filename, "status": "JSON DECODE ERROR"}
      except requests.exceptions.ConnectionError as e:
          logger_validator_api.warning("get_validator_results: ConnectionError: {}".format(e))
          result = {"dat": {}, "feedback": {}, "filename": _filename, "status": "UNABLE TO REACH SERVER"}
      except Exception as e:
          logger_validator_api.debug("get_validator_results: Exception: {}".format(e))
          result = {"dat": {}, "feedback": {}, "filename": _filename, "status": "ERROR BEFORE VALIDATION, {}".format(e)}
      if not result:
          result = {"dat": {}, "feedback": {}, "filename": _filename, "status": "EMPTY RESPONSE"}
  
      result["filename"] = _filename
      return result