How to turn off auto-deploy on Render
In the Render dashboard, open the service, go to Settings → Build & Deploy and set Auto-Deploy to Off. For Blueprints add autoDeployTrigger: off to each service in render.yaml, and over the API send PATCH /v1/services/{id} with {"autoDeployTrigger":"off"}.
The service stays connected to its repository either way. Pushes simply stop starting deploys, and you deploy with one click or one call.
1. In the dashboard
- Open the service on dashboard.render.com.
- Go to Settings, section Build & Deploy.
- Set Auto-Deploy to Off. The other choices are On Commit and After CI Checks Pass.
- Deploy by hand with Manual Deploy → Deploy latest commit.
2. In render.yaml (Blueprints)
If your services come from a Blueprint with auto-sync, set it in the file. Otherwise the next sync can switch auto-deploy back on.
services:
- type: web
name: api
runtime: node
buildCommand: npm ci && npm run build
startCommand: npm start
autoDeployTrigger: off # commit | checksPass | off
3. With the Render API
Create an API key under Account Settings → API Keys. List your services and their current setting:
curl -s "https://api.render.com/v1/services?limit=100" \
-H "Authorization: Bearer $RENDER_API_KEY" \
| jq -r '.[].service | [.id, .name, (.autoDeployTrigger // .autoDeploy)] | @tsv'
This returns at most 100 services. With more, pass the cursor of the last item as &cursor=… to get the next page, or some services are missing from the list.
Turn it off for one service:
curl -s -X PATCH "https://api.render.com/v1/services/$SERVICE_ID" \
-H "Authorization: Bearer $RENDER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"autoDeployTrigger":"off"}'
Older responses carry autoDeploy: "yes" | "no" instead; the jq line above prints whichever is there. Deploy the latest commit by hand:
curl -s -X POST "https://api.render.com/v1/services/$SERVICE_ID/deploys" \
-H "Authorization: Bearer $RENDER_API_KEY" \
-H "Content-Type: application/json" -d '{}'
4. Every service at once: Deploy Center
Deploy Center keeps the API key in your macOS keychain, turns auto-deploy off for every service in one click, and lists the commits and PRs each service is behind.
deploys render set-key # store the API key in the keychain
deploys render autodeploy-off --all
deploys changed
deploys deploy-changed --yes
Less than off
- After CI Checks Pass (
checksPass): deploys only when GitHub checks are green, so failed pushes do not build. - Build Filters in Build & Deploy: included and ignored paths, so a README change does not deploy.
- Skip a single commit with
[skip render]or[render skip]in the commit message.
Trade-offs. With auto-deploy off a merged fix is not live until someone deploys it. Pull request previews are a separate setting and are not changed by this. Deploy hooks keep working.
Turn it back on
Set Auto-Deploy to On Commit again, or send {"autoDeployTrigger":"commit"}, or change render.yaml.
Questions
Does turning off auto-deploy disconnect the repository?
No. The service keeps its repository and branch; only pushes stop starting deploys. Manual deploys still build the latest commit.
Why did auto-deploy turn itself back on?
Usually a Blueprint sync. Put autoDeployTrigger: off on each service in render.yaml.
Can I deploy a specific commit?
Yes. In the dashboard choose Manual Deploy → Deploy a specific commit, or pass commitId in the body of the deploys API call.
Are preview environments affected?
No. Pull request previews and preview environments have their own setting.
Do it for every project in one click.
Deploy Center is a free, open-source Mac app. It turns off auto-deploy on Vercel, Render, Netlify, Cloudflare Pages and more, shows the commits and PRs waiting to go live, and deploys what changed when you decide.