Supergood | Procore API

Supergood | Procore API

Programmatically access Procore construction project data, workflows, and financials with a stable REST API. Supergood builds and operates production-grade, unofficial Procore integrations so your team can automate field and office workflows without heavy custom engineering.

Plain English: Procore is construction management software used by owners, general contractors, and specialty contractors to run projects end-to-end. An unofficial API lets you programmatically pull project lists, RFIs, submittals, change orders, budgets and commitments, invoices (pay applications), daily logs, and documents—and push new records or updates back into Procore.

For a tech company integrating with Procore, this means you can ingest real-time job data to power dashboards, sync pay apps to accounting, automate RFI and submittal workflows from your product, or enrich your platform with field logs and quality/safety events. You can also push new commitments, create RFIs from defect detections, attach photos and documents, and keep stakeholder systems (ERP, analytics, scheduling) in lockstep.

What is Procore?

Procore (https://developers.procore.com/) is a cloud platform for construction management that centralizes project execution, financials, and field operations across stakeholders. Teams use Procore to coordinate drawings and documents, track RFIs and submittals, manage budgets and commitments, process pay applications, record daily logs, and maintain quality and safety artifacts.

Core product areas include:

  • Project Management (e.g., RFIs, Submittals, Drawings, Specifications, Meetings)
  • Financials (e.g., Budgets, Commitments/Subcontracts & POs, Change Orders, Invoices/Pay Apps)
  • Field Operations (e.g., Daily Logs, Timesheets, Inspections, Observations, Punch Lists)
  • Documents & BIM (e.g., file storage, versioned drawings/models, markups)

Common data entities:

  • Companies, Users, and Permissions
  • Projects (metadata, addresses, dates, status)
  • RFIs, Submittals, and their workflows
  • Budgets, Cost Codes, Commitments (subcontracts, purchase orders), Change Orders
  • Invoices/Pay Applications, Line Items, Retainage
  • Daily Logs, Photos, Attachments, Schedules, Observations

The Procore Integration Challenge

Construction teams rely on Procore daily, but turning portal-based workflows into API-driven automation is non-trivial:

  • Module-specific interfaces: RFIs, Submittals, Financials, and Field tools each have distinct UX and entitlement models
  • Enterprise security: SSO, MFA, and tight role-based controls complicate headless automation
  • Portal-first features: Many capabilities are optimized for the web app, and data is spread across multiple views and exports
  • Financial rigor: Permissions, approval chains, retainage, and auditability must be respected programmatically

How Supergood Creates Procore APIs

Supergood reverse-engineers authenticated browser flows and network interactions to deliver a resilient API endpoint layer for your Procore tenant.

  • Handles username/password, SSO/OAuth, and MFA (SMS, email, TOTP) securely
  • Maintains session continuity with automated refresh and change detection
  • Normalizes responses so you can integrate once and rely on consistent objects across modules
  • Aligns with customer entitlements and role-based permissions to ensure compliant access

Use Cases

Project Data Sync

  • Mirror projects, companies, and users into your internal systems
  • Keep project metadata current for analytics and reporting
  • Normalize addresses, statuses, and dates for multi-tenant operations

RFI and Submittal Automation

  • Create RFIs from defect detections or field observations automatically
  • Initiate submittals with reviewers, due dates, and attachments
  • Track ball-in-court and status to drive SLA alerts

Financials: Budgets, Commitments, and Pay Apps

  • Push commitments (subcontracts/POs) from your procurement system
  • Generate invoices/pay applications with line items and retainage
  • Pull financial statuses to reconcile with ERP (e.g., NetSuite, QuickBooks)

Field Reporting and Quality/Safety

  • Ingest daily logs for workforce, equipment, and notes
  • Attach photos, observations, and punch list items to unify QA/QC workflows
  • Trigger follow-ups and approvals when thresholds are met

Available Endpoints

Authentication

POST /sessions: Establish a session using credentials. Supergood manages MFA (SMS, email, TOTP) and SSO/OAuth when enabled. Returns a short-lived auth token maintained by the platform.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/sessions \
  --header 'Authorization: Basic <Base64 encoded token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "username": "[email protected]",
    "password": "<password>",
    "mfa": { "type": "totp", "code": "123456" }
  }'

Example response

{
  "authToken": "eyJhbGciOi...",
  "expiresIn": 3600,
  "user": {
    "id": "u_729c10",
    "name": "Project Manager",
    "entitlements": ["projects", "rfis", "submittals", "financials"]
  }
}

POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.

Projects

GET /projects: List projects with filters and summary details.

Query parameters

  • companyId: string
  • status: active | archived
  • updatedFrom, updatedTo: ISO 8601 timestamps
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "projectId": "prj_1f92a0",
      "name": "Eastside Medical Center",
      "projectNumber": "EMC-2026-001",
      "status": "active",
      "companyId": "co_88b32e",
      "address": {
        "line1": "500 Eastside Blvd",
        "city": "Atlanta",
        "region": "GA",
        "postalCode": "30312",
        "country": "US"
      },
      "startDate": "2026-02-01",
      "endDate": null,
      "updatedAt": "2026-01-20T13:45:00Z"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

RFIs

POST /projects/{projectId}/rfis: Create a new RFI with workflow metadata and optional attachments.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/projects/prj_1f92a0/rfis \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "subject": "Clarify foundation waterproofing detail",
    "question": "Please confirm membrane type and overlap at cold joints.",
    "dueDate": "2026-02-05",
    "priority": "normal",
    "ballInCourtUserId": "u_45af1d",
    "assignedToUserIds": ["u_45af1d", "u_92b711"],
    "specSection": "07 13 00",
    "drawingRefs": ["S-104", "A-201"],
    "private": false,
    "attachments": [
      {"fileName": "detail.png", "uploadToken": "upl_98dc3a"}
    ],
    "referenceId": "obs-8793"
  }'

Example response

{
  "rfiId": "rfi_67c21a",
  "number": 128,
  "status": "open",
  "createdAt": "2026-01-21T09:12:33Z",
  "referenceId": "obs-8793"
}

Submittals

POST /projects/{projectId}/submittals: Create a submittal packet, assign reviewers, and set due dates.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/projects/prj_1f92a0/submittals \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "title": "Waterproofing Membrane Shop Drawings",
    "specSection": "07 13 00",
    "type": "shop_drawing",
    "submitterCompanyId": "co_452a71",
    "dueDate": "2026-02-10",
    "reviewers": [
      {"userId": "u_45af1d", "sequence": 1},
      {"userId": "u_92b711", "sequence": 2}
    ],
    "description": "Manufacturer data sheet and shop drawings for below-grade waterproofing.",
    "attachments": [
      {"fileName": "datasheet.pdf", "uploadToken": "upl_08ab73"}
    ],
    "requiredOnSiteDate": "2026-03-01"
  }'

Example response

{
  "submittalId": "sub_90e412",
  "status": "in_review",
  "workflow": {
    "currentSequence": 1,
    "totalSequences": 2
  },
  "createdAt": "2026-01-21T10:03:11Z"
}

Invoices (Pay Applications)

POST /commitments/{commitmentId}/invoices: Create an invoice/pay application against a commitment (subcontract/PO) with line items and retainage.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/commitments/cmt_3aa91d/invoices \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "periodStart": "2026-01-01",
    "periodEnd": "2026-01-31",
    "referenceNumber": "APP-2026-01",
    "lineItems": [
      {
        "costCodeId": "cc_033100",
        "description": "Concrete foundations",
        "scheduledValue": 250000.00,
        "workCompletedThisPeriod": 40000.00,
        "materialsStored": 0.00,
        "retainagePercent": 10.0
      },
      {
        "costCodeId": "cc_071300",
        "description": "Waterproofing",
        "scheduledValue": 80000.00,
        "workCompletedThisPeriod": 15000.00,
        "materialsStored": 5000.00,
        "retainagePercent": 10.0
      }
    ],
    "attachments": [
      {"fileName": "invoice.pdf", "uploadToken": "upl_7fa223"}
    ],
    "notes": "Includes stored materials for waterproofing roll stock."
  }'

Example response

{
  "invoiceId": "inv_51af80",
  "status": "submitted",
  "commitmentId": "cmt_3aa91d",
  "totalRequested": 60000.00,
  "createdAt": "2026-01-21T11:20:44Z"
}

Get full API Specs →


Technical Specifications

  • Authentication: Username/password with MFA (SMS, email, TOTP) and SSO/OAuth where enabled; supports service accounts or customer-managed credentials
  • Response format: JSON with consistent resource schemas and pagination across modules
  • Rate limits: Tuned for enterprise throughput while honoring customer entitlements and usage controls
  • Session management: Automatic reauth and cookie/session rotation with health checks
  • Data freshness: Near real-time retrieval of projects, RFIs, submittals, and financial objects
  • Security: Encrypted transport, scoped tokens, and audit logging; respects Procore role-based permissions
  • Webhooks: Optional asynchronous delivery for long-running workflows (e.g., invoice approvals, submittal reviews)

Performance Characteristics

  • Latency: Sub-second responses for list/detail queries under normal load
  • Throughput: Designed for high-volume project data sync and pay app processing
  • Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions
  • Adaptation: Continuous monitoring for UI/API changes with rapid adapter updates

Getting Started

  1. Schedule Integration Assessment

Book a 30-minute session to confirm your modules, licensing, and authentication model.

  1. Supergood Builds and Validates Your API

We deliver a hardened Procore adapter tailored to your workflows and entitlements.

  1. Deploy with Monitoring

Go live with continuous monitoring and automatic adjustments as Procore evolves.

Schedule Integration Call →


Frequently Asked Questions

Q: Which Procore modules can this integration cover?

Supergood supports workflows across commonly used modules such as Project Management (RFIs, Submittals, Drawings), Financials (Budgets, Commitments, Change Orders, Invoices/Pay Apps), and Field Operations (Daily Logs, Observations), subject to your licensing and entitlements. We scope coverage during integration assessment.

Q: How are MFA and SSO handled for automation?

We support username/password + MFA (SMS, email, TOTP) and can operate behind SSO/OAuth when enabled. Sessions are refreshed automatically with secure challenge handling.

Q: Can you sync commitments and invoices to our ERP?

Yes. We can normalize commitments and pay apps to match your ERP schema (e.g., cost codes, retainage, line items) and deliver updates via webhooks or polling while complying with rate and permission constraints.

Q: Are attachments supported for RFIs and submittals?

Yes. We support downloading artifacts and uploading attachments via signed uploads, with checksum validation and time-limited URLs.



Ready to automate your Procore workflows?

Supergood can have your Procore integration live in days with no ongoing engineering maintenance.

Get Started →

Read more