DigitalOcean integration for AI agents.
DigitalOcean integration for AI agents with secure authentication and server-side credential injection. Open Connector runs the OAuth, seals the token in an encrypted vault, and serves DigitalOcean tools to your agent over MCP or a typed API — credentials injected server-side, every call audited, nothing leaving your infrastructure. Open source (AGPL-3.0) and self-hostable.
Real DigitalOcean actions, managed and audited.
Your user connects DigitalOcean once; your agent can then programmatically manage Droplets and other DigitalOcean resources using conventional HTTP requests — scoped to the OAuth permissions you grant and the tool allowlist you configure. Every action is least-privilege and written to a tamper-evident audit trail.
- 1
Your user grants DigitalOcean access once (OAuth) — the token lands in the vault.
- 2
Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.
- 3
Every routed call appends a hash-chained audit record — nothing leaves your infra.
Supported DigitalOcean tools.
649 tools are generated from the published DigitalOcean catalog. Descriptions are plain text; each action remains subject to its configured authentication and tool allowlist.
Showing 649 tools. All published catalog entries are included in this page's server-rendered HTML.
- Get User Information
- To show information about the current user account, send a GET request to `/v2/account`.
- Account
- Retrieve an Existing Action
- To retrieve a specific action object, send a GET request to `/v2/actions/$ACTION_ID`.
- Actions
- List All Actions
- This will be the entire list of actions taken on your account, so it will be quite large. As with any large collection returned by the API, the results will be paginated with only 20 on each page by default.
- Actions
- Create/Provision a New Add-on Resource
- To create an add-on resource, send a POST request to `/v2/add-ons/saas` with required parameters. Some add-ons require additional metadata to be provided in the request body. To find out what metadata is required for a specific add-on, send a GET request to `/v2/add-ons/apps/{app_slug}/metadata`.
- Add-Ons
- Delete/Deprovision an Add-on Resource
- To delete an add-on resource, send a DELETE request to `/v2/add-ons/saas/{resource_uuid}` with the UUID of the resource to delete. You cannot retrieve the resource after it has been deleted. The response indicates a request was sent to the 3rd party add-on provider to delete the resource. You will no longer be billed for this resource.
- Add-Ons
- Get details on an Add-On Resource
- To fetch details of a specific Add-On Resource, send a GET request to `/v2/add-ons/saas/{resource_uuid}`. Replace `{resource_uuid}` with the UUID of the resource you want to retrieve.
- Add-Ons
- List Available Add-On Applications
- To fetch details of all available Add-On Applications, send a GET request to `/v2/add-ons/apps`.
- Add-Ons
- Get Metadata for an Add-On Application
- To find out what metadata is required for a specific add-on, send a GET request to `/v2/add-ons/apps/{app_slug}/metadata`. Metadata varies by application.
- Add-Ons
- List all Add-On Resources
- To fetch all Add-On Resources under your team, send a GET request to `/v2/add-ons/saas`.
- Add-Ons
- Update the name for an Add-On Resource
- To change the name of an Add-On Resource, send a PATCH request to `/v2/add-ons/saas/{resource_uuid}`. Replace `{resource_uuid}` with the UUID of the resource for which you want to change the name.
- Add-Ons
- Update the plan for an Add-On Resource
- To change the plan associated with an Add-On Resource, send a PATCH request to `/v2/add-ons/saas/{resource_uuid}/plan`. Replace `{resource_uuid}` with the UUID of the resource for which you want to change the plan.
- Add-Ons
- Update destinations for alerts
- Updates the emails and slack webhook destinations for app alerts. Emails must be associated to a user with access to the app.
- Apps
- Cancel a Deployment
- Immediately cancel an in-progress deployment.
- Apps
- Cancel an Event
- Cancel an in-progress autoscaling event.
- Apps
- Cancel Job Invocation
- Cancel a specific job invocation for an app.
- Apps
- Commit App Rollback
- Commit an app rollback. This action permanently applies the rollback and unpins the app to resume new deployments.
- Apps
- Create a New App
- Create a new app by submitting an app specification. For documentation on app specifications (`AppSpec` objects), please refer to [the product documentation](https://docs.digitalocean.com/products/app-platform/reference/app-spec/).
- Apps
- Create an App Deployment
- Creating an app deployment will pull the latest changes from your repository and schedule a new deployment for your app.
- Apps
- Rollback App
- Rollback an app to a previous deployment. A new deployment will be created to perform the rollback. The app will be pinned to the rollback deployment preventing any new deployments from being created, either manually or through Auto Deploy on Push webhooks. To resume deployments, the rollback must be either committed or reverted. It is recommended to use the Validate App Rollback endpoint to double check if the rollback is valid and if there are any warnings.
- Apps
- Delete an App
- Delete an existing app. Once deleted, all active deployments will be permanently shut down and the app deleted. If needed, be sure to back up your app specification so that you may re-create it at a later time.
- Apps
- Retrieve an Existing App
- Retrieve details about an existing app by either its ID or name. To retrieve an app by its name, do not include an ID in the request path. Information about the current active deployment as well as any in progress ones will also be included in the response.
- Apps
- Retrieve an App Deployment
- Retrieve information about an app deployment.
- Apps
- Get an Event
- Get a single event for an app.
- Apps
- Retrieve Event Logs
- Retrieve the logs of an autoscaling event for an app.
- Apps
- Retrieve Exec URL for Deployment
- Returns a websocket URL that allows sending/receiving console input and output to a component of the specified deployment if one exists. Optionally, the instance_name parameter can be provided to retrieve the exec URL for a specific instance. Note that instances are ephemeral; therefore, we recommended to avoid making persistent changes or such scripting around them.
- Apps
- Retrieve Exec URL
- Returns a websocket URL that allows sending/receiving console input and output to a component of the active deployment if one exists.
- Apps
- Retrieve App Health
- Retrieve information like health status, cpu and memory utilization of app components.
- Apps
- Retrieve an Instance Size
- Retrieve information about a specific instance size for `service`, `worker`, and `job` components.
- Apps
- Retrieve App Instances
- Retrieve the list of running instances for a given application, including instance names and component types. Please note that these instances are ephemeral and may change over time. It is recommended not to make persistent changes or develop scripts that rely on their persistence.
- Apps
- Get Job Invocations
- Get a specific job invocation for an app.
- Apps
- Retrieve Job Invocation Logs
- Retrieve the logs of a past, in-progress, or active deployment. If a component name is specified, the logs will be limited to only that component. If deployment is omitted the active deployment will be selected (if available). The response will include links to either real-time logs of an in-progress or active deployment or archived logs of a past deployment.
- Apps
- Retrieve Deployment Logs
- Retrieve the logs of a past, in-progress, or active deployment. The response will include links to either real-time logs of an in-progress or active deployment or archived logs of a past deployment.
- Apps
- Retrieve Active Deployment Logs
- Retrieve the logs of the active deployment if one exists. The response will include links to either real-time logs of an in-progress or active deployment or archived logs of a past deployment. Note log_type=BUILD logs will return logs associated with the current active deployment (being served). To view build logs associated with in-progress build, the query must explicitly reference the deployment id.
- Apps
- Retrieve Active Deployment Aggregate Logs
- Retrieve the logs of the active deployment if one exists. The response will include links to either real-time logs of an in-progress or active deployment or archived logs of a past deployment. Note log_type=BUILD logs will return logs associated with the current active deployment (being served). To view build logs associated with in-progress build, the query must explicitly reference the deployment id.
- Apps
- Retrieve Aggregate Deployment Logs
- Retrieve the logs of a past, in-progress, or active deployment. If a component name is specified, the logs will be limited to only that component. The response will include links to either real-time logs of an in-progress or active deployment or archived logs of a past deployment.
- Apps
- Retrieve App Daily Bandwidth Metrics
- Retrieve daily bandwidth usage metrics for a single app.
- Apps
- List All Apps
- List all apps on your account. Information about the current active deployment as well as any in progress ones will also be included for each app.
- Apps
- List all app alerts
- List alerts associated to the app and any components. This includes configuration information about the alerts including emails, slack webhooks, and triggering events or conditions.
- Apps
- List App Deployments
- List all deployments of an app.
- Apps
- List App Events
- List all events for an app, including deployments and autoscaling events.
- Apps
- List Instance Sizes
- List all instance sizes for `service`, `worker`, and `job` components.
- Apps
- List Job Invocations
- List all job invocations for an app.
- Apps
- Retrieve Multiple Apps' Daily Bandwidth Metrics
- Retrieve daily bandwidth usage metrics for multiple apps.
- Apps
- List App Regions
- List all regions supported by App Platform.
- Apps
- Restart an App
- Perform a rolling restart of all or specific components in an app.
- Apps
- Revert App Rollback
- Revert an app rollback. This action reverts the active rollback by creating a new deployment from the latest app spec prior to the rollback and unpins the app to resume new deployments.
- Apps
- Update an App
- Update an existing app by submitting a new app specification. For documentation on app specifications (`AppSpec` objects), please refer to [the product documentation](https://docs.digitalocean.com/products/app-platform/reference/app-spec/).
- Apps
- Propose an App Spec
- To propose and validate a spec for a new or existing app, send a POST request to the `/v2/apps/propose` endpoint. The request returns some information about the proposed app, including app cost and upgrade cost. If an existing app ID is specified, the app spec is treated as a proposed update to the existing app.
- Apps
- Validate App Rollback
- Check whether an app can be rolled back to a specific deployment. This endpoint can also be used to check if there are any warnings or validation conditions that will cause the rollback to proceed under unideal circumstances. For example, if a component must be rebuilt as part of the rollback causing it to take longer than usual.
- Apps
- Create a New Autoscale Pool
- To create a new autoscale pool, send a POST request to `/v2/droplets/autoscale` setting the required attributes. The response body will contain a JSON object with a key called `autoscale_pool` containing the standard attributes for the new autoscale pool.
- Droplet Autoscale Pools
- Delete autoscale pool
- To destroy an autoscale pool, send a DELETE request to the `/v2/droplets/autoscale/$AUTOSCALE_POOL_ID` endpoint. A successful response will include a 202 response code and no content.
- Droplet Autoscale Pools
- Delete autoscale pool and resources
- To destroy an autoscale pool and its associated resources (Droplets), send a DELETE request to the `/v2/droplets/autoscale/$AUTOSCALE_POOL_ID/dangerous` endpoint.
- Droplet Autoscale Pools
- Retrieve an Existing Autoscale Pool
- To show information about an individual autoscale pool, send a GET request to `/v2/droplets/autoscale/$AUTOSCALE_POOL_ID`.
- Droplet Autoscale Pools
- List All Autoscale Pools
- To list all autoscale pools in your team, send a GET request to `/v2/droplets/autoscale`. The response body will be a JSON object with a key of `autoscale_pools` containing an array of autoscale pool objects. These each contain the standard autoscale pool attributes.
- Droplet Autoscale Pools
- List history events
- To list all of the scaling history events of an autoscale pool, send a GET request to `/v2/droplets/autoscale/$AUTOSCALE_POOL_ID/history`. The response body will be a JSON object with a key of `history`. This will be set to an array containing objects each representing a history event.
- Droplet Autoscale Pools
- List members
- To list the Droplets in an autoscale pool, send a GET request to `/v2/droplets/autoscale/$AUTOSCALE_POOL_ID/members`. The response body will be a JSON object with a key of `droplets`. This will be set to an array containing information about each of the Droplets in the autoscale pool.
- Droplet Autoscale Pools
- Update Autoscale Pool
- To update the configuration of an existing autoscale pool, send a PUT request to `/v2/droplets/autoscale/$AUTOSCALE_POOL_ID`. The request must contain a full representation of the autoscale pool including existing attributes.
- Droplet Autoscale Pools
- Get Customer Balance
- To retrieve the balances on a customer's account, send a GET request to `/v2/customers/my/balance`.
- Billing
- List Billing History
- To retrieve a list of all billing history entries, send a GET request to `/v2/customers/my/billing_history`.
- Billing
- List Billing Insights
- This endpoint returns day-over-day changes in billing resource usage based on nightly invoice items, including total amount, region, SKU, and description for a specified date range. It is important to note that the daily resource usage may not reflect month-end billing totals when totaled for a given month as nightly invoice item estimates do not necessarily encompass all invoicing factors for the entire month.
- Billing
- Create a BYOIP Prefix
- To create a BYOIP prefix, send a POST request to `/v2/byoip_prefixes`. A successful request will initiate the process of bringing your BYOIP Prefix into your account. The response will include the details of the created prefix, including its UUID and status.
- BYOIP Prefixes
- Delete a BYOIP Prefix
- To delete a BYOIP prefix and remove it from your account, send a DELETE request to `/v2/byoip_prefixes/$byoip_prefix_uuid`. A successful request will receive a 202 status code with no body in response. This indicates that the request was accepted and the prefix is being deleted.
- BYOIP Prefixes
- Get a BYOIP Prefix
- To get a BYOIP prefix, send a GET request to `/v2/byoip_prefixes/$byoip_prefix_uuid`. A successful response will return the details of the specified BYOIP prefix.
- BYOIP Prefixes
- List BYOIP Prefixes
- To list all BYOIP prefixes, send a GET request to `/v2/byoip_prefixes`. A successful response will return a list of all BYOIP prefixes associated with the account.
- BYOIP Prefixes
- List BYOIP Prefix Resources
- To list resources associated with BYOIP prefixes, send a GET request to `/v2/byoip_prefixes/{byoip_prefix_uuid}/ips`. A successful response will return a list of resources associated with the specified BYOIP prefix.
- BYOIP Prefixes
- Update a BYOIP Prefix
- To update a BYOIP prefix, send a PATCH request to `/v2/byoip_prefixes/$byoip_prefix_uuid`. Currently, you can update the advertisement status of the prefix. The response will include the updated details of the prefix.
- BYOIP Prefixes
- Create a New CDN Endpoint
- To create a new CDN endpoint, send a POST request to `/v2/cdn/endpoints`. The origin attribute must be set to the fully qualified domain name (FQDN) of a DigitalOcean Space. Optionally, the TTL may be configured by setting the `ttl` attribute. A custom subdomain may be configured by specifying the `custom_domain` and `certificate_id` attributes.
- CDN Endpoints
- Delete a CDN Endpoint
- To delete a specific CDN endpoint, send a DELETE request to `/v2/cdn/endpoints/$ENDPOINT_ID`. A status of 204 will be given. This indicates that the request was processed successfully, but that no response body is needed.
- CDN Endpoints
- Retrieve an Existing CDN Endpoint
- To show information about an existing CDN endpoint, send a GET request to `/v2/cdn/endpoints/$ENDPOINT_ID`.
- CDN Endpoints
- List All CDN Endpoints
- To list all of the CDN endpoints available on your account, send a GET request to `/v2/cdn/endpoints`.
- CDN Endpoints
- Purge the Cache for an Existing CDN Endpoint
- To purge cached content from a CDN endpoint, send a DELETE request to `/v2/cdn/endpoints/$ENDPOINT_ID/cache`. The body of the request should include a `files` attribute containing a list of cached file paths to be purged. A path may be for a single file or may contain a wildcard (`*`) to recursively purge all files under a directory. When only a wildcard is provided, all cached files will be purged. There is a rate limit of 50 files per 20 seconds that can be purged. CDN endpoints have a rate limit of 5 requests per 10 seconds. Purging files using a wildcard path counts as a single request against the API's rate limit. Two identical purge requests cannot be sent at the same time.
- CDN Endpoints
- Update a CDN Endpoint
- To update the TTL, certificate ID, or the FQDN of the custom subdomain for an existing CDN endpoint, send a PUT request to `/v2/cdn/endpoints/$ENDPOINT_ID`.
- CDN Endpoints
- Create a New Certificate
- To upload new SSL certificate which you have previously generated, send a POST request to `/v2/certificates`. When uploading a user-generated certificate, the `private_key`, `leaf_certificate`, and optionally the `certificate_chain` attributes should be provided. The type must be set to `custom`. When using Let's Encrypt to create a certificate, the `dns_names` attribute must be provided, and the type must be set to `lets_encrypt`.
- Certificates
- Delete a Certificate
- To delete a specific certificate, send a DELETE request to `/v2/certificates/$CERTIFICATE_ID`.
- Certificates
- Retrieve an Existing Certificate
- To show information about an existing certificate, send a GET request to `/v2/certificates/$CERTIFICATE_ID`.
- Certificates
- List All Certificates
- To list all of the certificates available on your account, send a GET request to `/v2/certificates`.
- Certificates
- Add a New Database
- To add a new database to an existing cluster, send a POST request to `/v2/databases/$DATABASE_ID/dbs`. Note: Database management is not supported for Caching or Valkey clusters. The response will be a JSON object with a key called `db`. The value of this will be an object that contains the standard attributes associated with a database.
- Databases
- Add a New Connection Pool (PostgreSQL)
- For PostgreSQL database clusters, connection pools can be used to allow a database to share its idle connections. The popular PostgreSQL connection pooling utility PgBouncer is used to provide this service. [See here for more information](https://docs.digitalocean.com/products/databases/postgresql/how-to/manage-connection-pools/) about how and why to use PgBouncer connection pooling including details about the available transaction modes. To add a new connection pool to a PostgreSQL database cluster, send a POST request to `/v2/databases/$DATABASE_ID/pools` specifying a name for the pool, the user to connect with, the database to connect to, as well as its desired size and transaction mode.
- Databases
- Add a Database User
- To add a new database user, send a POST request to `/v2/databases/$DATABASE_ID/users` with the desired username. Note: User management is not supported for Caching or Valkey clusters. When adding a user to a MySQL cluster, additional options can be configured in the `mysql_settings` object. When adding a user to a PostgreSQL cluster, additional options can be configured in the `settings` object (for example, `pg_allow_replication`). When `pg_allow_replication` is omitted, it defaults to `false`. When adding a user to a Kafka cluster, additional options can be configured in the `settings` object. When adding a user to a MongoDB cluster, additional options can be configured in the `settings.mongo_user_settings` object. The response will be a JSON object with a key called `user`. The value of this will be an object that contains the standard attributes associated with a database user including its randomly generated password.
- Databases
- Create a New Database Cluster
- To create a database cluster, send a POST request to `/v2/databases`. To see a list of options for each engine, such as available regions, size slugs, and versions, send a GET request to the `/v2/databases/options` endpoint. The available sizes for the `storage_size_mib` field depends on the cluster's size. To see a list of available sizes, see [Managed Database Pricing](https://www.digitalocean.com/pricing/managed-databases). The create response returns a JSON object with a key called `database`. The value of this is an object that contains the standard attributes associated with a database cluster. The initial value of the database cluster's `status` attribute is `creating`. When the cluster is ready to receive traffic, this changes to `online`. The embedded `connection` and `private_connection` objects contains the information needed to access the database cluster. For multi-node clusters, the `standby_connection` and `standby_private_connection` objects contain the information needed to connect to the cluster's standby node(s). DigitalOcean managed PostgreSQL and MySQL database clusters take automated daily backups. To create a new database cluster based on a backup of an existing cluster, send a POST request to `/v2/databases`. In addition to the standard database cluster attributes, the JSON body must include a key named `backup_restore` with the name of the original database cluster and the timestamp of the backup to be restored. Creating a database from a backup is the same as forking a database in the control panel. PostgreSQL and MySQL Advanced Edition clusters can be provisioned by setting `engine` to `advanced_pg` or `advanced_mysql`. Advanced Edition clusters are currently in public preview and target highly available workloads. `advanced_pg` supports 1-, 2-, and 3-node deployments; `advanced_mysql` only supports 1- and 3-node deployments. See the [PostgreSQL Advanced Edition](https://docs.digitalocean.com/products/databases/postgresql/how-to/use-advanced-edition-clusters/) and [MySQL Advanced Edition](https://docs.digitalocean.com/products/databases/mysql/how-to/use-advanced-edition-clusters/) documentation for the feature differences vs. Standard Edition and current preview limitations. Note: Caching cluster creates are no longer supported as of 2025-04-30T00:00:00Z. Backups are also not supported for Caching or Valkey clusters.
- Databases
- Create Schema Registry for Kafka Cluster
- To create a Kafka schema for a database cluster, send a POST request to `/v2/databases/$DATABASE_ID/schema-registry`.
- Databases
- Create Topic for a Kafka Cluster
- To create a topic attached to a Kafka cluster, send a POST request to `/v2/databases/$DATABASE_ID/topics`. The result will be a JSON object with a `topic` key.
- Databases
- Create Logsink for a Database Cluster
- To create logsink for a database cluster, send a POST request to `/v2/databases/$DATABASE_ID/logsink`.
- Databases
- Create a Read-only Replica
- To create a read-only replica for a PostgreSQL or MySQL database cluster, send a POST request to `/v2/databases/$DATABASE_ID/replicas` specifying the name it should be given, the size of the node to be used, and the region where it will be located. **Note**: Read-only replicas are not supported for Caching or Valkey clusters. The response will be a JSON object with a key called `replica`. The value of this will be an object that contains the standard attributes associated with a database replica. The initial value of the read-only replica's `status` attribute will be `forking`. When the replica is ready to receive traffic, this will transition to `active`.
- Databases
- Delete a Database
- To delete a specific database, send a DELETE request to `/v2/databases/$DATABASE_ID/dbs/$DB_NAME`. A status of 204 will be given. This indicates that the request was processed successfully, but that no response body is needed. Note: Database management is not supported for Caching or Valkey clusters.
- Databases
- Delete a Connection Pool (PostgreSQL)
- To delete a specific connection pool for a PostgreSQL database cluster, send a DELETE request to `/v2/databases/$DATABASE_ID/pools/$POOL_NAME`. A status of 204 will be given. This indicates that the request was processed successfully, but that no response body is needed.
- Databases
- Delete a Kafka Schema by Subject Name
- To delete a specific schema by subject name for a Kafka cluster, send a DELETE request to `/v2/databases/$DATABASE_ID/schema-registry/$SUBJECT_NAME`.
- Databases
- Delete Topic for a Kafka Cluster
- To delete a single topic within a Kafka cluster, send a DELETE request to `/v2/databases/$DATABASE_ID/topics/$TOPIC_NAME`. A status of 204 will be given. This indicates that the request was processed successfully, but that no response body is needed.
- Databases
- Delete Logsink for a Database Cluster
- To delete a logsink for a database cluster, send a DELETE request to `/v2/databases/$DATABASE_ID/logsink/$LOGSINK_ID`.
- Databases
- Stop an Online Migration
- To stop an online migration, send a DELETE request to `/v2/databases/$DATABASE_ID/online-migration/$MIGRATION_ID`. A status of 204 will be given. This indicates that the request was processed successfully, but that no response body is needed.
- Databases
- Delete Index for OpenSearch Cluster
- To delete a single index within OpenSearch cluster, send a DELETE request to `/v2/databases/$DATABASE_ID/indexes/$INDEX_NAME`. A status of 204 will be given. This indicates that the request was processed successfully, but that no response body is needed.
- Databases
- Remove a Database User
- To remove a specific database user, send a DELETE request to `/v2/databases/$DATABASE_ID/users/$USERNAME`. A status of 204 will be given. This indicates that the request was processed successfully, but that no response body is needed. Note: User management is not supported for Caching or Valkey clusters.
- Databases
- Destroy a Database Cluster
- To destroy a specific database, send a DELETE request to `/v2/databases/$DATABASE_ID`. A status of 204 will be given. This indicates that the request was processed successfully, but that no response body is needed.
- Databases
- Destroy a Read-only Replica
- To destroy a specific read-only replica, send a DELETE request to `/v2/databases/$DATABASE_ID/replicas/$REPLICA_NAME`. **Note**: Read-only replicas are not supported for Caching or Valkey clusters. A status of 204 will be given. This indicates that the request was processed successfully, but that no response body is needed.
- Databases
- Retrieve an Existing Database
- To show information about an existing database cluster, send a GET request to `/v2/databases/$DATABASE_ID/dbs/$DB_NAME`. Note: Database management is not supported for Caching or Valkey clusters. The response will be a JSON object with a `db` key. This will be set to an object containing the standard database attributes.
- Databases
- Retrieve Autoscale Configuration for a Database Cluster
- To retrieve the autoscale configuration for an existing database cluster, send a GET request to `/v2/databases/$DATABASE_ID/autoscale`. The response will be a JSON object with autoscaling configuration details.
- Databases
- Retrieve the Public Certificate
- To retrieve the public certificate used to secure the connection to the database cluster send a GET request to `/v2/databases/$DATABASE_ID/ca`. The response will be a JSON object with a `ca` key. This will be set to an object containing the base64 encoding of the public key certificate.
- Databases
- Retrieve an Existing Database Cluster
- To show information about an existing database cluster, send a GET request to `/v2/databases/$DATABASE_ID`. The response will be a JSON object with a database key. This will be set to an object containing the standard database cluster attributes. The embedded `connection` and `private_connection` objects will contain the information needed to access the database cluster. For multi-node clusters, the `standby_connection` and `standby_private_connection` objects contain the information needed to connect to the cluster's standby node(s). The embedded maintenance_window object will contain information about any scheduled maintenance for the database cluster.
- Databases
- Retrieve Database Clusters' Metrics Endpoint Credentials
- To show the credentials for all database clusters' metrics endpoints, send a GET request to `/v2/databases/metrics/credentials`. The result will be a JSON object with a `credentials` key.
- Databases
- Retrieve an Existing Database Cluster Configuration
- Shows configuration parameters for an existing database cluster by sending a GET request to `/v2/databases/$DATABASE_ID/config`. The response is a JSON object with a `config` key, which is set to an object containing any database configuration parameters.
- Databases
- Retrieve Existing Connection Pool (PostgreSQL)
- To show information about an existing connection pool for a PostgreSQL database cluster, send a GET request to `/v2/databases/$DATABASE_ID/pools/$POOL_NAME`. The response will be a JSON object with a `pool` key.
- Databases
- Retrieve DO Settings for a Database Cluster
- To retrieve the DigitalOcean-specific settings for a database cluster, send a GET request to `/v2/databases/$DATABASE_ID/do_settings`. The response will include the current `service_cnames` configuration.
- Databases
- Retrieve the Eviction Policy for a Caching or Valkey Cluster
- To retrieve the configured eviction policy for an existing Caching or Valkey cluster, send a GET request to `/v2/databases/$DATABASE_ID/eviction_policy`. The response will be a JSON object with an `eviction_policy` key. This will be set to a string representing the eviction policy.
- Databases
- Get a Kafka Schema by Subject Name
- To get a specific schema by subject name for a Kafka cluster, send a GET request to `/v2/databases/$DATABASE_ID/schema-registry/$SUBJECT_NAME`.
- Databases
- Retrieve Schema Registry Configuration for a kafka Cluster
- To retrieve the Schema Registry configuration for a Kafka cluster, send a GET request to `/v2/databases/$DATABASE_ID/schema-registry/config`. The response is a JSON object with a `compatibility_level` key, which is set to an object containing any database configuration parameters.
- Databases
- Retrieve Schema Registry Configuration for a Subject of kafka Cluster
- To retrieve the Schema Registry configuration for a Subject of a Kafka cluster, send a GET request to `/v2/databases/$DATABASE_ID/schema-registry/config/$SUBJECT_NAME`. The response is a JSON object with a `compatibility_level` key, which is set to an object containing any database configuration parameters.
- Databases
- Get Kafka Schema by Subject Version
- To get a specific schema by subject name for a Kafka cluster, send a GET request to `/v2/databases/$DATABASE_ID/schema-registry/$SUBJECT_NAME/versions/$VERSION`.
- Databases
- Get Topic for a Kafka Cluster
- To retrieve a given topic by name from the set of a Kafka cluster's topics, send a GET request to `/v2/databases/$DATABASE_ID/topics/$TOPIC_NAME`. The result will be a JSON object with a `topic` key.
- Databases
- Get Logsink for a Database Cluster
- To get a logsink for a database cluster, send a GET request to `/v2/databases/$DATABASE_ID/logsink/$LOGSINK_ID`.
- Databases
- Retrieve the Status of an Online Migration
- To retrieve the status of the most recent online migration, send a GET request to `/v2/databases/$DATABASE_ID/online-migration`.
- Databases
- Retrieve an Existing Read-only Replica
- To show information about an existing database replica, send a GET request to `/v2/databases/$DATABASE_ID/replicas/$REPLICA_NAME`. **Note**: Read-only replicas are not supported for Caching or Valkey clusters. The response will be a JSON object with a `replica key`. This will be set to an object containing the standard database replica attributes.
- Databases
- Retrieve the SQL Modes for a MySQL Cluster
- To retrieve the configured SQL modes for an existing MySQL cluster, send a GET request to `/v2/databases/$DATABASE_ID/sql_mode`. The response will be a JSON object with a `sql_mode` key. This will be set to a string representing the configured SQL modes.
- Databases
- Retrieve an Existing Database User
- To show information about an existing database user, send a GET request to `/v2/databases/$DATABASE_ID/users/$USERNAME`. Note: User management is not supported for Caching or Valkey clusters. The response will be a JSON object with a `user` key. This will be set to an object containing the standard database user attributes. The user's password will not show up unless the `database:view_credentials` scope is present. For MySQL clusters, additional options will be contained in the `mysql_settings` object. For PostgreSQL clusters, additional options will be contained in the `settings` object (for example, `pg_allow_replication`). For Kafka clusters, additional options will be contained in the `settings` object. For MongoDB clusters, additional information will be contained in the mongo_user_settings object
- Databases
- Start Database Maintenance
- To start the installation of updates for a database cluster, send a PUT request to `/v2/databases/$DATABASE_ID/install_update`. A successful request will receive a 204 No Content status code with no body in response.
- Databases
- List All Databases
- To list all of the databases in a clusters, send a GET request to `/v2/databases/$DATABASE_ID/dbs`. The result will be a JSON object with a `dbs` key. This will be set to an array of database objects, each of which will contain the standard database attributes. Note: Database management is not supported for Caching or Valkey clusters.
- Databases
- List Backups for a Database Cluster
- To list all of the available backups of a PostgreSQL or MySQL database cluster, send a GET request to `/v2/databases/$DATABASE_ID/backups`. **Note**: Backups are not supported for Caching or Valkey clusters. The result will be a JSON object with a `backups key`. This will be set to an array of backup objects, each of which will contain the size of the backup and the timestamp at which it was created.
- Databases
- List All Database Clusters
- To list all of the database clusters available on your account, send a GET request to `/v2/databases`. To limit the results to database clusters with a specific tag, include the `tag_name` query parameter set to the name of the tag. For example, `/v2/databases?tag_name=$TAG_NAME`. The result will be a JSON object with a `databases` key. This will be set to an array of database objects, each of which will contain the standard database attributes. The embedded `connection` and `private_connection` objects will contain the information needed to access the database cluster. For multi-node clusters, the `standby_connection` and `standby_private_connection` objects will contain the information needed to connect to the cluster's standby node(s). The embedded `maintenance_window` object will contain information about any scheduled maintenance for the database cluster.
- Databases
- List Connection Pools (PostgreSQL)
- To list all of the connection pools available to a PostgreSQL database cluster, send a GET request to `/v2/databases/$DATABASE_ID/pools`. The result will be a JSON object with a `pools` key. This will be set to an array of connection pool objects.
- Databases
- List all Events Logs
- To list all of the cluster events, send a GET request to `/v2/databases/$DATABASE_ID/events`. The result will be a JSON object with a `events` key.
- Databases
- List Firewall Rules (Trusted Sources) for a Database Cluster
- To list all of a database cluster's firewall rules (known as "trusted sources" in the control panel), send a GET request to `/v2/databases/$DATABASE_ID/firewall`. The result will be a JSON object with a `rules` key.
- Databases
- List Schemas for Kafka Cluster
- To list all schemas for a Kafka cluster, send a GET request to `/v2/databases/$DATABASE_ID/schema-registry`.
- Databases
- List Topics for a Kafka Cluster
- To list all of a Kafka cluster's topics, send a GET request to `/v2/databases/$DATABASE_ID/topics`. The result will be a JSON object with a `topics` key.
- Databases
- List Logsinks for a Database Cluster
- To list logsinks for a database cluster, send a GET request to `/v2/databases/$DATABASE_ID/logsink`.
- Databases
- List Indexes for a OpenSearch Cluster
- To list all of a OpenSearch cluster's indexes, send a GET request to `/v2/databases/$DATABASE_ID/indexes`. The result will be a JSON object with a `indexes` key.
- Databases
- List Database Options
- To list all of the options available for the offered database engines, send a GET request to `/v2/databases/options`. The result will be a JSON object with an `options` key.
- Databases
- List All Read-only Replicas
- To list all of the read-only replicas associated with a database cluster, send a GET request to `/v2/databases/$DATABASE_ID/replicas`. **Note**: Read-only replicas are not supported for Caching or Valkey clusters. The result will be a JSON object with a `replicas` key. This will be set to an array of database replica objects, each of which will contain the standard database replica attributes.
- Databases
- List all Database Users
- To list all of the users for your database cluster, send a GET request to `/v2/databases/$DATABASE_ID/users`. Note: User management is not supported for Caching or Valkey clusters. The result will be a JSON object with a `users` key. This will be set to an array of database user objects, each of which will contain the standard database user attributes. User passwords will not show without the `database:view_credentials` scope. For MySQL clusters, additional options will be contained in the mysql_settings object. For PostgreSQL clusters, additional options will be contained in the `settings` object (for example, `pg_allow_replication`). For Kafka clusters, additional options will be contained in the `settings` object. For MongoDB clusters, additional information will be contained in the mongo_user_settings object
- Databases
- Update the Database Configuration for an Existing Database
- To update the configuration for an existing database cluster, send a PATCH request to `/v2/databases/$DATABASE_ID/config`.
- Databases
- Promote a Read-only Replica to become a Primary Cluster
- To promote a specific read-only replica, send a PUT request to `/v2/databases/$DATABASE_ID/replicas/$REPLICA_NAME/promote`. **Note**: Read-only replicas are not supported for Caching or Valkey clusters. A status of 204 will be given. This indicates that the request was processed successfully, but that no response body is needed.
- Databases
- Reset a Database User's Password or Authentication Method
- To reset the password for a database user, send a POST request to `/v2/databases/$DATABASE_ID/users/$USERNAME/reset_auth`. For `mysql` databases, the authentication method can be specifying by including a key in the JSON body called `mysql_settings` with the `auth_plugin` value specified. The response will be a JSON object with a `user` key. This will be set to an object containing the standard database user attributes.
- Databases
- Configure Autoscale Settings for a Database Cluster
- To configure autoscale settings for an existing database cluster, send a PUT request to `/v2/databases/$DATABASE_ID/autoscale`, specifying the autoscale configuration. A successful request will receive a 204 No Content status code with no body in response.
- Databases
- Update Database Clusters' Metrics Endpoint Credentials
- To update the credentials for all database clusters' metrics endpoints, send a PUT request to `/v2/databases/metrics/credentials`. A successful request will receive a 204 No Content status code with no body in response.
- Databases
- Resize a Database Cluster
- To resize a database cluster, send a PUT request to `/v2/databases/$DATABASE_ID/resize`. The body of the request must specify both the size and num_nodes attributes. A successful request will receive a 202 Accepted status code with no body in response. Querying the database cluster will show that its status attribute will now be set to resizing. This will transition back to online when the resize operation has completed.
- Databases
- Update Connection Pools (PostgreSQL)
- To update a connection pool for a PostgreSQL database cluster, send a PUT request to `/v2/databases/$DATABASE_ID/pools/$POOL_NAME`.
- Databases
- Update DO Settings for a Database Cluster
- To update the DigitalOcean-specific settings for a database cluster, send a PUT request to `/v2/databases/$DATABASE_ID/do_settings`. Currently, the only supported setting is `service_cnames`, which allows you to specify custom DNS names (CNAMEs) to be included in the TLS certificate Subject Alternative Names (SANs) for the database cluster nodes. This enables TLS verification when connecting via a custom hostname. After updating, the database nodes will be replaced to apply the new certificate. This process is performed as a rolling replacement and does not cause downtime. To clear all custom CNAMEs, send an empty array or omit the field.
- Databases
- Configure the Eviction Policy for a Caching or Valkey Cluster
- To configure an eviction policy for an existing Caching or Valkey cluster, send a PUT request to `/v2/databases/$DATABASE_ID/eviction_policy` specifying the desired policy.
- Databases
- Update Firewall Rules (Trusted Sources) for a Database
- To update a database cluster's firewall rules (known as "trusted sources" in the control panel), send a PUT request to `/v2/databases/$DATABASE_ID/firewall` specifying which resources should be able to open connections to the database. You may limit connections to specific Droplets, Kubernetes clusters, or IP addresses. When a tag is provided, any Droplet or Kubernetes node with that tag applied to it will have access. The firewall is limited to 100 rules (or trusted sources). You cannot add IPv6 addresses as trusted sources. For additional limits, see your database engine's limits page. When possible, we recommend [placing your databases into a VPC network](https://docs.digitalocean.com/products/networking/vpc/) to limit access to them instead of using a firewall. A successful request returns a 204 status code with no content.
- Databases
- Update Schema Registry Configuration for a kafka Cluster
- To update the Schema Registry configuration for a Kafka cluster, send a PUT request to `/v2/databases/$DATABASE_ID/schema-registry/config`. The response is a JSON object with a `compatibility_level` key, which is set to an object containing any database configuration parameters.
- Databases
- Update Schema Registry Configuration for a Subject of kafka Cluster
- To update the Schema Registry configuration for a Subject of a Kafka cluster, send a PUT request to `/v2/databases/$DATABASE_ID/schema-registry/config/$SUBJECT_NAME`. The response is a JSON object with a `compatibility_level` key, which is set to an object containing any database configuration parameters.
- Databases
- Update Topic for a Kafka Cluster
- To update a topic attached to a Kafka cluster, send a PUT request to `/v2/databases/$DATABASE_ID/topics/$TOPIC_NAME`. The result will be a JSON object with a `topic` key.
- Databases
- Update Logsink for a Database Cluster
- To update a logsink for a database cluster, send a PUT request to `/v2/databases/$DATABASE_ID/logsink/$LOGSINK_ID`.
- Databases
- Configure a Database Cluster's Maintenance Window
- To configure the window when automatic maintenance should be performed for a database cluster, send a PUT request to `/v2/databases/$DATABASE_ID/maintenance`. A successful request will receive a 204 No Content status code with no body in response.
- Databases
- Upgrade Major Version for a Database
- To upgrade the major version of a database, send a PUT request to `/v2/databases/$DATABASE_ID/upgrade`, specifying the target version. A successful request will receive a 204 No Content status code with no body in response.
- Databases
- Start an Online Migration
- To start an online migration, send a PUT request to `/v2/databases/$DATABASE_ID/online-migration` endpoint. Migrating a cluster establishes a connection with an existing cluster and replicates its contents to the target cluster. Online migration is only available for MySQL, PostgreSQL, Caching, and Valkey clusters. If the existing database is continuously being written to, the migration process will continue for up to two weeks unless it is manually stopped. Online migration is only available for [MySQL](https://docs.digitalocean.com/products/databases/mysql/how-to/migrate/#:~:text=To%20migrate%20a%20MySQL%20database,then%20select%20Set%20Up%20Migration), [PostgreSQL](https://docs.digitalocean.com/products/databases/postgresql/how-to/migrate/), [Caching](https://docs.digitalocean.com/products/databases/redis/how-to/migrate/), and [Valkey](https://docs.digitalocean.com/products/databases/valkey/how-to/migrate/) clusters.
- Databases
- Migrate a Database Cluster to a New Region
- To migrate a database cluster to a new region, send a `PUT` request to `/v2/databases/$DATABASE_ID/migrate`. The body of the request must specify a `region` attribute. A successful request will receive a 202 Accepted status code with no body in response. Querying the database cluster will show that its `status` attribute will now be set to `migrating`. This will transition back to `online` when the migration has completed.
- Databases
- Update SQL Mode for a Cluster
- To configure the SQL modes for an existing MySQL cluster, send a PUT request to `/v2/databases/$DATABASE_ID/sql_mode` specifying the desired modes. See the official MySQL 8 documentation for a [full list of supported SQL modes](https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sql-mode-full). A successful request will receive a 204 No Content status code with no body in response.
- Databases
- Update a Database User
- To update an existing database user, send a PUT request to `/v2/databases/$DATABASE_ID/users/$USERNAME` with the desired settings. **Note**: only `settings` can be updated via this type of request. If you wish to change the name of a user, you must recreate a new user. For PostgreSQL clusters, you can update `settings.pg_allow_replication` to enable or disable replication privileges for the user. When omitted, the value defaults to `false`. For Kafka and OpenSearch clusters, additional options can be configured in the `settings` object (for example, topic or index ACLs). The response will be a JSON object with a key called `user`. The value of this will be an object that contains the name of the updated database user, along with the `settings` object that has been updated.
- Databases
- Create a Dedicated Inference
- Create a new Dedicated Inference for your team. Send a POST request to `/v2/dedicated-inferences` with a `spec` object (version, name, region, vpc, enable_public_endpoint, model_deployments) and optional `access_tokens` (e.g. hugging_face_token for gated models). The response code 202 Accepted indicates the request was accepted for processing; it does not indicate success or failure. The token value is returned only on create; store it securely.
- Dedicated Inference
- Create a Dedicated Inference Token
- Create a new access token for a Dedicated Inference instance. Send a POST request to `/v2/dedicated-inferences/{dedicated_inference_id}/tokens` with a `name`. The token value is returned only once in the response; store it securely.
- Dedicated Inference
- Delete a Dedicated Inference
- Delete an existing Dedicated Inference. Send a DELETE request to `/v2/dedicated-inferences/{dedicated_inference_id}`. The response 202 Accepted indicates the request was accepted for processing.
- Dedicated Inference
- Revoke a Dedicated Inference Token
- Revoke (delete) an access token for a Dedicated Inference instance. Send a DELETE request to `/v2/dedicated-inferences/{dedicated_inference_id}/tokens/{token_id}`.
- Dedicated Inference
- Get a Dedicated Inference
- Retrieve an existing Dedicated Inference by ID. Send a GET request to `/v2/dedicated-inferences/{dedicated_inference_id}`. The status in the response is one of active, new, provisioning, updating, deleting, or error.
- Dedicated Inference
- Get a Dedicated Inference Accelerator
- Retrieve a single accelerator by ID for a Dedicated Inference instance. Send a GET request to `/v2/dedicated-inferences/{dedicated_inference_id}/accelerators/{accelerator_id}`.
- Dedicated Inference
- Get Dedicated Inference CA Certificate
- Get the CA certificate for a Dedicated Inference instance (base64-encoded). Required for private endpoint connectivity. Send a GET request to `/v2/dedicated-inferences/{dedicated_inference_id}/ca`.
- Dedicated Inference
- Get Dedicated Inference GPU Model Config
- Get supported GPU and model configurations for Dedicated Inference. Use this to discover supported GPU slugs and model slugs (e.g. Hugging Face). Send a GET request to `/v2/dedicated-inferences/gpu-model-config`.
- Dedicated Inference
- List Dedicated Inferences
- List all Dedicated Inference instances for your team. Send a GET request to `/v2/dedicated-inferences`. You may filter by region and use page and per_page for pagination.
- Dedicated Inference
- List Dedicated Inference Accelerators
- List all accelerators (GPUs) in use by a Dedicated Inference instance. Send a GET request to `/v2/dedicated-inferences/{dedicated_inference_id}/accelerators`. Optionally filter by slug and use page/per_page for pagination.
- Dedicated Inference
- List Dedicated Inference Sizes
- Get available Dedicated Inference sizes and pricing for supported GPUs. Send a GET request to `/v2/dedicated-inferences/sizes`.
- Dedicated Inference
- List Dedicated Inference Tokens
- List all access tokens for a Dedicated Inference instance. Token values are not returned; only id, name, created_at, and is_managed. Send a GET request to `/v2/dedicated-inferences/{dedicated_inference_id}/tokens`.
- Dedicated Inference
- Update a Dedicated Inference
- Update an existing Dedicated Inference. Send a PATCH request to `/v2/dedicated-inferences/{dedicated_inference_id}` with updated `spec` and/or `access_tokens`. Status will move to updating and return to active when done.
- Dedicated Inference
- Create a New Domain
- To create a new domain, send a POST request to `/v2/domains`. Set the "name" attribute to the domain name you are adding. Optionally, you may set the "ip_address" attribute, and an A record will be automatically created pointing to the apex domain.
- Domains
- Create a New Domain Record
- To create a new record to a domain, send a POST request to `/v2/domains/$DOMAIN_NAME/records`. The request must include all of the required fields for the domain record type being added. See the [attribute table](#tag/Domain-Records) for details regarding record types and their respective required attributes.
- Domain Records
- Delete a Domain
- To delete a domain, send a DELETE request to `/v2/domains/$DOMAIN_NAME`.
- Domains
- Delete a Domain Record
- To delete a record for a domain, send a DELETE request to `/v2/domains/$DOMAIN_NAME/records/$DOMAIN_RECORD_ID`. The record will be deleted and the response status will be a 204. This indicates a successful request with no body returned.
- Domain Records
- Retrieve an Existing Domain
- To get details about a specific domain, send a GET request to `/v2/domains/$DOMAIN_NAME`.
- Domains
- Retrieve an Existing Domain Record
- To retrieve a specific domain record, send a GET request to `/v2/domains/$DOMAIN_NAME/records/$RECORD_ID`.
- Domain Records
- List All Domains
- To retrieve a list of all of the domains in your account, send a GET request to `/v2/domains`.
- Domains
- List All Domain Records
- To get a listing of all records configured for a domain, send a GET request to `/v2/domains/$DOMAIN_NAME/records`. The list of records returned can be filtered by using the `name` and `type` query parameters. For example, to only include A records for a domain, send a GET request to `/v2/domains/$DOMAIN_NAME/records?type=A`. `name` must be a fully qualified record name. For example, to only include records matching `sub.example.com`, send a GET request to `/v2/domains/$DOMAIN_NAME/records?name=sub.example.com`. Both name and type may be used together.
- Domain Records
- Update a Domain Record
- To update an existing record, send a PATCH request to `/v2/domains/$DOMAIN_NAME/records/$DOMAIN_RECORD_ID`. Any attribute valid for the record type can be set to a new value for the record. See the [attribute table](#tag/Domain-Records) for details regarding record types and their respective attributes.
- Domain Records
- Update a Domain Record
- To update an existing record, send a PUT request to `/v2/domains/$DOMAIN_NAME/records/$DOMAIN_RECORD_ID`. Any attribute valid for the record type can be set to a new value for the record. See the [attribute table](#tag/Domain-Records) for details regarding record types and their respective attributes.
- Domain Records
- Retrieve a Droplet Action
- To retrieve a Droplet action, send a GET request to `/v2/droplets/$DROPLET_ID/actions/$ACTION_ID`. The response will be a JSON object with a key called `action`. The value will be a Droplet action object.
- Droplet Actions
- List Actions for a Droplet
- To retrieve a list of all actions that have been executed for a Droplet, send a GET request to `/v2/droplets/$DROPLET_ID/actions`. The results will be returned as a JSON object with an `actions` key. This will be set to an array filled with `action` objects containing the standard `action` attributes.
- Droplet Actions
- Initiate a Droplet Action
- To initiate an action on a Droplet send a POST request to `/v2/droplets/$DROPLET_ID/actions`. In the JSON body to the request, set the `type` attribute to one of the supported action types: | Action | Details | Required Permissions | | ---------------------------------------- | ----------- | ----------- | | <nobr>`enable_backups`</nobr> | Enables backups for a Droplet | <nobr>`droplet:update`</nobr> | | <nobr>`disable_backups`</nobr> | Disables backups for a Droplet | <nobr>`droplet:update`</nobr> | | <nobr>`change_backup_policy`</nobr> | Update the backup policy for a Droplet | <nobr>`droplet:update`</nobr> | | <nobr>`reboot`</nobr> | Reboots a Droplet. A `reboot` action is an attempt to reboot the Droplet in a graceful way, similar to using the `reboot` command from the console. | <nobr>`droplet:update`</nobr> | | <nobr>`power_cycle`</nobr> | Power cycles a Droplet. A `powercycle` action is similar to pushing the reset button on a physical machine, it's similar to booting from scratch. | <nobr>`droplet:update`</nobr> | | <nobr>`shutdown`</nobr> | Shuts down a Droplet. A shutdown action is an attempt to shutdown the Droplet in a graceful way, similar to using the `shutdown` command from the console. Since a `shutdown` command can fail, this action guarantees that the command is issued, not that it succeeds. The preferred way to turn off a Droplet is to attempt a shutdown, with a reasonable timeout, followed by a `power_off` action to ensure the Droplet is off. | <nobr>`droplet:update`</nobr> | | <nobr>`power_off`</nobr> | Powers off a Droplet. A `power_off` event is a hard shutdown and should only be used if the `shutdown` action is not successful. It is similar to cutting the power on a server and could lead to complications. | <nobr>`droplet:update`</nobr> | | <nobr>`power_on`</nobr> | Powers on a Droplet. | <nobr>`droplet:update`</nobr> | | <nobr>`restore`</nobr> | Restore a Droplet using a backup image. The image ID that is passed in must be a backup of the current Droplet instance. The operation will leave any embedded SSH keys intact. | <nobr>`droplet:update`</nobr><br><nobr>`droplet:admin`</nobr> | | <nobr>`password_reset`</nobr> | Resets the root password for a Droplet. A new password will be provided via email. It must be changed after first use. | <nobr>`droplet:update`</nobr><br><nobr>`droplet:admin`</nobr> | | <nobr>`resize`</nobr> | Resizes a Droplet. Set the `size` attribute to a size slug. If a permanent resize with disk changes included is desired, set the `disk` attribute to `true`. | <nobr>`droplet:update`</nobr><br><nobr>`droplet:create`</nobr> | | <nobr>`rebuild`</nobr> | Rebuilds a Droplet from a new base image. Set the `image` attribute to an image ID or slug. | <nobr>`droplet:update`</nobr><br><nobr>`droplet:admin`</nobr> | | <nobr>`rename`</nobr> | Renames a Droplet. | <nobr>`droplet:update`</nobr> | | <nobr>`change_kernel`</nobr> | Changes a Droplet's kernel. Only applies to Droplets with externally managed kernels. All Droplets created after March 2017 use internal kernels by default. | <nobr>`droplet:update`</nobr> | | <nobr>`enable_ipv6`</nobr> | Enables IPv6 for a Droplet. Once enabled for a Droplet, IPv6 can not be disabled. When enabling IPv6 on an existing Droplet, [additional OS-level configuration](https://docs.digitalocean.com/products/networking/ipv6/how-to/enable/#on-existing-droplets) is required. | <nobr>`droplet:update`</nobr> | | <nobr>`snapshot`</nobr> | Takes a snapshot of a Droplet. | <nobr>`droplet:update`</nobr><br><nobr>`image:create`</nobr> |
- Droplet Actions
- Acting on Tagged Droplets
- Some actions can be performed in bulk on tagged Droplets. The actions can be initiated by sending a POST to `/v2/droplets/actions?tag_name=$TAG_NAME` with the action arguments. Only a sub-set of action types are supported: - `power_cycle` - `power_on` - `power_off` - `shutdown` - `enable_ipv6` - `enable_backups` - `disable_backups` - `snapshot` (also requires `image:create` permission)
- Droplet Actions
- Create a New Droplet
- To create a new Droplet, send a POST request to `/v2/droplets` setting the required attributes. A Droplet will be created using the provided information. The response body will contain a JSON object with a key called `droplet`. The value will be an object containing the standard attributes for your new Droplet. The response code, 202 Accepted, does not indicate the success or failure of the operation, just that the request has been accepted for processing. The `actions` returned as part of the response's `links` object can be used to check the status of the Droplet create event. ### Create Multiple Droplets Creating multiple Droplets is very similar to creating a single Droplet. Instead of sending `name` as a string, send `names` as an array of strings. A Droplet will be created for each name you send using the associated information. Up to ten Droplets may be created this way at a time. Rather than returning a single Droplet, the response body will contain a JSON array with a key called `droplets`. This will be set to an array of JSON objects, each of which will contain the standard Droplet attributes. The response code, 202 Accepted, does not indicate the success or failure of any operation, just that the request has been accepted for processing. The array of `actions` returned as part of the response's `links` object can be used to check the status of each individual Droplet create event.
- Droplets
- Delete an Existing Droplet
- To delete a Droplet, send a DELETE request to `/v2/droplets/$DROPLET_ID`. A successful request will receive a 204 status code with no body in response. This indicates that the request was processed successfully.
- Droplets
- Deleting Droplets by Tag
- To delete **all** Droplets assigned to a specific tag, include the `tag_name` query parameter set to the name of the tag in your DELETE request. For example, `/v2/droplets?tag_name=$TAG_NAME`. This endpoint requires `tag:read` scope. A successful request will receive a 204 status code with no body in response. This indicates that the request was processed successfully.
- Droplets
- Retry a Droplet Destroy with Associated Resources Request
- If the status of a request to destroy a Droplet with its associated resources reported any errors, it can be retried by sending a POST request to the `/v2/droplets/$DROPLET_ID/destroy_with_associated_resources/retry` endpoint. Only one destroy can be active at a time per Droplet. If a retry is issued while another destroy is in progress for the Droplet a 409 status code will be returned. A successful response will include a 202 response code and no content.
- Droplets
- Destroy a Droplet and All of its Associated Resources (Dangerous)
- To destroy a Droplet along with all of its associated resources, send a DELETE request to the `/v2/droplets/$DROPLET_ID/destroy_with_associated_resources/dangerous` endpoint. The headers of this request must include an `X-Dangerous` key set to `true`. To preview which resources will be destroyed, first query the Droplet's associated resources. This operation _can not_ be reverse and should be used with caution. A successful response will include a 202 response code and no content. Use the status endpoint to check on the success or failure of the destruction of the individual resources.
- Droplets
- Selectively Destroy a Droplet and its Associated Resources
- To destroy a Droplet along with a sub-set of its associated resources, send a DELETE request to the `/v2/droplets/$DROPLET_ID/destroy_with_associated_resources/selective` endpoint. The JSON body of the request should include `reserved_ips`, `snapshots`, `volumes`, or `volume_snapshots` keys each set to an array of IDs for the associated resources to be destroyed. The IDs can be found by querying the Droplet's associated resources. Any associated resource not included in the request will remain and continue to accrue changes on your account. A successful response will include a 202 response code and no content. Use the status endpoint to check on the success or failure of the destruction of the individual resources.
- Droplets
- Retrieve an Existing Droplet
- To show information about an individual Droplet, send a GET request to `/v2/droplets/$DROPLET_ID`.
- Droplets
- Retrieve the Backup Policy for an Existing Droplet
- To show information about an individual Droplet's backup policy, send a GET request to `/v2/droplets/$DROPLET_ID/backups/policy`.
- Droplets
- Check Status of a Droplet Destroy with Associated Resources Request
- To check on the status of a request to destroy a Droplet with its associated resources, send a GET request to the `/v2/droplets/$DROPLET_ID/destroy_with_associated_resources/status` endpoint.
- Droplets
- List All Droplets
- To list all Droplets in your account, send a GET request to `/v2/droplets`. The response body will be a JSON object with a key of `droplets`. This will be set to an array containing objects each representing a Droplet. These will contain the standard Droplet attributes. ### Filtering Results by Tag It's possible to request filtered results by including certain query parameters. To only list Droplets assigned to a specific tag, include the `tag_name` query parameter set to the name of the tag in your GET request. For example, `/v2/droplets?tag_name=$TAG_NAME`. ### GPU Droplets By default, only non-GPU Droplets are returned. To list only GPU Droplets, set the `type` query parameter to `gpus`. For example, `/v2/droplets?type=gpus`.
- Droplets
- List Associated Resources for a Droplet
- To list the associated billable resources that can be destroyed along with a Droplet, send a GET request to the `/v2/droplets/$DROPLET_ID/destroy_with_associated_resources` endpoint. This endpoint will only return resources that you are authorized to see. For example, to see associated Reserved IPs, include the `reserved_ip:read` scope. The response will be a JSON object containing `snapshots`, `volumes`, and `volume_snapshots` keys. Each will be set to an array of objects containing information about the associated resources.
- Droplets
- List Backup Policies for All Existing Droplets
- To list information about the backup policies for all Droplets in the account, send a GET request to `/v2/droplets/backups/policies`.
- Droplets
- List Backups for a Droplet
- To retrieve any backups associated with a Droplet, send a GET request to `/v2/droplets/$DROPLET_ID/backups`. You will get back a JSON object that has a `backups` key. This will be set to an array of backup objects, each of which contain the standard Droplet backup attributes.
- Droplets
- List all Firewalls Applied to a Droplet
- To retrieve a list of all firewalls available to a Droplet, send a GET request to `/v2/droplets/$DROPLET_ID/firewalls` The response will be a JSON object that has a key called `firewalls`. This will be set to an array of `firewall` objects, each of which contain the standard `firewall` attributes.
- Droplets
- List All Available Kernels for a Droplet
- To retrieve a list of all kernels available to a Droplet, send a GET request to `/v2/droplets/$DROPLET_ID/kernels` The response will be a JSON object that has a key called `kernels`. This will be set to an array of `kernel` objects, each of which contain the standard `kernel` attributes.
- Droplets
- List Neighbors for a Droplet
- To retrieve a list of any "neighbors" (i.e. Droplets that are co-located on the same physical hardware) for a specific Droplet, send a GET request to `/v2/droplets/$DROPLET_ID/neighbors`. The results will be returned as a JSON object with a key of `droplets`. This will be set to an array containing objects representing any other Droplets that share the same physical hardware. An empty array indicates that the Droplet is not co-located any other Droplets associated with your account.
- Droplets
- List All Droplet Neighbors
- To retrieve a list of all Droplets that are co-located on the same physical hardware, send a GET request to `/v2/reports/droplet_neighbors_ids`. The results will be returned as a JSON object with a key of `neighbor_ids`. This will be set to an array of arrays. Each array will contain a set of Droplet IDs for Droplets that share a physical server. An empty array indicates that all Droplets associated with your account are located on separate physical hardware.
- Droplets
- List Snapshots for a Droplet
- To retrieve the snapshots that have been created from a Droplet, send a GET request to `/v2/droplets/$DROPLET_ID/snapshots`. You will get back a JSON object that has a `snapshots` key. This will be set to an array of snapshot objects, each of which contain the standard Droplet snapshot attributes.
- Droplets
- List Supported Droplet Backup Policies
- To retrieve a list of all supported Droplet backup policies, send a GET request to `/v2/droplets/backups/supported_policies`.
- Droplets
- Add Rules to a Firewall
- To add additional access rules to a firewall, send a POST request to `/v2/firewalls/$FIREWALL_ID/rules`. The body of the request may include an inbound_rules and/or outbound_rules attribute containing an array of rules to be added. No response body will be sent back, but the response code will indicate success. Specifically, the response code will be a 204, which means that the action was successful with no returned body data.
- Firewalls
- Add Tags to a Firewall
- To assign a tag representing a group of Droplets to a firewall, send a POST request to `/v2/firewalls/$FIREWALL_ID/tags`. In the body of the request, there should be a `tags` attribute containing a list of tag names. No response body will be sent back, but the response code will indicate success. Specifically, the response code will be a 204, which means that the action was successful with no returned body data.
- Firewalls
- Add Droplets to a Firewall
- To assign a Droplet to a firewall, send a POST request to `/v2/firewalls/$FIREWALL_ID/droplets`. In the body of the request, there should be a `droplet_ids` attribute containing a list of Droplet IDs. No response body will be sent back, but the response code will indicate success. Specifically, the response code will be a 204, which means that the action was successful with no returned body data.
- Firewalls
- Create a New Firewall
- To create a new firewall, send a POST request to `/v2/firewalls`. The request must contain at least one inbound or outbound access rule.
- Firewalls
- Delete a Firewall
- To delete a firewall send a DELETE request to `/v2/firewalls/$FIREWALL_ID`. No response body will be sent back, but the response code will indicate success. Specifically, the response code will be a 204, which means that the action was successful with no returned body data.
- Firewalls
- Remove Droplets from a Firewall
- To remove a Droplet from a firewall, send a DELETE request to `/v2/firewalls/$FIREWALL_ID/droplets`. In the body of the request, there should be a `droplet_ids` attribute containing a list of Droplet IDs. No response body will be sent back, but the response code will indicate success. Specifically, the response code will be a 204, which means that the action was successful with no returned body data.
- Firewalls
- Remove Rules from a Firewall
- To remove access rules from a firewall, send a DELETE request to `/v2/firewalls/$FIREWALL_ID/rules`. The body of the request may include an `inbound_rules` and/or `outbound_rules` attribute containing an array of rules to be removed. No response body will be sent back, but the response code will indicate success. Specifically, the response code will be a 204, which means that the action was successful with no returned body data.
- Firewalls
- Remove Tags from a Firewall
- To remove a tag representing a group of Droplets from a firewall, send a DELETE request to `/v2/firewalls/$FIREWALL_ID/tags`. In the body of the request, there should be a `tags` attribute containing a list of tag names. No response body will be sent back, but the response code will indicate success. Specifically, the response code will be a 204, which means that the action was successful with no returned body data.
- Firewalls
- Retrieve an Existing Firewall
- To show information about an existing firewall, send a GET request to `/v2/firewalls/$FIREWALL_ID`.
- Firewalls
- List All Firewalls
- To list all of the firewalls available on your account, send a GET request to `/v2/firewalls`.
- Firewalls
- Update a Firewall
- To update the configuration of an existing firewall, send a PUT request to `/v2/firewalls/$FIREWALL_ID`. The request should contain a full representation of the firewall including existing attributes. **Note that any attributes that are not provided will be reset to their default values.** <br><br>You must have read access (e.g. `droplet:read`) to all resources attached to the firewall to successfully update the firewall.
- Firewalls
- Retrieve an Existing Floating IP Action
- To retrieve the status of a floating IP action, send a GET request to `/v2/floating_ips/$FLOATING_IP/actions/$ACTION_ID`.
- Floating IP Actions
- List All Actions for a Floating IP
- To retrieve all actions that have been executed on a floating IP, send a GET request to `/v2/floating_ips/$FLOATING_IP/actions`.
- Floating IP Actions
- Initiate a Floating IP Action
- To initiate an action on a floating IP send a POST request to `/v2/floating_ips/$FLOATING_IP/actions`. In the JSON body to the request, set the `type` attribute to on of the supported action types: | Action | Details |------------|-------- | `assign` | Assigns a floating IP to a Droplet | `unassign` | Unassign a floating IP from a Droplet
- Floating IP Actions
- Create a New Floating IP
- On creation, a floating IP must be either assigned to a Droplet or reserved to a region. * To create a new floating IP assigned to a Droplet, send a POST request to `/v2/floating_ips` with the `droplet_id` attribute. * To create a new floating IP reserved to a region, send a POST request to `/v2/floating_ips` with the `region` attribute.
- Floating IPs
- Delete a Floating IP
- To delete a floating IP and remove it from your account, send a DELETE request to `/v2/floating_ips/$FLOATING_IP_ADDR`. A successful request will receive a 204 status code with no body in response. This indicates that the request was processed successfully.
- Floating IPs
- Retrieve an Existing Floating IP
- To show information about a floating IP, send a GET request to `/v2/floating_ips/$FLOATING_IP_ADDR`.
- Floating IPs
- List All Floating IPs
- To list all of the floating IPs available on your account, send a GET request to `/v2/floating_ips`.
- Floating IPs
- Create a Namespace Access Key
- Creates a new access key for a serverless functions namespace. The access key can be used to authenticate requests to the namespace's functions. The secret key is only returned once upon creation. To create an access key, send a POST request to `/v2/functions/namespaces/{namespace_id}/keys`.
- Functions
- Delete a Namespace Access Key
- Deletes an access key for a serverless functions namespace. To delete an access key, send a DELETE request to `/v2/functions/namespaces/{namespace_id}/keys/{key_id}`.
- Functions
- List Namespace Access Keys
- Lists all access keys for a serverless functions namespace. To list access keys, send a GET request to `/v2/functions/namespaces/{namespace_id}/keys`.
- Functions
- Update a Namespace Access Key
- Updates the name of an access key for a serverless functions namespace. To update an access key, send a PUT request to `/v2/functions/namespaces/{namespace_id}/keys/{key_id}`.
- Functions
- Create Namespace
- Creates a new serverless functions namespace in the desired region and associates it with the provided label. A namespace is a collection of functions and their associated packages, triggers, and project specifications. To create a namespace, send a POST request to `/v2/functions/namespaces` with the `region` and `label` properties.
- Functions
- Create Trigger
- Creates a new trigger for a given function in a namespace. To create a trigger, send a POST request to `/v2/functions/namespaces/$NAMESPACE_ID/triggers` with the `name`, `function`, `type`, `is_enabled` and `scheduled_details` properties.
- Functions
- Delete Namespace
- Deletes the given namespace. When a namespace is deleted all assets, in the namespace are deleted, this includes packages, functions and triggers. Deleting a namespace is a destructive operation and assets in the namespace are not recoverable after deletion. Some metadata is retained, such as activations, or soft deleted for reporting purposes. To delete namespace, send a DELETE request to `/v2/functions/namespaces/$NAMESPACE_ID`. A successful deletion returns a 204 response.
- Functions
- Delete Trigger
- Deletes the given trigger. To delete trigger, send a DELETE request to `/v2/functions/namespaces/$NAMESPACE_ID/triggers/$TRIGGER_NAME`. A successful deletion returns a 204 response.
- Functions
- Get Namespace
- Gets the namespace details for the given namespace UUID. To get namespace details, send a GET request to `/v2/functions/namespaces/$NAMESPACE_ID` with no parameters.
- Functions
- Get Trigger
- Gets the trigger details. To get the trigger details, send a GET request to `/v2/functions/namespaces/$NAMESPACE_ID/triggers/$TRIGGER_NAME`.
- Functions
- List Namespaces
- Returns a list of namespaces associated with the current user. To get all namespaces, send a GET request to `/v2/functions/namespaces`.
- Functions
- List Triggers
- Returns a list of triggers associated with the current user and namespace. To get all triggers, send a GET request to `/v2/functions/namespaces/$NAMESPACE_ID/triggers`.
- Functions
- Update Trigger
- Updates the details of the given trigger. To update a trigger, send a PUT request to `/v2/functions/namespaces/$NAMESPACE_ID/triggers/$TRIGGER_NAME` with new values for the `is_enabled ` or `scheduled_details` properties.
- Functions
- Add Agent Route to an Agent
- To add an agent route to an agent, send a POST request to `/v2/gen-ai/agents/{parent_agent_uuid}/child_agents/{child_agent_uuid}`.
- GradientAI Platform
- Add Function Route to an Agent
- To create a function route for an agent, send a POST request to `/v2/gen-ai/agents/{agent_uuid}/functions`.
- GradientAI Platform
- Attach Guardrails to an Agent
- To attach guardrails to an agent, send a POST request to `/v2/gen-ai/agents/{agent_uuid}/guardrails`.
- GradientAI Platform
- Attach Knowledge Base to an Agent
- To attach a knowledge base to an agent, send a POST request to `/v2/gen-ai/agents/{agent_uuid}/knowledge_bases/{knowledge_base_uuid}`
- GradientAI Platform
- Attach Knowledge Bases to an Agent
- To attach knowledge bases to an agent, send a POST request to `/v2/gen-ai/agents/{agent_uuid}/knowledge_bases`
- GradientAI Platform
- Cancel Indexing Job for a Knowledge Base
- To cancel an indexing job for a knowledge base, send a PUT request to `/v2/gen-ai/indexing_jobs/{uuid}/cancel`.
- GradientAI Platform
- Cancel Model Evaluation Run
- To cancel an in-progress model evaluation run, send a PUT request to `/v2/gen-ai/model_evaluation_runs/{eval_run_uuid}/cancel`.
- GradientAI Platform
- Create an Agent
- To create a new agent, send a POST request to `/v2/gen-ai/agents`. The response body contains a JSON object with the newly created agent object.
- GradientAI Platform
- Create an Agent API Key
- To create an agent API key, send a POST request to `/v2/gen-ai/agents/{agent_uuid}/api_keys`.
- GradientAI Platform
- Create Anthropic API Key
- To create an Anthropic API key, send a POST request to `/v2/gen-ai/anthropic/keys`.
- GradientAI Platform
- Create Custom Evaluation Metric
- To create a custom LLM-as-judge metric for model evaluation, send a POST request to `/v2/gen-ai/custom_evaluation_metrics`.
- GradientAI Platform
- Create Presigned URLs for Data Source File Upload
- To create presigned URLs for knowledge base data source file upload, send a POST request to `/v2/gen-ai/knowledge_bases/data_sources/file_upload_presigned_urls`.
- GradientAI Platform
- Create Evaluation Dataset
- To create an evaluation dataset, send a POST request to `/v2/gen-ai/evaluation_datasets`.
- GradientAI Platform
- Create Presigned URLs for Evaluation Dataset File Upload
- To create presigned URLs for evaluation dataset file upload, send a POST request to `/v2/gen-ai/evaluation_datasets/file_upload_presigned_urls`.
- GradientAI Platform
- Create Evaluation Test Case.
- To create an evaluation test-case send a POST request to `/v2/gen-ai/evaluation_test_cases`.
- GradientAI Platform
- Start Indexing Job for a Knowledge Base
- To start an indexing job for a knowledge base, send a POST request to `/v2/gen-ai/indexing_jobs`.
- GradientAI Platform
- Create a Knowledge Base
- To create a knowledge base, send a POST request to `/v2/gen-ai/knowledge_bases`.
- GradientAI Platform
- Add Data Source to a Knowledge Base
- To add a data source to a knowledge base, send a POST request to `/v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources`.
- GradientAI Platform
- Create a Model API Key
- **Note: This endpoint is deprecated and has been retired. All requests return a `410 gone` response.** Creating model API keys through this endpoint is no longer supported. To create a model access key, visit the manage page in the control panel. Previously, you could create a model API key by sending a POST request to `/v2/gen-ai/models/api_keys`.
- GradientAI Platform
- Create Presigned URLs for Model Evaluation Dataset File Upload
- To create presigned URLs for model evaluation dataset file upload, send a POST request to `/v2/genai/model_evaluation/datasets/file_upload_presigned_urls`.
- GradientAI Platform
- Create Model Evaluation Run
- To create a model evaluation run, send a POST request to `/v2/genai/model_evaluation_runs`.
- GradientAI Platform
- Create a Model Router
- To create a model router, send a POST request to `/v2/gen-ai/models/routers`.
- GradientAI Platform
- Get Oauth2 Dropbox Tokens
- To obtain the refresh token, needed for creation of data sources, send a GET request to `/v2/gen-ai/oauth2/dropbox/tokens`. Pass the code you obtrained from the oauth flow in the field 'code'
- GradientAI Platform
- Create OpenAI API Key
- To create an OpenAI API key, send a POST request to `/v2/gen-ai/openai/keys`.
- GradientAI Platform
- Create scheduled indexing for knowledge base
- To create scheduled indexing for a knowledge base, send a POST request to `/v2/gen-ai/scheduled-indexing`.
- GradientAI Platform
- Create a Workspace
- To create a new workspace, send a POST request to `/v2/gen-ai/workspaces`. The response body contains a JSON object with the newly created workspace object.
- GradientAI Platform
- Delete an Agent
- To delete an agent, send a DELETE request to `/v2/gen-ai/agents/{uuid}`.
- GradientAI Platform
- Delete API Key for an Agent
- To delete an API key for an agent, send a DELETE request to `/v2/gen-ai/agents/{agent_uuid}/api_keys/{api_key_uuid}`.
- GradientAI Platform
- Delete Anthropic API Key
- To delete an Anthropic API key, send a DELETE request to `/v2/gen-ai/anthropic/keys/{api_key_uuid}`.
- GradientAI Platform
- Delete Custom Evaluation Metric
- To soft-delete a custom model evaluation metric, send a DELETE request to `/v2/gen-ai/custom_evaluation_metrics/{metric_uuid}`.
- GradientAI Platform
- Delete Custom Model
- To delete a custom model, send a DELETE request to `/v2/genai/custom_models/{uuid}`.
- GradientAI Platform
- Delete Evaluation Dataset
- To delete an evaluation dataset, send a DELETE request to `/v2/genai/evaluation_datasets/{dataset_uuid}`. This works for both model and agent evaluation datasets.
- GradientAI Platform
- Delete a Knowledge Base
- To delete a knowledge base, send a DELETE request to `/v2/gen-ai/knowledge_bases/{uuid}`.
- GradientAI Platform
- Delete a Data Source from a Knowledge Base
- To delete a data source from a knowledge base, send a DELETE request to `/v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources/{data_source_uuid}`.
- GradientAI Platform
- Delete API Key for a Model
- To delete an API key for a model, send a DELETE request to `/v2/gen-ai/models/api_keys/{api_key_uuid}`.
- GradientAI Platform
- Delete Model Evaluation Preset
- To delete a saved model evaluation preset, send a DELETE request to `/v2/gen-ai/model_evaluation_presets/{eval_preset_uuid}`.
- GradientAI Platform
- Delete Model Evaluation Run
- To delete a model evaluation run, send a DELETE request to `/v2/gen-ai/model_evaluation_runs/{eval_run_uuid}`. The run must be in a terminal status (`successful`, `partially_successful`, `failed`, or `cancelled`). For runs still in progress, either wait for the run to finish or cancel it, then retry the delete once the run reaches a terminal status.
- GradientAI Platform
- Delete a Model Router
- To delete a model router, send a DELETE request to `/v2/gen-ai/models/routers/{uuid}`.
- GradientAI Platform
- Delete OpenAI API Key
- To delete an OpenAI API key, send a DELETE request to `/v2/gen-ai/openai/keys/{api_key_uuid}`.
- GradientAI Platform
- Delete Scheduled Indexing
- Delete Scheduled Indexing for knowledge base, send a DELETE request to `/v2/gen-ai/scheduled-indexing/{uuid}`.
- GradientAI Platform
- Delete a Workspace
- To delete a workspace, send a DELETE request to `/v2/gen-ai/workspace/{workspace_uuid}`.
- GradientAI Platform
- Delete Agent Route for an Agent
- To delete an agent route from a parent agent, send a DELETE request to `/v2/gen-ai/agents/{parent_agent_uuid}/child_agents/{child_agent_uuid}`.
- GradientAI Platform
- Delete Function Route for an Agent
- To delete a function route from an agent, send a DELETE request to `/v2/gen-ai/agents/{agent_uuid}/functions/{function_uuid}`.
- GradientAI Platform
- Detach a Guardrail from an Agent
- To detach a guardrail from an agent, send a DELETE request to `/v2/gen-ai/agents/{agent_uuid}/guardrails/{guardrail_uuid}`.
- GradientAI Platform
- Detach Knowledge Base from an Agent
- To detach a knowledge base from an agent, send a DELETE request to `/v2/gen-ai/agents/{agent_uuid}/knowledge_bases/{knowledge_base_uuid}`.
- GradientAI Platform
- Retrieve an Existing Agent
- To retrieve details of an agent, GET request to `/v2/gen-ai/agents/{uuid}`. The response body is a JSON object containing the agent.
- GradientAI Platform
- View Agent Routes
- To view agent routes for an agent, send a GET requtest to `/v2/gen-ai/agents/{uuid}/child_agents`.
- GradientAI Platform
- Get Agent Usage
- To get agent usage, send a GET request to `/v2/gen-ai/agents/{uuid}/usage`. Returns usage metrics for the specified agent within the provided time range.
- GradientAI Platform
- Get Anthropic API Key
- To retrieve details of an Anthropic API key, send a GET request to `/v2/gen-ai/anthropic/keys/{api_key_uuid}`.
- GradientAI Platform
- Get Custom Model
- To retrieve details of a custom model, send a GET request to `/v2/gen-ai/custom_models/{uuid}`.
- GradientAI Platform
- Get Download URL for Evaluation Dataset
- To get a presigned download URL for an evaluation dataset, send a GET request to `/v2/genai/evaluation_datasets/{dataset_uuid}/download_url`.
- GradientAI Platform
- Retrieve Information About an Existing Evaluation Run
- To retrive information about an existing evaluation run, send a GET request to `/v2/gen-ai/evaluation_runs/{evaluation_run_uuid}`.
- GradientAI Platform
- Retrieve Results of an Evaluation Run Prompt
- To retrieve results of an evaluation run, send a GET request to `/v2/gen-ai/evaluation_runs/{evaluation_run_uuid}/results/{prompt_id}`.
- GradientAI Platform
- Retrieve Results of an Evaluation Run
- To retrieve results of an evaluation run, send a GET request to `/v2/gen-ai/evaluation_runs/{evaluation_run_uuid}/results`.
- GradientAI Platform
- Retrieve Information About an Existing Evaluation Test Case
- To retrive information about an existing evaluation test case, send a GET request to `/v2/gen-ai/evaluation_test_case/{test_case_uuid}`.
- GradientAI Platform
- Retrieve Status of Indexing Job for a Knowledge Base
- To get status of an indexing Job for a knowledge base, send a GET request to `/v2/gen-ai/indexing_jobs/{uuid}`.
- GradientAI Platform
- Get Signed URL for Indexing Job Details
- To get a signed URL for indexing job details, send a GET request to `/v2/gen-ai/indexing_jobs/{uuid}/details_signed_url`.
- GradientAI Platform
- Retrieve Information About an Existing Knowledge Base
- To retrive information about an existing knowledge base, send a GET request to `/v2/gen-ai/knowledge_bases/{uuid}`.
- GradientAI Platform
- Get Model Catalog Card
- Returns detailed information for a specific model in the catalog including capabilities, pricing, and code examples.
- GradientAI Platform
- Retrieve Model Evaluation Preset
- To retrieve a saved model evaluation preset, send a GET request to `/v2/genai/model_evaluation_presets/{eval_preset_uuid}`.
- GradientAI Platform
- Retrieve Model Evaluation Run
- To retrieve a model evaluation run, send a GET request to `/v2/genai/model_evaluation_runs/{eval_run_uuid}`.
- GradientAI Platform
- Get Download URL for Model Evaluation Run Results
- To get a presigned download URL for model evaluation run results (gzip-compressed JSON), send a GET request to `/v2/genai/model_evaluation_runs/{eval_run_uuid}/results/download_url`.
- GradientAI Platform
- Retrieve an Existing Model Router
- To retrieve details of a model router, send a GET request to `/v2/gen-ai/models/routers/{uuid}`.
- GradientAI Platform
- Get Oauth2 URL
- To generate an Oauth2-URL for use with your localhost, send a GET request to `/v2/gen-ai/oauth2/url`. Pass 'http://localhost:3000 as redirect_url
- GradientAI Platform
- Get OpenAI API Key
- To retrieve details of an OpenAI API key, send a GET request to `/v2/gen-ai/openai/keys/{api_key_uuid}`.
- GradientAI Platform
- Get Scheduled Indexing for Knowledge Base
- Get Scheduled Indexing for knowledge base using knoweldge base uuid, send a GET request to `/v2/gen-ai/scheduled-indexing/knowledge-base/{knowledge_base_uuid}`.
- GradientAI Platform
- Retrieve an Existing Workspace
- To retrieve details of a workspace, GET request to `/v2/gen-ai/workspaces/{workspace_uuid}`. The response body is a JSON object containing the workspace.
- GradientAI Platform
- Import Custom Model
- To import a custom model, send a POST request to `/v2/gen-ai/custom_models/import`.
- GradientAI Platform
- List Agent API Keys
- To list all agent API keys, send a GET request to `/v2/gen-ai/agents/{agent_uuid}/api_keys`.
- GradientAI Platform
- List Agent Versions
- To list all agent versions, send a GET request to `/v2/gen-ai/agents/{uuid}/versions`.
- GradientAI Platform
- List Agents
- To list all agents, send a GET request to `/v2/gen-ai/agents`.
- GradientAI Platform
- List agents by Anthropic key
- List Agents by Anthropic Key.
- GradientAI Platform
- List agents by OpenAI key
- List Agents by OpenAI Key.
- GradientAI Platform
- List agents by Workspace
- To list all agents by a Workspace, send a GET request to `/v2/gen-ai/workspaces/{workspace_uuid}/agents`.
- GradientAI Platform
- List Anthropic API Keys
- To list all Anthropic API keys, send a GET request to `/v2/gen-ai/anthropic/keys`.
- GradientAI Platform
- List Custom Models
- To list custom models, send a GET request to `/v2/gen-ai/custom_models`.
- GradientAI Platform
- List Datacenter Regions
- To list all datacenter regions, send a GET request to `/v2/gen-ai/regions`.
- GradientAI Platform
- List Evaluation Datasets
- To list evaluation datasets, send a GET request to `/v2/gen-ai/evaluation_datasets`.
- GradientAI Platform
- List Evaluation Metrics
- To list all evaluation metrics, send a GET request to `/v2/gen-ai/evaluation_metrics`.
- GradientAI Platform
- List Evaluation Runs by Test Case
- To list all evaluation runs by test case, send a GET request to `/v2/gen-ai/evaluation_test_cases/{evaluation_test_case_uuid}/evaluation_runs`.
- GradientAI Platform
- List Evaluation Test Cases
- To list all evaluation test cases, send a GET request to `/v2/gen-ai/evaluation_test_cases`.
- GradientAI Platform
- List Evaluation Test Cases by Workspace
- To list all evaluation test cases by a workspace, send a GET request to `/v2/gen-ai/workspaces/{workspace_uuid}/evaluation_test_cases`.
- GradientAI Platform
- List Data Sources for Indexing Job for a Knowledge Base
- To list all datasources for an indexing job, send a GET request to `/v2/gen-ai/indexing_jobs/{indexing_job_uuid}/data_sources`.
- GradientAI Platform
- List Indexing Jobs for a Knowledge Base
- To list all indexing jobs for a knowledge base, send a GET request to `/v2/gen-ai/indexing_jobs`.
- GradientAI Platform
- List Indexing Jobs for a Knowledge Base
- To list latest 15 indexing jobs for a knowledge base, send a GET request to `/v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/indexing_jobs`.
- GradientAI Platform
- List Data Sources for a Knowledge Base
- To list all data sources for a knowledge base, send a GET request to `/v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources`.
- GradientAI Platform
- List Knowledge Bases
- To list all knowledge bases, send a GET request to `/v2/gen-ai/knowledge_bases`.
- GradientAI Platform
- List Model API Keys
- To list all model API keys, send a GET request to `/v2/gen-ai/models/api_keys`.
- GradientAI Platform
- List Model Catalog
- Returns all available models.
- GradientAI Platform
- List Model Evaluation Metrics
- To list all available metrics for model evaluation, send a GET request to `/v2/genai/model_evaluation_metrics`.
- GradientAI Platform
- List Model Evaluation Presets
- To list all saved model evaluation presets, send a GET request to `/v2/genai/model_evaluation_presets`.
- GradientAI Platform
- List Model Evaluation Runs
- To list model evaluation runs, send a GET request to `/v2/genai/model_evaluation_runs`.
- GradientAI Platform
- List Model Router Presets
- To list model router presets, send a GET request to `/v2/gen-ai/models/routers/presets`.
- GradientAI Platform
- List Model Router Task Presets
- To list model router task presets, send a GET request to `/v2/gen-ai/models/routers/tasks/presets`.
- GradientAI Platform
- List Model Routers
- To list model routers, send a GET request to `/v2/gen-ai/models/routers`.
- GradientAI Platform
- List Available Models
- To list all models, send a GET request to `/v2/gen-ai/models`.
- GradientAI Platform
- List OpenAI API Keys
- To list all OpenAI API keys, send a GET request to `/v2/gen-ai/openai/keys`.
- GradientAI Platform
- List Workspaces
- To list all workspaces, send a GET request to `/v2/gen-ai/workspaces`.
- GradientAI Platform
- Regenerate API Key for an Agent
- To regenerate an agent API key, send a PUT request to `/v2/gen-ai/agents/{agent_uuid}/api_keys/{api_key_uuid}/regenerate`.
- GradientAI Platform
- Regenerate API Key for a Model
- To regenerate a model API key, send a PUT request to `/v2/gen-ai/models/api_keys/{api_key_uuid}/regenerate`.
- GradientAI Platform
- Rollback to Agent Version
- To update to a specific agent version, send a PUT request to `/v2/gen-ai/agents/{uuid}/versions`.
- GradientAI Platform
- Run an Evaluation Test Case
- To run an evaluation test case, send a POST request to `/v2/gen-ai/evaluation_runs`.
- GradientAI Platform
- Update an Agent
- To update an agent, send a PUT request to `/v2/gen-ai/agents/{uuid}`. The response body is a JSON object containing the agent.
- GradientAI Platform
- Update API Key for an Agent
- To update an agent API key, send a PUT request to `/v2/gen-ai/agents/{agent_uuid}/api_keys/{api_key_uuid}`.
- GradientAI Platform
- Update Agent Status
- Check whether an agent is public or private. To update the agent status, send a PUT request to `/v2/gen-ai/agents/{uuid}/deployment_visibility`.
- GradientAI Platform
- Update Function Route for an Agent
- To update the function route, send a PUT request to `/v2/gen-ai/agents/{agent_uuid}/functions/{function_uuid}`.
- GradientAI Platform
- Move Agents to a Workspace
- To move all listed agents a given workspace, send a PUT request to `/v2/gen-ai/workspaces/{workspace_uuid}/agents`.
- GradientAI Platform
- Update Anthropic API Key
- To update an Anthropic API key, send a PUT request to `/v2/gen-ai/anthropic/keys/{api_key_uuid}`.
- GradientAI Platform
- Update Agent Route for an Agent
- To update an agent route for an agent, send a PUT request to `/v2/gen-ai/agents/{parent_agent_uuid}/child_agents/{child_agent_uuid}`.
- GradientAI Platform
- Update Custom Evaluation Metric
- To update a custom metric (issuing a new metric UUID), send a PUT request to `/v2/gen-ai/custom_evaluation_metrics/{metric_uuid}`.
- GradientAI Platform
- Update Custom Model Metadata
- To update custom model metadata, send a PATCH request to `/v2/gen-ai/custom_models/{uuid}/metadata`.
- GradientAI Platform
- Update an Evaluation Test Case.
- To update an evaluation test-case send a PUT request to `/v2/gen-ai/evaluation_test_cases/{test_case_uuid}`.
- GradientAI Platform
- Update a Knowledge Base
- To update a knowledge base, send a PUT request to `/v2/gen-ai/knowledge_bases/{uuid}`.
- GradientAI Platform
- Update Data Source options
- To update a data source (e.g. chunking options), send a PUT request to `/v2/gen-ai/knowledge_bases/{knowledge_base_uuid}/data_sources/{data_source_uuid}`.
- GradientAI Platform
- Update API Key for a Model
- To update a model API key, send a PUT request to `/v2/gen-ai/models/api_keys/{api_key_uuid}`.
- GradientAI Platform
- Update Model Evaluation Run
- To update a model evaluation run's display name, send a PATCH request to `/v2/gen-ai/model_evaluation_runs/{eval_run_uuid}`.
- GradientAI Platform
- Update a Model Router
- To update a model router, send a PUT request to `/v2/gen-ai/models/routers/{uuid}`.
- GradientAI Platform
- Update OpenAI API Key
- To update an OpenAI API key, send a PUT request to `/v2/gen-ai/openai/keys/{api_key_uuid}`.
- GradientAI Platform
- Update a Workspace
- To update a workspace, send a PUT request to `/v2/gen-ai/workspaces/{workspace_uuid}`. The response body is a JSON object containing the workspace.
- GradientAI Platform
- Retrieve an Existing Action
- To retrieve the status of an image action, send a GET request to `/v2/images/$IMAGE_ID/actions/$IMAGE_ACTION_ID`.
- Image Actions
- List All Actions for an Image
- To retrieve all actions that have been executed on an image, send a GET request to `/v2/images/$IMAGE_ID/actions`.
- Image Actions
- Initiate an Image Action
- The following actions are available on an Image. ## Convert an Image to a Snapshot To convert an image, for example, a backup to a snapshot, send a POST request to `/v2/images/$IMAGE_ID/actions`. Set the `type` attribute to `convert`. ## Transfer an Image To transfer an image to another region, send a POST request to `/v2/images/$IMAGE_ID/actions`. Set the `type` attribute to `transfer` and set `region` attribute to the slug identifier of the region you wish to transfer to.
- Image Actions
- Create a Custom Image
- To create a new custom image, send a POST request to /v2/images. The body must contain a url attribute pointing to a Linux virtual machine image to be imported into DigitalOcean. The image must be in the raw, qcow2, vhdx, vdi, or vmdk format. It may be compressed using gzip or bzip2 and must be smaller than 100 GB after being decompressed.
- Images
- Delete an Image
- To delete a snapshot or custom image, send a `DELETE` request to `/v2/images/$IMAGE_ID`.
- Images
- Retrieve an Existing Image
- To retrieve information about an image, send a `GET` request to `/v2/images/$IDENTIFIER`.
- Images
- List All Images
- To list all of the images available on your account, send a GET request to /v2/images. ## Filtering Results ----- It's possible to request filtered results by including certain query parameters. **Image Type** Either 1-Click Application or OS Distribution images can be filtered by using the `type` query parameter. > Important: The `type` query parameter does not directly relate to the `type` attribute. To retrieve only ***distribution*** images, include the `type` query parameter set to distribution, `/v2/images?type=distribution`. To retrieve only ***application*** images, include the `type` query parameter set to application, `/v2/images?type=application`. **User Images** To retrieve only the private images of a user, include the `private` query parameter set to true, `/v2/images?private=true`. **Tags** To list all images assigned to a specific tag, include the `tag_name` query parameter set to the name of the tag in your GET request. For example, `/v2/images?tag_name=$TAG_NAME`.
- Images
- Accept an Image Account Transfer
- To accept an account transfer for an image, send a POST request to `/v2/images/$IMAGE_ID/account_transfer/accept`.
- Images
- Cancel an Image Account Transfer
- To cancel an account transfer for an image, send a POST request to `/v2/images/$IMAGE_ID/account_transfer/cancel`. Only the sender of an image account transfer can cancel the transfer. If the transfer is canceled, the image will remain in the sender's account and will not be transferred to the recipient.
- Images
- Initiate an Image Account Transfer
- To initiate an account transfer for an image, send a POST request to `/v2/images/$IMAGE_ID/account_transfer`. Only snapshot images may be transferred by this endpoint to another account. An image account transfer always has exactly one recipient, specified in the request body. The recipient can be one of the following: * A DigitalOcean account, denoted by `recipient_email` in the request body. The recipient will receive an email with instructions to accept the transfer. Once the recipient accepts the transfer, the image will be moved to their account. * A DigitalOcean team, denoted by `recipient_uuid` in the request body. If the user has sufficient permissions in the recipient team, the transfer will be automatically accepted and the image will be moved to the recipient team's account. Otherwise, the transfer will be pending until a user with sufficient permissions in the recipient team accepts the transfer.
- Images
- Decline an Image Account Transfer
- To decline an account transfer for an image, send a POST request to `/v2/images/$IMAGE_ID/account_transfer/decline`. Only the recipient of an image account transfer can decline the transfer. If the transfer is declined, the image will remain in the sender's account and will not be transferred to the recipient.
- Images
- Update an Image
- To update an image, send a `PUT` request to `/v2/images/$IMAGE_ID`. Set the `name` attribute to the new value you would like to use. For custom images, the `description` and `distribution` attributes may also be updated.
- Images
- Retrieve an Invoice by UUID
- To retrieve the invoice items for an invoice, send a GET request to `/v2/customers/my/invoices/$INVOICE_UUID`.
- Billing
- Retrieve an Invoice CSV by UUID
- To retrieve a CSV for an invoice, send a GET request to `/v2/customers/my/invoices/$INVOICE_UUID/csv`.
- Billing
- Retrieve an Invoice PDF by UUID
- To retrieve a PDF for an invoice, send a GET request to `/v2/customers/my/invoices/$INVOICE_UUID/pdf`.
- Billing
- Retrieve an Invoice Summary by UUID
- To retrieve a summary for an invoice, send a GET request to `/v2/customers/my/invoices/$INVOICE_UUID/summary`.
- Billing
- List All Invoices
- To retrieve a list of all invoices, send a GET request to `/v2/customers/my/invoices`.
- Billing
- Add a Node Pool to a Kubernetes Cluster
- To add an additional node pool to a Kubernetes clusters, send a POST request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/node_pools` with the following attributes.
- Kubernetes
- Add Container Registries to Kubernetes Clusters
- To integrate the container registries with Kubernetes clusters, send a POST request to `/v2/kubernetes/registries`.
- Kubernetes
- Add Container Registry to Kubernetes Clusters
- To integrate the container registry with Kubernetes clusters, send a POST request to `/v2/kubernetes/registry`.
- Kubernetes
- Create a New Kubernetes Cluster
- To create a new Kubernetes cluster, send a POST request to `/v2/kubernetes/clusters`. The request must contain at least one node pool with at least one worker. The request may contain a maintenance window policy describing a time period when disruptive maintenance tasks may be carried out. Omitting the policy implies that a window will be chosen automatically. See [here](https://docs.digitalocean.com/products/kubernetes/how-to/upgrade-cluster/) for details.
- Kubernetes
- Delete a Kubernetes Cluster
- To delete a Kubernetes cluster and all services deployed to it, send a DELETE request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID`. A 204 status code with no body will be returned in response to a successful request.
- Kubernetes
- Delete a Node in a Kubernetes Cluster
- To delete a single node in a pool, send a DELETE request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/node_pools/$NODE_POOL_ID/nodes/$NODE_ID`. Appending the `skip_drain=1` query parameter to the request causes node draining to be skipped. Omitting the query parameter or setting its value to `0` carries out draining prior to deletion. Appending the `replace=1` query parameter to the request causes the node to be replaced by a new one after deletion. Omitting the query parameter or setting its value to `0` deletes without replacement.
- Kubernetes
- Delete a Node Pool in a Kubernetes Cluster
- To delete a node pool, send a DELETE request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/node_pools/$NODE_POOL_ID`. A 204 status code with no body will be returned in response to a successful request. Nodes in the pool will subsequently be drained and deleted.
- Kubernetes
- Delete a Cluster and All of its Associated Resources (Dangerous)
- To delete a Kubernetes cluster with all of its associated resources, send a DELETE request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/destroy_with_associated_resources/dangerous`. A 204 status code with no body will be returned in response to a successful request.
- Kubernetes
- Selectively Delete a Cluster and its Associated Resources
- To delete a Kubernetes cluster along with a subset of its associated resources, send a DELETE request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/destroy_with_associated_resources/selective`. The JSON body of the request should include `load_balancers`, `volumes`, or `volume_snapshots` keys each set to an array of IDs for the associated resources to be destroyed. The IDs can be found by querying the cluster's associated resources endpoint. Any associated resource not included in the request will remain and continue to accrue changes on your account.
- Kubernetes
- Retrieve Available Upgrades for an Existing Kubernetes Cluster
- To determine whether a cluster can be upgraded, and the versions to which it can be upgraded, send a GET request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/upgrades`.
- Kubernetes
- Retrieve an Existing Kubernetes Cluster
- To show information about an existing Kubernetes cluster, send a GET request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID`.
- Kubernetes
- Fetch Clusterlint Diagnostics for a Kubernetes Cluster
- To request clusterlint diagnostics for your cluster, send a GET request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/clusterlint`. If the `run_id` query parameter is provided, then the diagnostics for the specific run is fetched. By default, the latest results are shown. To find out how to address clusterlint feedback, please refer to [the clusterlint check documentation](https://github.com/digitalocean/clusterlint/blob/master/checks.md).
- Kubernetes
- Retrieve User Information for a Kubernetes Cluster
- To show information the user associated with a Kubernetes cluster, send a GET request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/user`.
- Kubernetes
- Retrieve Credentials for a Kubernetes Cluster
- This endpoint returns a JSON object . It can be used to programmatically construct Kubernetes clients which cannot parse kubeconfig files. The resulting JSON object contains token-based authentication for clusters supporting it, and certificate-based authentication otherwise. For a list of supported versions and more information, see "[How to Connect to a DigitalOcean Kubernetes Cluster](https://docs.digitalocean.com/products/kubernetes/how-to/connect-to-cluster/)". To retrieve credentials for accessing a Kubernetes cluster, send a GET request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/credentials`. Clusters supporting token-based authentication may define an expiration by passing a duration in seconds as a query parameter to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/credentials?expiry_seconds=$DURATION_IN_SECONDS`. If not set or 0, then the token will have a 7 day expiry. The query parameter has no impact in certificate-based authentication.
- Kubernetes
- Retrieve the kubeconfig for a Kubernetes Cluster
- This endpoint returns a kubeconfig file in YAML format. It can be used to connect to and administer the cluster using the Kubernetes command line tool, `kubectl`, or other programs supporting kubeconfig files (e.g., client libraries). The resulting kubeconfig file uses token-based authentication for clusters supporting it, and certificate-based authentication otherwise. For a list of supported versions and more information, see "[How to Connect to a DigitalOcean Kubernetes Cluster](https://docs.digitalocean.com/products/kubernetes/how-to/connect-to-cluster/)". To retrieve a kubeconfig file for use with a Kubernetes cluster, send a GET request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/kubeconfig`. Clusters supporting token-based authentication may define an expiration by passing a duration in seconds as a query parameter to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/kubeconfig?expiry_seconds=$DURATION_IN_SECONDS`. If not set or 0, then the token will have a 7 day expiry. The query parameter has no impact for other kubeconfig types. Using an `sso` kubeconfig type requires `doctl` to be installed to handle the client side of the OAuth2 flow. Kubernetes Roles granted to a user are derived from that user's DigitalOcean role. Predefined roles (Owner, Member, Modifier etc.) have an automatic mapping to Kubernetes roles. Custom roles are not automatically mapped to any Kubernetes roles, and require [additional configuration](https://docs.digitalocean.com/products/kubernetes/how-to/set-up-custom-rolebindings/) by a cluster administrator.
- Kubernetes
- Retrieve a Node Pool for a Kubernetes Cluster
- To show information about a specific node pool in a Kubernetes cluster, send a GET request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/node_pools/$NODE_POOL_ID`.
- Kubernetes
- Fetch Status Messages for a Kubernetes Cluster
- To retrieve status messages for a Kubernetes cluster, send a GET request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/status_messages`. Status messages inform users of any issues that come up during the cluster lifecycle.
- Kubernetes
- List Associated Resources for Cluster Deletion
- To list the associated billable resources that can be destroyed along with a cluster, send a GET request to the `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/destroy_with_associated_resources` endpoint.
- Kubernetes
- List All Kubernetes Clusters
- To list all of the Kubernetes clusters on your account, send a GET request to `/v2/kubernetes/clusters`.
- Kubernetes
- List All Node Pools in a Kubernetes Clusters
- To list all of the node pools in a Kubernetes clusters, send a GET request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/node_pools`.
- Kubernetes
- List Available Regions, Node Sizes, and Versions of Kubernetes
- To list the versions of Kubernetes available for use, the regions that support Kubernetes, and the available node sizes, send a GET request to `/v2/kubernetes/options`.
- Kubernetes
- Recycle a Kubernetes Node Pool
- The endpoint has been deprecated. Please use the DELETE `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/node_pools/$NODE_POOL_ID/nodes/$NODE_ID` method instead.
- Kubernetes
- Remove Container Registries from Kubernetes Clusters
- To remove the container registries from Kubernetes clusters, send a DELETE request to `/v2/kubernetes/registries`.
- Kubernetes
- Remove Container Registry from Kubernetes Clusters
- To remove the container registry from Kubernetes clusters, send a DELETE request to `/v2/kubernetes/registry`.
- Kubernetes
- Run Clusterlint Checks on a Kubernetes Cluster
- Clusterlint helps operators conform to Kubernetes best practices around resources, security and reliability to avoid common problems while operating or upgrading the clusters. To request a clusterlint run on your cluster, send a POST request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/clusterlint`. This will run all checks present in the `doks` group by default, if a request body is not specified. Optionally specify the below attributes. For information about the available checks, please refer to [the clusterlint check documentation](https://github.com/digitalocean/clusterlint/blob/master/checks.md).
- Kubernetes
- Update a Kubernetes Cluster
- To update a Kubernetes cluster, send a PUT request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID` and specify one or more of the attributes below.
- Kubernetes
- Update a Node Pool in a Kubernetes Cluster
- To update the name of a node pool, edit the tags applied to it, or adjust its number of nodes, send a PUT request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/node_pools/$NODE_POOL_ID` with the following attributes.
- Kubernetes
- Upgrade a Kubernetes Cluster
- To immediately upgrade a Kubernetes cluster to a newer patch release of Kubernetes, send a POST request to `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/upgrade`. The body of the request must specify a version attribute. Available upgrade versions for a cluster can be fetched from `/v2/kubernetes/clusters/$K8S_CLUSTER_ID/upgrades`.
- Kubernetes
- Add Droplets to a Load Balancer
- To assign a Droplet to a load balancer instance, send a POST request to `/v2/load_balancers/$LOAD_BALANCER_ID/droplets`. In the body of the request, there should be a `droplet_ids` attribute containing a list of Droplet IDs. Individual Droplets can not be added to a load balancer configured with a Droplet tag. Attempting to do so will result in a "422 Unprocessable Entity" response from the API. No response body will be sent back, but the response code will indicate success. Specifically, the response code will be a 204, which means that the action was successful with no returned body data.
- Load Balancers
- Add Forwarding Rules to a Load Balancer
- To add an additional forwarding rule to a load balancer instance, send a POST request to `/v2/load_balancers/$LOAD_BALANCER_ID/forwarding_rules`. In the body of the request, there should be a `forwarding_rules` attribute containing an array of rules to be added. No response body will be sent back, but the response code will indicate success. Specifically, the response code will be a 204, which means that the action was successful with no returned body data.
- Load Balancers
- Create a New Load Balancer
- To create a new load balancer instance, send a POST request to `/v2/load_balancers`. You can specify the Droplets that will sit behind the load balancer using one of two methods: * Set `droplet_ids` to a list of specific Droplet IDs. * Set `tag` to the name of a tag. All Droplets with this tag applied will be assigned to the load balancer. Additional Droplets will be automatically assigned as they are tagged. These methods are mutually exclusive.
- Load Balancers
- Delete a Load Balancer
- To delete a load balancer instance, disassociating any Droplets assigned to it and removing it from your account, send a DELETE request to `/v2/load_balancers/$LOAD_BALANCER_ID`. A successful request will receive a 204 status code with no body in response. This indicates that the request was processed successfully.
- Load Balancers
- Delete a Global Load Balancer CDN Cache
- To delete a Global load balancer CDN cache, send a DELETE request to `/v2/load_balancers/$LOAD_BALANCER_ID/cache`. A successful request will receive a 204 status code with no body in response. This indicates that the request was processed successfully.
- Load Balancers
- Retrieve an Existing Load Balancer
- To show information about a load balancer instance, send a GET request to `/v2/load_balancers/$LOAD_BALANCER_ID`.
- Load Balancers
- List All Load Balancers
- To list all of the load balancer instances on your account, send a GET request to `/v2/load_balancers`.
- Load Balancers
- Remove Droplets from a Load Balancer
- To remove a Droplet from a load balancer instance, send a DELETE request to `/v2/load_balancers/$LOAD_BALANCER_ID/droplets`. In the body of the request, there should be a `droplet_ids` attribute containing a list of Droplet IDs. No response body will be sent back, but the response code will indicate success. Specifically, the response code will be a 204, which means that the action was successful with no returned body data.
- Load Balancers
- Remove Forwarding Rules from a Load Balancer
- To remove forwarding rules from a load balancer instance, send a DELETE request to `/v2/load_balancers/$LOAD_BALANCER_ID/forwarding_rules`. In the body of the request, there should be a `forwarding_rules` attribute containing an array of rules to be removed. No response body will be sent back, but the response code will indicate success. Specifically, the response code will be a 204, which means that the action was successful with no returned body data.
- Load Balancers
- Update a Load Balancer
- To update a load balancer's settings, send a PUT request to `/v2/load_balancers/$LOAD_BALANCER_ID`. The request should contain a full representation of the load balancer including existing attributes. It may contain _one of_ the `droplets_ids` or `tag` attributes as they are mutually exclusive. **Note that any attribute that is not provided will be reset to its default value.**
- Load Balancers
- Create Alert Policy
- To create a new alert, send a POST request to `/v2/monitoring/alerts`.
- Monitoring
- Create Logging Destination
- To create a new destination, send a POST request to `/v2/monitoring/sinks/destinations`.
- Monitoring
- Create Sink
- To create a new sink, send a POST request to `/v2/monitoring/sinks`. Forwards logs from the resources identified in `resources` to the specified pre-existing destination.
- Monitoring
- Delete an Alert Policy
- To delete an alert policy, send a DELETE request to `/v2/monitoring/alerts/{alert_uuid}`
- Monitoring
- Delete Logging Destination
- To delete a destination and all associated sinks, send a DELETE request to `/v2/monitoring/sinks/destinations/${destination_uuid}`.
- Monitoring
- Delete Sink
- To delete a sink, send a DELETE request to `/v2/monitoring/sinks/${sink_uuid}`.
- Monitoring
- Retrieve an Existing Alert Policy
- To retrieve a given alert policy, send a GET request to `/v2/monitoring/alerts/{alert_uuid}`
- Monitoring
- Get App CPU Percentage Metrics
- To retrieve cpu percentage metrics for a given app, send a GET request to `/v2/monitoring/metrics/apps/cpu_percentage`.
- Monitoring
- Get App Memory Percentage Metrics
- To retrieve memory percentage metrics for a given app, send a GET request to `/v2/monitoring/metrics/apps/memory_percentage`.
- Monitoring
- Get App Restart Count Metrics
- To retrieve restart count metrics for a given app, send a GET request to `/v2/monitoring/metrics/apps/restart_count`.
- Monitoring
- Get Database MySQL CPU Usage Metrics
- Retrieve CPU usage (percent) for a MySQL cluster. Response is a time series of cluster-level CPU usage. Use **aggregate** to get avg, max, or min over the range.
- Monitoring
- Get Database MySQL Disk Usage Metrics
- Retrieve disk usage (percent) for a MySQL cluster. Use **aggregate** (avg, max, or min) over the time range.
- Monitoring
- Get Database MySQL Index vs Sequential Reads Metrics
- Retrieve index vs sequential reads ratio (percent) for a MySQL service — i.e. percentage of reads using an index.
- Monitoring
- Get Database MySQL Load Average Metrics
- Retrieve load metrics for a MySQL cluster. Use **metric** for the window: **load1** (1-minute), **load5** (5-minute), or **load15** (15-minute). Use **aggregate** to get either the average (avg) or maximum (max) over that window over the time range.
- Monitoring
- Get Database MySQL Memory Usage Metrics
- Retrieve memory usage (percent) for a MySQL cluster. Use **aggregate** (avg, max, or min) over the time range.
- Monitoring
- Get Database MySQL Operations Throughput Metrics
- Retrieve operations rate (per second) for a MySQL service. Use **metric** to choose select, insert, update, or delete.
- Monitoring
- Get Database MySQL Schema Latency Metrics
- Retrieve table I/O latency (seconds) for a schema. Requires **schema** and **metric** (insert, fetch, update, delete).
- Monitoring
- Get Database MySQL Schema Throughput Metrics
- Retrieve table I/O throughput (rows per second) for a schema. Requires **schema** and **metric** (insert, fetch, update, delete).
- Monitoring
- Get Database MySQL Threads Active Metrics
- Retrieve active (running) threads for a MySQL service.
- Monitoring
- Get Database MySQL Threads Connected Metrics
- Retrieve current threads connected for a MySQL service (gauge).
- Monitoring
- Get Database MySQL Threads Created Rate Metrics
- Retrieve threads created rate for a MySQL service (per second).
- Monitoring
- Get Logging Destination
- To get the details of a destination, send a GET request to `/v2/monitoring/sinks/destinations/${destination_uuid}`.
- Monitoring
- Get Droplet Autoscale Pool Current Average CPU utilization
- To retrieve the current average CPU utilization for a given Droplet Autoscale Pool, send a GET request to `/v2/monitoring/metrics/droplet_autoscale/current_cpu_utilization`.
- Monitoring
- Get Droplet Autoscale Pool Current Size
- To retrieve the current size for a given Droplet Autoscale Pool, send a GET request to `/v2/monitoring/metrics/droplet_autoscale/current_instances`.
- Monitoring
- Get Droplet Autoscale Pool Current Average Memory utilization
- To retrieve the current average memory utilization for a given Droplet Autoscale Pool, send a GET request to `/v2/monitoring/metrics/droplet_autoscale/current_memory_utilization`.
- Monitoring
- Get Droplet Autoscale Pool Target Average CPU utilization
- To retrieve the target average CPU utilization for a given Droplet Autoscale Pool, send a GET request to `/v2/monitoring/metrics/droplet_autoscale/target_cpu_utilization`.
- Monitoring
- Get Droplet Autoscale Pool Target Size
- To retrieve the target size for a given Droplet Autoscale Pool, send a GET request to `/v2/monitoring/metrics/droplet_autoscale/target_instances`.
- Monitoring
- Get Droplet Autoscale Pool Target Average Memory utilization
- To retrieve the target average memory utilization for a given Droplet Autoscale Pool, send a GET request to `/v2/monitoring/metrics/droplet_autoscale/target_memory_utilization`.
- Monitoring
- Get Droplet Bandwidth Metrics
- To retrieve bandwidth metrics for a given Droplet, send a GET request to `/v2/monitoring/metrics/droplet/bandwidth`. Use the `interface` query parameter to specify if the results should be for the `private` or `public` interface. Use the `direction` query parameter to specify if the results should be for `inbound` or `outbound` traffic. The metrics in the response body are in megabits per second (Mbps).
- Monitoring
- Get Droplet CPU Metrics
- To retrieve CPU metrics for a given droplet, send a GET request to `/v2/monitoring/metrics/droplet/cpu`.
- Monitoring
- Get Droplet Filesystem Free Metrics
- To retrieve filesystem free metrics for a given droplet, send a GET request to `/v2/monitoring/metrics/droplet/filesystem_free`.
- Monitoring
- Get Droplet Filesystem Size Metrics
- To retrieve filesystem size metrics for a given droplet, send a GET request to `/v2/monitoring/metrics/droplet/filesystem_size`.
- Monitoring
- Get Droplet Load1 Metrics
- To retrieve 1 minute load average metrics for a given droplet, send a GET request to `/v2/monitoring/metrics/droplet/load_1`.
- Monitoring
- Get Droplet Load15 Metrics
- To retrieve 15 minute load average metrics for a given droplet, send a GET request to `/v2/monitoring/metrics/droplet/load_15`.
- Monitoring
- Get Droplet Load5 Metrics
- To retrieve 5 minute load average metrics for a given droplet, send a GET request to `/v2/monitoring/metrics/droplet/load_5`.
- Monitoring
- Get Droplet Available Memory Metrics
- To retrieve available memory metrics for a given droplet, send a GET request to `/v2/monitoring/metrics/droplet/memory_available`.
- Monitoring
- Get Droplet Cached Memory Metrics
- To retrieve cached memory metrics for a given droplet, send a GET request to `/v2/monitoring/metrics/droplet/memory_cached`.
- Monitoring
- Get Droplet Free Memory Metrics
- To retrieve free memory metrics for a given droplet, send a GET request to `/v2/monitoring/metrics/droplet/memory_free`.
- Monitoring
- Get Droplet Total Memory Metrics
- To retrieve total memory metrics for a given droplet, send a GET request to `/v2/monitoring/metrics/droplet/memory_total`.
- Monitoring
- Get Load Balancer Droplets Active Connections Metrics
- To retrieve Droplets active connections for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/droplets_connections`.
- Monitoring
- Get Load Balancer Droplets Downtime Status Metrics
- To retrieve Droplets downtime status for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/droplets_downtime`.
- Monitoring
- Get Load Balancer Droplets Health Check Status Metrics
- To retrieve Droplets health check status for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/droplets_health_checks`.
- Monitoring
- Get Load Balancer Droplets 50th Percentile HTTP Response Time Metrics
- To retrieve Droplets 50th percentile HTTP response time in seconds for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/droplets_http_response_time_50p`.
- Monitoring
- Get Load Balancer Droplets 95th Percentile HTTP Response Time Metrics
- To retrieve Droplets 95th percentile HTTP response time in seconds for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/droplets_http_response_time_95p`.
- Monitoring
- Get Load Balancer Droplets 99th Percentile HTTP Response Time Metrics
- To retrieve Droplets 99th percentile HTTP response time in seconds for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/droplets_http_response_time_99p`.
- Monitoring
- Get Load Balancer Droplets Average HTTP Response Time Metrics
- To retrieve Droplets average HTTP response time in seconds for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/droplets_http_response_time_avg`.
- Monitoring
- Get Load Balancer Droplets HTTP Rate Of Response Code Metrics
- To retrieve Droplets HTTP rate of response code for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/droplets_http_responses`.
- Monitoring
- Get Load Balancer Droplets 50th Percentile HTTP Session Duration Metrics
- To retrieve Droplets 50th percentile HTTP session duration in seconds for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/droplets_http_session_duration_50p`.
- Monitoring
- Get Load Balancer Droplets 95th Percentile HTTP Session Duration Metrics
- To retrieve Droplets 95th percentile HTTP session duration in seconds for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/droplets_http_session_duration_95p`.
- Monitoring
- Get Load Balancer Droplets Average HTTP Session Duration Metrics
- To retrieve Droplets average HTTP session duration in seconds for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/droplets_http_session_duration_avg`.
- Monitoring
- Get Load Balancer Droplets Queue Size Metrics
- To retrieve Droplets queue size for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/droplets_queue_size`.
- Monitoring
- Get Load Balancer Frontend Total Current Active Connections Metrics
- To retrieve frontend total current active connections for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_connections_current`.
- Monitoring
- Get Load Balancer Frontend Max Connections Limit Metrics
- To retrieve frontend max connections limit for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_connections_limit`.
- Monitoring
- Get Load Balancer Frontend Average Percentage CPU Utilization Metrics
- To retrieve frontend average percentage CPU utilization for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_cpu_utilization`.
- Monitoring
- Get Load Balancer Frontend Firewall Dropped Bytes Metrics
- To retrieve firewall dropped bytes for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_firewall_dropped_bytes`. This is currently only supported for network load balancers.
- Monitoring
- Get Load Balancer Frontend Firewall Dropped Packets Metrics
- To retrieve firewall dropped packets per second for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_firewall_dropped_packets`. This is currently only supported for network load balancers.
- Monitoring
- Get Load Balancer Frontend HTTP Requests Metrics
- To retrieve frontend HTTP requests per second for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_http_requests_per_second`.
- Monitoring
- Get Load Balancer Frontend HTTP Rate Of Response Code Metrics
- To retrieve frontend HTTP rate of response code for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_http_responses`.
- Monitoring
- Get Load Balancer Frontend HTTP Throughput Metrics
- To retrieve frontend HTTP throughput in bytes per second for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_network_throughput_http`.
- Monitoring
- Get Load Balancer Frontend TCP Throughput Metrics
- To retrieve frontend TCP throughput in bytes per second for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_network_throughput_tcp`.
- Monitoring
- Get Load Balancer Frontend UDP Throughput Metrics
- To retrieve frontend UDP throughput in bytes per second for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_network_throughput_udp`.
- Monitoring
- Get Network Load Balancer Frontend TCP Throughput Metrics
- To retrieve frontend TCP throughput in bytes per second for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_nlb_tcp_network_throughput`.
- Monitoring
- Get Network Load Balancer Frontend UDP Throughput Metrics
- To retrieve frontend UDP throughput in bytes per second for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_nlb_udp_network_throughput`.
- Monitoring
- Get Load Balancer Frontend Current TLS Connections Rate Metrics
- To retrieve frontend current TLS connections rate for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_tls_connections_current`.
- Monitoring
- Get Load Balancer Frontend Closed TLS Connections For Exceeded Rate Limit Metrics
- To retrieve frontend closed TLS connections for exceeded rate limit for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_tls_connections_exceeding_rate_limit`.
- Monitoring
- Get Load Balancer Frontend Max TLS Connections Limit Metrics
- To retrieve frontend max TLS connections limit for a given load balancer, send a GET request to `/v2/monitoring/metrics/load_balancer/frontend_tls_connections_limit`.
- Monitoring
- Get Sink
- To get the details of a sink (resources and destination), send a GET request to `/v2/monitoring/sinks/${sink_uuid}`.
- Monitoring
- List Alert Policies
- Returns all alert policies that are configured for the given account. To List all alert policies, send a GET request to `/v2/monitoring/alerts`.
- Monitoring
- List Logging Destinations
- To list all logging destinations, send a GET request to `/v2/monitoring/sinks/destinations`.
- Monitoring
- Lists all sinks
- To list all sinks, send a GET request to `/v2/monitoring/sinks`.
- Monitoring
- Update an Alert Policy
- To update en existing policy, send a PUT request to `v2/monitoring/alerts/{alert_uuid}`.
- Monitoring
- Update Logging Destination
- To update the details of a destination, send a PATCH request to `/v2/monitoring/sinks/destinations/${destination_uuid}`.
- Monitoring
- Create a new NFS share
- To create a new NFS share, send a POST request to `/v2/nfs`.
- NFS
- Create an NFS access point
- To create a new access point on an NFS share, send a POST request to `/v2/nfs/shares/{share_id}/access_points`. A successful request will return the newly created access point and an action object. The parent share must be in `ACTIVE` or `INACTIVE` status. Validation failures and precondition errors (such as an ineligible share state) return `400 Bad Request`. Duplicate name or path conflicts return `409 Conflict`.
- NFS
- Initiate an NFS action
- To execute an action (such as resize) on a specified NFS share, send a POST request to `/v2/nfs/{nfs_id}/actions`. In the JSON body to the request, set the `type` attribute to on of the supported action types: | Action | Details | | -------------------------------- | ----------- | | <nobr>`resize`</nobr> | Resizes an NFS share. Set the size_gib attribute to a desired value in GiB | | <nobr>`snapshot`</nobr> | Takes a snapshot of an NFS share | | <nobr>`attach`</nobr> | Attaches an NFS share to a VPC. Set the vpc_id attribute to the desired VPC ID | | <nobr>`detach`</nobr> | Detaches an NFS share from a VPC. Set the vpc_id attribute to the desired VPC ID | | <nobr>`reassign`</nobr> | Reassigns an NFS share from one VPC to another. Set the old_vpc_id and new_vpc_id attributes to the desired VPC IDs | | <nobr>`switch_performance_tier`</nobr> | Switches the performance tier of an NFS share. Set the performance_tier attribute to the desired tier (e.g., standard, high) |
- NFS Actions
- Delete an NFS share
- To delete an NFS share, send a DELETE request to `/v2/nfs/{nfs_id}?region=${region}`. A successful request will return a `204 No Content` status code.
- NFS
- Delete an NFS access point
- To delete an NFS access point, send a DELETE request to `/v2/nfs/access_points/{access_point_id}`. A successful request will soft-delete the access point and return the deleted access point with status `ACCESS_POINT_DELETED` and an action object indicating the delete operation. The default access point (`is_default: true`) cannot be deleted. Access points already in `ACCESS_POINT_DELETED` or `ACCESS_POINT_FAILED` status return `400 Bad Request`.
- NFS
- Delete an NFS snapshot
- To delete an NFS snapshot, send a DELETE request to `/v2/nfs/snapshots/{nfs_snapshot_id}?region=${region}`. A successful request will return a `204 No Content` status code.
- NFS
- Get an NFS share
- To get an NFS share, send a GET request to `/v2/nfs/{nfs_id}?region=${region}`. A successful request will return the NFS share.
- NFS
- Get an NFS access point
- To get an NFS access point, send a GET request to `/v2/nfs/access_points/{access_point_id}`. A successful request will return the NFS access point.
- NFS
- Get an NFS snapshot by ID
- To get an NFS snapshot, send a GET request to `/v2/nfs/snapshots/{nfs_snapshot_id}?region=${region}`. A successful request will return the NFS snapshot.
- NFS
- List NFS shares per region
- To list NFS shares, send a GET request to `/v2/nfs?region=${region}`. A successful request will return all NFS shares belonging to the authenticated user.
- NFS
- List NFS access points for a share
- To list access points for an NFS share, send a GET request to `/v2/nfs/shares/{share_id}/access_points`. You may use query parameters to filter by status. A successful request will return a list of NFS access points ordered with the default access point first, then by `created_at` ascending.
- NFS
- List NFS snapshots per region
- To list all NFS snapshots, send a GET request to `/v2/nfs/snapshots?region=${region}&share_id={share_id}`. A successful request will return all NFS snapshots belonging to the authenticated user in the specified region. Optionally, you can filter snapshots by a specific NFS share by including the `share_id` query parameter.
- NFS
- Install Kubernetes 1-Click Applications
- To install a Kubernetes 1-Click application on a cluster, send a POST request to `/v2/1-clicks/kubernetes`. The `addon_slugs` and `cluster_uuid` must be provided as body parameter in order to specify which 1-Click application(s) to install. To list all available 1-Click Kubernetes applications, send a request to `/v2/1-clicks?type=kubernetes`.
- 1-Click Applications
- List 1-Click Applications
- To list all available 1-Click applications, send a GET request to `/v2/1-clicks`. The `type` may be provided as query paramater in order to restrict results to a certain type of 1-Click, for example: `/v2/1-clicks?type=droplet`. Current supported types are `kubernetes` and `droplet`. The response will be a JSON object with a key called `1_clicks`. This will be set to an array of 1-Click application data, each of which will contain the the slug and type for the 1-Click.
- 1-Click Applications
- Create a new partner attachment
- To create a new partner attachment, send a `POST` request to `/v2/partner_network_connect/attachments` with a JSON object containing the required configuration details.
- Partner Network Connect
- Regenerate the service key for the partner attachment
- This operation generates a new service key for the specified partner attachment. The operation is asynchronous, and the response is an empty JSON object returned with a 202 status code. To poll for the new service key, send a `GET` request to `/v2/partner_network_connect/attachments/{pa_id}/service_key`.
- Partner Network Connect
- Delete an existing partner attachment
- To delete an existing partner attachment, send a `DELETE` request to `/v2/partner_network_connect/attachments/{pa_id}`.
- Partner Network Connect
- Retrieve an existing partner attachment
- To get the details of a partner attachment, send a `GET` request to `/v2/partner_network_connect/attachments/{pa_id}`.
- Partner Network Connect
- Get current BGP auth key for the partner attachment
- To get the current BGP auth key for a partner attachment, send a `GET` request to `/v2/partner_network_connect/attachments/{pa_id}/bgp_auth_key`.
- Partner Network Connect
- Get the current service key for the partner attachment
- To get the current service key for a partner attachment, send a `GET` request to `/v2/partner_network_connect/attachments/{pa_id}/service_key`.
- Partner Network Connect
- List all partner attachments
- To list all of the Partner Attachments on your account, send a `GET` request to `/v2/partner_network_connect/attachments`.
- Partner Network Connect
- List remote routes for a partner attachment
- To list all remote routes associated with a partner attachment, send a `GET` request to `/v2/partner_network_connect/attachments/{pa_id}/remote_routes`.
- Partner Network Connect
- Update an existing partner attachment
- To update an existing partner attachment, send a `PATCH` request to `/v2/partner_network_connect/attachments/{pa_id}` with a JSON object containing the fields to be updated.
- Partner Network Connect
- Assign Resources to a Project
- To assign resources to a project, send a POST request to `/v2/projects/$PROJECT_ID/resources`. You must have both `project:assign_resource` and `<resource>:read` scopes to assign new resources. For example, to assign a Droplet to a project, include both the `project:assign_resource` and `droplet:read` scopes. The `project:update` scope also grants `project:assign_resource`.
- Project Resources
- Assign Resources to Default Project
- To assign resources to your default project, send a POST request to `/v2/projects/default/resources`. You must have both `project:assign_resource` and `<resource>:read` scopes to assign new resources. For example, to assign a Droplet to the default project, include both the `project:assign_resource` and `droplet:read` scopes. The `project:update` scope also grants `project:assign_resource`.
- Project Resources
- Create a Project
- To create a project, send a POST request to `/v2/projects`.
- Projects
- Delete an Existing Project
- To delete a project, send a DELETE request to `/v2/projects/$PROJECT_ID`. To be deleted, a project must not have any resources assigned to it. Any existing resources must first be reassigned or destroyed, or you will receive a 412 error. A successful request will receive a 204 status code with no body in response. This indicates that the request was processed successfully.
- Projects
- Retrieve an Existing Project
- To get a project, send a GET request to `/v2/projects/$PROJECT_ID`.
- Projects
- Retrieve the Default Project
- To get your default project, send a GET request to `/v2/projects/default`.
- Projects
- List All Projects
- To list all your projects, send a GET request to `/v2/projects`.
- Projects
- List Project Resources
- To list all your resources in a project, send a GET request to `/v2/projects/$PROJECT_ID/resources`. This endpoint will only return resources that you are authorized to see. For example, to see Droplets in a project, include the `droplet:read` scope.
- Project Resources
- List Default Project Resources
- To list all your resources in your default project, send a GET request to `/v2/projects/default/resources`. Only resources that you are authorized to see will be returned. For example, to see Droplets in a project, include the `droplet:read` scope.
- Project Resources
- Patch a Project
- To update only specific attributes of a project, send a PATCH request to `/v2/projects/$PROJECT_ID`. At least one of the following attributes needs to be sent.
- Projects
- Patch the Default Project
- To update only specific attributes of your default project, send a PATCH request to `/v2/projects/default`. At least one of the following attributes needs to be sent.
- Projects
- Update a Project
- To update a project, send a PUT request to `/v2/projects/$PROJECT_ID`. All of the following attributes must be sent.
- Projects
- Update the Default Project
- To update you default project, send a PUT request to `/v2/projects/default`. All of the following attributes must be sent.
- Projects
- List All Data Center Regions
- To list all of the regions that are available, send a GET request to `/v2/regions`. The response will be a JSON object with a key called `regions`. The value of this will be an array of `region` objects, each of which will contain the standard region attributes.
- Regions
- Create Container Registry
- To create your container registry, send a POST request to `/v2/registries`. The `name` becomes part of the URL for images stored in the registry. For example, if your registry is called `example`, an image in it will have the URL `registry.digitalocean.com/example/image:tag`.
- Container Registries
- Delete Container Registry By Name
- To delete your container registry, destroying all container image data stored in it, send a DELETE request to `/v2/registries/{registry_name}`.
- Container Registries
- Delete Container Registry Repository
- To delete a container repository including all of its tags, send a DELETE request to `/v2/registries/$REGISTRY_NAME/repositories/$REPOSITORY_NAME`. A successful request will receive a 204 status code with no body in response. This indicates that the request was processed successfully.
- Container Registries
- Delete Container Registry Repository Manifest
- To delete a container repository manifest by digest in one of your registries, send a DELETE request to `/v2/registries/$REGISTRY_NAME/repositories/$REPOSITORY_NAME/digests/$MANIFEST_DIGEST`. Note that if your repository name contains `/` characters, it must be URL-encoded in the request URL. For example, to delete `registry.digitalocean.com/example/my/repo@sha256:abcd`, the path would be `/v2/registry/example/repositories/my%2Frepo/digests/sha256:abcd`. A successful request will receive a 204 status code with no body in response. This indicates that the request was processed successfully. It is similar to DELETE `/v2/registry/$REGISTRY_NAME/repositories/$REPOSITORY_NAME/digests/$MANIFEST_DIGEST`.
- Container Registries
- Delete Container Registry Repository Tag
- To delete a container repository tag in on of our container registries, send a DELETE request to `/v2/registries/$REGISTRY_NAME/repositories/$REPOSITORY_NAME/tags/$TAG`. Note that if your repository name contains `/` characters, it must be URL-encoded in the request URL. For example, to delete `registry.digitalocean.com/example/my/repo:mytag`, the path would be `/v2/registry/example/repositories/my%2Frepo/tags/mytag`. A successful request will receive a 204 status code with no body in response. This indicates that the request was processed successfully. It is similar to DELETE `/v2/registry/$REGISTRY_NAME/repositories/$REPOSITORY_NAME/tags/$TAG`.
- Container Registries
- Get a Container Registry By Name
- To get information about any container registry in your account, send a GET request to `/v2/registries/{registry_name}`.
- Container Registries
- Get Docker Credentials By Registry Name
- In order to access your container registry with the Docker client or from a Kubernetes cluster, you will need to configure authentication. The necessary JSON configuration can be retrieved by sending a GET request to `/v2/registries/{registry_name}/docker-credentials`. The response will be in the format of a Docker `config.json` file. To use the config in your Kubernetes cluster, create a Secret with: kubectl create secret generic docr \ --from-file=.dockerconfigjson=config.json \ --type=kubernetes.io/dockerconfigjson By default, the returned credentials have read-only access to your registry and cannot be used to push images. This is appropriate for most Kubernetes clusters. To retrieve read/write credentials, suitable for use with the Docker client or in a CI system, read_write may be provided as query parameter. For example: `/v2/registries/{registry_name}/docker-credentials?read_write=true` By default, the returned credentials will not expire. To retrieve credentials with an expiry set, expiry_seconds may be provided as a query parameter. For example: `/v2/registries/{registry_name}/docker-credentials?expiry_seconds=3600` will return credentials that expire after one hour.
- Container Registries
- Get Active Garbage Collection
- To get information about the currently-active garbage collection for a registry, send a GET request to `/v2/registry/$REGISTRY_NAME/garbage-collection`.
- Container Registries
- List Registry Options (Subscription Tiers and Available Regions)
- This endpoint serves to provide additional information as to which option values are available when creating a container registry. There are multiple subscription tiers available for container registry. Each tier allows a different number of image repositories to be created in your registry, and has a different amount of storage and transfer included. There are multiple regions available for container registry and controls where your data is stored. To list the available options, send a GET request to `/v2/registries/options`. This is similar to GET `/v2/registry/options`.
- Container Registries
- Get Subscription Information
- A subscription is automatically created when you configure your container registry. To get information about your subscription, send a GET request to `/v2/registries/subscription`. It is similar to GET `/v2/registry/subscription`.
- Container Registries
- List All Container Registries
- To get information about any container registry in your account, send a GET request to `/v2/registries/`.
- Container Registries
- List Garbage Collections
- To get information about past garbage collections for a registry, send a GET request to `/v2/registry/$REGISTRY_NAME/garbage-collections`.
- Container Registries
- List All Container Registry Repositories (V2)
- To list all repositories in your container registry, send a GET request to `/v2/registries/$REGISTRY_NAME/repositoriesV2`. It is similar to GET `/v2/registry/$REGISTRY_NAME/repositoriesV2`.
- Container Registries
- List All Container Registry Repository Manifests
- To list all manifests in your container registry repository, send a GET request to `/v2/registries/$REGISTRY_NAME/repositories/$REPOSITORY_NAME/digests`. Note that if your repository name contains `/` characters, it must be URL-encoded in the request URL. For example, to list manifests for `registry.digitalocean.com/example/my/repo`, the path would be `/v2/registry/example/repositories/my%2Frepo/digests`. It is similar to `/v2/registry/$REGISTRY_NAME/repositories/$REPOSITORY_NAME/digests`.
- Container Registries
- List All Container Registry Repository Tags
- To list all tags in one of your container registry's repository, send a GET request to `/v2/registries/$REGISTRY_NAME/repositories/$REPOSITORY_NAME/tags`. Note that if your repository name contains `/` characters, it must be URL-encoded in the request URL. For example, to list tags for `registry.digitalocean.com/example/my/repo`, the path would be `/v2/registry/example/repositories/my%2Frepo/tags`. It is similar to GET `/v2/registry/$REGISTRY_NAME/repositories/$REPOSITORY_NAME/tags`.
- Container Registries
- Start Garbage Collection
- Garbage collection enables users to clear out unreferenced blobs (layer & manifest data) after deleting one or more manifests from a repository. If there are no unreferenced blobs resulting from the deletion of one or more manifests, garbage collection is effectively a noop. [See here for more information](https://docs.digitalocean.com/products/container-registry/how-to/clean-up-container-registry/) about how and why you should clean up your container registry periodically. To request a garbage collection run on your registry, send a POST request to `/v2/registries/$REGISTRY_NAME/garbage-collection`. This will initiate the following sequence of events on your registry. * Set the registry to read-only mode, meaning no further write-scoped JWTs will be issued to registry clients. Existing write-scoped JWTs will continue to work until they expire which can take up to 15 minutes. * Wait until all existing write-scoped JWTs have expired. * Scan all registry manifests to determine which blobs are unreferenced. * Delete all unreferenced blobs from the registry. * Record the number of blobs deleted and bytes freed, mark the garbage collection status as `success`. * Remove the read-only mode restriction from the registry, meaning write-scoped JWTs will once again be issued to registry clients.
- Container Registries
- Update Garbage Collection
- To cancel the currently-active garbage collection for a registry, send a PUT request to `/v2/registries/$REGISTRY_NAME/garbage-collection/$GC_UUID` and specify one or more of the attributes below. It is similar to PUT `/v2/registries/$REGISTRY_NAME/garbage-collection/$GC_UUID`.
- Container Registries
- Update Subscription Tier
- After creating your registry, you can switch to a different subscription tier to better suit your needs. To do this, send a POST request to `/v2/registries/subscription`. It is similar to POST `/v2/registry/subscription`.
- Container Registries
- Validate a Container Registry Name
- To validate that a container registry name is available for use, send a POST request to `/v2/registries/validate-name`. If the name is both formatted correctly and available, the response code will be 204 and contain no body. If the name is already in use, the response will be a 409 Conflict. It is similar to `/v2/registry/validate-name`.
- Container Registries
- Create Container Registry
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** To create your container registry, send a POST request to `/v2/registry`. The `name` becomes part of the URL for images stored in the registry. For example, if your registry is called `example`, an image in it will have the URL `registry.digitalocean.com/example/image:tag`.
- Container Registry
- Delete Container Registry
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** To delete your container registry, destroying all container image data stored in it, send a DELETE request to `/v2/registry`. This operation is not compatible with multiple registries in a DO account. You should use `/v2/registries/{registry_name}` instead.
- Container Registry
- Delete Container Registry Repository Manifest
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** To delete a container repository manifest by digest, send a DELETE request to `/v2/registry/$REGISTRY_NAME/repositories/$REPOSITORY_NAME/digests/$MANIFEST_DIGEST`. Note that if your repository name contains `/` characters, it must be URL-encoded in the request URL. For example, to delete `registry.digitalocean.com/example/my/repo@sha256:abcd`, the path would be `/v2/registry/example/repositories/my%2Frepo/digests/sha256:abcd`. A successful request will receive a 204 status code with no body in response. This indicates that the request was processed successfully.
- Container Registry
- Delete Container Registry Repository Tag
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** To delete a container repository tag, send a DELETE request to `/v2/registry/$REGISTRY_NAME/repositories/$REPOSITORY_NAME/tags/$TAG`. Note that if your repository name contains `/` characters, it must be URL-encoded in the request URL. For example, to delete `registry.digitalocean.com/example/my/repo:mytag`, the path would be `/v2/registry/example/repositories/my%2Frepo/tags/mytag`. A successful request will receive a 204 status code with no body in response. This indicates that the request was processed successfully.
- Container Registry
- Get Container Registry Information
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** To get information about your container registry, send a GET request to `/v2/registry`. This operation is not compatible with multiple registries in a DO account. You should use `/v2/registries/{registry_name}` instead.
- Container Registry
- Get Docker Credentials for Container Registry
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** In order to access your container registry with the Docker client or from a Kubernetes cluster, you will need to configure authentication. The necessary JSON configuration can be retrieved by sending a GET request to `/v2/registry/docker-credentials`. The response will be in the format of a Docker `config.json` file. To use the config in your Kubernetes cluster, create a Secret with: kubectl create secret generic docr \ --from-file=.dockerconfigjson=config.json \ --type=kubernetes.io/dockerconfigjson By default, the returned credentials have read-only access to your registry and cannot be used to push images. This is appropriate for most Kubernetes clusters. To retrieve read/write credentials, suitable for use with the Docker client or in a CI system, read_write may be provided as query parameter. For example: `/v2/registry/docker-credentials?read_write=true` By default, the returned credentials will not expire. To retrieve credentials with an expiry set, expiry_seconds may be provided as a query parameter. For example: `/v2/registry/docker-credentials?expiry_seconds=3600` will return credentials that expire after one hour.
- Container Registry
- Get Active Garbage Collection
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** To get information about the currently-active garbage collection for a registry, send a GET request to `/v2/registry/$REGISTRY_NAME/garbage-collection`.
- Container Registry
- List Registry Options (Subscription Tiers and Available Regions)
- **Note: This endpoint is deprecated and may be removed in a future version. There is no alternative.****Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** This endpoint serves to provide additional information as to which option values are available when creating a container registry. There are multiple subscription tiers available for container registry. Each tier allows a different number of image repositories to be created in your registry, and has a different amount of storage and transfer included. There are multiple regions available for container registry and controls where your data is stored. To list the available options, send a GET request to `/v2/registry/options`.
- Container Registry
- Get Subscription
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** A subscription is automatically created when you configure your container registry. To get information about your subscription, send a GET request to `/v2/registry/subscription`.
- Container Registry
- List Garbage Collections
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** To get information about past garbage collections for a registry, send a GET request to `/v2/registry/$REGISTRY_NAME/garbage-collections`.
- Container Registry
- List All Container Registry Repositories
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** This endpoint has been deprecated in favor of the _List All Container Registry Repositories [V2]_ endpoint. To list all repositories in your container registry, send a GET request to `/v2/registry/$REGISTRY_NAME/repositories`.
- Container Registry
- List All Container Registry Repositories (V2)
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** To list all repositories in your container registry, send a GET request to `/v2/registry/$REGISTRY_NAME/repositoriesV2`.
- Container Registry
- List All Container Registry Repository Manifests
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** To list all manifests in your container registry repository, send a GET request to `/v2/registry/$REGISTRY_NAME/repositories/$REPOSITORY_NAME/digests`. Note that if your repository name contains `/` characters, it must be URL-encoded in the request URL. For example, to list manifests for `registry.digitalocean.com/example/my/repo`, the path would be `/v2/registry/example/repositories/my%2Frepo/digests`.
- Container Registry
- List All Container Registry Repository Tags
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** To list all tags in your container registry repository, send a GET request to `/v2/registry/$REGISTRY_NAME/repositories/$REPOSITORY_NAME/tags`. Note that if your repository name contains `/` characters, it must be URL-encoded in the request URL. For example, to list tags for `registry.digitalocean.com/example/my/repo`, the path would be `/v2/registry/example/repositories/my%2Frepo/tags`.
- Container Registry
- Start Garbage Collection
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** Garbage collection enables users to clear out unreferenced blobs (layer & manifest data) after deleting one or more manifests from a repository. If there are no unreferenced blobs resulting from the deletion of one or more manifests, garbage collection is effectively a noop. [See here for more information](https://docs.digitalocean.com/products/container-registry/how-to/clean-up-container-registry/) about how and why you should clean up your container registry periodically. To request a garbage collection run on your registry, send a POST request to `/v2/registry/$REGISTRY_NAME/garbage-collection`. This will initiate the following sequence of events on your registry. * Set the registry to read-only mode, meaning no further write-scoped JWTs will be issued to registry clients. Existing write-scoped JWTs will continue to work until they expire which can take up to 15 minutes. * Wait until all existing write-scoped JWTs have expired. * Scan all registry manifests to determine which blobs are unreferenced. * Delete all unreferenced blobs from the registry. * Record the number of blobs deleted and bytes freed, mark the garbage collection status as `success`. * Remove the read-only mode restriction from the registry, meaning write-scoped JWTs will once again be issued to registry clients.
- Container Registry
- Update Garbage Collection
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** To cancel the currently-active garbage collection for a registry, send a PUT request to `/v2/registry/$REGISTRY_NAME/garbage-collection/$GC_UUID` and specify one or more of the attributes below.
- Container Registry
- Update Subscription Tier
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** After creating your registry, you can switch to a different subscription tier to better suit your needs. To do this, send a POST request to `/v2/registry/subscription`.
- Container Registry
- Validate a Container Registry Name
- **Note: This endpoint is deprecated. Please use the `/v2/registries` endpoint instead.** To validate that a container registry name is available for use, send a POST request to `/v2/registry/validate-name`. If the name is both formatted correctly and available, the response code will be 204 and contain no body. If the name is already in use, the response will be a 409 Conflict.
- Container Registry
- Retrieve an Existing Reserved IP Action
- To retrieve the status of a reserved IP action, send a GET request to `/v2/reserved_ips/$RESERVED_IP/actions/$ACTION_ID`.
- Reserved IP Actions
- List All Actions for a Reserved IP
- To retrieve all actions that have been executed on a reserved IP, send a GET request to `/v2/reserved_ips/$RESERVED_IP/actions`.
- Reserved IP Actions
- Initiate a Reserved IP Action
- To initiate an action on a reserved IP send a POST request to `/v2/reserved_ips/$RESERVED_IP/actions`. In the JSON body to the request, set the `type` attribute to on of the supported action types: | Action | Details |------------|-------- | `assign` | Assigns a reserved IP to a Droplet | `unassign` | Unassign a reserved IP from a Droplet
- Reserved IP Actions
- Create a New Reserved IP
- On creation, a reserved IP must be either assigned to a Droplet or reserved to a region. * To create a new reserved IP assigned to a Droplet, send a POST request to `/v2/reserved_ips` with the `droplet_id` attribute. * To create a new reserved IP reserved to a region, send a POST request to `/v2/reserved_ips` with the `region` attribute.
- Reserved IPs
- Delete a Reserved IP
- To delete a reserved IP and remove it from your account, send a DELETE request to `/v2/reserved_ips/$RESERVED_IP_ADDR`. A successful request will receive a 204 status code with no body in response. This indicates that the request was processed successfully.
- Reserved IPs
- Retrieve an Existing Reserved IP
- To show information about a reserved IP, send a GET request to `/v2/reserved_ips/$RESERVED_IP_ADDR`.
- Reserved IPs
- List All Reserved IPs
- To list all of the reserved IPs available on your account, send a GET request to `/v2/reserved_ips`.
- Reserved IPs
- Initiate a Reserved IPv6 Action
- To initiate an action on a reserved IPv6 send a POST request to `/v2/reserved_ipv6/$RESERVED_IPV6/actions`. In the JSON body to the request, set the `type` attribute to on of the supported action types: | Action | Details |------------|-------- | `assign` | Assigns a reserved IPv6 to a Droplet | `unassign` | Unassign a reserved IPv6 from a Droplet
- Reserved IPv6 Actions
- Create a New Reserved IPv6
- On creation, a reserved IPv6 must be reserved to a region. * To create a new reserved IPv6 reserved to a region, send a POST request to `/v2/reserved_ipv6` with the `region_slug` attribute.
- Reserved IPv6
- Delete a Reserved IPv6
- To delete a reserved IP and remove it from your account, send a DELETE request to `/v2/reserved_ipv6/$RESERVED_IPV6`. A successful request will receive a 204 status code with no body in response. This indicates that the request was processed successfully.
- Reserved IPv6
- Retrieve an Existing Reserved IPv6
- To show information about a reserved IPv6, send a GET request to `/v2/reserved_ipv6/$RESERVED_IPV6`.
- Reserved IPv6
- List All Reserved IPv6s
- To list all of the reserved IPv6s available on your account, send a GET request to `/v2/reserved_ipv6`.
- Reserved IPv6
- Create Scan
- To create a CSPM scan, send a POST request to `/v2/security/scans`.
- Security
- Create Scan Rule
- To mark a scan finding as a false positive, send a POST request to `/v2/security/scans/rules` to create a new scan rule.
- Security
- Create Secret
- To create a secret, send a POST request to `/v2/security/secrets`.
- Security
- Create Suppression
- To suppress scan findings, send a POST request to `/v2/security/settings/suppressions`.
- Security
- Delete Secret
- To request deletion of a secret, send a DELETE request to `/v2/security/secrets/{secret}`.
- Security
- Delete Suppression
- To remove a suppression, send a DELETE request to `/v2/security/settings/suppressions/{suppression_uuid}`.
- Security
- Get Latest Scan
- To get the latest CSPM scan, send a GET request to `/v2/security/scans/latest`.
- Security
- Get Scan
- To get a CSPM scan by ID, send a GET request to `/v2/security/scans/{scan_id}`.
- Security
- Get Secret
- To retrieve a secret and its values, send a GET request to `/v2/security/secrets/{secret}`.
- Security
- List Finding Affected Resources
- To get affected resources for a scan finding, send a GET request to `/v2/security/scans/{scan_id}/findings/{finding_uuid}/affected_resources`.
- Security
- List Scans
- To list all CSPM scans, send a GET request to `/v2/security/scans`.
- Security
- List Secret Versions
- To list all versions of a secret, send a GET request to `/v2/security/secrets/{secret}/versions`.
- Security
- List Secrets
- To list secrets across all configured regions, send a GET request to `/v2/security/secrets`.
- Security
- List Settings
- To list CSPM scan settings, send a GET request to `/v2/security/settings`.
- Security
- Restore Secret
- To restore a deleted secret, send a POST request to `/v2/security/secrets/{secret}/restore`.
- Security
- Update Secret
- To update a secret, send a PUT request to `/v2/security/secrets/{secret}`.
- Security
- Update Plan
- To update CSPM plan coverage, send a PUT request to `/v2/security/settings/plan`.
- Security
- List All Droplet Sizes
- To list all of available Droplet sizes, send a GET request to `/v2/sizes`. The response will be a JSON object with a key called `sizes`. The value of this will be an array of `size` objects each of which contain the standard size attributes.
- Sizes
- Delete a Snapshot
- Both Droplet and volume snapshots are managed through the `/v2/snapshots/` endpoint. To delete a snapshot, send a DELETE request to `/v2/snapshots/$SNAPSHOT_ID`. A status of 204 will be given. This indicates that the request was processed successfully, but that no response body is needed.
- Snapshots
- Retrieve an Existing Snapshot
- To retrieve information about a snapshot, send a GET request to `/v2/snapshots/$SNAPSHOT_ID`. The response will be a JSON object with a key called `snapshot`. The value of this will be an snapshot object containing the standard snapshot attributes.
- Snapshots
- List All Snapshots
- To list all of the snapshots available on your account, send a GET request to `/v2/snapshots`. The response will be a JSON object with a key called `snapshots`. This will be set to an array of `snapshot` objects, each of which will contain the standard snapshot attributes. ### Filtering Results by Resource Type It's possible to request filtered results by including certain query parameters. #### List Droplet Snapshots To retrieve only snapshots based on Droplets, include the `resource_type` query parameter set to `droplet`. For example, `/v2/snapshots?resource_type=droplet`. #### List Volume Snapshots To retrieve only snapshots based on volumes, include the `resource_type` query parameter set to `volume`. For example, `/v2/snapshots?resource_type=volume`.
- Snapshots
- Create a New Spaces Access Key
- To create a new Spaces Access Key, send a POST request to `/v2/spaces/keys`. At the moment, you cannot mix a fullaccess permission with scoped permissions. A fullaccess permission will be prioritized if fullaccess and scoped permissions are both added.
- Spaces Keys
- Delete a Spaces Access Key
- To delete a Spaces Access Key, send a DELETE request to `/v2/spaces/keys/$ACCESS_KEY`. A successful request will return a `204 No Content` status code.
- Spaces Keys
- Get a Spaces Access Key
- To get a Spaces Access Key, send a GET request to `/v2/spaces/keys/$ACCESS_KEY`. A successful request will return the Access Key.
- Spaces Keys
- List Spaces Access Keys
- To list Spaces Access Key, send a GET request to `/v2/spaces/keys`. Sort parameter must be used with Sort Direction.
- Spaces Keys
- Update Spaces Access Keys
- To update Spaces Access Key, send a PUT or PATCH request to `/v2/spaces/keys/$ACCESS_KEY`. At the moment, you cannot convert a fullaccess key to a scoped key or vice versa. You can only update the name of the key.
- Spaces Keys
- Update Spaces Access Keys
- To update Spaces Access Key, send a PUT or PATCH request to `/v2/spaces/keys/$ACCESS_KEY`. At the moment, you cannot convert a fullaccess key to a scoped key or vice versa. You can only update the name of the key.
- Spaces Keys
- Create a New SSH Key
- To add a new SSH public key to your DigitalOcean account, send a POST request to `/v2/account/keys`. Set the `name` attribute to the name you wish to use and the `public_key` attribute to the full public key you are adding.
- SSH Keys
- Delete an SSH Key
- To destroy a public SSH key that you have in your account, send a DELETE request to `/v2/account/keys/$KEY_ID` or `/v2/account/keys/$KEY_FINGERPRINT`. A 204 status will be returned, indicating that the action was successful and that the response body is empty.
- SSH Keys
- Retrieve an Existing SSH Key
- To get information about a key, send a GET request to `/v2/account/keys/$KEY_ID` or `/v2/account/keys/$KEY_FINGERPRINT`. The response will be a JSON object with the key `ssh_key` and value an ssh_key object which contains the standard ssh_key attributes.
- SSH Keys
- List All SSH Keys
- To list all of the keys in your account, send a GET request to `/v2/account/keys`. The response will be a JSON object with a key set to `ssh_keys`. The value of this will be an array of ssh_key objects, each of which contains the standard ssh_key attributes.
- SSH Keys
- Update an SSH Key's Name
- To update the name of an SSH key, send a PUT request to either `/v2/account/keys/$SSH_KEY_ID` or `/v2/account/keys/$SSH_KEY_FINGERPRINT`. Set the `name` attribute to the new name you want to use.
- SSH Keys
- Tag a Resource
- Resources can be tagged by sending a POST request to `/v2/tags/$TAG_NAME/resources` with an array of json objects containing `resource_id` and `resource_type` attributes. Currently only tagging of Droplets, Databases, Images, Volumes, and Volume Snapshots is supported. `resource_type` is expected to be the string `droplet`, `database`, `image`, `volume` or `volume_snapshot`. `resource_id` is expected to be the ID of the resource as a string. In order to tag a resource, you must have both `tag:create` and `<resource type>:update` scopes. For example, to tag a Droplet, you must have `tag:create` and `droplet:update`.
- Tags
- Create a New Tag
- To create a tag you can send a POST request to `/v2/tags` with a `name` attribute.
- Tags
- Delete a Tag
- A tag can be deleted by sending a `DELETE` request to `/v2/tags/$TAG_NAME`. Deleting a tag also untags all the resources that have previously been tagged by the Tag
- Tags
- Retrieve a Tag
- To retrieve an individual tag, you can send a `GET` request to `/v2/tags/$TAG_NAME`. This endpoint will only return tagged resources that you are authorized to see. For example, to see tagged Droplets, include the `droplet:read` scope.
- Tags
- List All Tags
- To list all of your tags, you can send a GET request to `/v2/tags`. This endpoint will only return tagged resources that you are authorized to see (e.g. Droplets will only be returned if you have `droplet:read`).
- Tags
- Untag a Resource
- Resources can be untagged by sending a DELETE request to `/v2/tags/$TAG_NAME/resources` with an array of json objects containing `resource_id` and `resource_type` attributes. Currently only untagging of Droplets, Databases, Images, Volumes, and Volume Snapshots is supported. `resource_type` is expected to be the string `droplet`, `database`, `image`, `volume` or `volume_snapshot`. `resource_id` is expected to be the ID of the resource as a string. In order to untag a resource, you must have both `tag:delete` and `<resource type>:update` scopes. For example, to untag a Droplet, you must have `tag:delete` and `droplet:update`.
- Tags
- Create a New Alert
- To create an Uptime alert, send a POST request to `/v2/uptime/checks/$CHECK_ID/alerts` specifying the attributes in the table below in the JSON body.
- Uptime
- Create a New Check
- To create an Uptime check, send a POST request to `/v2/uptime/checks` specifying the attributes in the table below in the JSON body.
- Uptime
- Delete an Alert
- To delete an Uptime alert, send a DELETE request to `/v2/uptime/checks/$CHECK_ID/alerts/$ALERT_ID`. A 204 status code with no body will be returned in response to a successful request.
- Uptime
- Delete a Check
- To delete an Uptime check, send a DELETE request to `/v2/uptime/checks/$CHECK_ID`. A 204 status code with no body will be returned in response to a successful request. Deleting a check will also delete alerts associated with the check.
- Uptime
- Retrieve an Existing Alert
- To show information about an existing alert, send a GET request to `/v2/uptime/checks/$CHECK_ID/alerts/$ALERT_ID`.
- Uptime
- Retrieve an Existing Check
- To show information about an existing check, send a GET request to `/v2/uptime/checks/$CHECK_ID`.
- Uptime
- Retrieve Check State
- To show information about an existing check's state, send a GET request to `/v2/uptime/checks/$CHECK_ID/state`.
- Uptime
- List All Alerts
- To list all of the alerts for an Uptime check, send a GET request to `/v2/uptime/checks/$CHECK_ID/alerts`.
- Uptime
- List All Checks
- To list all of the Uptime checks on your account, send a GET request to `/v2/uptime/checks`.
- Uptime
- Update an Alert
- To update the settings of an Uptime alert, send a PUT request to `/v2/uptime/checks/$CHECK_ID/alerts/$ALERT_ID`.
- Uptime
- Update a Check
- To update the settings of an Uptime check, send a PUT request to `/v2/uptime/checks/$CHECK_ID`.
- Uptime
- Create a New Vector Database
- To create a vector database, send a POST request to `/v2/vector-databases`. The response body contains a JSON object with a `vector_db` key holding the newly created database. Its initial `status` is `creating` and changes to `active` once the database is ready to receive traffic.
- Vector Databases
- Delete a Vector Database
- To delete a vector database, send a DELETE request to `/v2/vector-databases/{id}`. Deleting a vector database is irreversible and destroys the underlying instance along with its data.
- Vector Databases
- Retrieve an Existing Vector Database
- To show information about an existing vector database, send a GET request to `/v2/vector-databases/{id}`. The response body contains a JSON object with a `vector_db` key holding the standard vector database attributes, including an embedded `endpoints` object with the connection information needed to access the database.
- Vector Databases
- Retrieve Admin Credentials for a Vector Database
- To retrieve the admin credentials for a vector database, send a GET request to `/v2/vector-databases/{id}/credentials`. The response body contains the `user_id` and `api_token` for the admin user provisioned on the cluster.
- Vector Databases
- Retrieve the Status of a Restore
- To check the status of a restore operation, send a GET request to `/v2/vector-databases/{id}/backups/{backup_id}/restore`. The response body contains the current status of the restore.
- Vector Databases
- List All Vector Databases
- To list all of the vector databases on your account, send a GET request to `/v2/vector-databases`. Use the `page` and `per_page` query parameters to paginate the results. The response body contains a `vector_dbs` array of vector database objects and a `total` field with the overall count.
- Vector Databases
- List Backups for a Vector Database
- To list the available backups for a vector database, send a GET request to `/v2/vector-databases/{id}/backups`. Only backups with a status of `SUCCESS` are returned.
- Vector Databases
- Resize a Vector Database
- To resize a vector database, send a POST request to `/v2/vector-databases/{id}/resize`. This changes the database's resource tier. The response body contains a JSON object with the updated vector database.
- Vector Databases
- Restore a Vector Database from a Backup
- To restore a vector database from a backup, send a POST request to `/v2/vector-databases/{id}/backups/{backup_id}/restore`. The restore runs asynchronously; use the restore-status endpoint to monitor its progress.
- Vector Databases
- Update a Vector Database
- To update an existing vector database, send a PUT request to `/v2/vector-databases/{id}`. The response body contains a JSON object with a `vector_db` key holding the updated vector database.
- Vector Databases
- Update Tags on a Vector Database
- To update the tags on a vector database, send a PUT request to `/v2/vector-databases/{id}/tags`. The supplied set of tags replaces the database's existing tags.
- Vector Databases
- Retrieve an Existing Volume Action
- To retrieve the status of a volume action, send a GET request to `/v2/volumes/$VOLUME_ID/actions/$ACTION_ID`.
- Block Storage Actions
- List All Actions for a Volume
- To retrieve all actions that have been executed on a volume, send a GET request to `/v2/volumes/$VOLUME_ID/actions`.
- Block Storage Actions
- Initiate A Block Storage Action By Volume Name
- To initiate an action on a block storage volume by Name, send a POST request to `~/v2/volumes/actions`. The body should contain the appropriate attributes for the respective action. ## Attach a Block Storage Volume to a Droplet | Attribute | Details | | ----------- | ------------------------------------------------------------------- | | type | This must be `attach` | | volume_name | The name of the block storage volume | | droplet_id | Set to the Droplet's ID | | region | Set to the slug representing the region where the volume is located | Each volume may only be attached to a single Droplet. However, up to fifteen volumes may be attached to a Droplet at a time. Pre-formatted volumes will be automatically mounted to Ubuntu, Debian, Fedora, Fedora Atomic, and CentOS Droplets created on or after April 26, 2018 when attached. On older Droplets, [additional configuration](https://docs.digitalocean.com/products/volumes/how-to/mount/) is required. ## Remove a Block Storage Volume from a Droplet | Attribute | Details | | ----------- | ------------------------------------------------------------------- | | type | This must be `detach` | | volume_name | The name of the block storage volume | | droplet_id | Set to the Droplet's ID | | region | Set to the slug representing the region where the volume is located |
- Block Storage Actions
- Initiate A Block Storage Action By Volume Id
- To initiate an action on a block storage volume by Id, send a POST request to `~/v2/volumes/$VOLUME_ID/actions`. The body should contain the appropriate attributes for the respective action. ## Attach a Block Storage Volume to a Droplet | Attribute | Details | | ---------- | ------------------------------------------------------------------- | | type | This must be `attach` | | droplet_id | Set to the Droplet's ID | | region | Set to the slug representing the region where the volume is located | Each volume may only be attached to a single Droplet. However, up to fifteen volumes may be attached to a Droplet at a time. Pre-formatted volumes will be automatically mounted to Ubuntu, Debian, Fedora, Fedora Atomic, and CentOS Droplets created on or after April 26, 2018 when attached. On older Droplets, [additional configuration](https://docs.digitalocean.com/products/volumes/how-to/mount/) is required. ## Remove a Block Storage Volume from a Droplet | Attribute | Details | | ---------- | ------------------------------------------------------------------- | | type | This must be `detach` | | droplet_id | Set to the Droplet's ID | | region | Set to the slug representing the region where the volume is located | ## Resize a Volume | Attribute | Details | | -------------- | ------------------------------------------------------------------- | | type | This must be `resize` | | size_gigabytes | The new size of the block storage volume in GiB (1024^3) | | region | Set to the slug representing the region where the volume is located | Volumes may only be resized upwards. The maximum size for a volume is 16TiB.
- Block Storage Actions
- Create Snapshot from a Volume
- To create a snapshot from a volume, sent a POST request to `/v2/volumes/$VOLUME_ID/snapshots`.
- Block Storage
- Delete a Volume Snapshot
- To delete a volume snapshot, send a DELETE request to `/v2/volumes/snapshots/$VOLUME_SNAPSHOT_ID`. A status of 204 will be given. This indicates that the request was processed successfully, but that no response body is needed.
- Block Storage
- Retrieve an Existing Volume Snapshot
- To retrieve the details of a snapshot that has been created from a volume, send a GET request to `/v2/volumes/snapshots/$VOLUME_SNAPSHOT_ID`.
- Block Storage
- List Snapshots for a Volume
- To retrieve the snapshots that have been created from a volume, send a GET request to `/v2/volumes/$VOLUME_ID/snapshots`.
- Block Storage
- Create a New Block Storage Volume
- To create a new volume, send a POST request to `/v2/volumes`. Optionally, a `filesystem_type` attribute may be provided in order to automatically format the volume's filesystem. Pre-formatted volumes are automatically mounted when attached to Ubuntu, Debian, Fedora, Fedora Atomic, and CentOS Droplets created on or after April 26, 2018. Attaching pre-formatted volumes to Droplets without support for auto-mounting is not recommended.
- Block Storage
- Delete a Block Storage Volume
- To delete a block storage volume, destroying all data and removing it from your account, send a DELETE request to `/v2/volumes/$VOLUME_ID`. No response body will be sent back, but the response code will indicate success. Specifically, the response code will be a 204, which means that the action was successful with no returned body data.
- Block Storage
- Delete a Block Storage Volume by Name
- Block storage volumes may also be deleted by name by sending a DELETE request with the volume's **name** and the **region slug** for the region it is located in as query parameters to `/v2/volumes?name=$VOLUME_NAME®ion=nyc1`. No response body will be sent back, but the response code will indicate success. Specifically, the response code will be a 204, which means that the action was successful with no returned body data.
- Block Storage
- Retrieve an Existing Block Storage Volume
- To show information about a block storage volume, send a GET request to `/v2/volumes/$VOLUME_ID`.
- Block Storage
- List All Block Storage Volumes
- To list all of the block storage volumes available on your account, send a GET request to `/v2/volumes`. ## Filtering Results ### By Region The `region` may be provided as query parameter in order to restrict results to volumes available in a specific region. For example: `/v2/volumes?region=nyc1` ### By Name It is also possible to list volumes on your account that match a specified name. To do so, send a GET request with the volume's name as a query parameter to `/v2/volumes?name=$VOLUME_NAME`. **Note:** You can only create one volume per region with the same name. ### By Name and Region It is also possible to retrieve information about a block storage volume by name. To do so, send a GET request with the volume's name and the region slug for the region it is located in as query parameters to `/v2/volumes?name=$VOLUME_NAME®ion=nyc1`.
- Block Storage
- Create a New VPC Peering
- To create a new VPC Peering, send a POST request to `/v2/vpc_peerings` specifying a name and a list of two VPC IDs to peer. The response code, 202 Accepted, does not indicate the success or failure of the operation, just that the request has been accepted for processing.
- VPC Peerings
- Delete a VPC peering
- To delete a VPC peering, send a DELETE request to `/v2/vpc_peerings/$VPC_PEERING_ID`.
- VPC Peerings
- Retrieve an Existing VPC Peering
- To show information about an existing VPC Peering, send a GET request to `/v2/vpc_peerings/$VPC_PEERING_ID`.
- VPC Peerings
- List All VPC Peerings
- To list all of the VPC peerings on your account, send a GET request to `/v2/vpc_peerings`.
- VPC Peerings
- Update a VPC peering
- To update the name of a VPC peering, send a PATCH request to `/v2/vpc_peerings/$VPC_PEERING_ID` with the new `name` in the request body.
- VPC Peerings
- Create a New VPC NAT Gateway
- To create a new VPC NAT gateway, send a POST request to `/v2/vpc_nat_gateways` setting the required attributes. The response body will contain a JSON object with a key called `vpc_nat_gateway` containing the standard attributes for the new VPC NAT gateway.
- VPC NAT Gateways
- Delete VPC NAT Gateway
- To destroy a VPC NAT Gateway, send a DELETE request to the `/v2/vpc_nat_gateways/$VPC_NAT_GATEWAY_ID` endpoint. A successful response will include a 202 response code and no content.
- VPC NAT Gateways
- Retrieve an Existing VPC NAT Gateway
- To show information about an individual VPC NAT gateway, send a GET request to `/v2/vpc_nat_gateways/$VPC_NAT_GATEWAY_ID`.
- VPC NAT Gateways
- List All VPC NAT Gateways
- To list all VPC NAT gateways in your team, send a GET request to `/v2/vpc_nat_gateways`. The response body will be a JSON object with a key of `vpc_nat_gateways` containing an array of VPC NAT gateway objects. These each contain the standard VPC NAT gateway attributes.
- VPC NAT Gateways
- Update VPC NAT Gateway
- To update the configuration of an existing VPC NAT Gateway, send a PUT request to `/v2/vpc_nat_gateways/$VPC_NAT_GATEWAY_ID`. The request must contain a full representation of the VPC NAT Gateway including existing attributes.
- VPC NAT Gateways
- Create a New VPC
- To create a VPC, send a POST request to `/v2/vpcs` specifying the attributes in the table below in the JSON body. **Note:** If you do not currently have a VPC network in a specific datacenter region, the first one that you create will be set as the default for that region. The default VPC for a region cannot be changed or deleted.
- VPCs
- Create a Peering with a VPC
- To create a new VPC peering for a given VPC, send a POST request to `/v2/vpcs/$VPC_ID/peerings`.
- VPCs
- Delete a VPC
- To delete a VPC, send a DELETE request to `/v2/vpcs/$VPC_ID`. A 204 status code with no body will be returned in response to a successful request. The default VPC for a region can not be deleted. Additionally, a VPC can only be deleted if it does not contain any member resources. Attempting to delete a region's default VPC or a VPC that still has members will result in a 403 Forbidden error response.
- VPCs
- Retrieve an Existing VPC
- To show information about an existing VPC, send a GET request to `/v2/vpcs/$VPC_ID`.
- VPCs
- List All VPCs
- To list all of the VPCs on your account, send a GET request to `/v2/vpcs`.
- VPCs
- List the Member Resources of a VPC
- To list all of the resources that are members of a VPC, send a GET request to `/v2/vpcs/$VPC_ID/members`. To only list resources of a specific type that are members of the VPC, included a `resource_type` query parameter. For example, to only list Droplets in the VPC, send a GET request to `/v2/vpcs/$VPC_ID/members?resource_type=droplet`. Only resources that you are authorized to see will be returned (e.g. to see Droplets, you must have `droplet:read`).
- VPCs
- List the Peerings of a VPC
- To list all of a VPC's peerings, send a GET request to `/v2/vpcs/$VPC_ID/peerings`.
- VPCs
- Partially Update a VPC
- To update a subset of information about a VPC, send a PATCH request to `/v2/vpcs/$VPC_ID`.
- VPCs
- Update a VPC Peering
- To update the name of a VPC peering in a particular VPC, send a PATCH request to `/v2/vpcs/$VPC_ID/peerings/$VPC_PEERING_ID` with the new `name` in the request body.
- VPCs
- Update a VPC
- To update information about a VPC, send a PUT request to `/v2/vpcs/$VPC_ID`.
- VPCs
DigitalOcean integration, answered
- How do AI agents use DigitalOcean through Open Connector?
- Your user connects DigitalOcean once with one of its cataloged authentication methods. Open Connector stores the credential in an encrypted vault and exposes DigitalOcean tools to your agent over MCP or a typed API, with credentials injected server-side on each call.
- Is this a DigitalOcean MCP server?
- Yes. Open Connector can serve DigitalOcean as a named MCP server with a scoped allowlist and a per-user connection URL, so any MCP client can call DigitalOcean actions with credentials injected server-side.
- Where do DigitalOcean credentials live?
- In your own infrastructure. Open Connector keeps credentials in its own vault and injects them at call time, so they never leave your environment.
Give your agents DigitalOcean — keep the keys.
Open source, self-hostable, with DigitalOcean credentials that never leave your infrastructure. Run it from source today.