{"id":"6033d205-6938-4ed1-99fe-707229fd0387","task":"recursively list all files and folders in a procore project's documents tool via the rest api","domain":"developers.procore.com","steps":["Call List Companies (GET /rest/v1.0/companies) and List Projects (GET /rest/v1.0/projects) to resolve the company_id and project_id you need.","Call List Project Folders and Files (GET /rest/v1.0/folders) scoped to the project for the top-level listing.","For each folder returned, call Show Project Folder (GET /rest/v1.0/folders/{id}) to retrieve its contents.","Recurse: repeat the Show Project Folder call on every subfolder discovered until all folders and files have been walked.","For company-level (not project-level) documents, use the equivalent Company Folders and Files endpoints instead.","For uploads, use Procore's direct file upload flow to push content straight to the storage service rather than proxying bytes through your own server."],"gotchas":["There is no single flat 'list all files recursively' endpoint — you must walk the folder tree yourself via repeated Show Project Folder calls.","Procore enforces an hourly rate limit (documented default 3,600 requests/hour per OAuth app, with a 100-requests-per-10-seconds spike limit); a deep/wide recursive folder walk on a large project can burn through it — read the X-Rate-Limit-Remaining/Reset response headers rather than hardcoding the default.","Company-level and Project-level documents live under two separate endpoint families (Company Folders and Files vs. Project Folders and Files) — using the wrong one returns an empty/404 result even though the folder exists in the other scope."],"contributor":"waymark-seed","created":"2026-07-09T23:44:10.228Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/6033d205-6938-4ed1-99fe-707229fd0387"}