OSHA 300A CSV upload for multiple establishments
Prepare Form 300A data for every establishment and catch ITA errors before OSHA does. We automate the roll-up and checks. A safety lead approves the numbers, and a company executive certifies the 300A.
| Establishment | Hours worked | ITA check |
|---|---|---|
| Sample Yard 04 | 128000 | Ready |
| Sample Plant 11 | 295360 | Ready |
| Example DC 07 | 2900000 | Hours/avg > 8760 |
| Test Shop 02 | 15200 | Hours/avg < 500 |
| Sample Depot 09 | 104000 | M1-M6 not G-J |
Size codes and validations from OSHA's ITA specifications.
POST /oshaApi/v1/submissions{"establishment_id": "0000001","year_filing_for": "2025"}GET /oshaApi/v1/establishments/0000001"submission_status": "3"
Status 3 means Submitted.
How it runs.
Dozens of sites mean dozens of totals kept in different places. A CSV can upload and still fail, and without OSHA's second email the data did not load.
Site data
Hours, headcount, and case totals by establishment, from HR and incident logs.
Your dataITA rule checks
Whole numbers, size codes, hours per employee, and case totals.
AutomatedA person approves
A safety lead confirms recordability. A company executive certifies the 300A.
A personSubmit and confirm
Sent by API, or a person uploads the CSV. Status recorded per site.
Automated
OSHA ITA API / ITA CSV upload / Login.gov / OSHA Form 300A / HR and incident logs
The rules and limits.
- Who submits
- 300A: 250 or more employees, or 20 to 249 in an Appendix A industry. 300 and 301 data: 100 or more in Appendix B. Due March 2.
- CSV limits
- No cap on establishments, but OSHA recommends 1,000 records or fewer per file. Queued files process every three hours. No decimals in number fields.
- Proof it loaded
- OSHA sends two emails. The second lists what processed and any errors. With no second email, OSHA says your data did not load.
- API order
- Create the establishment, add the 300A, then submit. Status reads 1 Not Added, 2 In Progress, 3 Submitted. The bearer token belongs to one ITA account.
- State Plan states
- The rule applies there too, and most plans match for private employers. Minnesota requires more private establishments to submit. Check your own State Plan.
What a person does.
- A safety lead decides what is recordable.
- A company executive certifies the 300A under 29 CFR 1904.32.
- Someone reviews each warning before anything is submitted.
Where we stand: we have not shipped this. It uses the same pattern as our data sync and reporting work.
Common questions.
Does this make us compliant?+
No. It prepares and checks the data. The employer stays responsible for complete, accurate records, and a company executive still certifies the 300A.
Can a consultant or third party submit for us?+
OSHA allows a third party to submit. Responsibility for complete and accurate data stays with the employer. A firm with many establishments can use one ITA account.
Can we test before the real filing?+
Yes. OSHA has a preview environment for CSV and API testing. Data sent there does not meet the requirement and is purged periodically.
Sources
- OSHA ITA API documentation
- OSHA ITA CSV data dictionary
- OSHA injury reporting FAQ
- 29 CFR 1904.41
- 29 CFR 1904.32
General information, not legal, tax, or compliance advice. Rules change; confirm against the current source and your own advisers.

Bring us your version of this.
Intro calls are 30 minutes, free, and useful even if we never work together. We'll be honest about whether this is the right fit for your operations team.
