Twiddla Home
Close

Twiddla API Reference

For adding Twiddla to your own site

Twiddla's Application Programming Interface (API) lets you host Twiddla meetings on your own website. You can create new meetings on the fly and embed them into any page you'd like. You can disable the bits you don't want to see, and you can even show your own logo instead of ours.

Developer Interface

Twiddla's public interface is crazy simple. It consists of just two web services along with a URL format for embedding Twiddla meetings in an IFRAME:

There are actually a few more API calls that you can use, though most people will do just fine with the above. If you're looking to squeeze every last drop of Twiddliness out of the API, you might want to check out our Advanced Developer Interface.

Embed:

You can embed a Twiddla meeting into any website simply by dropping the url for that meeting into an IFRAME tag.

For more control, we offer a secondary URL that you can use. Here are the parameters that you can pass:

http://www.twiddla.com/api/start.aspx
sessionid (required) This is the meeting ID that shows so prominently in every standard Twiddla meeting URL.
guestname (optional) If this parameter is supplied, and this user is not yet logged in to Twiddla, we'll give him the supplied name when he joins the meeting.
password or passwordhash (optional) If the meeting is password protected, you can skip the password screen by supplying it here.

The low-tech, yet slightly less secure way of doing it is to simply hand across the password in plain text.

Alternately, if the cool kids are giving you grief, you can do some simple encryption before handing it over the wire as a passwordhash. Create a string consisting of the meeting password plus the viewing user's IP address, then compute a 32-character hexadecimal-formatted MD5 hash of that string. As an example:

password pvt
user IP 127.0.0.1
passwordhash md5("pvt" + "127.0.0.1") = 0c6bd5671b45545169352fd11351561b
hide (optional) A comma-separated list of UI components that you'd like to be hidden from view. This is useful in customizing the look of a meeting to match your own site, or to remove elements that you have duplicated elsewhere on your page (such as Chat or Voice).

Valid component names include:

  • chat
  • invite
  • profile
  • voice
  • welcome
  • url
  • bottomtray
  • images
  • documents
  • email
  • widgets
  • math
exiturl (optional, >=enterprise) For embedded meetings, this is the URL to which your users will be sent when they click the Logo while in a meeting.

NOTE: this parameter will be ignored for non-Enterprise/Universal accounts.

css (optional, >=enterprise) The URL of a CSS file to be included in the page. Use it to customize the look of anything you want.

NOTE: this parameter will be ignored for non-Enterprise/Universal accounts.

js (optional, >=enterprise) The URL of a Javascript file to be included in the page. It's your own little Greasemonkey script inside of Twiddla. Use it to change the behavior of whatever you want!

NOTE: this parameter will be ignored for non-Enterprise/Universal accounts.


Example 1. Simple Whiteboard

This example simply takes the URL for one of Twiddla's sandboxes and drops it into an IFRAME:

<iframe src="http://www.twiddla.com/5" frameborder="0" width="800" height="600"></iframe>

show this widget


Example 2. Simple Whiteboard, alternate syntax

This example is functionally equivilant to the one above, but it uses the alternate URL syntax that we'll need in the more complex examples below.

Note how we found the SessionID below by splitting the URL above. Not exactly rocket science, eh? In real-world use, you'll most likely be using SessionIDs that you received as the result of Create Meeting API calls.

<iframe src="http://www.twiddla.com/api/start.aspx?sessionid=5" frameborder="0" width="800" height="600"></iframe>

show this widget


Example 3. Whiteboard with components removed

This example crams the whiteboard into a smaller space. It removes the chat, bottom tray, and URL field so that they don't get in the way. <iframe src="http://www.twiddla.com/api/start.aspx?sessionid=7&hide=chat,bottomtray,url" frameborder="0" width="600" height="400" style="border:solid 1px #555;"></iframe>

show this widget


Example 4. Customized Whiteboard with external CSS and Javascript

This is the MySpace Example using a couple Enterprise features. It pulls in custom CSS and JS files from an external server to change the toolbar to a cool pink and add a blingin' dancing logo. Now we're getting somewhere!

If you want to do advanced CSS and scripting features like these, you're welcome to go nuts, but we can't really give you any support here. You'll need to use a tool like FireBug or similar to reverse engineer our confusing naming conventions. And you'll need a heavy dose of client-side skeelz to pull it off. Just sayin'.

<iframe src="http://www.twiddla.com/api/start.aspx?sessionid=19&css=http://www.twiddla.com/demo/altskin.css&js=http://www.twiddla.com/demo/altscript.js" frameborder="0" width="800" height="600" style="border:solid 1px #555;"></iframe>

show this widget


Example 5. Branded Whiteboard with components removed and custom URL

This is the Kitchen Sink Example. It shows a meeting we've set up with a custom logo (which is an Enterprise feature), and that we've also redirected back to our own website.

You'll notice that there's very little left to identify it as having come from Twiddla. That's why they call it CoBranding.

<iframe src="http://www.twiddla.com/api/start.aspx?sessionid=19&hide=chat,bottomtray&exiturl=http://www.google.com/" frameborder="0" width="800" height="600" style="border:solid 1px #555;"></iframe>

show this widget

Creating a new Twiddla Meeting:

You can create a new Twiddla meeting by means of a simple HTTP POST to http://www.twiddla.com/new.aspx containing your Twiddla username and password.

Successful requests will return the ID of newly created meeting. Failed requests will return -1 along with an error message. Regardless, all responses will take the form of plain text, with nary an angle bracket in sight.

You may encrypt this request via SSL if you'd like, by directing it to https://www.twiddla.com/new.aspx instead.

A Create Meeting request may supply the following parameters:

http://www.twiddla.com/new.aspx
username (required) Your Twiddla username
password (required) Your Twiddla password. Yes, in plaintext over the internet. Send it via SSL if you're afraid they're watching you.
meetingtitle (optional) A title for your meeting, if you'd like one.
meetingpassword (optional) A password for your meeting, if you'd like one. If omitted, the meeting will be set to public.
url (optional) The URL of a web page to load as the initial document for this meeting. If omitted, the meeting will begin with a blank canvas.
 

Try it out:

username
password
meetingtitle
meetingpassword
url

Listing your Active Meetings:

You can get a list of Twiddla meetingIDs that are currently in use by sending off a HTTP POST to http://www.twiddla.com/API/ListActive.aspx containing your Twiddla username and password.

Successful requests will return a comma-separated list of IDs for any Twiddla meeting you've created that's currently in progress. Failed requests will return -1 along with an error message. Note that a successful request will simply return nothing in the case that your account has no active meetings in progress (since that's what a comma-separated list of zero length looks like.)

You may encrypt this request via SSL if you'd like, by directing it to https://www.twiddla.com/API/ListActive.aspx instead.

A List Meetings request may supply the following parameters:

http://www.twiddla.com/API/ListActive.aspx
username (required) Your Twiddla username
password (required) Your Twiddla password. Yes, in plaintext over the internet. Send it via SSL if you're afraid they're watching you.
format (optional) Valid formats are:

  • csv
  • xml

By default, we'll hand back a simple comma-separated list of meetingIDs, but if you want to get all fancy and enterprisey, you can go there too.

Specify xml for this parameter and we'll hand you back a big chunk of XML containing a list of all your Meetings and the Users that they contain. There's plenty of information there to do anything you want, so parse away!

 

Try it out:

username
password
format

Sample Workflow

Let's say you run a website that helps people do project management. Your users want a way to collaborate in real time, but all you have is a little half-baked chat room for them to use. Wouldn't it be better if you could hook these people up with a proper Web Meeting tool like Twiddla?

Hell yeah, it would! Here's how you'd do it:

User starts a New Meeting

  1. User clicks "New Meeting" button somewhere on your site
  2. You fire off a Create Meeting API request
  3. Twiddla hands you back a SessionID
  4. You write it down somplace so you don't lose it
  5. You present a page with EMBED code containing that SessionID

User enters an Existing Meeting

  1. You show the User a list of Meetings that you have associated with his team's project.
    (You did remember to write down that SessionID, didn't you?)
  2. User clicks one of your "Join Meeting" buttons
  3. You present a page with EMBED code containing that SessionID

Those are really the only two use cases that Twiddla needs to be involved in. Naturally, you'll want to associate that SessionID with whatever objects it makes sense to stick it onto, and you'll probably want to build some sort of invite system, but really that's not our problem. We're just here to get your meetings working. Good luck with all that other stuff!

Pricing

Twiddla's API follows the same pricing model as Twiddla itself. We offer a free trial version that you can use while testing, and for some smaller use cases, as well as a paid version that is suitable for production use.

Professional and Free Trial

Twiddla's API is usable from a Free Trial or Professional subscription, provided you are only running a single meeting at a time. That makes it suitable for single-person design shops, individual tutors or classrooms, and other small uses.

Enterprise and Universal

If you're planning to run more that one meeting at a time, you'll want to sign up for an Enterprise subscription. It's super cheap, at $49/month, and you can run up to 10 simultaneous meetings per license. You'd be surprised how many users you can service with an Enterprise subscription, but if it turns out you're over your limit, no worries. We'll let you know about it and give you a chance to upgrade to a Universal subscription or discuss options for scaling even larger.

You can compare Twiddla's pricing plans here. More information about how everything works can be found in our API Terms of Service.