Skip to main content
AI/MLjeremylongshore

procore-hello-world

"Procore hello world \u2014 construction management platform integration.\n\

Stars
2,267
Source
jeremylongshore/claude-code-plugins-plus-skills
Updated
2026-05-31
Slug
jeremylongshore--claude-code-plugins-plus-skills--procore-hello-world
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/jeremylongshore/claude-code-plugins-plus-skills/HEAD/plugins/saas-packs/procore-pack/skills/procore-hello-world/SKILL.md -o .claude/skills/procore-hello-world.md

Drops the SKILL.md into .claude/skills/procore-hello-world.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Procore Hello World

Overview

List companies and projects, then create your first RFI using the Procore REST API.

Prerequisites

  • Completed procore-install-auth with valid access token

Instructions

Step 1: List Projects

company_id = 12345  # From install-auth step
projects = requests.get(
    f"https://api.procore.com/rest/v1.0/projects?company_id={company_id}",
    headers=headers,
)
for p in projects.json():
    print(f"Project: {p['name']} (ID: {p['id']})")

Step 2: Create an RFI

project_id = 67890
rfi = requests.post(
    f"https://api.procore.com/rest/v1.0/projects/{project_id}/rfis",
    headers={**headers, "Content-Type": "application/json"},
    json={
        "rfi": {
            "subject": "Structural beam specification clarification",
            "question_body": "Please confirm the steel grade for beams on Level 3.",
            "assignee_id": 11111,  # User ID of the person to respond
        }
    },
)
rfi.raise_for_status()
print(f"RFI created: #{rfi.json()['number']} — {rfi.json()['subject']}")

Step 3: List Submittals

submittals = requests.get(
    f"https://api.procore.com/rest/v1.0/projects/{project_id}/submittals",
    headers=headers,
)
for s in submittals.json():
    print(f"Submittal #{s['number']}: {s['title']} — Status: {s['status']['name']}")

Output

  • Listed companies and projects
  • Created an RFI with subject and assignee
  • Listed submittals with status

Error Handling

Error Cause Solution
404 Project not found Wrong project_id List projects first
422 Missing subject Required field Include subject in RFI
403 Forbidden No project access Check user permissions

Resources

Next Steps

Full RFI workflow: procore-core-workflow-a