# The Render API — Manage your Render infrastructure programmatically.



Render provides a public REST API for managing your services and other resources programmatically.

The API supports almost all of the same functionality available in the [Render Dashboard](https://dashboard.render.com). Among other capabilities, it provides endpoints for managing:

- All service types (web services, private services, and so on)
- Managed datastores (Render Postgres and Key Value)
- Render Workflows (including tasks and runs)
- Service deploys
- Environment groups
- Blueprints
- Metrics and logs
- Projects and environments
- Custom domains
- One-off jobs
- Audit logs
- Additional account settings

> To request new API functionality, please [submit a feature request](https://feedback.render.com/features).

## Setup

### 1. Create an API key

All Render API requests require authentication via API key. You create and manage API keys from your [Account Settings page](https://dashboard.render.com/u/settings?add-api-key) in the Render Dashboard:

[image: Creating an API key in the Render Dashboard]

An API key is displayed in full only when it's created:

[image: API key]

> *API keys are secret credentials!*
>
> Don't publicly post your API key, commit it to version control, or otherwise share it with anyone outside your organization. If you believe an API key has been compromised, revoke it in the Render Dashboard and create a new one.

### 2. Make your first request

To test your API key, let's make a quick `curl` request to list your services.

Run the following in your terminal after replacing `{{render_api_token_goes_here}}` with your API key:

```bash
curl --request GET \
     --url 'https://api.render.com/v1/services?limit=20' \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer {{render_api_token_goes_here}}'
```

If your API key is valid, this request to the [List services](https://api-docs.render.com/reference/list-services) endpoint returns a `200` response with your service details in a JSON array.

## API reference

[*Open the API reference*](https://api-docs.render.com) for a comprehensive list of supported endpoints. The reference is interactive, and it provides example usage in multiple programming languages.

[image: API reference page]

## OpenAPI spec

The Render API is described by an OpenAPI 3.0 spec. The spec is available in JSON format at the following URL:

```
https://api-docs.render.com/openapi/render-public-api-1.json
```

You can use this spec to generate custom clients and with other tooling.

> *Render's OpenAPI spec is subject to change.*
>
> The API itself will maintain backward compatibility, but details of the describing spec (such as names for endpoints and tags) might change over time. This might affect custom clients or other tools that rely on the spec.


---

##### Appendix: Glossary definitions

###### web service

Deploy this *service type* to host a dynamic application at a public URL.

Ideal for full-stack web apps and API servers.

Related article: https://render.com/docs/web-services.md

###### private service

Deploy this *service type* to host a dynamic application that is not internet-reachable.

Ideal for internal apps that only your other Render services can access.

Related article: https://render.com/docs/private-services.md

###### Render Postgres

Fully managed PostgreSQL databases that support point-in-time recovery, read replicas, high availability, and more.

Related article: https://render.com/docs/postgresql.md

###### Render Key Value

Fully managed, Redis®-compatible storage ideal for use as a job queue or shared cache.

Related article: https://render.com/docs/key-value.md

###### Render Workflows

Define collections of long-running *tasks* that execute across distributed compute.

Ideal for agents, ETL pipelines, and background jobs.

Related article: https://render.com/docs/workflows.md

###### environment group

A collection of environment variables and/or secret files that you can link to any number of different services.

Helpful for distributing configuration across a [multi-service architecture](multi-service-architecture) using a single source of truth.

Related article: https://render.com/docs/configure-environment-variables.md#environment-groups

###### Render Blueprints

Render's infrastructure-as-code model.

Configure multiple related services and datastores in a single YAML file. Render automatically syncs any changes you push.

Related article: https://render.com/docs/infrastructure-as-code.md