skip navigation

Web Upload Help

Web Upload is a web service designed to securely transmit campaign finance reports to the FEC. Web Upload was designed in accordance with the FEC Electronic Filing Specifications.
Web Upload can be utilized via web browser or web service.

How do I upload a report in a web browser?

Web Upload can be accessed from any browser.
Choose the *.fec file you wish to upload. Please take note of the process and expected wait times:

  • A file size less than 20 MB - the upload results will be displayed immediately.
  • A file size between 20 MB and 3 GB - During heavy filing periods processing delays are normal. The browser may be closed and upload results will be emailed.
  • A file size over 3 GB - a file of this size cannot be processed by Web Upload. For assistance with files of this size, please contact the EFO Help Desk.

How do I consume Web Upload as a web service?

Software Developers may consume the SOAP web service which uploads the data from the .fec file and returns a JSON object to view upload results.
Web Upload web service end points are "upload" and "status".
1) upload - Upload expects two parameters, the first being an JSON object, and the second is the byte[] of the .fec file (to which you are planning to upload)

JSON object


Please Note: All fields are mandatory except email_2 and amendment_id which are optional.
  • committee_id
    Committee's identification number. The FEC assigns each committee an identification number after the committee has filed a registration statement.
  • password
    Passwords ARE case sensitive, a minimum of 8 characters, a maximum of 16 characters, and may be any combination of number, letters or special keyboard characters that show on the standard keyboard keys. All passwords are immediately encrypted and not retrievable. Should the password be lost or forgotten, it must be reset using the "Password Assignment System" link
  • api_key
    An API Key is a unique key assigned for an electronic filing software vendor. To utilize the web services, and obtain an API Key, the vendor representative must register here. Once registered, an API Key will be assigned. If an API Key is lost or forgotten, the vendor representative must login to the vendor login to view the API Key.
  • email_1
    An email containing a filing acknowledgement is sent to this email address.
  • email_2
    An email containing a filing acknowledgement is sent to this email address..
  • agency_id
    Agency ID can be either "FEC", "SENATE" or "VEND"
  • amendment_id
    An Amendment ID is used if the report is an amendment to the original filing.
  • wait
    True - upload process will wait until the process is completed. False - upload process will immediately return JSON response with submission_id.
2) status - Status expects one parameter, being the submission_id

For large reports, processing might take time little longer and you would receive an email once the report has been processed.

What is the expected Web Upload web service response?

Below are a few sample JSON format response.
"message":"Please check in few minutes for status update",
"message":"USERERROR #1: Invalid date specification at line",

  • status
    "ACCEPTED" - This means that the filing has been submitted to FEC.
    "PROCESSING" - This equates to "We are processing your request, and you will be notified with the upload status".
    "REJECTED" - The upload process can fail for various reasons such as an invalid API Key, an invalid Email address, or an invalid FEC format.
  • report_id
    FEC assigned ID for a report.
  • message
    It has details about the response and can be a processing message or a reason for failure.
  • submission_id
    A unique ID assigned to the uploaded report which can be used for progress tracking. Use status end point to track the status.
  • success
    True - FEC has received your report and upload process has been completed or it is under process.
    False - Please view the message for possible failure.