Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Procore REST Filing Types API
version: v1.0/v2.0
description: Merged from the per-resource OpenAPI documents Procore publishes through its developer portal (https://developers.procore.com/api/v1/resource_groups). Originals are kept verbatim in openapi/_original/resources/.
x-source: https://developers.procore.com/api/v1/resource_groups
servers:
- url: https://api.procore.com
description: Production
security:
- bearerAuth: []
tags:
- name: Filing Types
paths:
/rest/v1.0/companies/{company_id}/incidents/injury_filing_types:
parameters:
- name: Procore-Company-Id
in: header
description: Unique company identifier associated with the Procore User Account.
required: true
schema:
type: integer
- name: company_id
in: path
description: Unique identifier for the company.
required: true
schema:
type: integer
x-compliance-level: full
get:
x-doc:
visibility: public
stage: ga
exposure: public
summary: List Incident Filing Types
description: Returns a paginated list of incident filing types for the specified company. Each filing type represents a severity classification (e.g. first aid, lost time, fatality) that can be assigned to an injury record.
tags:
- Filing Types
parameters:
- name: page
in: query
description: Page
schema:
type: integer
- name: per_page
in: query
description: Elements per page
schema:
type: integer
- name: filters[id]
in: query
description: Return item(s) with the specified IDs.
required: false
style: form
explode: false
schema:
type: array
items:
type: integer
- name: filters[active]
in: query
description: If true, returns item(s) with a status of 'active'.
schema:
type: boolean
- name: filters[updated_at]
in: query
description: 'Return item(s) last updated within the specified ISO 8601 datetime range.
Formats:
`YYYY-MM-DD`...`YYYY-MM-DD` - Date
`YYYY-MM-DDTHH:MM:SSZ`...`YYYY-MM-DDTHH:MM:SSZ` - DateTime with UTC Offset
`YYYY-MM-DDTHH:MM:SS+XX:00`...`YYYY-MM-DDTHH:MM:SS+XX:00` - Datetime with Custom Offset'
required: false
schema:
type: string
format: date
- name: sort
in: query
description: Sort direction. Use the value to sort ascending, or prefix with a hyphen (e.g. -name) to sort descending.
schema:
type: string
enum:
- name
- severity_level
responses:
'200':
description: OK
headers:
Per-Page:
description: Number of items retrieved per page
schema:
type: integer
Total:
description: Total number of items to be retrieved
schema:
type: integer
Link:
description: Link headers for the first, prev, next, and last link
schema:
type: string
content:
application/json:
schema:
type: array
description: Array of Incident Filing Types
items:
type: object
title: Incident Filing Type
properties:
id:
type: integer
description: Unique identifier of the filing type.
example: 999
name:
type: string
description: Name of the filing type (e.g. report_only, first_aid, lost_time, fatality). Procore-provided filing type names cannot be changed.
example: report_only
created_at:
type: string
description: Timestamp when this filing type was created, in ISO 8601 format.
format: date-time
example: '2016-10-25T17:53:35Z'
severity_level:
title: SeverityLevel
type: object
properties:
id:
type: integer
description: Unique identifier of the severity level.
example: 1
name:
type: string
description: Display name of the severity level. May be customized by the company.
example: major
procore_default_name:
type: string
description: Procore's original default name for this severity level, before any company customization.
example: major
enum:
- insignificant
- minor
- major
- critical
- moderate
active:
type: boolean
description: Whether this severity level is active and available for assignment.
example: false
email_trigger:
type: boolean
description: Whether recording an incident with this severity level triggers an email notification.
example: false
push_notification_trigger:
type: boolean
description: Whether recording an incident with this severity level triggers a push notification.
example: false
order:
type: integer
description: Numeric ranking of this severity level, used for ordering from least to most severe.
created_at:
type: string
description: Timestamp when this severity level was created, in ISO 8601 format.
format: date-time
example: '2016-10-25T17:53:35Z'
updated_at:
type: string
description: Timestamp when this severity level was last updated, in ISO 8601 format.
format: date-time
example: '2016-10-25T17:53:35Z'
updated_at:
type: string
description: Timestamp when this filing type was last updated, in ISO 8601 format.
format: date-time
example: '2016-10-25T17:53:35Z'
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
x-code-samples:
- id: node_request
title: Node.js
content: "const request = require('request');\n\nconst options = {\n method: 'GET',\n url: 'https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/incidents/injury_filing_types',\n qs: {\n page: 'SOME_INTEGER_VALUE',\n per_page: 'SOME_INTEGER_VALUE',\n 'filters[id]': 'SOME_ARRAY_VALUE',\n 'filters[active]': 'SOME_BOOLEAN_VALUE',\n 'filters[updated_at]': 'SOME_STRING_VALUE',\n sort: 'SOME_STRING_VALUE'\n },\n headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'}\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n"
- id: python_python3
title: Python3
content: 'import http.client
conn = http.client.HTTPSConnection("api.procore.com")
headers = { ''Authorization'': "Bearer REPLACE_BEARER_TOKEN" }
conn.request("GET", "/rest/v1.0/companies/%7Bcompany_id%7D/incidents/injury_filing_types?page=SOME_INTEGER_VALUE&per_page=SOME_INTEGER_VALUE&filters%5Bid%5D=SOME_ARRAY_VALUE&filters%5Bactive%5D=SOME_BOOLEAN_VALUE&filters%5Bupdated_at%5D=SOME_STRING_VALUE&sort=SOME_STRING_VALUE", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))'
- id: shell_curl
title: Curl
content: "curl --request GET \\\n --url 'https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/incidents/injury_filing_types?page=SOME_INTEGER_VALUE&per_page=SOME_INTEGER_VALUE&filters%5Bid%5D=SOME_ARRAY_VALUE&filters%5Bactive%5D=SOME_BOOLEAN_VALUE&filters%5Bupdated_at%5D=SOME_STRING_VALUE&sort=SOME_STRING_VALUE' \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
- id: csharp_httpclient
title: C#
content: "var client = new HttpClient();\nvar request = new HttpRequestMessage\n{\n Method = HttpMethod.Get,\n RequestUri = new Uri(\"https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/incidents/injury_filing_types?page=SOME_INTEGER_VALUE&per_page=SOME_INTEGER_VALUE&filters%5Bid%5D=SOME_ARRAY_VALUE&filters%5Bactive%5D=SOME_BOOLEAN_VALUE&filters%5Bupdated_at%5D=SOME_STRING_VALUE&sort=SOME_STRING_VALUE\"),\n Headers =\n {\n { \"Authorization\", \"Bearer REPLACE_BEARER_TOKEN\" },\n },\n};\nusing (var response = await client.SendAsync(request))\n{\n response.EnsureSuccessStatusCode();\n var body = await response.Content.ReadAsStringAsync();\n Console.WriteLine(body);\n}"
x-rate-limit-enabled: true
x-procore-kong-tags:
- rate-limit:enabled
operationId: listIncidentFilingTypes
/rest/v1.0/companies/{company_id}/incidents/injury_filing_types/{id}:
parameters:
- name: Procore-Company-Id
in: header
description: Unique company identifier associated with the Procore User Account.
required: true
schema:
type: integer
- name: company_id
in: path
description: Unique identifier for the company.
required: true
schema:
type: integer
- name: id
in: path
description: Unique identifier of the filing type. Use the id from the List Filing Types response.
required: true
schema:
type: integer
x-compliance-level: full
get:
x-doc:
visibility: public
stage: ga
exposure: public
summary: Show Filing Type
description: Returns a single incident filing type by its ID, including the associated severity level.
tags:
- Filing Types
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Incident Filing Type
properties:
id:
type: integer
description: Unique identifier of the filing type.
example: 999
name:
type: string
description: Name of the filing type (e.g. report_only, first_aid, lost_time, fatality). Procore-provided filing type names cannot be changed.
example: report_only
created_at:
type: string
description: Timestamp when this filing type was created, in ISO 8601 format.
format: date-time
example: '2016-10-25T17:53:35Z'
severity_level:
title: SeverityLevel
type: object
properties:
id:
type: integer
description: Unique identifier of the severity level.
example: 1
name:
type: string
description: Display name of the severity level. May be customized by the company.
example: major
procore_default_name:
type: string
description: Procore's original default name for this severity level, before any company customization.
example: major
enum:
- insignificant
- minor
- major
- critical
- moderate
active:
type: boolean
description: Whether this severity level is active and available for assignment.
example: false
email_trigger:
type: boolean
description: Whether recording an incident with this severity level triggers an email notification.
example: false
push_notification_trigger:
type: boolean
description: Whether recording an incident with this severity level triggers a push notification.
example: false
order:
type: integer
description: Numeric ranking of this severity level, used for ordering from least to most severe.
created_at:
type: string
description: Timestamp when this severity level was created, in ISO 8601 format.
format: date-time
example: '2016-10-25T17:53:35Z'
updated_at:
type: string
description: Timestamp when this severity level was last updated, in ISO 8601 format.
format: date-time
example: '2016-10-25T17:53:35Z'
updated_at:
type: string
description: Timestamp when this filing type was last updated, in ISO 8601 format.
format: date-time
example: '2016-10-25T17:53:35Z'
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
'403':
description: Forbidden
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
default:
description: Unexpected error
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
x-code-samples:
- id: node_request
title: Node.js
content: "const request = require('request');\n\nconst options = {\n method: 'GET',\n url: 'https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/incidents/injury_filing_types/%7Bid%7D',\n headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'}\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n"
- id: python_python3
title: Python3
content: 'import http.client
conn = http.client.HTTPSConnection("api.procore.com")
headers = { ''Authorization'': "Bearer REPLACE_BEARER_TOKEN" }
conn.request("GET", "/rest/v1.0/companies/%7Bcompany_id%7D/incidents/injury_filing_types/%7Bid%7D", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))'
- id: shell_curl
title: Curl
content: "curl --request GET \\\n --url https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/incidents/injury_filing_types/%7Bid%7D \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
- id: csharp_httpclient
title: C#
content: "var client = new HttpClient();\nvar request = new HttpRequestMessage\n{\n Method = HttpMethod.Get,\n RequestUri = new Uri(\"https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/incidents/injury_filing_types/%7Bid%7D\"),\n Headers =\n {\n { \"Authorization\", \"Bearer REPLACE_BEARER_TOKEN\" },\n },\n};\nusing (var response = await client.SendAsync(request))\n{\n response.EnsureSuccessStatusCode();\n var body = await response.Content.ReadAsStringAsync();\n Console.WriteLine(body);\n}"
x-rate-limit-enabled: true
x-procore-kong-tags:
- rate-limit:enabled
operationId: showFilingType
patch:
x-doc:
visibility: public
stage: ga
exposure: public
summary: Update Filing Type
description: Updates the severity level assignment for the specified filing type. Procore-provided filing type names cannot be changed.
tags:
- Filing Types
requestBody:
content:
application/json:
schema:
type: object
required:
- filing_type
properties:
filing_type:
type: object
properties:
severity_level_id:
type: integer
description: ID of the severity level to associate with this filing type. Obtain valid IDs from the company's incident severity levels.
example: 435
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Incident Filing Type
properties:
id:
type: integer
description: Unique identifier of the filing type.
example: 999
name:
type: string
description: Name of the filing type (e.g. report_only, first_aid, lost_time, fatality). Procore-provided filing type names cannot be changed.
example: report_only
created_at:
type: string
description: Timestamp when this filing type was created, in ISO 8601 format.
format: date-time
example: '2016-10-25T17:53:35Z'
severity_level:
title: SeverityLevel
type: object
properties:
id:
type: integer
description: Unique identifier of the severity level.
example: 1
name:
type: string
description: Display name of the severity level. May be customized by the company.
example: major
procore_default_name:
type: string
description: Procore's original default name for this severity level, before any company customization.
example: major
enum:
- insignificant
- minor
- major
- critical
- moderate
active:
type: boolean
description: Whether this severity level is active and available for assignment.
example: false
email_trigger:
type: boolean
description: Whether recording an incident with this severity level triggers an email notification.
example: false
push_notification_trigger:
type: boolean
description: Whether recording an incident with this severity level triggers a push notification.
example: false
order:
type: integer
description: Numeric ranking of this severity level, used for ordering from least to most severe.
created_at:
type: string
description: Timestamp when this severity level was created, in ISO 8601 format.
format: date-time
example: '2016-10-25T17:53:35Z'
updated_at:
type: string
description: Timestamp when this severity level was last updated, in ISO 8601 format.
format: date-time
example: '2016-10-25T17:53:35Z'
updated_at:
type: string
description: Timestamp when this filing type was last updated, in ISO 8601 format.
format: date-time
example: '2016-10-25T17:53:35Z'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
'403':
description: Forbidden
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
'422':
description: Unprocessable Entity
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
default:
description: Unexpected error
content:
application/json:
schema:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
reason:
description: A human-readable code providing additional detail on the cause of the error.
type: string
error:
description: Description of the error thrown.
type:
- string
- 'null'
example: Invalid Token
x-code-samples:
- id: node_request
mimeType: application/json
title: Node.js
content: "const request = require('request');\n\nconst options = {\n method: 'PATCH',\n url: 'https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/incidents/injury_filing_types/%7Bid%7D',\n headers: {\n Authorization: 'Bearer REPLACE_BEARER_TOKEN',\n 'content-type': 'application/json'\n },\n body: {filing_type: {severity_level_id: 435}},\n json: true\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n"
- id: python_python3
mimeType: application/json
title: Python3
content: "import http.client\n\nconn = http.client.HTTPSConnection(\"api.procore.com\")\n\npayload = \"{\\\"filing_type\\\":{\\\"severity_level_id\\\":435}}\"\n\nheaders = {\n 'Authorization': \"Bearer REPLACE_BEARER_TOKEN\",\n 'content-type': \"application/json\"\n }\n\nconn.request(\"PATCH\", \"/rest/v1.0/companies/%7Bcompany_id%7D/incidents/injury_filing_types/%7Bid%7D\", payload, headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))"
- id: shell_curl
mimeType: application/json
title: Curl
content: "curl --request PATCH \\\n --url https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/incidents/injury_filing_types/%7Bid%7D \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n --header 'content-type: application/json' \\\n --data '{\"filing_type\":{\"severity_level_id\":435}}'"
- id: csharp_httpclient
mimeType: application/json
title: C#
content: "var client = new HttpClient();\nvar request = new HttpRequestMessage\n{\n Method = HttpMethod.Patch,\n RequestUri = new Uri(\"https://api.procore.com/rest/v1.0/companies/%7Bcompany_id%7D/incidents/injury_filing_types/%7Bid%7D\"),\n Headers =\n {\n { \"Authorization\", \"Bearer REPLACE_BEARER_TOKEN\" },\n },\n Content = new StringContent(\"{\\\"filing_type\\\":{\\\"severity_level_id\\\":435}}\")\n {\n Headers =\n {\n ContentType = new MediaTypeHeaderValue(\"application/json\")\n }\n }\n};\nusing (var response = await client.SendAsync(request))\n{\n response.EnsureSuccessStatusCode();\n var body = await response.Content.ReadAsStringAsync();\n Console.WriteLine(body);\n}"
x-rate-limit-enabled: true
x-procore-kong-tags:
- rate-limit:enabled
operationId: updateFilingType
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer