Hey everyone! This summer we’re going to be releasing the [third version of our API](https://help.wufoo.com/articles/en_US/kb/Wufoo-REST-API-V3/v3/) and we we’re hoping to get your feedback before we call it done. We designed the Wufoo API to help you unlock the potential of the data collected by your Wufoo forms. Our goal behind the API is to provide all the tools and services necessary to help you build applications, advanced reports and visualizations not currently offered by the default Wufoo UI. After spending months working and [integrating with a number of other APIs and services](http://www.wufoo.com/integrations/), we learned a lot of good ideas about how web applications can help programmers, developers and tinkerers not only build, but want to craft new things.
In the hopes of making our API easier and more intuitive to understand, we’ve tried to break the Wufoo API structure up into logical sections, following as closely as we can to [RESTful](http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_web_services) web service principles. This means that we’ve organized the Wufoo API into a series of resources represented by URLs and that you interact with these URLs using the HTTP methods of GET, PUT, POST, and DELETE.
One of the great things about using a REST API is that you don’t need any fancy programming tools to view the data and play with it, because all you need is a web browser. If you’re logged into your account, you may browse the resources. Here’s an example of some of the URL formats in the new API. Remember to use the version prefix, so `/users.xml` will be `http://{subdomain}.wufoo.com/api/v3/users.xml`.
/users.xml
/forms.json
/forms/{formId}.xml
/forms/{formId}/fields.xml
/forms/{formId}/entries.xml
/forms/{formId}/entries/{entryId}.xml
/forms/{formId}/entries/count.xml
/reports.xml
/reports/{reportId}.xml
/reports/{reportId}/widgets.xml
/reports/{reportId}/fields.xml
/reports/{reportId}/entries.xml
/reports/{reportId}/entries/count.xml
As you can see, the new API will support both XML and JSON for input and output formats. We’ve also included some [convenient parameters](https://help.wufoo.com/articles/en_US/kb/Wufoo-REST-API-V3/v3/#pretty) to make it easy to visually see the results of the data right in your browser. If you want to easily see the XML or JSON output without a debugger, just add `&pretty=true` to the end of the URL and we’ll escape and indent the data to make it convenient to see right in the browser. It’s really convenient. Here’s an example of what that URL would look like:
https://fishbowl.wufoo.com/api/v3/users.xml&pretty=true
Since REST is not a specification, we used as our guiding light [RESTFul Web Services](http://oreilly.com/catalog/9780596529260) by Leonard Richardson and Sam Ruby. Our new REST API is based on the guidelines Richardson and Ruby created for making a Resource Oriented Architecture (ROA). If you want to know more about our specific REST choices and the decisions and justifications we made for following or not following the various ROA concepts, we wrote out a detailed document discussing our process called [The Wufoo REST Principles](https://help.wufoo.com/articles/en_US/kb/Wufoo-REST-API-V3/v3/the-wufoo-rest-principles/).
While the system and documentation is still a work in progress, you can actually start playing with it right now by checking out our [Wufoo REST API documentation](https://help.wufoo.com/articles/en_US/kb/Wufoo-REST-API-V3/v3/). The docs are getting better every day and will eventually be littered with tidbits explaining details of the process and resources to help you dive right in and get working with real data.
Anyway, please do give the new documentation a look, play with your data using the new REST API and tell us what you think. We hope to leave the discussion open for about 2 weeks, then commit to a final design. Thanks and have fun!
**UPDATE :** If you’re playing around with the new REST API, please note that we’ve made some updates and [changes to the Field Structure API](http://www.wufoo.com/2010/05/19/new-rest-api-changes/) results.
Comments
This is big! No more hard to maintain HTML/JSON field scraping.
Thanks a lot,
Posted May 11th, 2010 by tamberg.tamberg
Wow! This new feature sounds great! Keep it up, wufoo!
Posted May 11th, 2010 by Michael.Great work wufoo. We still need more. Like a wufoo IPad app would be great.
Posted May 11th, 2010 by Enoc Perez.Sounds great. I would love to see an integration with Magento Commerce platform.
Posted May 11th, 2010 by monocat.Dang. You got me all excited with PUT and DELETE, but I guess we’re still not given those options?It’s hard to truly tinker and craft without them!
Posted May 11th, 2010 by Jed Wood.We are still waiting for a WordPress Plugin 🙂 – any suggestions – I’m starting now development and I would really appreciate some starting points. Cheers!
Posted May 11th, 2010 by Thomas Binder.@Jed I’m burning the midnight oil to get your PUT and DELETEs going for you. We’re also working towards a login API, too. Hold tight! 🙂
Posted May 11th, 2010 by Tim Sabat.@Thomas – we’d like a WordPress plugin too! If you’d like to start a thread with me in support with any questions you have about the API, I’d be happy to answer them for you. Regarding where to start, I don’t have any WordPress plugin knowledge, so we’d both be starting from scratch.
Posted May 11th, 2010 by Tim Sabat.This is outstanding…super stoked to jump into this.
Posted May 11th, 2010 by Corey G.Yeah the Magento piece would be super helpful to our nonprofit as well.
Posted May 11th, 2010 by Angela.I didn’t see documentation on how to submit entries to forms. Maybe I missed it.
I’m with @Jed on the PUT and DELETE. Could make for some really cool mashups if we had that.
Posted May 11th, 2010 by Tim Morgan.I forgot to say, this is AWESOME! Definitely love the ability to query for users, forms, and other stuff. That will help my little csv2wufoo app on usability. Thanks!
Posted May 11th, 2010 by Tim Morgan.@Tim, we’re really proud of the work you’ve done with the wufoo API. We hope to have submit (POST) done soon.
Posted May 11th, 2010 by Tim Sabat.@Tim (Sabat) Excellent! Keep burning that oil!
I should also clarify that by PUT I meant “edit existing entries,” whether that’s with POST or whatever else, doesn’t matter to me. I know people get picky about these REST terms sometimes. 🙂
Posted May 11th, 2010 by Jed Wood.I am also struggling to find how to submit entries – doesn’t seem to be covered in the docs?
Posted May 11th, 2010 by Rob Holmes.@Rob, we’re working on submit now. For the time being you’ll need to use the old API. The cutover to the new V3 style should be pretty easy.
Posted May 11th, 2010 by Tim Sabat.