Everything an AI agent can do with the Render API.

A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.

Endpoints33
API versionv1
Last updated23 June 2026
Orientation

How the Render API works.

The Render API is how an app or AI agent manages a Render account: listing and creating services, triggering and rolling back deploys, setting environment variables, and provisioning Postgres and Key Value databases. Access is granted through a single API key sent in an Authorization header, and that key reaches every workspace the account belongs to, with no narrower per-method permissions to set. Render can also push events to a webhook URL when something happens to a service, like a deploy finishing or a server failing.

33Endpoints
10Capability groups
13Read
20Write
0Permissions
Authentication
Every request needs an API key sent as 'Authorization: Bearer '. Keys are created from the Render Dashboard account settings. There is no anonymous access. A key is a single credential tied to a person, and it carries that person's access across all of their workspaces.
Permissions
Render has no granular per-endpoint scopes. An API key inherits the full access of the user who created it, across every workspace that user belongs to, and the resource's owner_id field shows which workspace owns it. There is no way at the API-key level to limit a key to read-only, to one workspace, or to one resource type. Narrowing what a given agent can do has to happen in front of the API, which is what a gateway like Bollard provides.
Rate limits
Limits vary by request type. Read requests (GET) get 400 per minute, while other writes (POST, PATCH, DELETE) get 30 per minute. Deploys and service updates are held to 10 per minute per service, log endpoints to 30 per minute, one-off jobs to 100 per minute, custom domains to 50 per hour, and new service creation to 20 per hour. Exceeding a limit returns 429, and the Ratelimit-Limit, Ratelimit-Remaining, and Ratelimit-Reset headers report the current state.
Data model
The API is resource-oriented JSON over HTTPS at https://api.render.com/v1. Services are the core resource, with deploys, custom domains, environment variables, jobs, and disks nested under /services/{serviceId}. Databases live at the top level under /postgres and /key-value, and account-level resources include /owners for workspaces and /webhooks for event subscriptions. Lists use cursor-based pagination.
Connect & authenticate

Connection & authentication methods.

How an app or AI agent connects to Render determines what it can reach. There are two routes, the REST API for making calls and webhooks for receiving events, plus a first-party MCP server, and each is governed by the API key behind it.

Ways to connect

REST API

The REST API answers at https://api.render.com/v1. It is a single, dated-version-free surface, served under the v1 path, that covers services, deploys, databases, environment variables, disks, and account management.

Best forConnecting an app or AI agent to Render.
Governed byThe API key, which carries its owner's full access across every workspace.
Docs ↗

MCP server (Model Context Protocol)

Render runs a first-party hosted Model Context Protocol server at https://mcp.render.com/mcp, generally available since 21 August 2025. It lets an agent create and inspect services and databases, read deploy history, filter logs, read metrics, run read-only Postgres queries, and update a service's environment variables. It authenticates with a Render API key, and the source is at github.com/render-oss/render-mcp-server.

Best forConnecting an AI agent to Render in natural language.
Governed byThe API key, which carries its owner's full access across every workspace.
Docs ↗

Webhooks

Webhooks deliver the chosen events to a receiver URL, so an app or agent is notified when something happens to a service instead of polling, such as a deploy starting or ending, a build finishing, or a server failing.

Best forReceiving Render events without polling.
Governed byThe API key used to register the webhook.
Docs ↗
Authentication

API key

A Render API key is created from the account settings page in the Render Dashboard and sent as 'Authorization: Bearer '. It inherits the full access of the person who created it, across every workspace that person belongs to, with no per-endpoint scopes and no read-only mode. There is no narrower credential to issue, so limiting what an agent can do has to happen in front of the API.

TokenAccount API key
Best forAny programmatic access to Render
Docs ↗
Capability map

What an AI agent can do in Render.

The Render API is split into areas an agent can act on, such as services, deploys, databases, and environment variables. Each area has its own methods, and a single API key reaches every workspace the account belongs to.

Services

7 endpoints

List, read, create, update, and delete services, and suspend, resume, restart, or scale them.

Writes here change real running services.
View endpoints

Deploys

5 endpoints

List and read deploys, trigger a new deploy, cancel a running one, and roll a service back.

Writes here ship or revert real code.
View endpoints

Custom domains

3 endpoints

List, read, add, and remove the custom domains attached to a service.

Writes here change real public domains.
View endpoints

Environment variables

3 endpoints

List, read, add, update, and delete a service's environment variables.

Writes here change real service configuration and secrets.
View endpoints

Jobs

2 endpoints

List, read, create, and cancel one-off jobs that run a command against a service.

Writes here run real commands.
View endpoints

Postgres databases

4 endpoints

List, read, create, update, and delete Postgres databases, and read their connection info.

Writes here change real databases.
View endpoints

Key Value

2 endpoints

List, read, create, and delete Key Value (Redis-compatible) instances.

Writes here change real data stores.
View endpoints

Disks

2 endpoints

List, read, add, and delete the persistent disks attached to a service.

Writes here change real persistent storage.
View endpoints

Workspaces

2 endpoints

List the workspaces an API key can reach and read a single workspace.

Reads here reveal account membership.
View endpoints

Webhooks

3 endpoints

List, read, create, update, and delete the webhooks that deliver Render events.

Writes here change where event payloads are sent.
View endpoints
Endpoint reference

Every Render API method.

Filter by method, access, or permission, or search any path. Select a row for version detail, rate limits, the related webhook event, and the source.

MethodEndpointWhat it doesAccessPermissionVersion

Services

List, read, create, update, and delete services, and suspend, resume, restart, or scale them.7

Render has no per-endpoint scopes; the API key reaches every service in every workspace its owner belongs to.

Acts onservice
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit400 / minute (GET)

Any valid API key whose owner can see the service can read it.

Acts onservice
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit400 / minute (GET)

No scope limits this; any valid key can create services. Held to 20 per hour.

Acts onservice
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit20 / hour

A PATCH updates only the fields sent, and sending null on a field unsets it. Held to 10 per minute per service.

Acts onservice
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit10 / minute / service

No scope limits this; any valid key can delete a service the account can reach.

Acts onservice
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit30 / minute (POST/PATCH/DELETE)

Suspending stops the service from running until it is resumed.

Acts onservice
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventservice_suspended
Rate limit30 / minute (POST/PATCH/DELETE)

Resuming starts a service that was previously suspended.

Acts onservice
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventservice_resumed
Rate limit30 / minute (POST/PATCH/DELETE)

Deploys

List and read deploys, trigger a new deploy, cancel a running one, and roll a service back.5

Any valid key whose owner can see the service can read its deploy history.

Acts ondeploy
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit400 / minute (GET)

Reads the status and detail of one deploy.

Acts ondeploy
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit400 / minute (GET)

Triggering a deploy ships new code or configuration. Held to 10 per minute per service.

Acts ondeploy
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventdeploy_started
Rate limit10 / minute / service

Cancels a running deploy before it completes.

Acts ondeploy
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit10 / minute / service

A rollback redeploys an earlier version, so it changes what is live. Held to 10 per minute per service.

Acts ondeploy
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventdeploy_started
Rate limit10 / minute / service

Custom domains

List, read, add, and remove the custom domains attached to a service.3

Reads the domains pointing at a service.

Acts oncustom domain
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit400 / minute (GET)

Adding a domain changes where a service is reachable. Held to 50 per hour.

Acts oncustom domain
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit50 / hour

Removing a domain stops the service answering on it.

Acts oncustom domain
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit30 / minute (POST/PATCH/DELETE)

Environment variables

List, read, add, update, and delete a service's environment variables.3

Environment variables can hold secrets, and any valid key that can see the service can read them.

Acts onenvironment variable
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit400 / minute (GET)

Setting an environment variable changes service configuration and can write a secret.

Acts onenvironment variable
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit30 / minute (POST/PATCH/DELETE)

Removing a variable can break a service that depends on it.

Acts onenvironment variable
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit30 / minute (POST/PATCH/DELETE)

Jobs

List, read, create, and cancel one-off jobs that run a command against a service.2

A one-off job runs an arbitrary command in the service's environment. Held to 100 per minute.

Acts onjob
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventjob_run_ended
Rate limit100 / minute

Reads the history and status of a service's one-off jobs.

Acts onjob
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit400 / minute (GET)

Postgres databases

List, read, create, update, and delete Postgres databases, and read their connection info.4

Lists databases across the workspaces the key's owner belongs to.

Acts onpostgres database
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit400 / minute (GET)

Provisions a new managed Postgres database, which bills the account.

Acts onpostgres database
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventpostgres_created
Rate limit30 / minute (POST/PATCH/DELETE)

Deleting a database destroys its data; no per-key scope guards this.

Acts onpostgres database
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit30 / minute (POST/PATCH/DELETE)

Returns the connection string and password for the database, so it exposes direct database credentials.

Acts onpostgres database
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit400 / minute (GET)

Key Value

List, read, create, and delete Key Value (Redis-compatible) instances.2

Key Value is Render's Redis replacement, running Valkey. Creating one bills the account.

Acts onkey value instance
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventkey_value_available
Rate limit30 / minute (POST/PATCH/DELETE)

Lists Key Value instances across the workspaces the key's owner belongs to.

Acts onkey value instance
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit400 / minute (GET)

Disks

List, read, add, and delete the persistent disks attached to a service.2

The service must be redeployed for the disk to take effect.

Acts ondisk
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventdisk_created
Rate limit30 / minute (POST/PATCH/DELETE)

Deleting a disk destroys the data stored on it.

Acts ondisk
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventdisk_deleted
Rate limit30 / minute (POST/PATCH/DELETE)

Workspaces

List the workspaces an API key can reach and read a single workspace.2

Shows every workspace the key reaches; the path is /owners, the legacy name for workspaces.

Acts onworkspace
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit400 / minute (GET)

Reads the detail of one workspace the key belongs to.

Acts onworkspace
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit400 / minute (GET)

Webhooks

List, read, create, update, and delete the webhooks that deliver Render events.3

Reads the configured webhook subscriptions.

Acts onwebhook
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit400 / minute (GET)

Registers a URL to receive chosen event types, such as deploy_ended or server_failed.

Acts onwebhook
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit30 / minute (POST/PATCH/DELETE)

Removing a webhook stops its event deliveries.

Acts onwebhook
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit30 / minute (POST/PATCH/DELETE)
No endpoints match those filters.
Webhooks

Webhook events.

Render can notify an app or AI agent when something happens to a service, instead of the app repeatedly asking. Render posts the event payload to a webhook URL that has been registered for the chosen events, such as a deploy starting or a server failing.

EventWhat it signalsTriggered by
deploy_startedFires when a deploy starts for a service./v1/services/{serviceId}/deploys
/v1/services/{serviceId}/rollback
deploy_endedFires when a deploy finishes, carrying a status field that says whether it succeeded, failed, or was canceled.In-app only
build_endedFires when a build finishes, with a status field showing success, failure, or cancellation.In-app only
server_failedFires when a running service fails at runtime.In-app only
service_suspendedFires when a service is suspended./v1/services/{serviceId}/suspend
service_resumedFires when a suspended service is resumed./v1/services/{serviceId}/resume
job_run_endedFires when a one-off job run finishes./v1/services/{serviceId}/jobs
postgres_createdFires when a Postgres database is created./v1/postgres
key_value_availableFires when a Key Value instance becomes available./v1/key-value
disk_createdFires when a persistent disk is created./v1/disks
disk_deletedFires when a persistent disk is deleted./v1/disks/{diskId}
No events match that search.
Rate limits & pagination

Rate limits, pagination & request size.

Render limits how fast an app or AI agent can call, through per-minute and per-hour quotas that vary by the kind of request. Read requests get a high ceiling, while writes, deploys, and service creation are held much tighter.

Request rate

Render rate-limits by the kind of request rather than by a single account-wide quota. Read requests, the GET methods, get 400 per minute. Other writes, the POST, PATCH, and DELETE methods, get 30 per minute. On top of that, several actions carry their own tighter limits: service updates and deploys are capped at 10 per minute per service, log endpoints at 30 per minute, one-off jobs at 100 per minute, adding custom domains at 50 per hour, and creating new services at 20 per hour. Every response carries the Ratelimit-Limit, Ratelimit-Remaining, and Ratelimit-Reset headers, where Ratelimit-Reset is a UTC epoch second, so a client can see how much headroom is left. Exceeding a limit returns a 429, and Render recommends retrying on an exponential backoff schedule with random jitter.

Pagination

List endpoints use cursor-based pagination. A request takes a limit parameter, which defaults to 20 and tops out at 100, and a cursor parameter, which is a string pointing at a position in the result list. Each response returns a cursor to pass to the next request, and following it walks the full list rather than building page numbers by hand.

Request size

Requests and responses are JSON. The page size is capped at 100 results per request through the limit parameter. Render does not document a single overall payload size ceiling across the whole API.

Errors

Status codes & error handling.

The status codes an agent should handle, and what to do about each.

StatusCodeMeaningWhat to do
400Bad RequestThe request was malformed or a parameter was invalid. The body is a JSON object with id and message fields describing what went wrong.Read the message field, fix the named parameter or body, and resend.
401UnauthorizedAuthorization information is missing or invalid. The API key was absent, malformed, or revoked.Send a valid key in the Authorization header as 'Bearer '.
404Not FoundThe resource does not exist, or the API key's owner cannot reach it. Render returns 404 rather than confirming a resource the key cannot see.Confirm the id is correct and the key's owner has access to that workspace.
406Not AcceptableRender cannot produce a response in the media type the Accept request header asked for.Set the Accept header to application/json.
429Too Many RequestsA rate limit was exceeded for the request type, such as more than 400 GETs per minute or more than 30 other writes per minute.Check the Ratelimit-Reset header for the window reset, then retry with exponential backoff and random jitter.
500Internal Server ErrorAn unexpected server error occurred on Render's side. The body carries id and message fields.Retry after a short delay, and contact Render support if it persists.
503Service UnavailableThe API is temporarily unavailable.Retry after a short delay with backoff.
Versioning & freshness

Version history.

Render serves a single, dated-version-free REST API under the v1 path. Changes ship continuously through release notes rather than as numbered versions an integration pins.

Version history

What changed, and when

Latest versionv1
v1Current version
The current API (v1, dated-version-free)

Render serves a single REST API under the v1 path at https://api.render.com/v1, with no dated versions to pin. New capabilities ship continuously through release notes rather than as numbered versions, so an integration always calls the same surface. The notable additions below are dated from Render's changelog.

What changed
  • 11 June 2026: disk persistence behavior can be set for paid Key Value instances
  • 5 June 2026: Render services can authenticate with AWS using OIDC (beta)
2026-01-28Feature update
Blueprint validation through the API

Blueprint files, Render's infrastructure-as-code definitions, can be validated through the CLI or API before they are applied.

What changed
  • Added validation endpoints for Blueprint files
2025-11-14Feature update
Completed-action webhooks carry a result

Webhooks for actions that finish now include a status field, so a receiver knows the outcome without a follow-up call.

What changed
  • build_ended, deploy_ended, and cron_job_run_ended events now include a status field showing success, failure, or cancellation
2025-09-24Feature update
Audit log export through the API

Workspace and organization audit log events can be exported through the API.

What changed
  • Added endpoints to list workspace and organization audit log events
2025-08-21Feature update
MCP server generally available

Render's first-party Model Context Protocol server reached general availability, letting an AI agent manage Render in natural language. The hosted server answers at https://mcp.render.com/mcp and authenticates with a Render API key.

What changed
  • First-party hosted MCP server went GA at https://mcp.render.com/mcp
2025-04-29Feature update
Webhooks, metrics, and members added to the API

The API expanded to cover event webhooks, metrics streaming, and workspace member management.

What changed
  • Added endpoints for webhooks, metrics streaming, and workspace members
2025-02-12Feature update
Key Value replaces Redis (Valkey 8)

New in-memory instances run Valkey 8, an open-source fork of Redis, under the Key Value name. Instances stay Redis-client compatible, and the older /redis endpoints are deprecated in favor of /key-value.

What changed
  • New Key Value instances run Valkey 8, replacing the Redis offering
  • The /redis endpoints became deprecated in favor of /key-value

There is no version header to set; the v1 API is updated in place.

Render changelog ↗
Questions

Render API, answered.

Does a Render API key have scopes, so I can give an agent read-only access?+
No. Render API keys have no per-endpoint scopes and no read-only mode. A key inherits the full access of the user who created it, across every workspace that user belongs to, so the same key that can list services can also delete them and delete databases. Limiting an agent to, say, read-only or to one service has to be done in front of the API, by a gateway that checks each call against a per-agent policy, rather than by the key itself.
How do I authenticate a request?+
Send the API key in the Authorization header as 'Authorization: Bearer '. Keys are created from the account settings page in the Render Dashboard. The base URL is https://api.render.com/v1, so a request to list services is a GET to https://api.render.com/v1/services with that header. There is no anonymous access; every request needs a key.
What are the rate limits?+
Limits depend on the request type. Read requests get 400 per minute and other writes get 30 per minute. Some actions are tighter: deploys and service updates are 10 per minute per service, log endpoints 30 per minute, jobs 100 per minute, custom domains 50 per hour, and new service creation 20 per hour. Going over returns a 429, and the Ratelimit-Limit, Ratelimit-Remaining, and Ratelimit-Reset response headers say when the window resets. Render suggests retrying with exponential backoff and jitter.
How does pagination work?+
List endpoints use cursor-based pagination. A request takes a limit, which defaults to 20 and maxes at 100, and a cursor string that marks a position in the results. The response hands back the next cursor, and following it until it is empty walks the whole list, rather than incrementing a page number.
How do I get notified of deploys instead of polling?+
Register a webhook. A webhook is created with a receiver URL, and Render posts a JSON payload to it when a chosen event fires, such as deploy_started, deploy_ended, build_ended, or server_failed. Completed-action events like deploy_ended carry a status field showing whether the action succeeded, failed, or was canceled. This avoids repeatedly polling the deploys endpoint.
Is there an official MCP server for Render?+
Yes. Render runs a first-party hosted Model Context Protocol server at https://mcp.render.com/mcp, generally available since 21 August 2025, that lets an AI agent manage Render in natural language. It can create services and databases, list and inspect them, read deploy history, filter logs, read performance metrics, run read-only Postgres queries, and update a service's environment variables. It authenticates with a Render API key, and the source is at github.com/render-oss/render-mcp-server.
What is Key Value, and what happened to Redis?+
Key Value is Render's managed in-memory data store, the replacement for its Redis offering. Instances created from 12 February 2025 run Valkey 8, an open-source fork of Redis, and stay compatible with Redis clients. The older Redis endpoints under /redis are deprecated in favor of the /key-value endpoints, though existing Redis instances continue to work.
Related

More developer API guides for agents

What is Bollard AI?

Control what every AI agent can do in Render.

Bollard AI sits between a team's AI agents and Render. Grant each agent exactly the access it needs, read or write, resource by resource, and every call is checked and logged.

  • Set read, write, or full access per agent, never a shared Render API key.
  • Denied by default, so an agent reaches only what has been explicitly allowed.
  • Every call recorded in plain English: who, what, where, and the decision.
Render
Deploy Agent
List services ResourceOffReadFull use
Trigger deploys ActionOffReadFull use
Delete databases ResourceOffReadFull use
Per-agent access, set in Bollard AI, not in Render