Read current vars first: GET https://api.render.com/v1/services/{serviceId}/env-vars (https://api-docs.render.com/reference/get-env-vars-for-service).
PUT https://api.render.com/v1/services/{serviceId}/env-vars with the FULL desired list of env var objects. This REPLACES all environment variables for the service with exactly the list you send — 200 = success (https://api-docs.render.com/reference/update-env-vars-for-service).
For touching a single variable without resending everything, use the single-var endpoint ('Add or update environment variable') instead (https://api-docs.render.com/reference/update-env-var).
Known gotchas
PUT is a full replace: any variable you omit from the payload is DELETED. Always GET the current list, merge your changes, then PUT the merged list (https://api-docs.render.com/reference/update-env-vars-for-service).
Env var changes take effect on the next deploy — trigger one via POST /v1/services/{serviceId}/deploys if you need them live now (https://api-docs.render.com/reference/create-deploy).
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?