Application programming interface

From DreamHost

Jump to: navigation, search

Contents

What is an API?

An application programming interface (API) is a source code interface that a computer system or program library provides to support requests for services to be made of it by a computer program. An API differs from an application binary interface in that it is specified in terms of a programming language that can be compiled when an application is built, rather than an explicit low level description of how data is laid out in memory.

The software that provides the functionality described by an API is said to be an implementation of the API. The API itself is abstract, in that it specifies an interface and does not get involved with implementation details.

A good example of an API would be a web service interface, such as the API provided by Google for its mapping service.

Does DreamHost have an API?

Yes, barely. Currently it's rather simplistic and only offers a tiny fraction of all DreamHost functionality, but (as of July 2009) it's in heavy development!

How does DreamHost's API work?

All you have to do is visit ("GET" or "POST" to) a simple URL (programmatically or even just with a web browser), and we return the result as tab-delimited plain text (or other formats if you like)!

That simple URL is:

 https://api.dreamhost.com/

And the plain text result is something like:

 error
 no_key

Or maybe:

 success
 added_web

What values does DreamHost's API use?

Required

key an API Key that you need to generate via our web panel.
cmd the command you'd like to do... when you create your key you pick what command(s) it may access.
unique_id you must pass a new unique_id (max length: 64 chars) every time you submit a request, to make sure you don't accidentally submit the same command twice. Note that only success results "use up" a unique_id. We recommend using UUIDs for this purpose if you'd like.

Optional

format the format you want to receive output in; can be json, xml, perl, or tab
(if omitted, default is tab).

Implementation Notes

All parameter names are case-sensitive and must be in lower case. The values you submit to the server are generally case-insensitive.

Test Account

If you would like to test the DreamHost API without having your own account, you may use the API Key 6SHU5P2HLDAYECUM

This account only has access to "list" functions however (and only user-list_users_no_pw, not user-list_users) .. as well as dreamhost_ps-set_size, dreamhost_ps-set_settings, and dreamhost_ps-reboot to ps7093.

For Example

https://api.dreamhost.com/?key=6SHU5P2HLDAYECUM&cmd=user-list_users_no_pw&unique_id=4082432&format=perl

List of Commands

Here's the full list of existing API commands and the values you need to pass them, as well as the format of the result.

api-list_accessible_cmds

Dump a list of all commands this API Key has access to.

Values:

(none)

Result:

success
cmd
api-list_accessible_cmds
announcement_list-list_lists
domain-list_domains
dns-list_records

Possible Errors:

(none)

announcement_list-list_lists

Dump a list of all announcement lists you have on your account(s).

Values:

(none)

Result:

success
account_id	listname	domain	name	start_date	max_bounces	num_subscribers
1	fun	dreamhost.com	"DH Fun" <fun@dreamhost.com>	2007-12-13	5	102	
1	announcements	dreamhost.com	"DH Announcements" <announcements@dreamhost.com>	2001-05-09	6	302420	

Possible Errors:

(none)

announcement_list-list_subscribers

Dump a list of all subscribers to an announcement list.

Values:

listname : the name of the announcement list, like announcements
domain : the domain of the announcement list, like mydomain.com

Result: d

success
email	confirmed	subscribe_date	name	num_bounces
josh@gmail.com	1	2007-12-13 16:55:15	Josh	0
joe@hotmail.com	1	2007-12-13 16:55:08	Joe	0
john@yahoo.com	1	2007-12-19 09:16:32	John	0

Possible Errors:

no_listname
no_domain
no_such_listname
no_such_domain

announcement_list-add_subscriber

Sends an opt-in email to an email address to ask them to subscribe to an announcement list.

Values:

listname : the name of the announcement list, like announcements
domain : the domain of the announcement list, like mydomain.com
email : the email address to subscribe, like test@test.com
name : the name of the person, like Josh Jones (optional)

Result:

success
sent_opt_in_email

Possible Errors:

no_listname
no_domain
no_such_listname
no_such_domain
no_email
invalid_email (may have specifics after a tab)
already_subscribed
email_may_not_be_added_to_any_dreamhost_list_ever
email_requested_to_be_added_in_last_two_days_already (may have specifics after a tab)
internal_error_opting_in

announcement_list-remove_subscriber

Immediately removes an email address from an announcement list.

Values:

listname : the name of the announcement list, like announcements
domain : the domain of the announcement list, like mydomain.com
email : the email address to unsubscribe, like test@test.com

Result:

success
unsubscribed

Possible Errors:

no_listname
no_domain
no_such_listname
no_such_domain
no_email
not_subscribed
internal_error_unsubscribing


announcement_list-post_announcement

Post an announcement to an an announcement list.

Values:

listname : the name of the announcement list, like announcements
domain : the domain of the announcement list, like mydomain.com
subject : the subject of the message (optional)
message : the text of the message to send
name : the name for the list to use, like: "list name" <list@domain.com>
stamp : the time to send the message, like 2009-05-28 10:40AM (optional)
charset : the character set in which the message is encoded (optional)
type : the format of the message, either text or html (optional)
duplicate_ok: whether to allow duplicate messages to be sent, like 1 or 0 (optional)

Result:

success
posted

Possible Errors:

no_listname
no_domain
no_such_listname
no_such_domain
message_required
invalid_stamp
invalid_type
invalid_name
duplicate_message (may have specifics after a tab)
internal_error_updating_list
internal_error_sending_mail

domain-list_domains

Dump a list of all hosted domains (not including registrations) on all accounts you have access to.

Values:

(none)

Result:

success
account_id	domain	home	type	unique_ip	hosting_type	user	path	outside_url	www_or_not	php	security	fastcgi	xcache	php_fcgid	passenger
1	718apts.com	machine.dreamhost.com	http	1.2.3.4	full	groo	718apts.com		remove_www	mod_php	0	0	1	0	0	
1	filesforever.com	machine.dreamhost.com	http		redirect			https://files.dreamhost.com/	both_work	pcgi4	0	0	1	0	0	
1	groo.com	ps1234.dreamhost.com	http		full	groo	groo.com		add_www	pcgi5	0	0	1	0	0	
1	test.groo.com	ps5678.dreamhost.com	http		mirror			http://www.groo.com/	both_work	pcgi5	0	0	1	0	0

Possible Values:

 type : http or https
 hosting_type : full or redirect or parked or mirror or cloaked or google
 www_or_not : both_work or add_www or remove_www
 php : pcgi4 or pcgi5 or mod_php
 security : 0 or 1
 fastcgi : 0 or 1
 xcache : 0 or 1
 php_fcgid : 0 or 1
 passenger : 0 or 1

Possible Errors:

(none)

domain-list_registrations

Dump a list of all domain registrations you have registered with DreamHost, including ones that have expired recently enough that you can still just renew them from our panel.

Values:

(none)

Result:

success
account_id	domain	expires	created	modified	autorenew	locked	expired	ns1	ns2	ns3	ns4	registrant	registrant_org	registrant_street1	registrant_street2	registrant_city	registrant_state	registrant_zip	registrant_country	registrant_phone	registrant_fax	registrant_email	tech	tech_org	tech_street1	tech_street2	tech_city	tech_state	tech_zip	tech_country	tech_phone	tech_fax	tech_email	billing	billing_org	billing_street1	billing_street2	billing_city	billing_state	billing_zip	billing_country	billing_phone	billing_fax	billing_email	admin	admin_org	admin_street1	admin_street2	admin_city	admin_state	admin_zip	admin_country	admin_phone	admin_fax	admin_email
1	718apts.com	2010-02-05 17:25:06	2009-02-05 17:25:06	2009-02-05 17:25:06	no	no	no	ns1.dreamhost.com	ns2.dreamhost.com	ns3.dreamhost.com		718apts.com Private Registrant	A Happy DreamHost Customer	417 Associated Rd #324		Brea	CA	92821	US	+1.2139471032		718apts.com@proxy.dreamhost.com	718apts.com Private Registrant	A Happy DreamHost Customer	417 Associated Rd #324		Brea	CA	92821	US	+1.2139471032		718apts.com@proxy.dreamhost.com	718apts.com Private Registrant	A Happy DreamHost Customer	417 Associated Rd #324		Brea	CA	92821	US	+1.2139471032		718apts.com@proxy.dreamhost.com		A Happy DreamHost Customer	417 Associated Rd #324		Brea	CA	92821	US	+1.2139471032		718apts.com@proxy.dreamhost.com	
1	groo.com	2010-04-23 21:00:00	1997-04-22 21:00:00	2008-04-25 00:04:52	yes	no	no	ns1.dreamhost.com	ns2.dreamhost.com	ns3.dreamhost.com		Mark Evanier	Josh jones	41 Symphony Road	Unit C	Boston	MA	02115	US	+1.6173318949		josh@newdream.net	Josh Jones	DreamHost Web Hosting	PO BOX 5479		Huntington Park	CA	90255	US	+1.2139471032		hostmaster@dreamhost.com	Josh Jones	DreamHost Web Hosting	PO BOX 5479		Huntington Park	CA	90255	US	+1.2139471032		hostmaster@dreamhost.com		DreamHost Web Hosting	PO BOX 5479		Huntington Park	CA	90255	US	+1.2139471032		hostmaster@dreamhost.com	
1	thebesthostever.com	2009-09-19 15:24:39	2007-09-19 15:24:39	2007-09-19 15:24:39	yes	no	no	ns1.dreamhost.com	ns2.dreamhost.com	ns3.dreamhost.com		thebesthostever.com Private Registrant	DreamHost Web Hosting	417 Associated Rd #324		Brea	CA	92821	US	+1.2139471032		thebesthostever.com@proxy.dreamhost.com	thebesthostever.com Private Registrant	DreamHost Web Hosting	417 Associated Rd #324		Brea	CA	92821	US	+1.2139471032		thebesthostever.com@proxy.dreamhost.com	thebesthostever.com Private Registrant	DreamHost Web Hosting	417 Associated Rd #324		Brea	CA	92821	US	+1.2139471032		thebesthostever.com@proxy.dreamhost.com		DreamHost Web Hosting	417 Associated Rd #324		Brea	CA	92821	US	+1.2139471032		thebesthostever.com@proxy.dreamhost.com	

Possible Values:

 autorenew : yes, no, or ask
 locked : yes or no
 expired : yes or no
 Note, all the contact/nameserver info can have a special value of unknown which means we have bad data for it!

Possible Errors:

(none)


dns-list_records

Dump a list of all dns records for all domains (not including registrations) on all accounts you have access to. Skips the dreamhosters.com, dreamhost.com, dreamhostps.com, and newdream.net zones.

Values:

(none)

Result:

success
account_id	zone	record	type	value	comment	editable
1	718apts.com	718apts.com	A	1.2.3.4		0	
1	718apts.com	718apts.com	MX	0 mx1.balanced.dreamhost.com.		0	
1	718apts.com	718apts.com	MX	0 mx2.balanced.dreamhost.com.		0	
1	718apts.com	718apts.com	NS	ns1.dreamhost.com.		0	
1	718apts.com	718apts.com	NS	ns2.dreamhost.com.		0	
1	718apts.com	718apts.com	NS	ns3.dreamhost.com.		0	
1	718apts.com	test.718apts.com	CNAME	ghs.google.com.	A test I did.	1	

Possible Values:

 type : A,MX,NS,CNAME,PTR,NAPTR,TXT,SRV,SPF,AAAA, or A6
 editable : 0 or 1

Possible Errors:

(none)

dns-add_record

Adds a new dns record to a domain you (already) have hosted with us. Keep in mind dns changes may take a while to propagate. You cannot add dreamhosters.com records.

Values:

record : the full name of the record you'd like to add, e.g. testing.groo.com
type : A,CNAME,NS,PTR,NAPTR,SRV,TXT,SPF, or AAAA
value : the DNS record's value.. you should know something about DNS records!
comment : optional comment for this record.

Result:

success
record_added

Possible Errors:

no_record
no_type
no_value
invalid_record (may have specifics after a tab)
invalid_type (may have specifics after a tab)
invalid_value (may have specifics after a tab)
no_such_zone
CNAME_must_be_only_record
CNAME_already_on_record
record_already_exists_not_editable
record_already_exists_remove_first
internal_error_updating_zone
internal_error_could_not_load_zone
internal_error_could_not_add_record

dns-remove_record

Removes an existing editable dns record you have with us. Keep in mind dns changes may take a while to propagate. You cannot remove dreamhosters.com records.

Values:

record : the full name of the record you'd like to remove, e.g. testing.groo.com
type : the type (see dns-add_record) of the record you'd like to remove.
value : the value (see dns-add_record) of the record you'd like to remove.

Result:

success
record_removed

Possible Errors:

no_record
no_type
no_value
no_such_record
no_such_type
no_such_value
not_editable
internal_error_could_not_destroy_record
internal_error_could_not_update_zone

mysql-list_dbs

Dump a list of all active MySQL databases on all accounts you have access to.

Values:

(none)

Result:

success
account_id	db	description	home	disk_usage_mb
1234	yourdb_db1	Database 1	haass.tuna.dreamhost.com	0.0078125	
1234	betterdb2435	This one's better	haass.tuna.dreamhost.com	0.0078125

Possible Errors:

(none)


mysql-list_hostnames

Dump a list of all active MySQL hostnames, and the database servers they refer to, for all accounts you can access.

Values:

(none)

Result:

success
account_id	domain	home
1234 mysql.site.dreamhosters.com	haass.tuna.dreamhost.com	
1234 mysql2.site.dreamhosters.com	haass.tuna.dreamhost.com

Possible Errors:

(none)


mysql-add_hostname

Add a MySQL hostname.

Values:

hostname : the full hostname you want to serve as a mysql hostname (unless the domain following the first . is hosted with us, you will not be able to access phpMyAdmin from this hostname).

Result:

success
hostname_added

Possible Errors:

no_hostname
invalid_domain
taken_subdomain
internal_error_adding_hostname
internal_error_could_not_load_domain


mysql-remove_hostname

Remove a MySQL hostname.

Values:

hostname : the full hostname you want to serve as a mysql hostname.

Result:

success
hostname_removed

Possible Errors:

no_hostname
invalid_hostname
internal_error_removing_hostname


mysql-list_users

Dump a list of MySQL users and their privileges, for all databases on all accounts you have access to.

Values:

(none)

Result:

success
account_id	db	home	username	host	select_priv	insert_priv	update_priv	delete_priv	create_priv	drop_priv	index_priv	alter_priv
1234 yourdb_db1	haass.tuna.dreamhost.com	randomuser1		Y	Y	Y	Y	Y	Y	Y	Y	
1234 betterdb2435	haass.tuna.dreamhost.com	randomuser2		Y	Y	Y	Y	Y	Y	Y	Y	

Possible Values:

*_priv : Y or N

Possible Errors:

(none)


mysql-add_user

Add a new MySQL user to a database.

Values:

db: the database to which the user should be added.
user: the username for the new user.
password: the password for the new user.
select: Y or N (optional, default is Y).
insert: Y or N (optional, default is Y).
update: Y or N (optional, default is Y).
delete: Y or N (optional, default is Y).
create: Y or N (optional, default is Y).
drop: Y or N (optional, default is Y).
index: Y or N (optional, default is Y).
alter: Y or N (optional, default is Y).
hostnames: a newline separated list of hosts, in which % is a wildcard, from which the user is allowed to access the databases (optional, default is %.dreamhost.com).

Result:

success
user_added

Possible Errors:

no_db
no_such_db
no_user
invalid_user: reason
user_exists
user_not_lowercase
user_already_on_db
no_password
invalid_password: reason
invalid_select
invalid_insert
invalid_update
invalid_delete
invalid_create
invalid_drop
invalid_index
invalid_alter
internal_error_could_not_load_db
internal_error_adding_user


mysql-remove_user

Rmove a MySQL user from a database.

Values:

db: the database from which the user should be removed.
user: the username for the new user.
select: Y or N.
insert: Y or N.
update: Y or N.
delete: Y or N.
create: Y or N.
drop: Y or N.
index: Y or N.
alter: Y or N.

Result:

success
user_removed

Possible Errors:

no_db
no_such_db
no_user
no_such_user
no_select
invalid_select
no_insert
invalid_insert
no_update
invalid_update
no_delete
invalid_delete
no_create
invalid_create
no_drop
invalid_drop
no_index
invalid_index
no_alter
invalid_alter
internal_error_removing_user

mail-list_filters

Dump a list of all e-mail filter rules for all users on acc accounts you have access to.

Values:

(none)

Result:

success
account_id	address	rank	filter	filter_on	action	action_value	contains	stop
1	win@example.com	0	[list]	subject	move		yes	yes	
1	win@example.com	1	spammer	from	delete		yes	yes	
1	win@example.com	2	blah	subject	delete		yes	yes	

Possible Errors:

(none)

mail-add_filter

Adds a new mail filter to an email address you have with us.

Values:

address : the full email address to which you want to add the filter.
filter_on : subject, from, to, cc, body, reply-to, headers.
filter : what to filter for (case sensitive).
action : move,forward,delete,add_subject,forward_shell, and, or.
action_value : the parameter for the action (note: optional if action is delete, and, or).
contains : yes or no (optional, default is yes).
stop : yes or no (optional, default is yes. note: must be yes if action is delete).
rank : the rank of the filter, indexes from 0, lower means executed first (optional, default is the number of filters for the address).
To create a complex multi-part filter, simply append an underscore to each of the above, followed by a number (starting at 1) for which step of the filter it is.

Result:

success
filter_added

Possible Errors:

no_address
invalid_address
no_filter_on
invalid_filter_on
no_filter_on_#
invalid_filter_on_#
no_filter
invalid_filter
no_filter_#
invalid_filter_#
no_action
invalid_action
no_action_#
invalid_action_#
inconsistent_boolean
no_action_value
no_action_value_#
invalid_stop
invalid_stop_#
inconsistent_stop
invalid_contains
invalid_contains_#
negative_rank
negative_rank_#
rank_too_high
inconsistent_rank
cannot_create_simple_and_complex_filter
incomplete_filter
invalid_folder
invalid_forward_address
invalid_shell_account


mail-remove_filter

Remove a mail filter from an email address you have with us.

Values:

address : the full email address from which you want to remove the filter.
filter_on : subject, from, to, cc, body, reply-to, headers.
filter : what to filter for (case sensitive).
action : move,forward,delete,add_subject,forward_shell.
action_value : the parameter for the action (note: optional if action is delete).
contains : yes or no.
stop : yes or no.
rank : the rank of the filter, lower means executed first.

Result:

success
filter_removed

Possible Errors:

no_address
invalid_address
no_filter_on
invalid_filter_on
no_filter
invalid_filter
no_action
invalid_action
no_action_value
no_stop
invalid_stop
no_contains
invalid_contains
no_rank
rank_too_low
cannot_remove_subfilter
invalid_folder
invalid_forward_address
invalid_shell_account
no_such_filter
cannot_remove_subfilter


user-list_users

Dump a list of all users (including ftp, shell, vpn, anonymous ftp, backup, and mailboxes) on all accounts you have access to.

Values:

(none)

Result:

success
account_id	username	type	shell	home	password	disk_used_mb	quota_mb	gecos
1	anftp	ftp	/etc/ftponly	machine.dreamhost.com	lkjhpoiu	0	671744	An FTP user
1	b1	backup	/usr/bin/rssh	backup.dreamhost.com	asdf1234	0	671744	Account #1 Backup User
1	blah	shell	/bin/bash	machine.dreamhost.com	qwer4532	0	671744	Blah Shell
1	crazyvpn	vpn		toy.dreamhost.com	1234trew	0	671744	Crazy VPN
1	josh@blah.com	mail	/etc/poponly	smaug.dreamhost.com	qwer4532	0	671744	Josh Email User!

Possible Errors:

(none)


user-list_users_no_pw

Dump a list of all users (including ftp, shell, vpn, anonymous ftp, backup, and mailboxes) on all accounts you have access to, but with the passwords ********ed out. You can choose which commands any API key you create has access to, so if you need to give an application access to your list of users but don't want to give them the passwords, make the key you supply to them only have access to user-list_users_no_pw and not user-list_users!

Values:

(none)

Result:

success
account_id	username	type	shell	home	password	disk_used_mb	quota_mb	gecos
1	anftp	ftp	/etc/ftponly	machine.dreamhost.com	********	0	671744	An FTP user
1	b1	backup	/usr/bin/rssh	backup.dreamhost.com	********	0	671744	Account #1 Backup User
1	blah	shell	/bin/bash	machine.dreamhost.com	********	0	671744	Blah Shell
1	crazyvpn	vpn		toy.dreamhost.com	********	0	671744	Crazy VPN
1	josh@blah.com	mail	/etc/poponly	smaug.dreamhost.com	********	0	671744	Josh Email User!

Possible Values:

type : ftp or sftp or backup or shell or vpn or mail

Possible Errors:

(none)


dreamhost_ps-add_ps

Schedule the creation of a new DreamHost PS to your account (currently may take a day or more to actually complete).

Values:

account_id : what account you'd like to add this PS to (optional)
type : either web or mysql
movedata : if type is web, you must specify yes or no for
whether you'd like to copy all your existing users to this new PS.

Result:

success
added_web

Possible Errors:

no_type
type_must_be_mysql_or_web
no_movedata
movedata_must_be_yes_or_no
no_such_account_id
account_not_approved
you_cant_add_to_account
account_has_no_hosting
account_has_frontpage
account_has_over_14_ips (may have specifics after a tab)
already_has_mysql (may have specifics after a tab)
already_has_pending_mysql (may have specifics after a tab)

dreamhost_ps-list_pending_ps

List all DreamHost PSes scheduled to be created on this account.

Values:

(none)

Result:

success
account_id	ip	type	stamp
1234	10.5.3.2	web	2009-03-12 06:43:30
1234	10.5.3.2	web	2009-03-12 06:43:36
1234	10.5.3.2	mysql	2009-03-12 06:43:48

Possible Errors:

(none)

dreamhost_ps-remove_pending_ps

Removes all DreamHost PSes scheduled to be created on this account.

Values:

(none)

Result:

success
account_id	ip	type	stamp
1234	10.5.3.2	web	2009-03-12 06:43:30
1234	10.5.3.2	web	2009-03-12 06:43:36
1234	10.5.3.2	mysql	2009-03-12 06:43:48

Possible Errors:

(none)

dreamhost_ps-list_ps

Lists all active DreamHost PSes on this account.

Values:

(none)

Result:

success
account_id	ps	type	memory_mb	start_date
1234	ps7093	web	242	2009-02-04
1234	ps2322	web	1203	2007-07-30
1234	psmysql2334	mysql	150	2008-07-23

Possible Errors:

(none)

dreamhost_ps-list_settings

Lists all the current settings for a DreamHost PS.

Values:

ps : the name of the ps (get it from list_ps)

Result:

success
setting	value
apache2_enabled	1
comment	My first PS!
courier_enabled	0
jabber_transports_enabled	0
lighttpd_enabled	0
machine	ps2322
modphp_4_selected	1
php_cache_xcache	0
proftpd_enabled	1

Possible Errors:

no_ps
no_such_ps


dreamhost_ps-set_settings

Set all the settings for a DreamHost PS. Anything you don't pass in will remain untouched. Descriptions of the various settings are at https://panel.dreamhost.com/?tree=vserver.settings

Values:

ps : the name of the ps (get it from list_ps)
apache2_enabled : 0 or 1 (optional)
comment : Any string you'd like to describe this ps. (optional)
courier_enabled : 0 or 1 (optional)
jabber_transports_enabled : 0 or 1 (optional)
lighttpd_enabled : 0 or 1 (optional)
modphp_4_selected : 0 or 1 (optional)
php_cache_xcache : 0 or 1 (optional)
proftpd_enabled : 0 or 1 (optional)

Result:

success
setting	value
apache2_enabled	1
comment	My first PS!
courier_enabled	0
jabber_transports_enabled	0
lighttpd_enabled	0
machine	ps2322
modphp_4_selected	1
php_cache_xcache	1
proftpd_enabled	1

Possible Errors:

no_ps
no_such_ps
internal_error_setting_settings

dreamhost_ps-list_size_history

Shows a full list of all resizes and associated charges for a DreamHost PS.

Values:

ps : the name of the ps (get it from list_ps)

Result:

success
stamp	period_seconds	memory_mb	monthly_cost	period_cost
2007-07-30 08:46:19	431313	150	15.00	2.4960
2007-08-04 08:34:52	71	193	21.40	0.0006
2007-08-04 08:36:03	574662	408	40.80	9.0456
2007-08-11 00:13:45	525551	150	15.00	3.0414
2007-08-17 02:12:56	215679	279	30.00	2.4963
2007-08-19 14:07:35	29726670	580	60.10	689.2642
2008-07-28 15:32:05	19582503	1182	120.30	908.8639

Possible Errors:

no_ps
no_such_ps


dreamhost_ps-set_size

Resize the memory of a DreamHost PS. You are limited to 30 resizes per day -- use them wisely!

Values:

ps : the name of the ps (get it from list_ps)
size : the new size you'd like for your PS, in MB between 150 and 4000

Result:

success
memory_mb
150

Possible Errors:

no_ps
no_such_ps
no_size
size_under_150
size_over_4000
cant_modify_billing
exceeded_30_resizes_today
resize_pending
internal_error_setting_size

dreamhost_ps-list_reboot_history

List the full history of reboots to a DreamHost PS from most recent to oldest.

Values:

ps : the name of the ps (get it from list_ps)

Result:

success
stamp
2009-02-06 19:53:37
2009-02-03 11:42:18
2008-10-09 17:13:26
2008-10-03 22:57:20
2008-09-12 23:44:56

Possible Errors:

no_ps
no_such_ps


dreamhost_ps-reboot

Schedule a reboot to a DreamHost PS now.

Values:

ps : the name of the ps (get it from list_ps)

Result:

success
reboot_scheduled

Possible Errors:

no_ps
no_such_ps
cannot_reboot_ps_mysql
internal_error_rebooting

dreamhost_ps-list_usage

List the last 30ish days of our memory usage and cpu load readings for a DreamHost PS (the 00:00:00 timestamp values are daily averages).

Values:

ps : the name of the ps (get it from list_ps)

Result:

success
stamp	memory_mb	load
2009-03-12 06:17:40	454	0.18
2009-03-12 00:47:48	311	0.00
2009-03-11 22:48:36	346	0.02
2009-03-11 20:01:30	356	0.03
2009-03-11 17:35:35	338	0.14
2009-03-11 11:24:34	359	0.17
2009-03-11 09:13:02	346	0.20
2009-03-11 05:48:54	327	0.09
2009-03-11 01:45:55	324	0.14
2009-03-10 00:00:00	294	0.16
2009-03-09 00:00:00	209	0.06
2009-03-08 00:00:00	156	0.08
2009-03-07 00:00:00	161	0.07
2009-03-06 00:00:00	166	0.06
2009-03-05 00:00:00	153	0.06
2009-03-04 00:00:00	144	0.02
2009-03-04 00:00:00	150	0.07
2009-03-03 00:00:00	188	0.04
2009-03-02 00:00:00	159	0.05
2009-03-01 00:00:00	171	0.02
2009-02-28 00:00:00	166	0.08
2009-02-27 00:00:00	166	0.04
2009-02-26 00:00:00	170	0.02
2009-02-25 00:00:00	169	0.03
2009-02-24 00:00:00	169	0.08
2009-02-23 00:00:00	177	0.02
2009-02-22 00:00:00	171	0.14
2009-02-21 00:00:00	148	0.01
2009-02-20 00:00:00	146	0.05
2009-02-19 00:00:00	163	0.03
2009-02-18 00:00:00	155	0.03
2009-02-17 00:00:00	154	0.04
2009-02-16 00:00:00	158	0.05
2009-02-15 00:00:00	157	0.04
2009-02-14 00:00:00	159	0.02
2009-02-14 00:00:00	174	0.00
2009-02-13 00:00:00	158	0.01
2009-02-12 00:00:00	168	0.03

Possible Errors:

no_ps
no_such_ps

oneclick-list_easy

Values:

(none)

Result:

success
domain        type        stamp
blag.dreamhost.com        wordpress        2009-01-01 12:34:56

Possible Errors:

none

oneclick-list_advanced

Values:

(none)

Result:

success
url        type        stamp        upgradable
http://blog.dreamhost.com/        wordpress        2009-01-01 12:34:56        1

Possible Errors:

none

oneclick-install_easy

Values:

domain
type
title
email

Result:

success
admin_password        main_domain
qwerty        dreamhost.com

Possible Errors:

invalid_type
invalid_email
invalid_domain
cannot_register_domain
already_exists (oneclick already exists at this domain)
not_your_domain (domain belongs to another user)
already_taken (DNS name is in use by another service)
not_on_dnsonly
oneclick_creation_failed
oneclick_install_failed

oneclick-install_advanced

Values:

url (http://example.com/path)
type
database (name of a database to install to)

Result:

success

Possible Errors:

no_such_type
not_yours
no_http_hosting / no_https_hosting / not_fully_hosted (target domain isn't fully hosted)
no_such_database / no_database_users / no_database_hostnames

oneclick-upgrade

Note that this performs an upgrade unconditionally -- a oneclick will still be "upgraded" even if its timestamp indicates that it is current.

Values:

url

Result:

success

Possible Errors:

no_such_oneclick
not_yours

oneclick-upgrade_all

Values:

type

Result:

success
url
http://blag.dreamhost.com/blag1
http://blag.dreamhost.com/blag2

Possible Errors:

none

oneclick-list_settings

Values:

domain

Result:

success
setting	value
email	support@dreamhost.com
language	En
title	My Blag

Possible Errors:

no_such_oneclick
not_yours

oneclick-set_settings

Available settings are the ones returned by oneclick-list_settings (which varies from application to application).

Values:

domain
setting
value

Result:

success

Possible Errors:

no_such_oneclick
not_yours
no_such_setting
invalid_value

oneclick-destroy_easy

Values:

domain

Result:

success
database	prefix
blag_dreamhost_com	qwerty

Possible Errors:

no_such_oneclick
not_yours

oneclick-destroy_advanced

Values:

url
deletefiles (1 -> delete the app, 0 -> leave it in place but forget about it)

Result:

success

Possible Errors:

no_such_oneclick
not_yours

Could you make X functionality accessible via the API?

Maybe... maybe not! The point of our API is to make tasks that one person may want to do often available via a programming interface.. NOT to facilitate reselling of our services to multiple people. So that's pretty much how we'd decide if a certain feature should be API-able!

What sort of applications use the API?

There are dozens! We've been collecting them all at API Apps .. if you write your own app, feel free to add it there too!

Personal tools