Application programming interface
From DreamHost
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
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!

