Skills Development Procore API Authentication Setup

Procore API Authentication Setup

v20260423
procore-install-auth
This guide details how to establish secure API access to the Procore construction management platform. It utilizes the OAuth2 client credentials flow, allowing developers to obtain necessary access tokens using client IDs and secrets. This setup is crucial for integrating custom applications to manage projects, retrieve RFIs, or handle submittals programmatically.
Get Skill
477 downloads
Overview

Procore Install Auth

Overview

Set up Procore API authentication using OAuth2 client credentials flow. Procore uses OAuth2 with separate endpoints for production and sandbox.

Prerequisites

  • Procore Developer account at developers.procore.com
  • App credentials (client_id, client_secret)
  • A Procore company to authorize against

Instructions

Step 1: Register Application

1. Go to developers.procore.com > My Apps > Create App
2. Set redirect URI: http://localhost:3000/callback
3. Copy client_id and client_secret

Step 2: Configure Environment

# .env
PROCORE_CLIENT_ID=your_client_id
PROCORE_CLIENT_SECRET=your_client_secret
PROCORE_BASE_URL=https://api.procore.com
# For sandbox: https://sandbox.procore.com

Step 3: Client Credentials Flow

import os, requests

token_resp = requests.post("https://login.procore.com/oauth/token", data={
    "grant_type": "client_credentials",
    "client_id": os.environ["PROCORE_CLIENT_ID"],
    "client_secret": os.environ["PROCORE_CLIENT_SECRET"],
})
token_resp.raise_for_status()
access_token = token_resp.json()["access_token"]

# Verify — list companies
headers = {"Authorization": f"Bearer {access_token}"}
companies = requests.get("https://api.procore.com/rest/v1.0/companies", headers=headers)
companies.raise_for_status()
for co in companies.json():
    print(f"Company: {co['name']} (ID: {co['id']})")

Output

  • OAuth2 tokens obtained via client credentials
  • API connectivity verified with company listing

Error Handling

Error Cause Solution
invalid_client Wrong credentials Verify in developer portal
401 Unauthorized Expired token Re-authenticate
Sandbox vs production Wrong base URL Use login-sandbox-monthly.procore.com for sandbox

Resources

Next Steps

First API call: procore-hello-world

Info
Category Development
Name procore-install-auth
Version v20260423
Size 2.55KB
Updated At 2026-04-28
Language