Procore Incident API

The Incident API from Procore — 1 operation(s) for incident.

Operations 2

GET /rest/v1.0/projects/{project_id}/incidents/configuration Get Project Incidents Configuration #
PATCH /rest/v1.0/projects/{project_id}/incidents/configuration Update Project Incidents Configuration #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/procore:procore-incident-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

procore-incident-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Procore REST Incident 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: Incident
paths:
  /rest/v1.0/projects/{project_id}/incidents/configuration:
    parameters:
    - name: Procore-Company-Id
      in: header
      description: Unique company identifier associated with the Procore User Account.
      required: true
      schema:
        type: integer
    - name: project_id
      in: path
      required: true
      description: Unique identifier for the project.
      schema:
        type: integer
    x-compliance-level: full
    get:
      x-doc:
        visibility: public
        stage: ga
        exposure: public
      summary: Get Project Incidents Configuration
      description: Returns the project's Incidents tool configuration including privacy defaults and default distribution list members. The default distribution list includes only users with at least Read-level permissions to the Incidents tool.
      tags:
      - Incident
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                title: ProjectIncidentConfiguration
                properties:
                  project_id:
                    type: integer
                    description: Unique identifier for the project.
                    example: 5
                  private_by_default:
                    type: boolean
                    description: Ensures that all Incidents are private by default
                    example: true
                  default_distribution:
                    type: array
                    description: Users in the default distribution list
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: ID
                          example: 160586
                        login:
                          type: string
                          description: Email
                          example: carl.contractor@example.com
                        name:
                          type: string
                          description: Name
                          example: Carl Contractor
        '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
      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/projects/%7Bproject_id%7D/incidents/configuration',\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/projects/%7Bproject_id%7D/incidents/configuration", 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/projects/%7Bproject_id%7D/incidents/configuration \\\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/projects/%7Bproject_id%7D/incidents/configuration\"),\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: getProjectIncidentsConfiguration
    patch:
      x-doc:
        visibility: public
        stage: ga
        exposure: public
      summary: Update Project Incidents Configuration
      description: Updates the project's Incidents tool configuration. Modifies privacy defaults and/or the default distribution list for new incidents. Distribution list members must have at least Read-level permissions to the Incidents tool.
      tags:
      - Incident
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - configuration
              properties:
                configuration:
                  type: object
                  properties:
                    private_by_default:
                      type: boolean
                      description: When true, new incidents are created as private by default. When false, new incidents are public and visible to all users with Incidents tool access.
                      example: true
                    default_distribution_ids:
                      type: array
                      description: Array of Login Information IDs for users to include in the default distribution list for new incidents. Only users with Read or higher permissions to the Incidents tool are included in the response.
                      items:
                        type: integer
                        description: Login Information ID
                        example:
                        - 42
                        - 43
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                title: ProjectIncidentConfiguration
                properties:
                  project_id:
                    type: integer
                    description: Unique identifier for the project.
                    example: 5
                  private_by_default:
                    type: boolean
                    description: Ensures that all Incidents are private by default
                    example: true
                  default_distribution:
                    type: array
                    description: Users in the default distribution list
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: ID
                          example: 160586
                        login:
                          type: string
                          description: Email
                          example: carl.contractor@example.com
                        name:
                          type: string
                          description: Name
                          example: Carl Contractor
        '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
      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/projects/%7Bproject_id%7D/incidents/configuration',\n  headers: {\n    Authorization: 'Bearer REPLACE_BEARER_TOKEN',\n    'content-type': 'application/json'\n  },\n  body: {\n    configuration: {private_by_default: true, default_distribution_ids: [[42, 43]]}\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 = \"{\\\"configuration\\\":{\\\"private_by_default\\\":true,\\\"default_distribution_ids\\\":[[42,43]]}}\"\n\nheaders = {\n    'Authorization': \"Bearer REPLACE_BEARER_TOKEN\",\n    'content-type': \"application/json\"\n    }\n\nconn.request(\"PATCH\", \"/rest/v1.0/projects/%7Bproject_id%7D/incidents/configuration\", 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/projects/%7Bproject_id%7D/incidents/configuration \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"configuration\":{\"private_by_default\":true,\"default_distribution_ids\":[[42,43]]}}'"
      - 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/projects/%7Bproject_id%7D/incidents/configuration\"),\n    Headers =\n    {\n        { \"Authorization\", \"Bearer REPLACE_BEARER_TOKEN\" },\n    },\n    Content = new StringContent(\"{\\\"configuration\\\":{\\\"private_by_default\\\":true,\\\"default_distribution_ids\\\":[[42,43]]}}\")\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: updateProjectIncidentsConfiguration
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer