Print

Import Procore Data to Sheets

In this guide, we’ll walk through how to pull Procore data directly into Google Sheets, using the API Connector add-on for Sheets.

Contents

Before You Begin

Click here to install the API Connector add-on from the Google Marketplace.

Part 1: Get Your Company & Project IDs

We'll need to plug in your company & project IDs to make requests to the API, so let's get those first.

You can get your company ID through the Procore website URL.
procore-companyid

Similarly, you can find your project ID by checking the URL while logged into the Procore website.

Alternatively, you can get these IDs through these API request URLs:

  • Company ID: https://api.procore.com/rest/v1.0/companies
  • Project ID: https://api.procore.com/rest/v1.0/projects?company_id=company_id

Part 2: Pull Procore API Data into Sheets

In June 2022, Procore began recommending the use of the Procore-Company-ID header. This header will become mandatory starting 2023-10-31, and API calls without it will be rejected.

For this example, we'll get a list of all submittals for a specified project. Substitute in your own project ID where it says your_project_id, and your own company ID where it says your_company_id

  1. Open up Google Sheets and click Extensions > API Connector > Open > Create request.
  2. In the request form enter the following:
    • ApplicationCustom
    • MethodGET
    • Request URLhttps://api.procore.com/rest/v1.0/projects/your_project_id/submittals
    • OAuth: Procore
    • Headers:
      • Procore-Company-Id: your_company_id
  3. When you select Procore from the OAuth menu, you'll see a blue Connect button if you haven't already authorized the connection. Click through to enable the connection.
  4. Create a new tab and click Set current to use that tab as your data destination.
  5. Name your request and click Run. A moment later you’ll see data populate your sheet.
    procore-response

Part 3: More Example API URLs

You can experiment with endpoints and query strings as described in the Procore API documentation, but if you just want to jump in, play around with the URLs you enter in the API URL path field. Try the following requests, substituting in actual values where indicated.

  • Get tasks associated with a project
https://api.procore.com/rest/v1.0/tasks?project_id={project_id}
  • Get budget metadata
https://api.procore.com/rest/v1.0/projects/{project_id}/budget
  • List programs
https://api.procore.com/rest/v1.0/companies/{company_id}/programs
  • List people associated with a company
https://api.procore.com/rest/v1.0/companies/{company_id}/people
  • Get a list of project dates
https://api.procore.com/rest/v1.0/projects/{project_id}/project_dates

Part 4: Handle Pagination

By default, Procore limits the number of records in a response. To get more records you need to use the "page" and "per_page" parameters as shown in their documentation.
procore-pagination

In API Connector this can be automated as follows:

  • URL: enter your URL, including per_page=10000
  • Pagination: page parameter
  • Page parameter: page
  • Run until: choose when to stop fetching data
    pagination-page-parameter

Part 5: API Documentation

Official API documentation: https://developers.procore.com/reference/rest/v1/authentication?version=1.0

4 thoughts on “Import Procore Data to Sheets”

  1. I'm looking to setup the Procore REST API to provide a list of all of the Inspections performed on specific Procore project. I may not be reading the API documentation correctly, but I don't see any GET functions under inspections. Is that correct?

    Reply
    • Hey Alex, I see quite a few GET requests under Inspections, but not sure if they're exactly what you're looking for. For example, this page shows how to get responses for a company. If you click on that link and scroll up the page, you'll see several more endpoints to get data related to Inspections, though none of them seem to list inspections performed on a specific project.

      Reply
  2. We can't seem to get any data on rest v1.0 endpoints. I.e Workflows/Timesheets etc. Is this something that we are doing wrong? All Rest v1.1 endpoints seem to be working fine. Any help would be appreciated.

    Reply

Leave a Comment

Jump To