canonical: https://jentic.com/apis/procore.com/procore

# Procore API

The Procore API provides programmatic access to a construction management platform with over 1,000 endpoints spanning project management, quality and safety inspections, financial tracking, field productivity, workforce management, and document control. It supports the full construction project lifecycle from pre-construction bidding through punch list closeout, with resources for RFIs, submittals, change orders, daily logs, timesheets, and incident reporting.

## For AI agents

Manage construction projects including RFIs, submittals, change orders, safety incidents, daily logs, timesheets, and financial tracking across the full project lifecycle.

## Scope

Does not handle architectural design, BIM authoring, or general accounting - use for construction project management, field operations, and construction financials only.

## Capabilities

- Track and manage RFIs, submittals, and coordination issues through their full approval lifecycle
- Record and investigate safety incidents including injuries, near misses, and environmental observations
- Manage construction financial documents including change orders, purchase orders, and requisitions
- Log daily field reports covering labor, equipment usage, weather conditions, and deliveries
- Run quality and safety inspection checklists with configurable response sets and corrective actions
- Track workforce timesheets, production quantities, and labor productivity metrics
- Manage bid packages and vendor communications during pre-construction procurement

## Use cases

### Construction RFI Management

Create, route, and track Requests for Information through the approval workflow. The Procore API allows agents to submit RFIs with attachments, assign them to responsible parties, track response deadlines, and close them when answers are received. With over 1,000 endpoints, the API covers the full RFI lifecycle including distribution lists, linked documents, and cost impact tracking.

Example prompt: Create a new RFI on project ID 12345 using POST `/rest/v1.0/projects/{project_id}/rfis` with a subject, description, assignee, and due date, then retrieve its status

### Safety Incident Reporting and Tracking

Record workplace safety incidents, injuries, near misses, and environmental observations with structured data collection. The API supports creating incident records with injury details, witness information, corrective actions, and root cause analysis. Agents can monitor incident trends across projects, track corrective action completion, and generate safety metrics for compliance reporting.

Example prompt: Create an incident record on project 12345 via POST `/rest/v1.0/projects/{project_id}/incidents/actions` with incident type, date, location, and description, then add an injury record to the incident

### Construction Financial Tracking

Manage change orders, purchase orders, work order contracts, and budget line items for construction projects. The API enables agents to create and approve change events, track committed costs against budget, process payment requisitions, and monitor cost-to-complete projections. It supports the financial document hierarchy from prime contracts through subcontractor payment applications.

Example prompt: List all potential change orders for project 12345 with status 'pending' using GET `/rest/v1.0/projects/{project_id}/potential_change_orders` and return the total cost impact

### AI Agent Construction Operations

Enable AI agents to manage construction operations through Jentic by discovering and executing Procore API operations by intent. Agents can create daily logs, submit RFIs, check inspection status, and pull project financials without navigating 1,000+ endpoints directly. Jentic provides operation schemas so agents execute the correct request with proper parameters.

Example prompt: Search Jentic for 'create construction daily log entry', load the operation schema, and execute to log today's weather, labor count, and equipment usage for a project

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/rest/v1.0/projects/{project_id}/rfis` | Create a new RFI on a project |
| GET | `/rest/v1.0/projects/{project_id}/incidents/actions` | List incident actions for a project |
| GET | `/rest/v1.0/projects/{project_id}/checklist/lists` | List inspection checklists for a project |
| GET | `/rest/v1.0/projects/{project_id}/potential_change_orders` | List potential change orders |
| GET | `/rest/v1.0/projects/{project_id}/timesheets` | List timesheet entries for a project |
| POST | `/rest/v1.0/projects/{project_id}/observations` | Create a safety observation |
| GET | `/rest/v1.0/projects/{project_id}/vendors` | List project vendors and subcontractors |
| POST | `/oauth/token` | Obtain or refresh OAuth access token |

## Key resources

- **RFIs** — Requests for Information with routing, responses, and cost impact tracking
- **Incidents** — Safety incidents including injuries, near misses, actions, and corrective measures
- **Checklists** — Quality and safety inspection lists with configurable response sets
- **Change Orders** — Financial change documents at potential, commitment, and prime contract levels
- **Timesheets** — Crew labor hours, production quantities, and cost code tracking
- **Vendors** — Subcontractor and supplier management with insurance and compliance tracking

## Why Jentic

- **Setup:** Wiring the Procore API by hand means running the OAuth token flow, refreshing tokens before they expire, choosing between the production and sandbox hosts, and mapping project calls yourself. Through Jentic you install once, import Procore from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Procore puts the project id in the URL path (`/rest/v1.0/projects/{project_id}/...`), so a rule can pin your agent to one project: it can read and create records like RFIs and observations for that project and nothing else. You choose the operations it may call, so a write like creating an RFI is not included unless you add it.
- **Credential handling:** Your Procore OAuth credentials are stored once, encrypted, by your own Jentic One instance, refreshed and injected at execution time. Client secrets and refresh tokens never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a construction RFI' or 'list project vendors', and Jentic returns the matching Procore operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Smartsheet API** — Collaborative spreadsheet platform for project scheduling and cross-team coordination
- **Jira API** — Issue tracking and agile project management for software and general teams
- **Asana API** — General project and task management with timeline and portfolio views

## FAQ

### What authentication does the Procore API use?

The Procore API uses OAuth 2.0 with authorization code and client credentials flows. Tokens are obtained from https://login.procore.com/oauth/token and expire after 90 minutes. Through Jentic, OAuth tokens are managed in the credential vault with automatic refresh - agents never handle client secrets or token rotation directly.

### Can I create RFIs programmatically with the Procore API?

Yes. POST to `/rest/v1.0/projects/{project_id}/rfis` creates a new RFI with subject, description, assignee, due date, and attachments. The response includes the RFI number and status. You can also manage the full RFI lifecycle including responses, distribution lists, and closure.

### What are the rate limits for the Procore API?

Procore enforces rate limits per OAuth application. The standard limit is 3,600 requests per hour per token. Requests exceeding this receive a 429 response. Bulk operations should use pagination and batch endpoints where available to minimize request counts.

### How do I retrieve project safety incidents through Jentic?

Search Jentic for 'list safety incidents for a construction project', load the operation schema for GET `/rest/v1.0/projects/{project_id}/incidents/actions`, and execute with your project ID. Results include incident type, date, severity, and corrective actions. Install with pip install jentic and run it through Jentic One, the self-hosted execution layer.

### Does the Procore API cover construction financials?

Yes. The API includes endpoints for potential change orders, commitment change orders, purchase order contracts, work order contracts, requisitions, budget line items, and payment applications. These cover the full financial lifecycle from budget setup through subcontractor payments.

### Can I manage inspection checklists through the Procore API?

Yes. The `/rest/v1.0/projects/{project_id}/checklist`/ endpoints let you list inspection templates, create inspection instances, record responses with photos, and track corrective actions. Alternative response sets allow custom pass/fail criteria per inspection type.

### Can I limit what my agent is allowed to do with the Procore API?

Yes. Because you run Jentic One yourself, your own rules decide which Procore operations and credentials the agent may use, and Procore puts the project id in the URL path (`/rest/v1.0/projects/{project_id}/...`), so a rule can pin the agent to a single project. You choose the exact operations it may call, so you can grant read-only access to records like RFIs and safety observations while withholding writes such as POST `/rest/v1.0/projects/{project_id}/rfis.` Nothing outside the operations and projects you allow is reachable.
