Find an API

Search public APIs with auth details & Postman guides

← All APIs

DigitalOcean API

digitalocean · Company

Company No Auth Free & Open hosting

# 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

No authentication requiredFree to use with no key needed.

Sample Requests

GET 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 w

https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/1-clicks?type=droplet

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));
GET 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.

https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/apps?with_projects=true

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));
GET 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

https://api.apis.guru/v2/specs/digitalocean.com/2.0/v2/databases?tag_name=example

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

Get Postman ↗
  1. 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?

Open documentation ↗