DigitalOcean Services API

DigitalOcean Services API


Introduction to DigitalOcean API

DigitalOcean provides a RESTful API that allows developers to manage Droplets (virtual machines), images, domains, and more through HTTP requests. The documentation for the DigitalOcean API is available at https://developers.digitalocean.com/documentation/v2/.

Authentication

Before making any API requests, you must first authenticate. DigitalOcean API uses OAuth2 for authentication and authorization. You will need a client ID and secret to use the API. You can create your OAuth2 client in the DigitalOcean control panel.

const digitalocean = require('digitalocean');
const client = digitalocean.client('your_access_token');

Examples

Droplets

List all Droplets

const digitalocean = require('digitalocean');
const client = digitalocean.client('your_access_token');

client.droplets
    .list()
    .then((droplets) => {
        console.log(droplets);
    })
    .catch((error) => {
        console.log(error.message);
    });

Create a new Droplet

const digitalocean = require('digitalocean');
const client = digitalocean.client('your_access_token');

const dropletData = {
    name: 'example.com',
    region: 'nyc3',
    size: 's-1vcpu-1gb',
    image: 'ubuntu-16-04-x64',
    ssh_keys: null,
    backups: false,
    ipv6: true,
    user_data: null,
    private_networking: null,
    volumes: null,
    tags: ['web'],
};

client.droplets
    .create(dropletData)
    .then((droplet) => {
        console.log(droplet);
    })
    .catch((error) => {
        console.log(error.message);
    });

Delete a Droplet

const digitalocean = require('digitalocean');
const client = digitalocean.client('your_access_token');

const dropletId = 123456;

client.droplets
    .delete(dropletId)
    .then(() => {
        console.log(`Droplet ${dropletId} was successfully deleted.`);
    })
    .catch((error) => {
        console.log(error.message);
    });

Domains

List all Domains

const digitalocean = require('digitalocean');
const client = digitalocean.client('your_access_token');

client.domains
    .list()
    .then((domains) => {
        console.log(domains);
    })
    .catch((error) => {
        console.log(error.message);
    });

Create a new Domain

const digitalocean = require('digitalocean');
const client = digitalocean.client('your_access_token');

const domainData = {
    name: 'example.com',
    ip_address: '203.0.113.0',
};

client.domains
    .create(domainData)
    .then((domain) => {
        console.log(domain);
    })
    .catch((error) => {
        console.log(error.message);
    });

Delete a Domain

const digitalocean = require('digitalocean');
const client = digitalocean.client('your_access_token');

const domainName = 'example.com';

client.domains
    .delete(domainName)
    .then(() => {
        console.log(`Domain ${domainName} was successfully deleted.`);
    })
    .catch((error) => {
        console.log(error.message);
    });

Conclusion

The DigitalOcean API allows developers to automate the management of their infrastructure and provide self-service functionality to their users. This blog post has provided some examples of how this can be done using the API in JavaScript. For a complete list of available endpoints and methods, please refer to the official DigitalOcean API documentation.