Procore WBS Segment API

The WBS Segment API from Procore — 1 operation(s) for wbs segment.

Operations 1

GET /rest/v1.0/companies/{company_id}/work_breakdown_structure/segments/{id} Show Company WBS Segment #

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-segment-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-segment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Procore REST WBS Segment 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 Segment
paths:
  /rest/v1.0/companies/{company_id}/work_breakdown_structure/segments/{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 integer ID of the WBS Segment to operate on. Retrieve valid IDs from the segments[].id field in the list endpoint response.
      required: true
      schema:
        type: integer
    - name: segment_item_list_id
      in: query
      description: ID of the Segment Item List to scope the show response to. When provided the response includes list-specific metadata for the segment. Retrieve valid IDs from GET /rest/v1.0/companies/{company_id}/work_breakdown_structure/segments/{segment_id}/lists.
      required: false
      schema:
        type: integer
    - name: include[]
      in: query
      description: 'Optional sideloads to include in the segment object. Valid values: ''action_policy'' (adds the action_policy object with permitted actions  for the current user).'
      required: false
      schema:
        type: array
        items:
          type: string
          enum:
          - action_policy
    - name: include_action_policy
      in: query
      description: Convenience flag equivalent to passing include[]=action_policy. When true, the segment includes an action_policy object describing permitted actions for the current user.
      required: false
      schema:
        type: boolean
    x-compliance-level: full
    get:
      x-doc:
        visibility: public
        stage: ga
        exposure: public
      summary: Show Company WBS Segment
      description: Show a company level segment
      tags:
      - WBS Segment
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                description: A work breakdown structure project segment
                properties:
                  id:
                    type: integer
                    description: Unique integer identifier for this WBS Segment. Use as the {id} path parameter in GET /rest/v1.0/projects/{project_id}/work_breakdown_structure/segments/{id}.
                    example: 12345
                  type:
                    type: string
                    enum:
                    - sub_job
                    - cost_code
                    - line_item_type
                    - custom
                    - attribute
                    description: 'The segment type. One of: ''sub_job'' (sub-job dimension), ''cost_code'' (cost code dimension), ''line_item_type'' (line item type dimension), ''custom'' (user-defined custom segment), ''attribute'' (attribute dimension). Only ''custom'' segments can be created via the API.'
                    example: custom
                  name:
                    type: string
                    description: Localized display name of this WBS Segment shown in the UI (e.g. "Cost Code", "Phase"). Corresponds to the i18n label, not the internal segment_type value.
                    example: Phase
                  position:
                    type: integer
                    description: Ordinal position of this segment within the project WBS pattern. Lower values appear first. Use to determine column order in budget code displays.
                    example: 1
                  segment_items_count:
                    type:
                    - integer
                    - 'null'
                    description: Total number of segment items belonging to this segment. Null when the count has not been computed. Use to gauge whether a segment has been populated before attempting to list segment items.
                    example: 200
                  required:
                    type: boolean
                    description: Whether this segment must have a value assigned when creating a WBS Code. When true, budget codes cannot be created without selecting an item from this segment.
                    example: true
                  delimiter:
                    type: string
                    description: Character that separates this segment's value from the next segment's value in a formatted WBS code string (e.g. '.' produces "01.02").
                    example: .
                  project_can_modify_origin_project:
                    type: boolean
                    description: Whether project-specific segment items can be added, edited, or removed from a project. When true, project admins may manage items in this segment independently of the company list.
                    example: true
                  project_can_delete_origin_company:
                    type: boolean
                    description: Whether segment items inherited from the company level can be deleted from a project. When true, project admins may remove company-defined items from the project's visible list.
                    example: true
                  structure:
                    type: string
                    enum:
                    - tiered
                    - flat
                    description: Hierarchy structure of this segment. 'tiered' means items can have parent-child relationships forming a multi-level tree; 'flat' means all items are at a single level with no hierarchy.
                    example: tiered
                  tier_depth:
                    type: integer
                    description: Present only when include[]=tier_depth is requested (list endpoints only). Flat segments (sub_job, line_item_type) return 1; tiered segments return the number of levels. Omitted (not null) when not requested.
                    example: 3
                  selectable_tiers:
                    type: boolean
                    description: Whether non-leaf segment items can be selected in the Budget Code picker. Only relevant for tiered segments; when true, intermediate parent nodes are selectable, not just leaf nodes.
                    example: true
                  is_included_in_project_pattern:
                    type: boolean
                    description: Whether this segment is included in the project's WBS pattern. When false the segment exists at the company level but is not active for this project.
                    example: true
                  tiered:
                    type: boolean
                    description: Convenience boolean indicating whether this segment's structure is tiered. True when structure == 'tiered', false when structure == 'flat'. Equivalent to checking structure directly.
                    example: true
                  created_at:
                    type: string
                    format: date-time
                    description: ISO 8601 timestamp of when this segment was created. Use to sort or filter segments by creation date.
                    example: '2016-06-30T20:41:58Z'
                  updated_at:
                    type: string
                    format: date-time
                    description: ISO 8601 timestamp of when this segment was last modified. Use to detect whether cached segment data needs to be refreshed.
                    example: '2016-08-30T18:11:43Z'
                  wbs_pattern_id:
                    type: integer
                    description: ID of the WBS Pattern this segment belongs to. Use to correlate this segment with its parent pattern returned by GET /rest/v1.0/projects/{project_id}/work_breakdown_structure/patterns.
                    example: 4567
        '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/companies/%7Bcompany_id%7D/work_breakdown_structure/segments/%7Bid%7D',\n  qs: {\n    segment_item_list_id: 'SOME_INTEGER_VALUE',\n    'include[]': 'SOME_ARRAY_VALUE',\n    include_action_policy: 'SOME_BOOLEAN_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/companies/%7Bcompany_id%7D/work_breakdown_structure/segments/%7Bid%7D?segment_item_list_id=SOME_INTEGER_VALUE&include%5B%5D=SOME_ARRAY_VALUE&include_action_policy=SOME_BOOLEAN_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/companies/%7Bcompany_id%7D/work_breakdown_structure/segments/%7Bid%7D?segment_item_list_id=SOME_INTEGER_VALUE&include%5B%5D=SOME_ARRAY_VALUE&include_action_policy=SOME_BOOLEAN_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/companies/%7Bcompany_id%7D/work_breakdown_structure/segments/%7Bid%7D?segment_item_list_id=SOME_INTEGER_VALUE&include%5B%5D=SOME_ARRAY_VALUE&include_action_policy=SOME_BOOLEAN_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: Added new fields
        description: Added created_at, updated_at, and wbs_pattern_id
        endpoint: GET /companies/{company_id}/work_breakdown_structure/segments/{id}
        type: refinement
        breaking: false
        datestamp: '2023-01-06'
        versions:
        - '1.0'
        x-doc:
          visibility: public
          stage: ga
          exposure: public
        link: segments?version=1.0#show-company-wbs-segment
      operationId: showCompanyWbsSegment
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer