Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Procore REST Severity Levels 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: Severity Levels
paths:
/rest/v1.0/companies/{company_id}/incidents/severity_levels:
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 Severity Levels
description: Returns a paginated list of incident severity levels configured for the company. Each severity level includes its name, notification triggers (email and push), alert recipients, and ranking order. Companies have 4-5 predefined severity levels (insignificant, minor, moderate, major, critical) that can be customized. Supports filtering by trigger flags and sorting by name.
tags:
- Severity Levels
parameters:
- name: page
in: query
description: Page
schema:
type: integer
- name: per_page
in: query
description: Elements per page
schema:
type: integer
- name: filters[email_trigger]
in: query
description: Return item(s) set to trigger email notifications.
required: false
schema:
type: string
- 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[push_notification_trigger]
in: query
description: Return item(s) set to trigger push notifications.
required: false
schema:
type: string
- 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
schema:
type: string
enum:
- name
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 Severity Levels
items:
title: SeverityLevel
type: object
properties:
id:
type: integer
example: 1
name:
type: string
description: Name of the Incident Severity Level
example: major
procore_default_name:
type: string
description: Procore default name of the Incident Severity Level
example: major
enum:
- insignificant
- minor
- major
- critical
- moderate
active:
type: boolean
description: Denotes whether the Incident Severity Level is active
example: false
email_trigger:
type: boolean
description: Denotes whether an email should be sent
example: false
push_notification_trigger:
type: boolean
description: Denotes whether a push notification should be sent
example: false
order:
type: integer
description: Ranking order of the Incident Severity Level
created_at:
type: string
description: iso8601 timestamp of creation
format: date-time
example: '2016-10-25T17:53:35Z'
updated_at:
type: string
description: iso8601 timestamp of last update
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/severity_levels',\n qs: {\n page: 'SOME_INTEGER_VALUE',\n per_page: 'SOME_INTEGER_VALUE',\n 'filters[email_trigger]': 'SOME_STRING_VALUE',\n 'filters[id]': 'SOME_ARRAY_VALUE',\n 'filters[push_notification_trigger]': 'SOME_STRING_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/severity_levels?page=SOME_INTEGER_VALUE&per_page=SOME_INTEGER_VALUE&filters%5Bemail_trigger%5D=SOME_STRING_VALUE&filters%5Bid%5D=SOME_ARRAY_VALUE&filters%5Bpush_notification_trigger%5D=SOME_STRING_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/severity_levels?page=SOME_INTEGER_VALUE&per_page=SOME_INTEGER_VALUE&filters%5Bemail_trigger%5D=SOME_STRING_VALUE&filters%5Bid%5D=SOME_ARRAY_VALUE&filters%5Bpush_notification_trigger%5D=SOME_STRING_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/severity_levels?page=SOME_INTEGER_VALUE&per_page=SOME_INTEGER_VALUE&filters%5Bemail_trigger%5D=SOME_STRING_VALUE&filters%5Bid%5D=SOME_ARRAY_VALUE&filters%5Bpush_notification_trigger%5D=SOME_STRING_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: listIncidentSeverityLevels
/rest/v1.0/companies/{company_id}/incidents/severity_levels/{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 incident severity level. Use the `id` from the List Severity Levels response.
required: true
schema:
type: integer
x-compliance-level: full
get:
x-doc:
visibility: public
stage: ga
exposure: public
summary: Show Incident Severity Level
description: Returns the specified incident severity level with full details including name, procore_default_name, notification triggers, alert recipients, active status, ranking order, and timestamps.
tags:
- Severity Levels
responses:
'200':
description: OK
content:
application/json:
schema:
title: SeverityLevel
type: object
properties:
id:
type: integer
example: 1
name:
type: string
description: Name of the Incident Severity Level
example: major
procore_default_name:
type: string
description: Procore default name of the Incident Severity Level
example: major
enum:
- insignificant
- minor
- major
- critical
- moderate
active:
type: boolean
description: Denotes whether the Incident Severity Level is active
example: false
email_trigger:
type: boolean
description: Denotes whether an email should be sent
example: false
push_notification_trigger:
type: boolean
description: Denotes whether a push notification should be sent
example: false
order:
type: integer
description: Ranking order of the Incident Severity Level
created_at:
type: string
description: iso8601 timestamp of creation
format: date-time
example: '2016-10-25T17:53:35Z'
updated_at:
type: string
description: iso8601 timestamp of last update
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
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/severity_levels/%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/severity_levels/%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/severity_levels/%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/severity_levels/%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: showIncidentSeverityLevel
patch:
x-doc:
visibility: public
stage: ga
exposure: public
summary: Update Incident Severity Level
description: Updates the specified incident severity level's attributes. Allows modifying the display name, notification triggers (email_trigger, push_notification_trigger), and alert recipient list. The procore_default_name cannot be changed. Pass alert_recipient_ids as an array of Login Information IDs for users who should receive notifications when incidents are created with this severity level.
tags:
- Severity Levels
requestBody:
content:
application/json:
schema:
type: object
required:
- severity_level
properties:
severity_level:
type: object
description: Severity Level object
properties:
name:
type: string
description: Display name for the severity level. Can be customized from the default (procore_default_name).
example: Critical
email_trigger:
type: boolean
description: When true, email notifications are sent to alert recipients when an incident is created with this severity level.
example: false
push_notification_trigger:
type: boolean
description: When true, push notifications are sent to alert recipients when an incident is created with this severity level.
example: false
alert_recipient_ids:
type: array
description: Array of Login Information IDs for users who receive notifications (email and/or push) when an incident is created with this severity level. Replaces the existing alert recipient list.
items:
type: integer
example: 1
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
title: SeverityLevel
type: object
properties:
id:
type: integer
example: 1
name:
type: string
description: Name of the Incident Severity Level
example: major
procore_default_name:
type: string
description: Procore default name of the Incident Severity Level
example: major
enum:
- insignificant
- minor
- major
- critical
- moderate
active:
type: boolean
description: Denotes whether the Incident Severity Level is active
example: false
email_trigger:
type: boolean
description: Denotes whether an email should be sent
example: false
push_notification_trigger:
type: boolean
description: Denotes whether a push notification should be sent
example: false
order:
type: integer
description: Ranking order of the Incident Severity Level
created_at:
type: string
description: iso8601 timestamp of creation
format: date-time
example: '2016-10-25T17:53:35Z'
updated_at:
type: string
description: iso8601 timestamp of last update
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/severity_levels/%7Bid%7D',\n headers: {\n Authorization: 'Bearer REPLACE_BEARER_TOKEN',\n 'content-type': 'application/json'\n },\n body: {\n severity_level: {\n name: 'Critical',\n email_trigger: false,\n push_notification_trigger: false,\n alert_recipient_ids: [1]\n }\n },\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 = \"{\\\"severity_level\\\":{\\\"name\\\":\\\"Critical\\\",\\\"email_trigger\\\":false,\\\"push_notification_trigger\\\":false,\\\"alert_recipient_ids\\\":[1]}}\"\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/severity_levels/%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/severity_levels/%7Bid%7D \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n --header 'content-type: application/json' \\\n --data '{\"severity_level\":{\"name\":\"Critical\",\"email_trigger\":false,\"push_notification_trigger\":false,\"alert_recipient_ids\":[1]}}'"
- 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/severity_levels/%7Bid%7D\"),\n Headers =\n {\n { \"Authorization\", \"Bearer REPLACE_BEARER_TOKEN\" },\n },\n Content = new StringContent(\"{\\\"severity_level\\\":{\\\"name\\\":\\\"Critical\\\",\\\"email_trigger\\\":false,\\\"push_notification_trigger\\\":false,\\\"alert_recipient_ids\\\":[1]}}\")\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: updateIncidentSeverityLevel
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer