Procore Action Plan Reference API

The Action Plan Reference API from Procore — 1 operation(s) for action plan reference.

Operations 1

POST /rest/v1.0/projects/{project_id}/action_plans/plan_references Create Action Plan Reference #

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-action-plan-reference-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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-action-plan-reference-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Procore REST Action Plan Reference 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: Action Plan Reference
paths:
  /rest/v1.0/projects/{project_id}/action_plans/plan_references:
    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
    post:
      x-doc:
        visibility: public
        stage: ga
        exposure: public
      summary: Create Action Plan Reference
      description: Create an Action Plan Reference
      tags:
      - Action Plan Reference
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - plan_reference
              properties:
                plan_reference:
                  type: object
                  required:
                  - payload
                  - plan_item_id
                  - type
                  properties:
                    plan_item_id:
                      type: integer
                      description: Action Plan Item ID
                      example: 54
                    type:
                      type: string
                      description: Action Plan Reference Type
                      enum:
                      - attachment
                      - drawing
                      - document
                      - document_management_document_reference
                      - specification_section
                      - submittal_log
                      - generic_tool_item
                      - form
                      - meeting
                      - observation_item
                      example: specification_section
                    payload:
                      type: object
                      description: One of attachment, drawing_revision_id, file_version_id, document_management_document_reference, specification_section_id, submittal_log_id, generic_tool_item_id, form_id, meeting_id, or observation_item_id is accepted depending on the type provided
                      properties:
                        drawing_revision_id:
                          type: integer
                          description: Drawing Revision ID
                          example: 53
                        file_version_id:
                          type: integer
                          description: File Version ID
                          example: 54
                        document_management_document_reference:
                          type: object
                          description: PDM (Product Document Management) document reference
                          properties:
                            collection_id:
                              type: string
                              format: uuid
                              description: Document collection ID
                              example: 123e4567-e89b-12d3-a456-426614174000
                            container_id:
                              type: string
                              format: uuid
                              description: Document container ID
                              example: 123e4567-e89b-12d3-a456-426614174001
                        specification_section_id:
                          type: integer
                          description: Specification Section ID
                          example: 55
                        submittal_log_id:
                          type: integer
                          description: Submittal Log ID
                          example: 65
                        generic_tool_item_id:
                          type: integer
                          description: Generic Tool Item (Correspondence) ID
                          example: 56
                        form_id:
                          type: integer
                          description: Form ID
                          example: 57
                        meeting_id:
                          type: integer
                          description: Meeting ID
                          example: 58
                        observation_item_id:
                          type: integer
                          description: Observation Item ID
                          example: 59
          multipart/form-data:
            schema:
              type: object
              required:
              - plan_reference
              properties:
                plan_reference:
                  type: object
                  required:
                  - payload
                  - plan_item_id
                  - type
                  properties:
                    plan_item_id:
                      type: integer
                      description: Action Plan Item ID
                      example: 54
                    type:
                      type: string
                      description: Action Plan Reference Type
                      enum:
                      - attachment
                      - drawing
                      - document
                      - document_management_document_reference
                      - specification_section
                      - submittal_log
                      - generic_tool_item
                      - form
                      - meeting
                      - observation_item
                      example: attachment
                    payload:
                      type: object
                      description: One of attachment, drawing_revision_id, file_version_id, document_management_document_reference, specification_section_id, submittal_log_id, generic_tool_item_id, form_id, meeting_id, or observation_item_id is accepted depending on the type provided
                      properties:
                        drawing_revision_id:
                          type: integer
                          description: Drawing Revision ID
                          example: 53
                        file_version_id:
                          type: integer
                          description: File Version ID
                          example: 54
                        document_management_document_reference:
                          type: object
                          description: PDM (Product Document Management) document reference
                          properties:
                            collection_id:
                              type: string
                              format: uuid
                              description: Document collection ID
                              example: 123e4567-e89b-12d3-a456-426614174000
                            container_id:
                              type: string
                              format: uuid
                              description: Document container ID
                              example: 123e4567-e89b-12d3-a456-426614174001
                        specification_section_id:
                          type: integer
                          description: Specification Section ID
                          example: 55
                        submittal_log_id:
                          type: integer
                          description: Submittal Log ID
                          example: 65
                        attachment:
                          type: string
                          format: binary
                          description: 'Reference Attachment.

                            To upload an attachment you must upload the entire payload as `multipart/form-data` content-type

                            with the `attachment` file.'
                        generic_tool_item_id:
                          type: integer
                          description: Generic Tool Item (Correspondence) ID
                          example: 56
                        form_id:
                          type: integer
                          description: Form ID
                          example: 57
                        meeting_id:
                          type: integer
                          description: Meeting ID
                          example: 58
                        observation_item_id:
                          type: integer
                          description: Observation Item ID
                          example: 59
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                description: Action Plan Reference (Show)
                properties:
                  id:
                    type: integer
                    description: Unique identifier for this Action Plan reference.
                    example: 12
                  plan_item_id:
                    type: integer
                    description: ID of the Action Plan item this reference is attached to.
                    example: 54
                  created_at:
                    type: string
                    format: date-time
                    description: Timestamp in ISO 8601 format when this reference was created.
                    example: '2018-09-20T21:39:40Z'
                  payload:
                    type: object
                    description: Type-specific payload containing identifiers for the referenced resource. The fields present depend on the value of the type field.
                    properties:
                      attachment:
                        type: object
                        properties:
                          id:
                            type: integer
                            description: ID
                            example: 5324
                          url:
                            type: string
                            description: Image URL
                            example: http://www.example.com/
                          thumbnail_url:
                            type:
                            - string
                            - 'null'
                            description: Image Thumbnail URL
                            example: http://www.example.com/
                          name:
                            type: string
                            description: File Name
                            example: january_receipt_copy.jpg
                          content_type:
                            type: string
                            description: Content Type
                            example: image/jpg
                      drawing_id:
                        type: integer
                        description: ID of the Drawing that contains the referenced revision.
                      drawing_revision_id:
                        type: integer
                        description: ID of the current Drawing Revision for the referenced Drawing.
                      file_version_id:
                        type: integer
                        description: ID of the current File Version for the referenced Document.
                      folder_id:
                        type: integer
                        description: ID of the Folder containing the referenced Document.
                      specification_section_id:
                        type: integer
                        description: ID of the referenced Specification Section.
                        example: 55
                      specification_section_current_revision_id:
                        type:
                        - integer
                        - 'null'
                        description: ID of the current revision of the referenced Specification Section. Null if no revision exists.
                        example: 42
                      submittal_log_id:
                        type: integer
                        description: ID of the referenced Submittal Log entry.
                        example: 65
                      generic_tool_item_id:
                        type: integer
                        description: ID of the referenced Generic Tool Item (Correspondence).
                      generic_tool_id:
                        type: integer
                        description: ID of the Generic Tool (Correspondence tool) that the referenced item belongs to. Present when the reference type is generic_tool_item.
                      form_id:
                        type: integer
                        description: ID of the referenced Form.
                      meeting_id:
                        type: integer
                        description: ID of the referenced Meeting.
                      observation_item_id:
                        type: integer
                        description: ID of the referenced Observation Item.
                      image_id:
                        type: integer
                        description: ID of the referenced image. Present when the reference type is image.
                      viewer_url:
                        type: string
                        description: URL to open the referenced item in the Procore web viewer. Present for attachment, form, image, and document management reference types.
                      collection_id:
                        type: string
                        format: uuid
                        description: Document collection ID for a document management reference.
                      container_id:
                        type: string
                        format: uuid
                        description: Document container ID for a document management reference.
                      document_revision_id:
                        type:
                        - string
                        - 'null'
                        description: Document revision ID for a document management reference. Null for open items showing the latest revision.
                      document_name:
                        type: string
                        description: Name of the referenced document management document.
                  plan_id:
                    type: integer
                    description: ID of the Action Plan that owns the item this reference is attached to.
                    example: 985
                  type:
                    type: string
                    description: Type of resource this reference points to.
                    enum:
                    - attachment
                    - drawing
                    - specification_section
                    - submittal_log
                    - document
                    - document_management_document_reference
                    - generic_tool_item
                    - form
                    - meeting
                    - observation_item
                    - image
                    example: specification_section
                  updated_at:
                    type: string
                    format: date-time
                    description: Timestamp in ISO 8601 format when this reference was last updated.
                    example: '2018-09-20T21:39:40Z'
                  deleted_at:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Timestamp in ISO 8601 format when this reference was soft-deleted. Null if the reference is active.
                    example: '2018-09-20T21:39:40Z'
        '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
        '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
      x-code-samples:
      - id: node_request
        mimeType: application/json
        title: Node.js
        content: "const request = require('request');\n\nconst options = {\n  method: 'POST',\n  url: 'https://api.procore.com/rest/v1.0/projects/%7Bproject_id%7D/action_plans/plan_references',\n  headers: {'content-type': 'application/json'},\n  body: {\n    plan_reference: {\n      plan_item_id: 54,\n      type: 'specification_section',\n      payload: {\n        drawing_revision_id: 53,\n        file_version_id: 54,\n        document_management_document_reference: {\n          collection_id: '123e4567-e89b-12d3-a456-426614174000',\n          container_id: '123e4567-e89b-12d3-a456-426614174001'\n        },\n        specification_section_id: 55,\n        submittal_log_id: 65,\n        generic_tool_item_id: 56,\n        form_id: 57,\n        meeting_id: 58,\n        observation_item_id: 59\n      }\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


          conn = http.client.HTTPSConnection("api.procore.com")


          payload = "{\"plan_reference\":{\"plan_item_id\":54,\"type\":\"specification_section\",\"payload\":{\"drawing_revision_id\":53,\"file_version_id\":54,\"document_management_document_reference\":{\"collection_id\":\"123e4567-e89b-12d3-a456-426614174000\",\"container_id\":\"123e4567-e89b-12d3-a456-426614174001\"},\"specification_section_id\":55,\"submittal_log_id\":65,\"generic_tool_item_id\":56,\"form_id\":57,\"meeting_id\":58,\"observation_item_id\":59}}}"


          headers = { ''content-type'': "application/json" }


          conn.request("POST", "/rest/v1.0/projects/%7Bproject_id%7D/action_plans/plan_references", payload, headers)


          res = conn.getresponse()

          data = res.read()


          print(data.decode("utf-8"))'
      - id: shell_curl
        mimeType: application/json
        title: Curl
        content: "curl --request POST \\\n  --url https://api.procore.com/rest/v1.0/projects/%7Bproject_id%7D/action_plans/plan_references \\\n  --header 'content-type: application/json' \\\n  --data '{\"plan_reference\":{\"plan_item_id\":54,\"type\":\"specification_section\",\"payload\":{\"drawing_revision_id\":53,\"file_version_id\":54,\"document_management_document_reference\":{\"collection_id\":\"123e4567-e89b-12d3-a456-426614174000\",\"container_id\":\"123e4567-e89b-12d3-a456-426614174001\"},\"specification_section_id\":55,\"submittal_log_id\":65,\"generic_tool_item_id\":56,\"form_id\":57,\"meeting_id\":58,\"observation_item_id\":59}}}'"
      - id: csharp_httpclient
        mimeType: application/json
        title: C#
        content: "var client = new HttpClient();\nvar request = new HttpRequestMessage\n{\n    Method = HttpMethod.Post,\n    RequestUri = new Uri(\"https://api.procore.com/rest/v1.0/projects/%7Bproject_id%7D/action_plans/plan_references\"),\n    Content = new StringContent(\"{\\\"plan_reference\\\":{\\\"plan_item_id\\\":54,\\\"type\\\":\\\"specification_section\\\",\\\"payload\\\":{\\\"drawing_revision_id\\\":53,\\\"file_version_id\\\":54,\\\"document_management_document_reference\\\":{\\\"collection_id\\\":\\\"123e4567-e89b-12d3-a456-426614174000\\\",\\\"container_id\\\":\\\"123e4567-e89b-12d3-a456-426614174001\\\"},\\\"specification_section_id\\\":55,\\\"submittal_log_id\\\":65,\\\"generic_tool_item_id\\\":56,\\\"form_id\\\":57,\\\"meeting_id\\\":58,\\\"observation_item_id\\\":59}}}\")\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}"
      - id: node_request
        mimeType: multipart/form-data
        title: Node.js
        content: "const request = require('request');\n\nconst options = {\n  method: 'POST',\n  url: 'https://api.procore.com/rest/v1.0/projects/%7Bproject_id%7D/action_plans/plan_references',\n  headers: {'content-type': 'multipart/form-data; boundary=---011000010111000001101001'},\n  formData: {\n    plan_reference: '{\"plan_item_id\":54,\"type\":\"attachment\",\"payload\":{\"drawing_revision_id\":53,\"file_version_id\":54,\"document_management_document_reference\":{\"collection_id\":\"123e4567-e89b-12d3-a456-426614174000\",\"container_id\":\"123e4567-e89b-12d3-a456-426614174001\"},\"specification_section_id\":55,\"submittal_log_id\":65,\"attachment\":\"string\",\"generic_tool_item_id\":56,\"form_id\":57,\"meeting_id\":58,\"observation_item_id\":59}}'\n  }\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: multipart/form-data
        title: Python3
        content: 'import http.client


          conn = http.client.HTTPSConnection("api.procore.com")


          payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"plan_reference\"\r\n\r\n{\"plan_item_id\":54,\"type\":\"attachment\",\"payload\":{\"drawing_revision_id\":53,\"file_version_id\":54,\"document_management_document_reference\":{\"collection_id\":\"123e4567-e89b-12d3-a456-426614174000\",\"container_id\":\"123e4567-e89b-12d3-a456-426614174001\"},\"specification_section_id\":55,\"submittal_log_id\":65,\"attachment\":\"string\",\"generic_tool_item_id\":56,\"form_id\":57,\"meeting_id\":58,\"observation_item_id\":59}}\r\n-----011000010111000001101001--\r\n"


          headers = { ''content-type'': "multipart/form-data; boundary=---011000010111000001101001" }


          conn.request("POST", "/rest/v1.0/projects/%7Bproject_id%7D/action_plans/plan_references", payload, headers)


          res = conn.getresponse()

          data = res.read()


          print(data.decode("utf-8"))'
      - id: shell_curl
        mimeType: multipart/form-data
        title: Curl
        content: "curl --request POST \\\n  --url https://api.procore.com/rest/v1.0/projects/%7Bproject_id%7D/action_plans/plan_references \\\n  --header 'content-type: multipart/form-data' \\\n  --form 'plan_reference={\"plan_item_id\":54,\"type\":\"attachment\",\"payload\":{\"drawing_revision_id\":53,\"file_version_id\":54,\"document_management_document_reference\":{\"collection_id\":\"123e4567-e89b-12d3-a456-426614174000\",\"container_id\":\"123e4567-e89b-12d3-a456-426614174001\"},\"specification_section_id\":55,\"submittal_log_id\":65,\"attachment\":\"string\",\"generic_tool_item_id\":56,\"form_id\":57,\"meeting_id\":58,\"observation_item_id\":59}}'"
      - id: csharp_httpclient
        mimeType: multipart/form-data
        title: C#
        content: "var client = new HttpClient();\nvar request = new HttpRequestMessage\n{\n    Method = HttpMethod.Post,\n    RequestUri = new Uri(\"https://api.procore.com/rest/v1.0/projects/%7Bproject_id%7D/action_plans/plan_references\"),\n    Content = new MultipartFormDataContent\n    {\n        new StringContent(\"{\\\"plan_item_id\\\":54,\\\"type\\\":\\\"attachment\\\",\\\"payload\\\":{\\\"drawing_revision_id\\\":53,\\\"file_version_id\\\":54,\\\"document_management_document_reference\\\":{\\\"collection_id\\\":\\\"123e4567-e89b-12d3-a456-426614174000\\\",\\\"container_id\\\":\\\"123e4567-e89b-12d3-a456-426614174001\\\"},\\\"specification_section_id\\\":55,\\\"submittal_log_id\\\":65,\\\"attachment\\\":\\\"string\\\",\\\"generic_tool_item_id\\\":56,\\\"form_id\\\":57,\\\"meeting_id\\\":58,\\\"observation_item_id\\\":59}}\")\n        {\n            Headers =\n            {\n                ContentDisposition = new ContentDispositionHeaderValue(\"form-data\")\n                {\n                    Name = \"plan_reference\",\n                }\n            }\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
      x-changelog:
      - summary: Added Action Plan References create endpoint
        description: Create an Action Plan References for a given Project.
        endpoint: POST /projects/{project_id}/action_plans/plan_references
        type: new
        breaking: false
        datestamp: '2021-02-22'
        versions:
        - '1.0'
        x-doc:
          visibility: public
          stage: ga
          exposure: public
        link: action-plan-references?version=1.0#create-action-plan-reference
      operationId: createActionPlanReference
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer