DigitalOcean API V2 wrapper for Node.js
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
README.md
index.js
package.json

README.md

NPM version Downloads

doapi

The doapi module allows you to communicate with the DigitalOcean API V2 from node.js in a promise friendly manner.

It also supports automatic request retries.

Installation

This module is published in NPM:

npm install doapi --save

The --save tells NPM to automatically add it to your package.json file

Usage

// Import a module
var DigitalOceanAPI = require('doapi');

// Create an instance with your API V2 credentials
var api = new DigitalOceanAPI({token: 'my_token'});

// Get things done
api.dropletGetAll().then(function (droplets) {
	console.log(droplets);
});

Config

new DigitalOceanAPI({
	token: 'my_token',
	itemsPerPage: 100, // default=100
	maxRetries: 5, // default=5
	raw: false // default=false
});

Pagination

you can pass pagination params into any method that has a body or query argument.

api.dropletGetAll({per_page: 1, page: 2}).then(function (droplets) {
	console.log(droplets);
});

Raw

if you set raw it will return the full response body with request info and ratelimiting details, the default is false.

api.accountGet(true)

would return

	{
		account: {
			droplet_limit: 25,
			email: 'email@domain.com',
			uuid: 'f5bbaffce3a8792421593a7075b486bafd66672f',
			email_verified: true
		},
		ratelimit: {
			limit: '5000',
			remaining: '4993',
			reset: '1434197547'
		},
		requestinfo: {
			id: 'a24427fd-0d43-9536-a206-zac22d2696e1',
			runtime: '0.038537'
		 }
	}

and with raw set to false (the default), it would return

	{
		droplet_limit: 25,
		email: 'email@domain.com',
		uuid: 'f5bbaffce3a8792421593a7075b486bafd66672f',
		email_verified: true
	}

Debugging

we use the debug module so you can debug the http requests by doing the following

DEBUG=http node myfile.js

image

also all methods enforce type checking so invalid usage would result in errors like this

image

Methods

All methods follow the official API documentation.

Droplets

Account

Regions

Images

SSH keys

Sizes

Domains

Actions

Floating IPs