Big Boy Time

April 9, 2009 on 5:48 pm | In Musings, New Features, Promotions by Josh Jones | 215 Comments

I'm a big boy, standing in my big-boy stance!

I don’t know if you’d consider DreamHost as one of the BIG BOYS of the Internet… you know, the Googles, the Amazons, the eBays, the Facebooks, the Twitters.

Well, I sure wouldn’t. At least not based on media coverage. Or coolness. Or revenues. (Except maybe Twitter, where I assume we’re blowing their $null/year OUT OF THE RIVER!)

But, all that may be about to change. Because, as you think about each of those afore-mentioned BIG BOYS, what do they all have that we don’t have?

Crazy names? What’s wackier than… “Dream”Host?!

Legions of users? Well, counting the visitors to sites we host, we’ve got a TON.

The adoring media? Does the DreamHost Blog report on ANYTHING else?

We feel your pain, Barack!

Well then, what could it be? What is that missing component? What else do they all have that we ain’t got?

I Know

An API!

Yep, that’s really the ONLY other thing different between us all… the only thing that I can think of!

And, as you may have read in the February newsletter (just a week or so ago), WE now have that too! And how.

Well, so far it’s not much to speak of. It only offers three main functions… but that’s one more than just a few weeks ago!

  1. You can get a list of all subscribers to any of your announcement lists.
  2. You can do anything you can do on our panel to a DreamHost PS private server.
  3. You can now get a list of all your ftp/shell/backup/email/vpn/anonftp users!
  4. UPDATE: You can add and remove announcement list subscribers!

To top it off, we’ve also now changed the authentication method to our API. No longer does it use your actual web panel password: IDIOTIC.

It was this guy's idea.

Instead, there’s now a special API section to our panel where you can create (multiple) API “keys”… you now use (one of) THOSE to authenticate.

This is “cool” because now you don’t have to give out your main password to some random application that uses our API. This is also “cool” because you can at any time delete API keys for applications you no longer want to have access to your account.

(UPDATE: Now when you create a new API key you also can choose which specific API functions you’d like it to have access to.. so that way you don’t have to give like an announcement list management app full access to everything else on your account!)

We recommend you create a new API key for each different need, so if you decide to revoke access to one for some reason in the future, you don’t revoke access to everything else!

The other side says "P".

Everything Else Like What?

Of course, that begs the question.. what ACTUALLY has been created with this API? Well, uh, it’s kind of new, okay? Not much.

There has been one kind of cool thing already though: the developers of SmartFTP have now added the ability for it to automatically load in all your DreamHost FTP accounts!

Give it a shot… could this mean the end of FTP login problems?! FOREVER? What will our Happy DreamHost Customer Service Team do?

Sadly, SmartFTP is not free. But, happily, this is just the beginning of what I’m sure will be a “thriving ecosystem” of DreamHost-y applications using the API… catapulting us instantly into the BIG BOY ZONE.

You are now entering the boy zone!

ANNNNNNNNNNNNND…. just to give the catapult a little extra thrust, we’re going to throw a little kerosene on the nascent developer flame. With a CRAZY $10,000 giveaway contest!

Here’s the deal:

Develop any application (Windows, Mac, Linux, Web, iPhone, Facebook, Boxee, Firefox Plugin, whatever…) that uses the DreamHost API by April 30th May 31st 2009, and submit a link to it in the comments to this post.

We (I) will personally review all entries, and CASH prizes will be awarded to the best apps to the tune of:

Grand Prize: $5,000
1st Place: $2,500
2nd Place: $1,250
3rd Place: $500
4th Place: $750

(I told you it was crazy!)

Now, it may seem like there’s not a lot of flexibility right now with our API.. however, that can change! Just request a feature you’d like us to expose via the API in the comments and we’ll try and add it ASAP!

(In fact, the users listing thing was requested by SmartFTP directly, so you know this ain’t just small talk.)

It’s big boy talk!

215 Responses to “Big Boy Time”

  1. Rich Bishop Says:

    I know you have the policy of “NOT to facilitate reselling of our services to multiple people” however, they would be the best API features you could add!

    One or two other ones…

    * Adding and removing subscribers from announcement lists as well as listing them
    * Conversion of the FLV files
    and I’ll sure I’ll think of some more…

    Rich :-)

  2. Mark Reeder Says:

    *Please* add the ability to add/modify custom dns records. This would allow for DynDNS type functionality for domains hosted on DreamHost.

  3. Sunny Says:

    Did you mean to have 3rd place pay less than 4th place? :)

  4. Steve Robillard Says:

    Ok 2 stupid questions how or where do we send our entries, and second is 4th place really supposed to get more than 1st?

  5. Steve Robillard Says:

    sorry meant 3rd

  6. TB Says:

    How about the ability to read/vote on suggestions?

    Or even better, the ability to read/update dynamic dns (goes along with the Custom DNS request Mark mentioned above).

    Maybe incorporate something in the official Wordpress that will allow you to create/assign a new db and user automatically.

    Editing/adding email filters?

  7. JeremyK@DH Says:

    Are employees eligible? ;)

  8. Peter Says:

    Just the first few that come to mind…

    Can I get API for editing/adding email users and aliases?
    Can I get API for disk space and bandwith history?
    Can I get API for the info in the “account status” drawer on the web panel?
    Can I get API listing open support issues for a given hostname?

  9. Pedro R Says:

    *lists for every service (really want these)
    disk use by domain/user,
    bandwidth use by domain/user,
    cpu used by domain,
    dns,
    email alias
    add/remove everything
    dns,
    host directories,
    users,
    email alias

    register domains

    also,
    how many requests per minute?
    can you fix the ps activation delay to come in line with EC2?
    can 3rd place choose to take 4th place instead?

    keep an eye on the api, i hear they tend to be hammered a lot.

  10. Real Estate in Baja Says:

    An Iphone app for managing your announcement list contacts will be awesome!

  11. Sex Says:

    Some actually useful features would be useful.

  12. Fred Says:

    Ability to add email aliases to make the Dhalias widget simpler.

  13. Josh Jones Says:

    Okay! We’re working on adding a bunch of those suggestions to the API right now.. stay tuned!

    And sorry Jeremy, employees and their immediate family are not elligible!

    And, yes, Fourth place pays more than Third! That’s exactly why this is a *CRAZY* contest.

  14. Jeren Says:

    Sounds interesting. Can’t say any ideas are coming to mind, but I’m looking forward to seeing how creative DH Blog readers are.

    -Josh

  15. John Says:

    Oh yea

    There should be a way to find out what sites are hosted within a server

  16. John Says:

    hey guys — Two question. How do we contact you with questions/comments? For instance right now I get t ‘unique_id_not_unique’ about 20% of the time but I’m pretty certain my UID’s are unique — It seems like if you hit the server with requests too fast it gives up (?)

    more importantly I’m really concerned about the “user-list_users” command — it returns usernames and passwords (not password hashes — the passwords!), if I give an API key to an app for something simple like list management they could (if bad guys) get into my servers and cause all kinds of chaos — Can we either selectively enable that feature per API key or remove it all together?

  17. Josh Jones Says:

    Hey guys!

    Just letting you know we added announcement_list-add_subscriber and announcement_list-remove_subscriber now and next will be to add and remove dns records..

    see http://wiki.dreamhost.com/API for how they work.

    And good point about enabling features per API key.. we’ll be working on that soon as well as making a list_users_no_pw function!

  18. John Says:

    Hey Josh,

    thanks for the update to allow no passwords. Any hope of working on the bogus “unique_id_not_unique” error?

    I’ve confirmed this a *bunch* of times — You can see it easily in the browser by entering a URL, properly form a panel request and then reload it a few times (changing the unique_id between reloads). It seems to be speed related (how often you hit the server), if you want a long time between requests all is (mostly) good. If you hit it pretty quickly you’ll eventually get a request that returns ‘unique_id_not_unique’ – Wait a second and resubmit the *exact same* url and it will work fine

    -John

    Thanks

  19. Asbjørn Ulsberg Says:

    Couldn’t you try to make the API a bit more beautiful and RESTful? Although every argument imaginable *can* be stuffed into the URI doesn’t mean it *should*. Designing the URIs as a first class citizen and of major importance to your application makes exploring the API much more intuitive and much less ambiguous.

    Reading up on RESTful application design on blogs from Bill de HÒra, Tim Bray, Sam Ruby, etc., would do you good. The book “RESTful Web Services” can also be highly recommended. Other than that, the API looks good. Keep the functionality coming and please put privacy and security up on the priority list. Exposing clear text passwords is never (well, very close to it, at least) a good idea.

  20. Edwin Says:

    Ok, here is my first attempt:

    http://www.dreammount.com/

    DreamMount is a Mac OS X application that allows you to map DreamHost domains or users to a networked filesystem, allowing you to access it using any application.

    Features:
    * works for any shell or sftp users (ftp users are not supported)
    * access all users at once (using the dreamhost API
    * automatically downloads the domain listing by logging into all your accounts
    * uses MacFUSE and SSHFS

  21. Matt Andrews Says:

    This is awesome. Only a month or two back I was writing a php script to email a database of hundreds of users depending on their status (eg full member, provisional member, etc). I was hitting DH’s email limits (to prevent spam, the limit for emails/hour are pretty small, unless you can prove you’re using a double opt-in system – pretty cool policy). I contacted support before I realised this and they suggested using the Panel’s announce list feature, which isn’t really suitable a) for my client (they never use the panel) and b) for the site, since the announce list doesn’t allow filtering by category. Now I might be able to put something together automatically through my own scripts using this…

    …Maybe? I guess I could get a list of email addresses, maybe even make 2 lists for the 2 user states and filter them into these lists using the API, but the problem’s the same – if I try to mail 400 people at once (whether they’ve opted in or not) I’ll hit the limits again, right? Back to the drawing board…

  22. John Says:

    Hey Guys,

    Your killing me with the “unique_id_not_unique” error — Do I need to throttle requests from my app (slowing it down seems to help)

    I spend probably 30% of my time trying to find ways to avoid triggering this error (oh yea — it semetimes shows up as a random “Max 30 resizings reached” error)

  23. Josh Jones Says:

    Hey John!

    I’m sorry about that, I belieeeeve that problem has been fixed now, please let me know if you’re still getting erroneous “unique_id_not_unique” errors or anything else!

    Thanks!

  24. vmmello Says:

    My suggestions of new API functionalities:

    1) return md5 of files in the backup service
    2) return the disk space used in the backup service
    3) add/update a DNS record
    4) return the availability and uptime of the users’ servers
    5) return the user’s disk usage (a ‘quota’ like command)

  25. Antonio Says:

    Here goes my first tool:

    vpsset it’s a command line tool which allows you to resize your Dreamhost PS server.

    You may use it at your crontab to reduce your memory and CPU settings when you have low traffic, and rise it when you usually expect higher one. Also you may use vpsset as a pre-script and post-script tool for some resource intensive scripts, like backups or whatever you need.

    More info: http://dreamhostpstools.com/2009/04/14/vpsset

    I hope to have finished at 30th April, vpsadjust which does automatic resizing based on resource usage.

    Best regards,

    Antonio.

  26. John Says:

    Hey Josh,

    It seems fixed now — thanks for jumping on it.

    -John “now with 100% more unique ID’s” M

  27. John Says:

    Oh Yea,

    How about a ‘announcement_list-post_announcment’ which (obviously) posts an announcement to the list (Ideally we don’t have to encode the message as an argument to the get but can properly post it as the content body)

    -John

  28. Josh Jones Says:

    Hey all!

    I just wanted to let people know of some more new stuff for the API!

    1. The API is now at https://api.dreamhost.com/ ! https://panel.dreamhost.com/api/ will keep working for the forseeable future, but you should switch anything you have using it over to https://api.dreamhost.com/ asap anyway and only use that from now on.

    2. There is now a “permissions” system for API keys. When creating a key from our panel you can now set what function(s) you’d like it to be able to call, and it won’t be able to call any others.

    3. There is a new user-list_users_no_pw function that is just like user-list_users but returns ******** instead of the actual passwords. Give an API Key access to only THAT function if you have some app that needs a list of users but not their passwords.

    4. Just a note, there’s a limit of resizing a DreamHost PS via the API of 30 times in each 24 hour period. There are no other limits on calling the API for now, but depending how things go we reserve the right to add some limits down the road!

    5. Because of all these changes, and to give people more time who maybe don’t read the blog every single day, the contest deadline has been extended to MAY 31st. This will be posted in the newsletter coming sooooooonish too!

    6. We’re working on adding full DNS functionality next!

    josh!

  29. John Says:

    Hey Josh,

    Thanks for the new improvements — Regarding the date change, for those of us who have been killing ourselves to hit the April 30th it’s a little disappointing to see the rules change (part of the fun was to see how creative you could get in such a short time — I thought that the short timeframe was part of the “Crazy”iness

    Is there a possible compromise such as Mid may date (or some sort of a ‘early bird’ prize?

    Thanks,
    -John

  30. Antonio Says:

    Yeah, I agree with John.

  31. Alain Says:

    May 31st is awesome, I just started working on my app tonite!

    Is it possible to add a function to get the list of announcement list for a domain?

    Thanks!

  32. Edwin Says:

    Hi Josh,

    As part of your DNS functions: would it also be possible to have a function that returns all hosted domains, with the associated properties like:
    - type of hosting (fully hosted, mirrored, …)
    - user under which it is hosted

    My current solution is to log in to all accounts, execute a ‘ls’ command and then figure out which directories look like domains. This is definately a sub-optimal solution.

    Edwin

  33. Tordek Says:

    How about making the API restful? AKA, less silly.

    Don’t make us add the unique_id for safe requests, like reading a list of users, and make non-safe ones only react to POST (or PUT, or DELETE).

  34. Josh Jones Says:

    Okay, another update!

    There will be a bonus $2,000 prize for the best app submitted before April 30th (and you’re still in the running for the other prizes)!

    There is now a “format” variable option, which can have the values of json, xml, perl, or tab (default is tab if omitted).

    There is a new domain-list_domains function!

    And we’ll work on making it RESTful and more functions!

    josh!

  35. Antonio Says:

    Josh, thanks for the listening us :) I appreciate it.

    And what the hell, now I’m even more motivated hehehe.

    Antonio.

  36. Harsh Agrawal Says:

    Great idea..Let me inform my blog readers about it. Some one might go crazy :)

  37. John Says:

    Hey Josh

    That’s great — Thanks for the early bird prize (It really helps with the enthusiasm) — Good deal

    Is it possible to update the wiki to show the possible return types from domain-list_domains? (for instance hosting_type can apparently be full, mirror or redirect — are those the only three types of hosting?)

    Thanks
    -John

  38. AskApache Says:

    Wow that money could buy me a new bike.. I think I’m going to win this contest with my entry…

  39. John Says:

    Hey Josh

    Is there a way to know *which* domains are hosted on which private servers? Since you can have multiple private severs and multiple domains I’m not sure how to tie them together (It may be already available but I just don’t see it)

    -John

  40. daniellench Says:

    i’m not code savvy but my brain works, sometings.

    anyone have any free time and the want to develop something like dropbox maybe call it dreambox?

  41. Josh Jones Says:

    Hey guys,

    Cool, I’m glad you like! :)

    Okay http://wiki.dreamhost.com/Application_programming_interface#domain-list_domains updated with possible return values.

    Also, I just added another output field of ‘home’ (which tells you which server the domain is hosted on) to the domain-list_domains function.. hopefully it was quick enough that the change isn’t going to break anything too big for anybody!

    josh!

  42. John Says:

    Josh:

    Perfect! — I’ll go out on a limb and say that a ‘ps’ prefix machine can always assume to be a private server (e.g. you don’t name your machines things like psalmodist, psuedoscorpions or psionically) (actually now that I think about it I can just match up the results from dreamhost_ps-list_ps to associate domains & accounts)

    Thanks for adding the possible values, f you could add the possible values for all of the API’s it would help make apps more robust apps (right now I just look at it for my account and sort of assume I can catch all of the values)

    -John

  43. Asbjørn Ulsberg Says:

    Oh, the last part about being RESTful I didn’t mention, was using the HTTP status codes as much as possible. Doesn’t a user exist? “404 Not Found”. Doesn’t a user exist anymore because it’s deleted? “410 Gone”. Has a new domain been successfully created? “201 Created”. Read up on it here: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

  44. David Bovill Says:

    How about an API for the Jabber Accounts – give that the Jabber server does not allow account creation for some reason, being able to create liked email and Jabber accounts for a domain would be great.

  45. Ryan Says:

    I agree with David Bovill.

    I’d love to see some way to create Jabber accounts without that panel.

    If you guys added that, I’d make a PHP package for a Jabber server- AKA, install my package in PHP and users can signup, chat, etc.
    :P

  46. Asbjørn Ulsberg Says:

    Hm, this was supposed to have been posted already, but wasn’t:

    Regarding the RESTfulness, remember the URIs and just how beautiful you can make it. If all read-only requests use GET, all updates to existing (and beforehand known) resources use PUT, creation of resources use POST and deletion of resources use PUT, you can basically go wild with the URI space and do really elegant stuff like:

    GET /users/
    - Lists all users the authenticated API key has access to

    GET /users/myuser
    - Lists all safe properties of the username “myuser”.

    PUT /users/myuser
    - Updates “myuser” with the values provided in the HTTP body.

    POST /users/
    - Creates a new user through the values provided in the HTTP body (can be whatever format you’d like; JSON would be nice).

  47. Asbjørn Ulsberg Says:

    These are just some ideas for users, but it basically goes like this for absolutely all entities you’d like to expose as HTTP resources.

    The other important part is to think about discoverability. Ideally, no one should know anything but the URI to the API entry point, e.g. https://api.dreamhost.com/. Authentication of course comes on top of that in preknown knowledge, but apart from that, the rest of the API should be self-explanatory through just doing GET and on each GET operation getting new URIs to do more GETs on, etc.

    The API home page should point to each and every entry point available for each and every entity that can be manipulated by the API. Those entry points should again return the URIs of each and every entity inside the entity collection, such as “users”, “domains”, etc.

    If you design the API this way, and at the same time do content negotiation so you return HTML representations to browsers, but JSON or XML to those accessing the API programmatically, you don’t really need any more documentation than what you provide in the HTML files. The whole thing will become self-explanatory, intuitive, and a joy to use.

    On top of these benefits, you can reap all the fruits available for well-designed RESTful applications, such as easy scaling, easy caching, etc.

  48. Edwin Says:

    To all users experiencing time-out errors while using DreamMount: version 0.2 has been released on http://www.dreammount.com with a fix for this problem!

  49. Mat Says:

    SmartFTP: Request for comments

    From the article you may know that we have recently implemented a feature in SmartFTP which can import all DreamHost users (backup, ftp, ssh/sftp). Please give us your feedback and suggestion for improvements.

    I will be reading the replies here or you can also contact us directly by email: http://www.smartftp.com/contact.php

    Thank you
    Mat
    SmartFTP

  50. Josh Lange Says:

    Let me update dns records please!

  51. Walter Ebert Says:

    Output data in Adobe’s AMF format would be nice to have. Useful for developing flash/flex/air apps.

  52. Matt Andrews Says:

    Seconding the request for a announcement_list-post_announcement function. That would solve my problem above and let us wrap our own frontends around the announce list usage (not that my beloved Panel isn’t nice enough, but most of the time I don’t want my clients poking around in there).

  53. Jerod Santo Says:

    Josh-

    Thanks for exposing this API and also for hosting this competition! I am working on a possible entry and have a request concerning the “dns-list_users” command (and any other that may have this issue).

    One of the values you’re returning is “editable?”. The trailing question mark is extraneous and doesn’t play well with XML parsers (like Ruby’s Hpricot, for instance). Could you remove it from the response?

    Thanks! Can’t wait to see what people come up with.

    -Jerod

  54. Kevin Says:

    The ‘announcement_list-list_subscribers’ function does not return users that have been added but have not confirmed. This is particularly confusing, as it names the ‘confirmed’ field that gets returned rather useless. (It’s always ‘1′, since only confirmed users are returned.)

    Is this a bug that can get fixed?

  55. Can Berk Güder Says:

    Is there (or will there be) a test account?

    It would be useful to test stuff we don’t have (for example, I don’t have a PS, or an announcement list).

  56. Kyle Haish Says:

    In my opinion, DreamHost is much better than Google because you’re still cool. You’ve managed to stay underground instead of selling out and you’re that much better for it.

  57. Ryan Says:

    Josh,

    I’m glad to see that you also accept POST requests in addition to GET. This will make is easier when working with other libraries that wrap around web-based API’s. Is this feature here to stay?

    Also, is there a way you can make your xml cleaner? By that I mean provide the XML doctype and make the whole item wrapped in a parent, such as

    It would also be very useful to come up with an “error” codes system and provide a standard result back with a given error code and description so that if there is a problem, it is easier for the application developer to catch code numbers and turn those into exceptions that an application can handle.

    These are some pretty significant changes, and may affect other users, so what I’ve seen other API’s do is and a “version” element to the API, and then the developer can run the API in a given version. That way you could add the errors functionality and change the XML handling without affecting previous apps / developers.

    This service is lighting up my developer mind and I have some really good ideas already brewing. These changes would sure help though. For my full time job all I do is write java apps that utilize only SOAP and REST based web services, not one app has yet to have a database connection.. so you guys are on a good path for the future.. keep it up!

  58. Ryan Says:

    apparently, trying to type in xml in this box is stripped. Go figure. So for my previous post, I’m going to reference you to this URL in terms of a REST based API that shows what I mean by providing a parent around the result.
    http://open.convio.com/api/constituent-api/server/getgroupmembers-server.html

    Notice the “getConsGroupsResponse” name of the parent in XML. Also notice their example of an error message named “errorResponse” with a code and message nodes. I was then able to catch the error code number and raise an appropriate exception.

  59. David Davis Says:

    Could you add an api command for listing the api commands it has access to?

    Thanks!

  60. Ken Says:

    Hmm…
    Are web apps available for entry to the contest?
    It’d be a freely available and open-source script, of course. :)

  61. Yaosan Says:

    Is it okay to have our entry hosted at Google Code? (I have written a Perl program that make use of the API) Also, how exactly will the entry be judged? Thanks!

  62. Jerod Santo Says:

    I’d like to submit my entry for the contest. It is a Ruby library and command-line tool for accessing the DreamHost API. I call it “Dreamy”.

    Read all about it on my blog.

    The source code is available on GitHub.

    Dreamy isn’t a finished product (because the DH API is still growing too!) but I wanted to release it early so that other developers can use it in their projects. Hopefully, it will serve as a catalyst for a bunch of great tools!

    Please, let me know what you think!

  63. David Davis Says:

    What is the pre flag for? I see it in the example.

    Also, do you plan on allowing a jsonp callback so we can use jsonp instead of server side proxying?

  64. Ben Chatelain Says:

    I’d also like to see some standard test accounts for use with testing the API. This would make it possible to test functions like “dreamhost_ps-reboot” without actually incurring downtime for a real VPS.

  65. jQuery Howto Says:

    Creating/editing users, disk space quote for them, etc.

  66. Jonathan Rudenberg Says:

    Creating/editing domains and DNS entries
    Password set and/or reset for users
    Create/edit users
    Create/edit mailboxes

  67. Ben Chatelain Says:

    I’d also like to see a way for an app to discover all the announcement lists for an account and domain. Something like “announcement_list-lists”. With this functionality, the “listname” doesn’t have to be known ahead of time.

  68. John Says:

    looks like dns support is beginning to show up

  69. Jonathan Rudenberg Says:

    announcement_list-lists would be really useful for a project I’m starting.

  70. Ryan Rickerts Says:

    If I develop an iPhone 3.0 app for the contest (seems desirable since one can do push notifications), how will I submit it by the deadline? It won’t appear in the App Store until after v3.0 of iPhone/iPod is released to the public. You could grab my source code, but you only would be able to run it in the Emulator in XCode.

    I may do it anyways, but it would be nice to play your game.

  71. Kevin Says:

    I keep trying to write a comment submitting my program, but the comments keep not posting. Why would they be getting filtered out? (Let’s see if this comment posts properly…)

  72. Kevin Says:

    Let’s try again with a very short blurb and a link to the website:

    ListSync is a utility designed to automatically keep DreamHost announcement lists in sync with a database of clients/customers/users/whatever. There’s an email address on the website if you want to send me any feedback.

    http://www.possibilitiessoftware.com/listsync/

  73. David Davis Says:

    I’d like to test and develop my app, but I can’t get anyone to provision my PS :(

  74. Ken Says:

    Ok, here’s my application. Web Apps count right? :D

    DreamZilla lets you download a formatted XML file that you can import to FileZilla all of your user logins for FTP, SFTP, and Shell.

    http://www.kenmoini.com/dreamzilla/

  75. John Says:

    API Seems down right now…. (?)

  76. Eric Says:

    Thanks for the work on the API!!

    So… no_unique_id seems to be a problem still, no?

    I agree that announcement_list-lists is a really good idea.

    I think it would be nice to be able to get a list of API commands with permissions for a given user or API key.

    Thanks for all the work, Josh.

  77. John Says:

    Hi Josh,

    I’m not seeing my sql servers in the domains list — Specifically I would expect to see the machine mysql.mydomain.com which exists but isn’t showing up — Is it possible to have that added to domain_list-domains with a type of ’sql’? (or any other way really)

    Also as a few others have mentioned it would be nice to get some test accounts — I think most of us are testing on our own accounts but there are likely many different configurations possible so if you could provide some demo api keys for us to test against that would be great (ideally the demo keys would span a fairly wide gambit of configurations, ps, no ps, *large* mail lists, lots of domains, etc.)

    -John

  78. Jonathan Rudenberg Says:

    +10 for the demo keys.
    What about a MySQL DB.

    And a RESTful API with content-type negotiation would be awesome. The current API endpoints feel kinda haphazard.

  79. Dominic Blais Says:

    Hello! I submit my entry into your contest. SweetDreams aims to be *the* canonical DreamHost iPhone app, with 100% API coverage (including the DNS records you recently added :] ). It has just been submitted to the iTunes store and will be completely free, with licensing under the GPL v3. The full source code, with Xcode project file and supporting files, is available at:
    http://www.snisit.com/software/sweetdreams

    To test it with a simulator use ‘test’ as the username and apiKey (there is a simple test harness for testing that doesn’t require any demo account changes). Also of interest to other OS X and iPhone developers, there is a threaded API calling system that you might find useful.

    This was a fun project; thanks DreamHost! I promised my fiance I’d buy her an iPhone if I win the prize. Here’s to that hope and the best of luck to all other contestants! :)

  80. Josh Jones Says:

    Hey All!

    Okay, we’ve added announcement_list-list_lists, api-list_accessible_cmds, dns-add_record and dns-remove_record. I also updated the wiki page with all possible errors each function can return.. hopefully that will work as well as numerical error codes?

    domain-list_domains now also includes domains of type “mysqldns” which only have: account_id domain home type

    I’ve also removed the ? from the fields editable? and confirmed? because of the xml-compatibility issues.

    Also, yep.. POST works for all the requests as well as GET. In fact, and I don’t want to start a flame-war about RESTfulness, we’ve decided for the time being to focus on adding more features to the API at the expense of reworking some of the syntax of it. So, it won’t be changing to be any more RESTful, nor will the format of the XML response be changing anytime soon. Maybe down the line we’ll work on that stuff, with some kind of new “version” option.

    As for who will decide the winners, we’ll be putting them up for a vote among all our employees.

    Providing a test API account sounds like a good idea, I think it’s going to be a little tricky to implement quickly though…

  81. Eric Says:

    Thanks for all the hard work, Josh!

  82. Dominic Blais Says:

    Great new features! I’ve just updated the SweetDreams iPhone application to version 1.1 to include all the new functionality. It’s back at 100% API coverage.
    http://www.snisit.com/software/sweetdreams/

  83. Peter Says:

    I have spent some of my free time over the last week creating a .NET library to access the DreamHost API. It is not feature complete yet but it does cover Users, Domains, Listing DNS, and Private Server Setting Settings and Listing Settings. I should have the rest of the API covered soon. So anyone wanting to use the dreamhost api can now do so easily from IronPython, IronRuby, C#, VB.NET and Boo. Currently I have also created a small windows gui to Demonstrate the API as I wrap it.

    http://www.majorsilence.com/dreamhost

  84. John Says:

    Hi Josh,

    I was thinking for the ‘test’ api you could just create some keys with different account types — You could turn off anything that is potentially dangerous (e.g. passwords, rebooting, etc.) and just leave the ‘read only’ features turned on.

    -John

  85. Jerod Santo Says:

    Josh-

    Thanks for adding all the requested functionality! I’m updating Dreamy to include the new stuff.

    I have a question regarding dns-add_record:

    Is it by design or error that I cannot add a record to one of my domains if it is not fully hosted (web) by DreamHost? I have many domains where I use you guys for email, DNS, etc but host web sites elsewhere.

    The error returned from the API when trying to add a record for a non-fully hosted domain is: “no_such_zone”

  86. Anthony Says:

    Hi, could you add the ability add notes to the dns records when adding them with the dns-add_record API call? I need them for internal use for something I am working on, and I can get them from the API call, I just can’t set them.

    Thanks a lot, and you will be seeing my entry soon!

  87. Otto de Voogd Says:

    This is my entry for the contest:

    Dreamhost PS Manager:
    http://www.7is7.com/software/dreamhost/psmanager.html

    It dynamically manages the size of the memory of a Dreamhost virtual private server and optionally allows you to follow those changes via Twitter.

    Also see this Dreamhost forum thread: http://xrl.in/242w

  88. John Says:

    Hey Josh,

    For those of us working on iPhone/iPod touch app’s we’ll need device ID’s to get you a binary that you can test. is it possible to share some device ID’s for your test device(s) so you can evaluate our entries properly? (To get the device ID click on the serial number of the device in iTunes and a longish hex string will appear — you can then just hit ‘cmd-c’ (mac) or ‘ctrl-c’ (windows) to copy it (you don’t need to select it, just issue the copy key)

    Also just to be clear — Entries need to be in by 11:59PM (california time) April 30th, correct?

    -John

  89. Alain Says:

    No, the deadline is May 31st!

  90. Tom Scott Says:

    Hello!

    Presenting Mailviz: a handy visualiser for your Dreamhost mailing lists, letting you put that lengthy, complicated list of subscribers into simple graph form. It looks quite nice too.

    http://mailviz.dreamhosters.com/

    How’s about that then?

    – Tom

  91. Ryan Means Says:

    My entry for the contest:

    ListOff: An off-line announcement list subscriber. It packs an embedded database and web server. ListOff lets you pull your announcement lists, then go off-line and subscribe users to your lists either via the GUI interface or by serving up static files with the built in webserver and POST interface for accepting new subscribers. When you get back to the internet, simply “sync” and ListOff will add all the subscribers you collected to your announcement lists.

    ListOff is ideal for your clients who participate in events where they have a booth setup and would like to add people to their announcement lists without collecting that information on paper.

    The app and more information can be found here:
    http://listoff.meanses.net

  92. Somebody Says:

    Hello!

    Apps submitted before 30th April 11:59 PM will have the chance to win additional 2k prize, right?
    Josh, could you please talk something about time of choosing winners? (Another words, how long voting will be.)

    Thanks for such sweet contest!

  93. Somebody Says:

    > Apps submitted before 30th April 11:59 PM will have the chance to win additional 2k prize, right?
    So now it is 16:30 + 24 = 40 and a half hours in DreamHost’s time zone, right?

  94. Dan VanWinkle Says:

    I think it would be nice to add a way to send out messages to announcement lists. I know I would like to stop using discussion lists, and have a way for members of my fraternity to send out messages through our website without giving them access to my dreamhost account.

    Thanks,

    Dan

  95. John Says:

    Hey Josh,

    Possibility of sharing a device ID from a iPhone/iPod touch? (see comment 88 above) — It’ll be hard to evaluate my entry otherwise…..

    -John

  96. Anthony Maciel Says:

    Well, here is my entry! It is a remote support program, called DreamSupport. It allows you to remotely control another person’s computer for assistance or training purposes. On the user’s end it is as simple as possible, requiring only 3 clicks by the user. The thing that makes my solution unique (and the way in which is uses the DH API) is that the list of support computers it pulls from is gathered from DNS records, meaning once you create the EXE file, you will never have to modify it again. More information is available at http://anthonymaciel.com/dhcontest, including instructions on how to set it up and use it.

    Thanks for this opportunity!

    Anthony

  97. keyzee Says:

    I think my earlier comment was marked as spam, so here’s a quick resubmit of my contest entry:

    ChirpBot.com

    With chirpbot.com, you can use Twitter to execute any of the DH API functions. Reboot or resize servers, manage mailing lists, add/remove DNS entries…all from your phone or pc without any special client software.

  98. Yaosan Says:

    Here’s my entry to the competition: http://memcron.com

    memCron is a memory manager for DreamHost PS, which optimize the memory size to ensure your site scale nicely to accommodate any traffic at any given time. memCron is written in Perl and relies on cron jobs to perform scheduled memory inspections.

    Statistical methods are used to determine how much memory should be reserved at any given time. Due to the daily 30 resize limit, the code is carefully designed to work within this limit the best it can.

    * I hope this doesn’t get marked as spam *

  99. Anthony Says:

    Oh, and just wondering, will the “Early Bird” contest winner have to wait for the main contest to end before they find out, or will you announce them separately? Approximately when will the announcement(s) be made?

  100. John Says:

    My Entry

    DreamApp

    http://dreamhostapp.com

    A iPhone/iPod touch app for managing your account — It will give you a health status of your web site and then some. Sadly I can’t put a public beta link since I have to have device ID’s but if you are interested in testing drop me a line (see the post)

    -John

  101. Anthony Maciel Says:

    Well, since no one else seems to have made one, I went ahead and whipped up a Dynamic DNS app using the DreamHost API. It should only be used for personal use since it requires full control over the DNS records (dns-* privileges), but it definitely works. You can catch it here: http://anthonymaciel.com/dhcontest, right below my other entry. Simply download the file, extract it, run setup.exe, and enter in your API Username, Key, domain name (EX: dyndns.anthonymaciel.com), and specify an update interval. Then simply click “Save Settings” and it will start tracking your IP and updating accordingly.

    Oh, and it was never stated that multiple entries were not allowed, so I am going under the assumption that they are. If not, then use my previous entry.

  102. Dominic Blais Says:

    SweetDreams has been approved by Apple and is now on the iTunes store at:
    http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=313754897&mt=8
    I’ve submitted the updated version 1.1 and that should appear soon (they don’t allow updating until the original version is approved). The source for 1.1 is available meanwhile at:
    http://www.snisit.com/software/sweetdreams

  103. Josh Jones Says:

    Hey Everybody!

    I just want to say thanks to everybody who submitted apps by the early deadline… it looks like we got 16! Me and some other people over here will be reviewing them all and deciding on who wins the early $2K, and they’ll get a mention in the April newsletter, hopefully within the next week or two! :)

    I’m also going to be addressing some more of the recent suggestions made here by the time that newsletter comes out!

    Remember, even if you don’t win the early bird prize, you’re still in the running for the May 31st deadline!

    josh!

  104. Joshua Lange Says:

    Ah! I missed post 101. Anyway.

    I made a cross platform (Windows/MacOS/linux) dynamic dns client in perl.

    It can easily be set up as a daemon, and instructions are included with the script.
    http://www.joshlange.net/dreamapi/

  105. John Says:

    Hey Josh,

    I’m getting a lot of “Lost Network Connections” from API calls right now…. Is the API healthy?

    -John

  106. John Says:

    Hey Josh,

    I’m getting a lot of “Lost Network Connections” from API calls right now…. Is the API healthy?

    -John

  107. Joshua Lange Says:

    I posted 2 more scripts. A CSV import/exporter (supports the api in a generic way. A user can dump any data to CSV, and also import any CSV data as well), and a CLI wrapper.

    http://www.joshlange.net/dreamapi/

  108. Joshua Lange Says:

    I don’t know how willing you are to connect this up with your billing/etc system, but it would be sort of cool if it were possible to register a domain and configure it (park/mirror/new/edit).

    Managing user’s would be nice (change passwords, new user, delete user, etc)

  109. Dominic Blais Says:

    SweetDreams 1.1 is now posted to iTunes. Updates can take a long time to review apparently. :)
    http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=313754897&mt=8

  110. Josh Jones Says:

    Heyo!

    Just a quick update.. there’s now a test api user:

    username: apitest@dreamhost.com
    API Key: 6SHU5P2HLDAYECUM

    (it only has access to “list” functions though!)

    and also, that “no_such_zone” error Jerod mentioned has been fixed! More functions and the winner of the early-bird contest announcements coming sooooooon..

    josh!

  111. Jerod Santo Says:

    Thanks Josh, very cool!

  112. John Says:

    Has anyone got the Announcement Lists to work properly? I keep on getting no_such_domain for announcement_list-list_subscribers even though I (think) I’m formatting it all correctly…..

  113. Dan VanWinkle Says:

    @John
    Yes, I have gotten it to work. Don’t forget to add the “listname” and “domain” properties.

  114. Dan VanWinkle Says:

    @John
    I just realize you may be talking about the test API that Josh provided. If you are, he said that it only has access to the List functions, and that is not one of the functions he is talking about.

    @Josh
    Any way that we can get a test private server that we can restart and everything to test those functions? I can’t really afford a PS and would like to be able to test some functions on the private servers!

    Thanks,

    Dan

  115. John Says:

    @dan — It is on the test API josh gave us but It’s been my experience that the API normally returned this_key_cannot_access_this_cmd when a feature wasn’t enabled — I’m getting a much different response and the URL looks properly formatted to me (plus it works on my own test account)… Has anyone been able to get it to work or are you also seeing the no such domain error?

  116. Josh Jones Says:

    Hey Guys!

    Whoops, I fixed the bug that was giving no_such_domain on list_subscribers!

    And I made it so you can reboot and set the settings for ps7093 with the test account! It actually already could be resized. Keep in mind ANYBODY using the testapi may change the settings/reboot/resize that ps, so if it keeps changing randomly or rebooting, it’s probably because somebody else is doing it!

    There’s also a new function, domain-list_registrations which, as you may have guessed, lists all the domains you have registered through DreamHost!

    josh!

  117. Jerod Santo Says:

    @Josh

    I’m not so sure its a good idea to actually reboot that test account when people tell you to…

    Maybe you could just return a success response but not actually perform the reboot. It could be incredibly frustrating for others who are testing against it if one of us keeps rebooting it!

    Otherwise, thanks for all your work. I’ll be adding the new domain-list_registrations to my Dreamy library soon.

  118. Dan VanWinkle Says:

    @Josh

    I just started getting an error while trying to list subscribers for a domain. Error Follows:

    Software error:\nattempt to access field \’listname\’ in object of class Ndn::Dreamhost::MailingList at /usr/local/lib/site_per/Ndn/Common/Object.pm line 1307

    Can you look into this sometime?

    Thanks,

    Dan

  119. John Says:

    @josh I was just going to post what @dan posted…

  120. ebay business guide Says:

    you can use Twitter to execute DH API functions.

  121. Cpo Says:

    Why is there no “Add Domain”?

  122. unofficial API for the others... Says:

    Hi, I don’t know if I can participate,, but last year I started developing a small PHP script to emulate actions on the Dreamhost Panel. You download the script and use it on your side.

    At the moment it just has a few functions available and people does not seem really interested (I haven’t spread the word and I get less than 5 hits a day — well a little bit more now the official API was released, that was 28 on April 15th).

    Anyway I would not spit on the runner-up price (that would be 4th place I guess, after gold, silver and bronze :) even if I do know Dreamhost doesn’t really like it. So I thought I’d submit it here, although it’s not for PS users and it doesn’t rely on the official API.

    ps : if you can help please do, I’m not a professional coder and as I said I’m not getting a lot of feedback. Thanks and have a nice day !

  123. Jerod Santo Says:

    Congrats to chirpbot.com author for winning the early bird prize! You wrote a truly innovative application.

    Cheers!

  124. groovix Says:

    some mysql api commands would be nice, it’s a big hassle to leave the command line and use panel.dreamhost.com to create a new database when installing software. they must already have some kind of internal mysql api for the “One-Click Installs”

  125. David Davis Says:

    Funny…the dumbest used of the API won the earlybird. This contest _is_ crazy.

  126. Dominic Blais Says:

    SweetDreams is now on SourceForge, more fully opening up development:
    https://sourceforge.net/projects/sweetdreams
    Hopefully there will be many iPhone/Mobile apps on there some day… :)

  127. digitivity.org Says:

    Why aren’t more of the functions of the panel exposed? And why only for Private Servers?

    Wouldn’t it be handy to be able to set certain settings of your site(s) through a local app vs. the Dreamhost panel?

    As good as the panel is, your making the API available is actually an admission that it’s certainly possible somebody could create an interface that some users might find handier than the panel, no?

  128. Dan VanWinkle Says:

    So are you ever going to fix the API for listing announcement list subscribers?

    Dan

  129. Andrew Says:

    Alright, here’s my entry.

    http://andrewrlynch.com/iiomdhp

    Doesn’t that look like fun? It checks to see whether or not your site is on your DreamHost panel!

  130. Andrew Says:

    My entry is the url on my name, because for some reason I can’t put the url in the comment.

    The app checks to see if your site is hosted on the Dreamhost panel. No fancy plugins, no advanced functionality. Just proof of concept.

  131. Alain Says:

    @Dan : I’m also waiting for that to be fixed!

    @Josh : Please fix the API, there’s not much time left to finish our apps! :(

  132. Louis St-Amour Says:

    I was going to write a /better/ iPhone app interface, etc., but changed my mind. There’s not enough in the current API to warrant a good app. What I was looking for was info on billing, and particularly info on goodies and databases, etc.

    The idea: A simple app that let you know when you need to pay up on your DreamHost bill, shows you the stats, lets you make support requests/check uptime, but best of all — let you on the fly set up a new website, handling the registration and everything. I mean, why can’t I have an app that in a wizard-fashion, lets me install various apps — perhaps user-contributed — and then present a setup wizard for the app, and further admin tools customized for the iPhone?

    But the same functions that you claim will be used for reselling are the functions I want to use for my personal iPhone app. (E.g. databases) Heck, why not make the “reselling” an API too — create an API for your sign up process, make it easy to transfer a website from one user to a new account?

    Regardless of the above, if the API is in PHP, I would highly suggest using Recess for your API. It’s absolutely fantastic:

    Intro to how easy Routing is:
    http://www.recessframework.org/page/routing-in-recess-screencast

    Source Code: http://github.com/recess/recess/tree/master

    Full website: http://www.recessframework.org/

    I’m using it now as a wrapper for a web-scraped API. And no, it’s not for the DreamHost panel, though I started to do that too — see my original login attempt for the DreamHost panel, way back in 2006 (!) and for which I can’t even remember why I was doing it, over here in the first comment: http://snippets.dzone.com/posts/show/788

    Anyway, the only people you’re stopping here aren’t resellers, but legitimate personal automations. Anybody doing resale won’t bother using an official API, they’d scrape their own unofficial one so that they could hide better, perhaps by randomizing the user agents, etc. That is of course assuming they bother to automate such a process in the first place.

    So take a look at Recess, and thanks for another funny-as-usual newsletter,

    Louis St-Amour from Toronto, Canada.

  133. neurojavi Says:

    I need you to fix the API for announcement list too.

    Pleaseee!

    And it would be very useful if we could create and delete announcement lists. And what about changing all announcement lists params?

    I would like to see an API with the same functionality as the announcement lists CGI: http://blog.dreamhosters.com/kbase/index.cgi?area=858

    Without this, our announcement list management applications would be only toys…

    Many thanks!

  134. Marco Says:

    Hi guys,
    I’d like to submit this simple Google Gadget I made, that charts the PS usage stats using the APIs.
    The gadget XML is: http://hosting.gmodules.com/ig/gadgets/file/112674612464133129269/dhchartplugin.xml

    You may use it in your website or iGoogle: just remember to change your preferences (change email and key and use a key without writing permissions, as the data is embedded in the javascript)

    You will find an example which uses the test key given in the DH wiki, here:
    http://www.mindsuburbia.net/2009/05/20/284/
    Please also report impressions and bugs there.

    Thank you!

  135. acu Says:

    @Josh, et al.:

    Thank you for your work on fixing the ‘announcement_list-list_subscribers’ API command. It’s working better. In case you haven’t noticed by the time you read this, the ‘listname’ parameter for that command is currently being mapped to the wrong field. For instance, while a URL of the form

    https://api.dreamhost.com/?username=apitest@dreamhost.com&key=6SHU5P2HLDAYECUM&unique_id=CHANGE-ME&cmd=announcement_list-list_subscribers&domain=filesforever.com&listname=dumb

    performs successfully, this is only because both the ‘listname’ and ‘name’ fields have the same value (‘dumb’). A similar URL for the other sample list fails, giving a ‘no_such_listname’ error:

    https://api.dreamhost.com/?username=apitest@dreamhost.com&key=6SHU5P2HLDAYECUM&unique_id=CHANGE-ME&cmd=announcement_list-list_subscribers&domain=groo.com&listname=announcements

    However, it works when you use the value from the ‘name’ field (after encoding that description appropriately:)

    https://api.dreamhost.com/?username=apitest@dreamhost.com&key=6SHU5P2HLDAYECUM&unique_id=CHANGE-ME&cmd=announcement_list-list_subscribers&domain=groo.com&listname=%22Groo%20Announcerse%22%20%3Cannouncements%40groo.com%3E

    (For anyone reading this who’s trying to follow the links, remember that you need to change the ‘unique_id’ parameter. The details for the sample lists referenced above can be obtained with the following command:

    https://api.dreamhost.com/?username=apitest@dreamhost.com&key=6SHU5P2HLDAYECUM&unique_id=CHANGE-ME&cmd=announcement_list-list_lists
    )

  136. Alain Says:

    Great, now it says no_such_listname

  137. Marco Says:

    Oops, my Google Gadget above (comment #133) had a dumb bug, but now it’s fixed ;-)

  138. neurojavi Says:

    Hi:

    Tanks for trying to fix the problem with announcement list but, now, I’m receiving a no_such_listname message too!

    error
    no_such_listname

  139. acu Says:

    DreamHost support:

    The announcement_list-list_subscribers command now works partially. However, the ‘listname’ parameter is being mapped to the wrong field (to the list’s description instead of the list’s name.) Thank you for working on the problem. I look forward to it being fixed completely.

    For more details, check the link over my name.

  140. Michal Mocnak Says:

    Hi,

    here is my contribution. Dreamhost IDE.

    DreamHost IDE is php and ruby (will be available soon) integrated development environment built on NetBeans IDE and provides easy deploy of your applications to the DreamHost services. Also provides you an easy eay hew to setup these services.

    You are able to download development snapshot here:
    https://sourceforge.net/projects/dreamhostide/

    and here is the preview screencast:
    http://www.youtube.com/watch?v=bBBTeyY4XRg

    Thanks.

    -michal

  141. Alain Says:

    Cool it’s working now! Thanks for the fix!

    I think I had the no_such_listname error because I used the test api user with one of my listname. Since I knew the api was broken I didn’t look for a problem on my side! ;-)

  142. neurojavi Says:

    Hi again,

    Yes, its working now! Many thanks!

    There’s another problem now:
    When you subscribe a new mail to the mailing list, this new mail would be expected to appear in the list returned by announcement_list-list_subscribers with confirmed=0 but it doesn’t appear at all.

    I can’t track not confirmed users nor can’t check for duplicated subscriptions this way.

    I think this is a bug, isn’t it?

    Thanks again!

  143. Dan VanWinkle Says:

    @Josh: I really need your Identifier (UDID) from your iPhone or iPod touch. I just submitted my entry into the contest to the App Store today, so I am thinking that it will be a little past the due date that Apple will actually approve the app. I will provide you with the exact same app that will be released in the App Store. I am not sure how long Apple will take reviewing this App, seeing as it is my first App.

    @Dominic Blais: How long did it take for Apple to approve your App?

    @Everyone Else: If you want a copy of my iPhone/iPod touch App, please send me your Identifier at dan(theGreatAmpersatSymbolGoesHere)greenmansoftware(pueneyDotGoesHere)com.
    I will give an Ad Hoc copy to the first 5 people who email me. I will also give a promo key to the first 10 people to email me who doesn’t work at Dreamhost. For those of you who do work at Dreamhost, just email me letting me know that you want a promo key for the App, and I will send you one as soon as they become available. Lets just hope there aren’t more than 90 people at Dreamhost who wants one…

    Anyway, I will post some information on my website tomorrow, so you can all take a look at the app until Apple approves it :-)

    Dan VanWinkle
    Green Man Software

  144. Dominic Blais Says:

    Hello, Dan. It took about 8 days for the original submission to be accepted and also about 8 days for the update to be approved. From past experience, it takes about 7-10 days but if there are any problems in their testing of an iPhone application (for example, if they didn’t know how to test the application because it didn’t include a test account or similar information), this delay is basically reset and perhaps extended a day or two (as if they test things more carefully if they are retesting). Congratulations on completing your application and the best of luck to you!

    Sincerely,
    Dominic Blais

  145. Webdigi Says:

    Hello! We worked on a desktop application that uses Dreamhost API. http://www.webdigi.co.uk/blog/apps/dreamhost-controller-using-api/

    We built the app using Adobe AIR and so it should be able to run on a Mac, Windows and linux operating systems (tested on Ubuntu). We have many more ideas on building the app into a more user friendly app and adding desktop specific features like taskbar alerts, etc. We are also looking at getting this on Adobe Marketplace and getting it digitally signed.

    I would love to hear from people who have used APIs to build systems as well.

    Kind Regards
    Webdigi

  146. Dan VanWinkle Says:

    @Dominic: Thanks! Appreciate the information! Hopefully it will be out before the contest deadline, but seeing as there are only 4 business days, I doubt it will be… We shall see… Thanks for the congrats, hopefully now that there is some competition, we can both better our Apps :-)

    @Everyone Else: Just to make the email address easier on you, my email is dan(at)greenmansoftware(dot)com. I was über tired when I wrote the last post, and didn’t realize how hard that was to read, lol…

  147. Dan VanWinkle Says:

    Woot! Just saw all the new features listed in the API!!! Can’t wait to see the documentation!

    Thanks a ton Josh! Version 1.1 of DreamAdmin will be started immediately!!!

  148. Chris Blanquera Says:

    Reporting for duty. Where do we post our entry ? on the comments?

  149. webdigi Says:

    I tried posting my humble app and I guess it got caught by the spam filter. Looking forward to your comments http://www.webdigi.co.uk/blog/apps/dreamhost-controller-using-api/

  150. Dan VanWinkle Says:

    Ok, here is my official entry into the Dreamhost API Contest!!! The App was submitted to Apple on May 26, so I am doubting that it will be up by the 31st…

    @Josh, can you confirm that you have received the copy of the app?

    Thanks!

  151. Dan VanWinkle Says:

    Whoops, don’t know why this link didn’t show up… It works if you click my name, but lets try this again…

    http://www.greenmansoftware.com/

  152. Dan VanWinkle Says:

    Hmm, this is odd, I can’t get links to work… Lets try this again… http://www.greenmansoftware.com/

  153. Dan VanWinkle Says:

    http://www.greenmansoftware.com/

  154. Dan VanWinkle Says:

    Wow, for some reason URL posting isn’t working… Just go to http://www.greenmansoftware.com, and you will see the entry… It is an iPhone App… Also works on iPod Touch, and in software 3.0 :-)

  155. Dan VanWinkle Says:

    haha, I guess you just can’t post http… go figure…

  156. Stephanie Palaganas Says:

    Just to confirm, what exact time do we need to submit everything by on May 31, 2009? Is it 11:59PM PST?

  157. digitivity Says:

    Could you update the test user account to allow access to all list functions (including new ones?). Thanks.

  158. Josh Jones Says:

    Hey All!

    Oops, I’m sorry about the announcement list bug.. as you’ve noticed it’s fixed now!

    Also, there are these new functions:

    ‘mysql-list_dbs’,
    ‘mysql-list_hostnames’,
    ‘mysql-list_users’,
    ‘mail-list_filters’, and
    ‘announcement_list-post_announcement’,

    documentation updated and the test user now has access to them all!

    Also, the list_subscribers command now lists pending subscribers (they’ll have an confirmed value of 0)!

    Two days to go! The deadline is to post your entry in these comments by 11:59pm pacific on Sunday!

    josh!

    P.S. my iPhone’s id for anybody who needs it is: 1dc7f43d9f14ea998cf048ca40ce7a0020e7cc88

  159. www.tombstonekid.com Says:

    I am Number #1 for everyone that google mogul snowboarding I write such clean code my site is up in 1 second. I hate to wait if I can count to 3 I dont want to be there. speed and being number #1 out of 350,000 on yahoo and google. I have tons of hits every day and Love IT.
    Later

  160. www.tombstonekid.com Says:

    I am also a high school drop out that is going to have a MBA I have been in school 10years 1 dixie 1 uvsc 3 ITT ASSOCIATES
    3 Phoenix BS and 2 phoenix MBA. They made me redo my associates because ITT is not acredted school. thats ok because I went from a 2.5 to a 3.6 I now know my shit add it up 10 years. I went back received my GED and Adult diploma.
    Later

  161. Alain Says:

    @tombstonekid : So what’s your point? If you’re #1 in google you don’t need to spam the comments of this blog! I won’t comment on your coding skills, don’t want to start a war!

  162. RossE Says:

    Oh, pu-leeeeze extend the deadline.

    Just found out about the contest, and I’m crammin!

    Just a week? Pretty please?

    Ross

  163. Dan VanWinkle Says:

    @RossE: everyone already has a huge head start, if you are cramming now, Do you think it will matter? I am not saying it can’t be done, but still! I mean, still create something amazing with the API, but mine took a month to write, and a week alone to test, so I really doubt an extra week will help…

    I say that, and I need a couple more days for Apple to approve my App, so it isn’t like I am not wanting an extension, I just think it will be hard to produce a quality product in a week…

    @Josh: Can you tell me if you received my Ad Hoc Distribution?

    Thanks,

    Dan

  164. neurojavi Says:

    Hi:

    @Josh: Thanks for the new api post function and for the fix to subscribers state!

    Sorry but there are more problems with announcement lists:

    When you have more than one list, you have one mail pending confirmation and you try to subscribe the same mail to another list the api gives you a error message (the same it gives you when yo try to subscribe a user to the SAME list)

    email_requested_to_be_added_in_last_two_days_already name of the first list

    I know that this is very unlikely to happen but it’s very common doing tests (like me or you when testing the apps)

    Thanks.-

  165. Allan Clark Says:

    I love the attitude of this blog — it’s one thing to discuss “the news at our house”, but so much more enjoyable when it’s detailed yet humourous, tongue-in-cheek, and lighthearted. Thanks!

  166. N0k3R Says:

    Hi! Please, please, check my entry to this competition! One month of development and now it’s already done! I’m sure I can win at least a lollipop!

    DreamHost Mobile: Extending web on Mobile!
    http://n0k3r.blogspot.com/2009/05/dreamhost-mobile-extending-web-on.html

  167. Alain Rivest Says:

    Here is my application for the API contest :

    http://www.vivahate.org/j/en/blog/web-development/116-dreamhost-manager

    It’s a an extension for Joomla 1.5

  168. Chris Blanquera Says:

    I guess my post was too long.

  169. Chris Blanquera Says:

    Now you can fire your entire system administrative team !

    My contest entry is called Dreambot. It’s a Google/Jabber IM client that runs on your server and can perform SVN commands, Database commands, bash commands (just to name a few) on the fly and on demand. You can use any laptop, desktop, phone, any device with Google/Jabber IM or compatible and internet access. Dreambot can be fully customizable to the point where I wouldn’t know how to use your version of it. You can find out more about Dreambot here:

  170. Chris Blanquera Says:

    dreambot.openovate.com

    Thank you and Good luck to all the Entries,
    Chris

  171. gardolas Says:

    Morning all!

    Here be my entry to the contest apps.spaniq.com/dhmanagr.

    Lists all (or some) domains from a dreamhost account, pings them to check for life and links to a Google Analytics account to get some basic site stats.

    Due to a cunning typo when i created the app i can claim to be all like totally web 2.0 and therefore the app can be perpetually in beta. Seriously though, botched this together over a couple of nights, it basically works but there may well be bugs!

    Cheers,

    gardolas

  172. Jerod Santo Says:

    Hi all.

    Just wanted to say good luck to all participants, there are some pretty cool apps that have been submitted.

    Josh, before you evaluate Dreamy, my Ruby library and command-line tool, please make sure you have the most recent version of the gem because I just added the MySQL commands this weekend.

    “sudo gem install sant0sk1-dreamy –source http://gems.github.com

    After you execute that command you should have Dreamy version 0.5.0 installed.

    Thanks!

  173. Sze Chuen Says:

    STATTER

    Using the DreamHost and Twitter API, STATTER monitor your domains and send you a direct message whenever they are unreachable so you can be informed of your domain’s real-time status on Twitter or via SMS.

    http://statter.dreamhosters.com/

    Hope you can try it out and provide some feedback!

  174. Michal Mocnak Says:

    Hi,

    updated version of DreamHost IDE is available here:
    https://sourceforge.net/projects/dreamhostide/

    -michal

  175. Aaron P. Says:

    DHrebootr is a fun flash app that shows you what really happen behind-the-scenes at Dreamhost every time you reboot your server. It’s amazing how committed DH staff are…

    sociotopia.com/dh

  176. Dominic Blais Says:

    With SweetDreams nearing 1000 downloads on the iTunes App Store, I’m releasing version 1.2 with support for the new MySQL database, user filter, and announcement posting features. You can download the source at http://www.snisit.com/software/sweetdreams/ or https://sourceforge.net/projects/sweetdreams/

    Version 1.2 has been submitted to the App Store, but in the meantime, version 1.1 is available at:
    http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=313754897&mt=8

    Regardless of the outcome of this ‘crazy’ contest, SweetDreams is GPL’d with readily available source code. Hopefully it has been of some use to folks and will be so in the future (including for new iPhone developers looking for examples).

    Thanks and please have a great day!

  177. Deekoo L. Says:

    I was going to write a noninteractive command-line app for using the Dreamhost API (on the grounds that I am crazy enough to consider commandlines friendlier than GUIs and webapps). I turned my back on it overnight, though, and it turned into an interactive shell: http://deekoo.net/technocracy/lsdh/ . It works under Debian Lenny; I haven’t tested it on anything else, but if you have perl and WWW::Curl it has a decent chance of working.

  178. acu Says:

    My contest entry, Dalmatian, is an announcement list management program. The program’s web page is not up yet, but will be published later today. I just wanted to make sure this post got through in time.

    Andres

  179. neurojavi Says:

    Hi all:

    This is my contest entry: http://neurohost.neurofun.com
    (it will be online very very soon)

    It’s
    - a web app to manage announcement lists and emails accounts.
    - a drupal module to allow the use of DH announcement list from a drupal website

    It’s oriented towards final client use. A lot of DH users resell services to their clients (web design, domains, etc.) and have problems when a client of them wants to manage a lot of email accounts or big announcement lists.

    I have had this problem more than once.

    This is the solution to that problem…

    More info in the website main page.

    I’m sorry but for now only DH staff can test the application…

    @ Josh: I need your email to create a test account in the website for you. Can you send it to me via mail?

    Many thanks!

    PS: GOOG LUCK TO ALL!!! This contest has been very hard and very funy too!

  180. Evan Audette Says:

    Hello Everyone,

    I’m new to application development (esp. with APIs) and whipped this up over the weekend in my spare time for the contest:

    http://apps.tag-r.com/adobe/air/Nemo.air

    Anyone remember the Little Nemo classic Nintendo game? I figured it fit with a name like DreamHost ;)

    This “little” Adobe Air app lets you view the output of the list-* API commands (only those that do not require input) so site/account administrators can have quick access to basic site info/settings.

    Not much, but I had fun in the short time I had to work on it :)

    Enjoy!

    -Evan / aka “OddKode” @ Tag-r.com (coming soon!)

    P.S. I only had time to test this on Windows 7 and XP, sorry :{

  181. Dominic Blais Says:

    My comment has been held in moderation for several hours with quite a few others coming through in the mean time, so I’m going to repost it. My apologies if the first one comes out of moderation and a dupe occurs.

  182. Laurens Says:

    Hi!

    Just in the nick of time, here’s my submission: DreamPyLib! A completely future-proof library for Python! Hope it’s useful!

    Cheers!

    Laurens

  183. Walter Ebert Says:

    Created a desktop application based on Adobe Air.

    http://www.walterebert.com/tools/desktopclientfordreamhost/

    With an easy to remember name ;-)

  184. Dominic Blais Says:

    With SweetDreams nearing 1000 downloads on the iTunes App Store, I’m releasing version 1.2 with support for the new MySQL database, user filter, and announcement posting features. You can download the source at http://www.snisit.com/software/sweetdreams/

  185. Dominic Blais Says:

    Version 1.2 has been submitted to the App Store, but in the meantime, version 1.1 is currently available. (The App Store link is apparently causing the moderation filter to kick in, but a search for DreamHost or SweetDreams will find it.)

    Regardless of the outcome of this ‘crazy’ contest, SweetDreams is GPL’d with readily available source code. Hopefully it has been of some use to folks and will be so in the future (including for new iPhone developers looking for examples).

    Thanks and please have a great day!

  186. James Baughn Says:

    My previous comments keep getting sent to limbo, so here’s another attempt. Click my name to go to the download page for my entry, the Slashdot Effect Prevention Kit.

  187. Yaosan Says:

    memCron 0.3 is finally released with 2 new features: new plotting options and new scaling parameter.

    For those of you who haven’t heard about memCron, memCron is a memory manager for DreamHost PS, which optimize the memory size to ensure your site scale nicely to accommodate any traffic at any given time. memCron is written in Perl and relies on cron jobs to perform scheduled memory inspections.

    Check out the demo here: http://memcron.com/demo/

    If you happen to be a DreamHost PS user, please give memCron a try, I’m sure you’ll love it! memCron can really saves you money and time through its smart, automatic memory management system.

    Lastly, good luck to everyone participating in this contest!

  188. digitivity.org Says:

    Dreamvue, the Dreamhost desktop management application, is avaiable here:

    http://www.digitivity.org/apps/dreamvue

  189. Ethan Piliavin Says:

    WP-DreamLists – A Wordpress plugin that allows visitors to subscribe to Dreamhost announce lists via a widget, as well as view and manage the lists in the Wordpress admin panel. Additionally the WP Admin can send HTML emails to the lists using the current Wordpress template. All due to the Dreamhost API. (Bug fixes, documentation, and other useful and important things coming soon…)

    http://www.piliavin.com/codes/

  190. acu Says:

    Dalmatian (DreamHost Announcement List Management ApplicaTIoN) has concluded its short-lived vaporware stage, and is now available for download. (It is a Windows program.)

    The project’s page is http://www.domador.net/dalmatian/

    Andres

  191. Jon Hassall Says:

    My API application is available to use here:

    http://www.jonhassall.com/hitmap/

    It allows you to view recent visitors to your Dreamhost hosted domain on a world map! Great fun and very interesting.

  192. Sanjin Celeski Says:

    DreamHost API widget for Macintosh Dashboard: http://sanjin.kreativni.hr/DreamHost/

    Good luck everyone! :-)

  193. Gary James Says:

    Hi Guys,

    Attempt number 4, for some reason I’m battling to post this link here..

    http://www.strategyonline.co.za/daydream

    Good luck everyone!

    Gary..

  194. Gary James Says:

    Hi Guys,

    It worked! Except now I’ve missed the midnight deadline by 82 minutes.. I did try to post this 3 times last night, and sent DreamHost an email telling them I was battling to post at 11:45pm.. Hopefully that still qualifies me?

    Thanks all, this has been loads of fun.. And the DreamHost API is proving to be really, really useful to us..

    Cheers,

    Gary.

  195. Sanjin Celeski Says:

    Do we have time to update submitted apps?

  196. John Says:

    Like many others my post attempts from yesterday don’t seem to show up (spam filter?)

    Anyway DreamApp is updated — See the site for details

    -John

  197. Jon Hassall Says:

    Posted it yesterday too… have a go with real-time mapping of your visitors to your web site:

    http://www.jonhassall.com/hitmap/

  198. Dan VanWinkle Says:

    @Jon Hassall: you can’t log in with an apikey that has list_users_no_pw… I can’t imagine this needing passwords for anything…

  199. Ethan Piliavin Says:

    WP-DreamLists updated again, another one coming by morning…

    A poor man’s constant contact… Manage a full HTML based emailing system using Wordpress, allow visitors to subscribe, and send mails using the site template…

    Coming soon: Store old mails in DB, “View this mail as a webpage” feature, and ability to create a new mail from previous…

    http://www.piliavin.com/codes/

    Hey Dreamhost, have you started reviewing the applications?

  200. Jon Says:

    @Dan VanWinkle It is required to get the latest log file for visitors to your site. I’m not sure how else you expect it to do it.

  201. Dan VanWinkle Says:

    @Jon: That makes since… Thanks!

  202. Dan VanWinkle Says:

    haha, just realized that I can’t spell… sense***

  203. Charles Says:

    Dang… I just saw this post!

  204. n0k3r Says:

    As I told you, I have made the first update! I’m going to upgrade the software along the month. Thanks for publishing this wonderful API!

  205. Caleb Drake Says:

    Dreamhost Team,

    Can you confirm that you are reviewing applications? It seems a bit odd that none of you have posted anything since the contest deadline. This is starting to seem a little fishy.

    Thanks,
    Caleb.

  206. John Says:

    @caleb – Don’t sweat it — They have probably 30 or 40 things to judge and it’s mostly one guy (Josh) — It might take a month or so to get through them all (for the early bird prize it took I think 3 weeks and there were only 16 entries!)

    They will get to it

  207. Aaron P. Says:

    Well I hope they could at least post a list of all the apps they are reviewing. That way I know my submission didn’t get lost in the posting frenzy…

  208. Baja Real Estate Says:

    So… who won?? Where can I buy all these fab apps?

  209. Dominic Blais Says:

    SweetDreams is available on the iTunes App Store at:
    http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=313754897&mt=8

    A large list of apps built around the API is available at:
    http://wiki.dreamhost.com/API_Apps

    Cheers,
    Dominic Blais
    Snisit LLC

  210. Christian Blanquera Says:

    :( How come my dreambot isn’t on that list ? I turned it in on time. Comment 169 + 170 . http:/ /dreambot.openovate.com/

  211. Christian Blanquera Says:

    nm there are some other’s that aren’t listed as well. Maybe they are still going through acceptance testing.

  212. Dan VanWinkle Says:

    @Christian: I just added mine myself. Sign up for a wiki account and add it… Look at the history, that is what everyone else is doing…

    PEER PRESSURE… lol

  213. Dan VanWinkle Says:

    @Josh: Can you put the API Key from the panel into a div tag? This will allow for easy cut-copy-paste on the iPhone in version 3.0.

    Example: td – div – APIKEY1234567890 – /div – /td

    I think this is a seemingly small request, that will save a few seconds…

    Thanks,

    Dan

  214. Sanjin Celeski Says:

    I also just added my app to the wiki apps list. But I suppose my first post here (that happends to be 1 minute before deadline) is relevant, because, I quote:

    “Develop any application (Windows, Mac, Linux, Web, iPhone, Facebook, Boxee, Firefox Plugin, whatever…) that uses the DreamHost API by April 30th May 31st 2009, and submit a link to it in the comments to this post.”

    They could really leave some note like they did the very next day after deadline of the early bird prize. Instead now they revealed some new functions just the day before final deadline :-) And no sign from them since then. It is weird indeed. I hope it has nothing with recession :-)))

  215. John Says:

    Everyone

    Don’t worry about it — There have a lot of apps to look at (30 or 40? maybe more) — There is one guy judging and he has a full time job so he may look at 2-5 apps a day

    It will take a few weeks (or more) but Josh will get around to it.

    -john

Powered by WordPress. Pool theme by Borja Fernandez, modified by DreamHost.
Like WordPress? Consider attending WordCamp LA.
Entries and comments feeds. ^Top^