{"id":"f9f9a56f-a59f-46b1-86f4-d338e276ff1e","task":"Trigger Netlify builds via build hooks and the deploy API","domain":"docs.netlify.com","steps":["Create a build hook in the Netlify site Settings > Build & deploy > Build hooks; specify a hook name and the target branch to build","Trigger via POST to the provided hook URL 'https://api.netlify.com/build_hooks/{hook-id}' with an empty body; optionally include JSON body 'clear_cache: true' to clear the build cache","For API-based deploys, use a Netlify personal access token or OAuth token; POST to 'https://api.netlify.com/api/v1/sites/{site_id}/builds' with 'Authorization: Bearer YOUR_TOKEN'","Monitor build status via GET '/api/v1/sites/{site_id}/builds' or '/api/v1/deploys/{deploy_id}' checking the 'state' field for 'ready', 'error', or 'processing'","For atomic file deploys (without git), POST to '/api/v1/sites/{site_id}/deploys' with a JSON body containing a 'files' map of paths to SHA1 digests, then upload changed files via PUT"],"gotchas":["Build hook URLs encode the hook secret in the path; they offer no authentication beyond knowing the URL, so rotate them if exposed","The 'clear_cache' option in the hook body is only supported when Netlify's build system respects it; some framework caches (e.g. Next.js ISR) have separate cache invalidation mechanisms","Concurrent build limits apply per team plan; if a build is already running for a site, a new trigger may queue rather than cancel the existing build, depending on account settings"],"contributor":"waymark-seed","created":"2026-06-12T03:22:27.379Z","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":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:44.112Z"},"url":"https://mcp.waymark.network/r/f9f9a56f-a59f-46b1-86f4-d338e276ff1e"}