The Wufoo API


Introduction

Hi there, welcome to Wufoo’s API Documentation. The Wufoo API opens the door for our users with programming experience to have access to the data collected by their Wufoo form without having to go through the Wufoo web interface. With the Wufoo API, you could massage your data the way you like it before it comes to our servers, integrate the information more tightly with your applications and web site or even create customized reports that are better than ours to fit your specific needs and workflow. The possibilities are truly endless and we’re really excited for you! You’re pretty much going to get to work with the same arsenal of tools that we, the developers, use everyday. Awesome, eh?

As always, we’ll do our best here to guide you through the process of getting started. If you run into any trouble, you can always find help from your fellow friends in the developer forum or even from us personally via support. Don’t forget to have fun and best of luck!

Getting Started

To use the API, you will need your API key and some information about your forms. To obtain your key, log in to your Wufoo account, head to the form manager or “Forms” tab, and click the Code button beneath the name of the form for the form you want to integrate. This will take you to the code manager where you’ll want to click the API Information button to access your API credentials. On that page should be a 16 digit code, which is your unique API key. This key acts as a password to your data, so be sure to keep it private and to never give it out.

API Information

Below your API Key, you will also see a list of your forms and their associated fields. The forms are listed by their Form ID and unique URL. You will use this URL in your code to tell the Wufoo API how to reference a particular form. Additionally, under each form listing, you’ll see a table of fields associated with each form. Each field also has a unique API ID associated with it. To perform any action on a specific field, such as retrieving or submitting data, you will need to reference the field with its unique API ID.

The Three APIs

There are three parts to Wufoo’s API and you’ll want to refer to the appropriate documentation depending on what you want to do with your Wufoo data.

  • The Query API : Basically, the Query API allows you to ask Wufoo for the data you’ve collected. You can programmatically search, sort, filter, and organize data collected through by your forms through this API.

  • The Submit API : The Submit API programmatically submits data into your Wufoo database. The Submit API gives you complete control of where a form is submitted from and what happens after a form is submitted. You could create a custom form on your server, manipulate data before sending it to Wufoo, create widgets, and more. All that is required is that the information submitted through the API matches up with the fields of your corresponding Wufoo form.

  • The Report API : If you don’t want to do your own filtering, you can build a report within Wufoo’s web interface, and then programmatically query data just from that report instead. Basically, it’s the same as the Query API except that filters and conditions are set ahead of time by you in Wufoo’s Report Builder. Additionally, there is a JavaScript version of this API which does not require an API key. This way you can more easily access datasets from reports that you’ve set to be public.

API Restrictions

Our goal with the API is to keep things as flexible as possible. We only ask that you contact us if you anticipate using more than 5,000 requests per day.

What’s an API?

An API, or Application Programming Interface, is a set of functions that one computer program makes available to other programs (or developers) so they can talk to it directly without having to give it access to the source code. The most popular APIs are from operating systems like Windows or Mac OS X. They allow third-party developers to write programs on top of Microsoft’s and Apple’s software. Thanks to Internet pioneers like Amazon and eBay, the concept of APIs have to come to the Internet, which opens up web services and applications to become their own platforms.

Why should I use the API?

While we do think Wufoo is super great and serves the needs of most our users extremely well, we know there will always be power users that just can’t get enough. People’s imagination for what they want to do with their Wufoo data will probably always exceed our programmatic output and so we thought it would only be fair to create an outlet for our cleverest users to get out of Wufoo what they need even if it’s not built into the system by us. Plus, that data is yours and you worked hard to collect it. Why should we be the only ones to have fun with it from a code standpoint?

Can I create or edit my forms with the API?

Currently, the Wufoo API only allows you to access and enter data into form structures already created through our Form Builder in the Wufoo web interface. It is not possible to create new forms or fields or make changes to the structure of your forms programmatically with the API.

What’s different in Version 2.0?

In February 2009, we pulled back the curtains on a new version of the Wufoo API. The 2.0 version was rewritten from the ground up and has some nice improvements that should make working with it a lot nicer. First of all, it should be easier to parse because we’ve made the data hierarchical. Before the change, all of the field definitions were flat, now fields like address and name can define subfields like Street Address, City, State, First, Last, etc. Additionally, with dropdown, radio and checkbox fields, you can now programmatically access the choices you’ve specified from the form builder. This version also adds Likert support to the API, our latest field added to Wufoo.

Querying from a developer standpoint is exactly the same, but the way the data comes back will be different because of the hierarchy we’ve put in the data. So you will have to parse it a bit differently if you’re using the new API. For those of you using the Submit API, you’ll be happy to know that it also will be submitted to exactly the same as in Version 1.0.

For those interested, here’s a link to the old Version 1.0 API Documentation.

Updated : July 17th, 2009