Procore WBS Task Codes API

The WBS Task Codes API from Procore — 1 operation(s) for wbs task codes.

Operations 1

GET /rest/v1.0/projects/{project_id}/task_codes List Project WBS Task codes #

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-wbs-task-codes-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-wbs-task-codes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Procore REST WBS Task Codes 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: WBS Task Codes
paths:
  /rest/v1.0/projects/{project_id}/task_codes:
    parameters:
    - name: Procore-Company-Id
      in: header
      description: Unique company identifier associated with the Procore User Account.
      required: true
      schema:
        type: integer
    x-compliance-level: full
    get:
      x-doc:
        visibility: public
        stage: beta
        exposure: public
      summary: List Project WBS Task codes
      description: All Work Breakdown Structure task codes for a given project, sorted by flat code. NOTE, this endpoint is currently in the experimental stage and is subject to change.
      tags:
      - WBS Task Codes
      parameters:
      - name: type
        in: query
        required: false
        description: Type of task codes to return
        schema:
          type: string
          enum:
          - labor (default)
          - equipment
          - all (returns both labor and equipment task codes in a single request)
      - name: per_page
        in: query
        required: false
        description: Elements per page
        schema:
          type: integer
      - name: page
        in: query
        required: false
        description: Page
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: Unique identifier for the project.
        schema:
          type: integer
      - name: serializer_view
        in: query
        description: Selects the response blueprint. Defaults to `task_code_entity` (full detail); `id_only` returns only identifiers. Takes precedence over the `view` parameter.
        required: false
        schema:
          type: string
      - name: view
        in: query
        description: Selects the response blueprint. Defaults to `task_code_entity` (full detail); `id_only` returns only identifiers. Ignored when `serializer_view` is also provided.
        required: false
        schema:
          type: string
      - name: filters
        in: query
        required: false
        description: Filter criteria for WBS task codes.
        schema:
          type: object
          properties:
            id:
              description: Filter by one or more WBS task code identifiers.
              type: array
              items:
                type: integer
            updated_at:
              type: string
              description: Return only task codes updated on or after this ISO 8601 timestamp.
              example: '2012-10-24T21:39:40Z'
            budgeted:
              type: boolean
              description: When true, returns only task codes whose associated cost code is budgeted; when false, only non-budgeted.
      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 task codes
                items:
                  type: object
                  properties:
                    id:
                      description: Unique identifier of the WBS task code.
                      type: integer
                      example: 1234
                    budgeted:
                      description: Whether this task code is flagged as budgeted.
                      type: boolean
                      example: true
                    cost_code:
                      description: The cost code associated with this task code.
                      type: object
                      properties:
                        id:
                          type: integer
                          description: Unique identifier of the cost code.
                          example: 1234
                        biller:
                          type: string
                          description: Name of the billing entity (project or sub job) this cost code is billed to.
                          example: Campus
                        biller_id:
                          type:
                          - string
                          - 'null'
                          description: Identifier of the billing entity. Null when no biller is assigned.
                          example: '12345'
                        biller_type:
                          type: string
                          enum:
                          - Project
                          - SubJob
                          - ''
                          description: Type of the billing entity. Empty string when no biller is assigned.
                          example: Project
                        biller_origin_id:
                          type:
                          - string
                          - 'null'
                          description: Third-party origin identifier for the billing entity. Null when not sourced from an external system.
                          example: '98765'
                        budgeted:
                          type: boolean
                          description: Whether this cost code is flagged as budgeted.
                          example: false
                        code:
                          type:
                          - string
                          - 'null'
                          description: Short code for this cost code, without parent prefixes.
                          example: '300'
                        created_at:
                          type:
                          - string
                          - 'null'
                          format: date-time
                          description: Timestamp when this cost code was created, in ISO 8601 format.
                          example: '2018-06-11T15:56:25Z'
                        deleted_at:
                          type:
                          - string
                          - 'null'
                          format: date-time
                          description: Timestamp when this cost code was soft-deleted, in ISO 8601 format. Null if the record is active.
                          example: '2018-06-11T15:56:25Z'
                        full_code:
                          type: string
                          description: Full hierarchical cost code including all parent prefixes (e.g., 02-300).
                          example: 02-300
                        name:
                          type: string
                          description: Display name of the cost code.
                          example: Earthwork
                        origin_data:
                          type:
                          - string
                          - 'null'
                          description: Arbitrary data from the third-party system that originally created this cost code. Null when not externally sourced.
                          example: OD-129947
                        origin_id:
                          type:
                          - string
                          - 'null'
                          description: Identifier of this cost code in its originating third-party system. Null when not externally sourced.
                          example: '9874484'
                        parent:
                          type: object
                          description: Parent cost code in the hierarchy.
                          properties:
                            id:
                              type:
                              - string
                              - 'null'
                              description: Identifier of the parent cost code. Null for top-level cost codes.
                              example: '2345'
                        position:
                          type:
                          - integer
                          - 'null'
                          description: Sort position of this cost code among its siblings.
                          example: 1
                        sortable_code:
                          type: string
                          description: Sortable code (this property is deprecated - see full_code)
                          example: 02-300
                        standard_cost_code_id:
                          type:
                          - string
                          - 'null'
                          description: Identifier of the standard cost code this was derived from. Null if not linked to a standard cost code.
                          example: '122334'
                        updated_at:
                          type:
                          - string
                          - 'null'
                          format: date-time
                          description: Timestamp when this cost code was last modified, in ISO 8601 format.
                          example: '2015-05-15T00:00:00Z'
                        line_item_types:
                          type: array
                          description: Budget line item types associated with this cost code.
                          items:
                            type: object
                            title: LineItemType
                            description: A budget line item type that categorizes cost entries.
                            properties:
                              id:
                                type: string
                                description: Unique identifier of the line item type.
                                example: '12345'
                              name:
                                type: string
                                description: Display name of the line item type.
                                example: Equipment
                              code:
                                type: string
                                description: Short code for the line item type.
                                example: LB
                              base_type:
                                type: string
                                enum:
                                - equipment
                                - materials
                                - commitment
                                - owner_cost
                                - professional_services
                                - other
                                description: Classification category for this line item type.
                                example: materials
                              origin_data:
                                type: string
                                description: Arbitrary data from the third-party system that originally created this line item type.
                                example: OD-2398273424
                              origin_id:
                                type:
                                - string
                                - 'null'
                                description: Identifier of this line item type in its originating third-party system. Null when not externally sourced.
                                example: ABC123
                    description:
                      description: Human-readable description of this task code.
                      type: string
                      example: remove brush from jobsite
                    flat_code:
                      description: Flattened hierarchical code combining all segment codes (e.g., 02-411).
                      type: string
                      example: 02-411
                    flat_name:
                      description: Flattened display name combining all segment names.
                      type: string
                      example: Brush Removal
                    production_quantity_code_id:
                      description: Identifier of the associated production quantity WBS code. Null if none is linked.
                      type: integer
                      example: 1235
                    segment_items:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: integer
                            description: Unique identifier of the segment item.
                            example: 456
                          code:
                            type: string
                            description: Code for this segment item (e.g., 01-222).
                            example: 01-222
                          name:
                            type: string
                            description: Display name of the segment item.
                            example: Lighting
                          created_at:
                            type: string
                            format: date-time
                            description: Timestamp when this segment item was created, in ISO 8601 format.
                            example: '2016-06-30T20:41:58Z'
                          updated_at:
                            type: string
                            format: date-time
                            description: Timestamp when this segment item was last modified, in ISO 8601 format.
                            example: '2016-08-30T18:11:43Z'
                          parent_id:
                            type:
                            - integer
                            - 'null'
                            description: Identifier of the parent segment item. Null for top-level items.
                            example: 123
                          path_ids:
                            type: array
                            description: Array of ancestor segment item identifiers from root to this item.
                            items:
                              type: integer
                            example:
                            - 123
                            - 456
                          path_code:
                            type: string
                            description: This segment item's own code within the hierarchy.
                            example: a
                          is_parent:
                            type: boolean
                            example: false
                          path_codes:
                            type: array
                            description: Array of formatted code-name pairs from root to this item.
                            items:
                              type: string
                            example:
                            - 01 - Requirements
                            - 01-222 - Lighting
                          path_names:
                            type: array
                            description: Array of formatted code-name pairs from root to this item (same as path_codes).
                            items:
                              type: string
                            example:
                            - 01 - Requirements
                            - 01-222 - Lighting
                          in_use:
                            type: boolean
                            description: Whether or not this item is tagged on an entity
                            example: true
                          segment:
                            type: object
                            description: Segment attributes
                            properties:
                              id:
                                type: integer
                                example: 3
                              name:
                                type: string
                                example: Cost Code
                              type:
                                type: string
                                example: cost_code
                              position:
                                type: integer
                                example: 1
                              delimiter:
                                type: string
                                example: .
                              required:
                                type: boolean
                                example: true
                              segment_items_count:
                                type: integer
                                example: 2
                              project_can_modify_origin_project:
                                type: boolean
                                example: true
                              project_can_delete_origin_company:
                                type: boolean
                                example: true
                              structure:
                                type: string
                                enum:
                                - tiered
                                - flat
                                example: tiered
                              created_at:
                                type: string
                                format: date-time
                                description: Created at
                                example: '2016-06-30T20:41:58Z'
                              updated_at:
                                type: string
                                format: date-time
                                description: Updated at
                                example: '2016-08-30T18:11:43Z'
                              wbs_pattern_id:
                                type: integer
                                description: ID of the associated WBS Pattern
                                example: 4567
                            example:
                              id: 3
                              name: Cost Code
                              type: cost_code
                              position: 1
                              delimiter: .
                              required: true
                              segment_items_count: 2
                              project_can_modify_origin_project: true
                              project_can_delete_origin_company: true
                              structure: tiered
                              created_at: '2016-06-30T20:41:58Z'
                              updated_at: '2016-08-30T18:11:43Z'
                              wbs_pattern_id: 4567
                          status:
                            type: string
                            description: Current status of the segment item (e.g., active, inactive).
                            example: active
        '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
      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/task_codes',\n  qs: {\n    type: 'SOME_STRING_VALUE',\n    per_page: 'SOME_INTEGER_VALUE',\n    page: 'SOME_INTEGER_VALUE',\n    serializer_view: 'SOME_STRING_VALUE',\n    view: 'SOME_STRING_VALUE',\n    filters: 'SOME_OBJECT_VALUE'\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
        title: Python3
        content: 'import http.client


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


          conn.request("GET", "/rest/v1.0/projects/%7Bproject_id%7D/task_codes?type=SOME_STRING_VALUE&per_page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE&serializer_view=SOME_STRING_VALUE&view=SOME_STRING_VALUE&filters=SOME_OBJECT_VALUE")


          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/task_codes?type=SOME_STRING_VALUE&per_page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE&serializer_view=SOME_STRING_VALUE&view=SOME_STRING_VALUE&filters=SOME_OBJECT_VALUE'"
      - 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/task_codes?type=SOME_STRING_VALUE&per_page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE&serializer_view=SOME_STRING_VALUE&view=SOME_STRING_VALUE&filters=SOME_OBJECT_VALUE\"),\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: Changed type filtering parameters
        description: Deprecated equipment_only parameter in favor of type=equipment or type=all
        endpoint: GET /projects/{project_id}/task_codes
        type: refinement
        breaking: false
        datestamp: '2025-05-29'
        versions:
        - '1.0'
        x-doc:
          visibility: public
          stage: beta
          exposure: public
        link: task-codes-field-productivity?version=1.0#list-project-wbs-task-codes
      - summary: Added Task Codes index endpoint
        description: Changed the URL from /projects/{project_id}/work_breakdown_structure/task_codes to /rest/v1.0/projects/{project_id}/task_codes
        endpoint: GET /projects/{project_id}/task_codes
        type: new
        breaking: false
        datestamp: '2024-11-07'
        versions:
        - '1.0'
        x-doc:
          visibility: public
          stage: beta
          exposure: public
        link: task-codes-field-productivity?version=1.0#list-project-wbs-task-codes
      - summary: Task codes are now sorted by flat code
        description: Task codes are now sorted according to their flat code.
        endpoint: GET /projects/{project_id}/task_codes
        type: refinement
        breaking: false
        datestamp: '2025-06-05'
        versions:
        - '1.0'
        x-doc:
          visibility: public
          stage: beta
          exposure: public
        link: task-codes-field-productivity?version=1.0#list-project-wbs-task-codes
      operationId: listProjectWbsTaskCodes
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer