Working with Incidents
The Procore API provides a number of endpoints that allow you to work with the Incidents tool to track jobsite hazards, contributing conditions and behavior, person(s) involved, and the paper history associated with each incident throughout the lifecycle of your project. Leverage the insights provided by the Incidents tool to identify common hazards and behavior to help facilitate the creation of a safer jobsite. This guide provides information to help you best utilize the available Incidents tool endpoints in your App or integration. For general information on the Incidents tool, visit the Incidents article on the Procore Support Site.
The following Procore API endpoints are available for working with Incidents.
|Endpoint Category||Available Functionality|
|Incidents||Create, List, Show, Update, and Delete Incidents, as well as access and work with recycled Incidents.|
|Incident Attachments||Create Attachments for Incidents.|
|Injuries||Create, List, Show, Update, and Delete Injuries in a specified project, as well as access and work with recycled Injuries.|
|Near Misses||Create, List, Show, Update, and Delete Near Misses in a specified project, as well as access and work with recycled Near Misses.|
|Affliction Types||List and Show Affliction Types.|
|Harm Sources||List and Show Sources of Harm.|
|Work Activities||List and Show Work Activities.|
|Incident Picker Options||List Affected Body Parts, List Filing Types, and List Incident Statuses.|
|Incident Filter Options||List Incident Filter Options for Contributing Behavior, Contributing Condition, Hazard, Location, and Status.|
|Injury Filter Options||List Injury Filter Options for Affected Company, Affected Persons, Managed Equipment, Harm Sources, Work Activity, Affected Body Part, Affliction Type, and Filing Type.|
|Near Miss Filter Options||List Near Miss Filter Options for Affected Company, Affected Persons, Managed Equipment, Harm Source, and Work Activity.|
Here are some important considerations and caveats to keep in mind when working with the Incidents tool endpoints.
Configurable Field Sets
By default, Incidents tool endpoints do not automatically respect changes made by Procore Admins to the Incident forms via a Configurable Field Set (CFS).
To validate against a CFS, you need to include the
run_configurable_validations=true parameter when creating or
updating an Incident or Injury. In addition, the JSON responses returned do not respect a CFS. For example, if the CFS makes certain fields hidden,
they will still appear in the response body.
Event Dates and Times
In order to properly specify the local date and time that an Incident or Injury occurred, you will need to use a combination of the
time_unknown parameters. Keep in mind that the value you
event_date must be in Coordinated Universal Time (UTC).
Let's look at an example where we know the local date and exact time of the Incident. If the event occurred on the West Coast of the
United States at 1:30pm Pacific Standard Time (PST) on October 31, 2018, we would specify
event_date as the UTC
time_unknown=false. This appropriately
accounts for the eight-hour time difference between PST and UTC (i.e., PST = UTC-0800)
"event_date": "2018-10-31T17:30:00.000Z", "time_unknown": false
Now let's assume we do not know the exact local time of the event. In this scenario, the value for
be specified as 12:00am (midnight) local time on the date the event occured, converted to UTC. So, using our example, the payload would be as follows:
"event_date": "2018-10-31T08:0:00.000Z", "time_unknown": true
In this case,
event_date is set to 8:00am October 31, 2018 UTC to account for the eight-hour time difference
between PST and UTC.
Working with Afflictions
When Creating or Updating an Injury, keep in mind that the
is required if you are using the
affected_body_part attribute. You cannot set an
affected_body_part without having a corresponding
and you likewise cannot remove an
affected_body_part is set.
Additionally, the JSON response body from a Create or Update Injury operation includes a single
that contains the
affected_body_part combination if
they are not null. Though this construct is deprecated, it has not been removed from the response body as our Procore mobile applications continue to rely on it.
For your own App designs, simply ignore this object and just work with the top-level