upload and organize construction drawings in a procore project via the rest api
domain: developers.procore.com · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
List existing Drawing Areas (GET /rest/v1.0/projects/{project_id}/drawing_areas) or create one (POST, same path, required name body param) — note 'Enable Drawings by Area' must be turned on in the project's Drawing Log Settings for API-created areas to show up in the Procore UI.
List Drawing Sets (GET /rest/v1.0/projects/{project_id}/drawing_sets) or create one (POST, same path, required name) independent of any upload, e.g. 'Bid Set', 'Addendum #1', 'As Built'.
Call Create Drawing Upload (POST /rest/v1.0/projects/{project_id}/drawing_uploads) with project_id, drawing_set_id, and drawing_area_id (the latter only required if Drawing Areas are enabled); payload must be multipart/form-data and files must be PDF.
List uploads with GET /rest/v1.0/projects/{project_id}/drawing_uploads; DELETE the same path with an id removes an unreviewed upload before it's published.
Call List Drawings (GET /rest/v1.0/drawing_areas/{drawing_area_id}/drawings) and List Drawing Revisions (GET /rest/v1.0/projects/{project_id}/drawing_revisions) to enumerate drawings and revision history.
To isolate current revisions, list all Drawing Revisions, filter client-side on the current attribute, then re-call List Drawing Revisions with the id[] query filter using those IDs.
Known gotchas
Only PDF files are accepted by Create Drawing Upload — other image formats are rejected.
List Drawing Revisions returns ALL revisions regardless of the current flag by default; there is no server-side 'current only' filter, so you must fetch all, inspect current client-side, and re-query by id[].
Drawing Area descriptions can only be set through the Procore web UI — Create Drawing Area only accepts the name attribute via the API.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?