DigitalOcean API
digitalocean · Company
# Introduction The DigitalOcean API allows you to manage Droplets and resources within the DigitalOcean cloud in a simple, programmatic way using conventional HTTP requests. All of the functionality that you are familiar with in the DigitalOcean control panel is also available through the API, allowing you to script the complex actions that your situation requires. The API documentation will start with a general overview about the design and technology that has been implemented, followed by r
Authentication
Sample Requests
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 w
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/1-clicks?type=droplet"
import requests
params = {
"type": "droplet"
}
response = requests.get(
"https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/1-clicks",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/1-clicks');
url.searchParams.set('type', 'droplet');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/1-clicks")
q := baseURL.Query()
q.Set("type", "droplet")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/1-clicks")
uri.query = URI.encode_www_form({
"type" => "droplet"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/1-clicks?" . http_build_query([
"type" => "droplet"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));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.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/apps?with_projects=true"
import requests
params = {
"with_projects": "true"
}
response = requests.get(
"https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/apps",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/apps');
url.searchParams.set('with_projects', 'true');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/apps")
q := baseURL.Query()
q.Set("with_projects", "true")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/apps")
uri.query = URI.encode_www_form({
"with_projects" => "true"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/apps?" . http_build_query([
"with_projects" => "true"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));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
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/databases?tag_name=example"
import requests
params = {
"tag_name": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/databases",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/databases');
url.searchParams.set('tag_name', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/databases")
q := baseURL.Query()
q.Set("tag_name", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/databases")
uri.query = URI.encode_www_form({
"tag_name" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/databases?" . http_build_query([
"tag_name" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with DigitalOcean API?
DigitalOcean API is a Company API. Developers commonly use company APIs for:
- enriching CRM records with company firmographics
- building lead-generation and prospecting tools
- verifying business identity and registration details
- monitoring competitors and market intelligence
- powering B2B data enrichment pipelines
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. DigitalOcean API is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?