> ## Documentation Index
> Fetch the complete documentation index at: https://developers.datagrid.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Procore companies

> Lists the Procore companies the authenticated user's own Procore session can access. Procore authorizes the call with the user's token, so the result matches what the user can see in Procore. Pages with `page` / `per_page`, mirroring Procore's own paging.




## OpenAPI

````yaml get /procore/companies
openapi: 3.0.3
info:
  version: 0.1.1
  title: Datagrid API
  description: Datagrid API
servers:
  - url: https://api.datagrid.com/v1
security:
  - BearerAuth: []
paths:
  /procore/companies:
    get:
      tags:
        - Procore
      summary: List Procore companies
      description: >
        Lists the Procore companies the authenticated user's own Procore session
        can access. Procore authorizes the call with the user's token, so the
        result matches what the user can see in Procore. Pages with `page` /
        `per_page`, mirroring Procore's own paging.
      operationId: ProcoreAccess.listCompanies
      parameters:
        - $ref: '#/components/parameters/ProcorePage'
        - $ref: '#/components/parameters/ProcorePerPage'
      responses:
        '200':
          description: Accessible Procore companies
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcoreCompanyList'
        '409':
          description: >-
            The user has no connected Procore session (`error` is
            `procore_not_connected`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcoreNotConnectedError'
        '429':
          description: >-
            Rate limit exceeded. The request has been throttled because the rate
            limit for this endpoint has been reached. Check the `Retry-After`
            response header and retry after the specified number of seconds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '502':
          description: Procore did not return a usable response.
components:
  parameters:
    ProcorePage:
      name: page
      in: query
      required: false
      description: 1-based page number. Values below 1 are treated as 1.
      schema:
        type: integer
        minimum: 1
        default: 1
    ProcorePerPage:
      name: per_page
      in: query
      required: false
      description: Items per page. Values above 100 are clamped to 100.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 25
  schemas:
    ProcoreCompanyList:
      type: object
      required:
        - object
        - data
        - has_more
        - next_page
      properties:
        object:
          type: string
          enum:
            - list
        data:
          type: array
          items:
            $ref: '#/components/schemas/ProcoreCompany'
        has_more:
          type: boolean
          description: Whether another page follows.
        next_page:
          type: integer
          nullable: true
          description: The `page` value for the next page, or `null` on the last page.
    ProcoreNotConnectedError:
      type: object
      required:
        - error
        - message
        - status_code
      properties:
        status_code:
          type: integer
          description: The HTTP status code (409).
        error:
          type: string
          enum:
            - procore_not_connected
          description: A machine-readable error code.
        message:
          type: string
          description: A human-readable error message.
    RateLimitError:
      type: object
      description: >-
        Returned when the rate limit is exceeded. Rate limits are enforced per
        teamspace, endpoint path, and HTTP method over a 60-second sliding
        window. Each endpoint may have its own limit — check the
        X-RateLimit-Limit response header for the effective value.
      required:
        - error
        - message
        - retryable
        - status_code
      properties:
        status_code:
          type: integer
          description: The HTTP status code (429).
        statusCode:
          type: integer
          deprecated: true
          description: Deprecated. Use status_code instead.
        error:
          type: string
          enum:
            - rate_limit_exceeded
          description: The error code identifying this as a rate limit error.
        message:
          type: string
          description: A human-readable error message.
        mitigation:
          type: string
          description: Suggested action to resolve the error.
        retryable:
          type: boolean
          description: Whether the request can be retried after a delay.
        details:
          type: object
          properties:
            reason:
              type: string
              description: A detailed explanation of why the rate limit was exceeded.
    ProcoreCompany:
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: string
          description: The Procore company ID.
        name:
          type: string
          description: The company name in Procore.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.