We’re happy to finally announce the 1.0 production launch of our API! It’s been in the oven a long time, but we really wanted to work out any kinks before finally pushing it out. The time has finally come and we’re ready to launch!

What’s the point?

There are so many things we want to do on Obsidian Portal. We’d love to build an importer for .dnd4e files. We want to make an iPhone and Android mobile app. We want to make it easy to export your campaign data into desktop campaign management software like Masterplan. The list goes on and on. But, we simply don’t have the time or resources to do everything. With the API, other developers can step in and enhance Obsidian Portal to make the tools you want. You will be able to integrate Obsidian Portal with other websites, your mobile devices, and all kinds of other applications. Your campaign will follow you where you go, instead of being isolated on the main Obsidian Portal site.

Who’s it for?

While the API is here to serve everyone, in the beginning we will need some pretty savvy technical people to start making applications and integrations for it. We need mobile developers, web app developers, and anyone else who wants to integrate Obsidian Portal campaigns into their favorite websites and applications. If you know of a project or application that would benefit from integrating with Obsidian Portal, please contact the people involved and tell them to get in touch with us. Or, if you have an idea you’d like to explore, please reach out. We’re eager to help get people on board.

How can I get started?

If you’re a developer with an idea, check out our API Overview for information on getting started. I’ve also set up a subforum for API related discussions. Drop in and let us know what you’re planning and what we can do to help. I haven’t been as active on the forum as I’d like, but I’ll do my best to keep a closer eye on discussions in the API subforum and answer any technical questions I can.

What’s next?

We want to get people up and running on the API as soon as possible. To that end, follow us on Twitter and Facebook for announcements regarding the API. We’re hoping to run some contests in the near future with prizes awarded to the best and most novel apps that people can create. If you have ideas for apps, or ideas for rewards we can offer to app developers, leave a comment and let us know!

This API could be a huge paradigm shift in managing your campaign with Obsidian Portal. The possibilities are almost limitless and we can’t wait to see what people come up with!

I know it’s a pain to write a DST. The dev kit is probably horribly out of date by now, plus you never really know how your DST will work until you upload it live and play with a real character. I try to encourage people from the start to get their code live on the site as soon as possible, but it’s still no fun to write and edit HTML (or any code) in a textarea. But, all that could change thanks to a recent update.

The ideal app

What if you could edit your DST files in your favorite text editor and never have to copy and paste it into the textarea? I’m imagining a desktop app where you select your HTML, CSS, and Javascript files on your local machine. Then, as you edit your DST locally, you can click a single button and the app syncs it to the server. Then, have a browser window open to a test character and you just refresh it. No more copy/paste, no more need to play with textareas. Smooth as silk.

Halfway there

Unfortunately, the ideal app doesn’t exist, at least not yet. But, I’ve taken the first step and added DSTs to the API. All the puzzle pieces are in place to make this a reality. They just need to be put together.

Can you do it?

I’ve got the API updated, but that’s about as far as I can take it. It’s been ages since I’ve done a desktop app, and I wouldn’t even know where to get started. Plus, I’ve got more features and bug fixes to work on than I want to think about. I need someone to step up, grab the reigns, and take it from here.

If you’re interested, or have a better idea, please come join the forum discussion. I’m really excited about the potentials of the API, and I think this app (or a better one!) would be a perfect fit.

Progress on the API is moving so much faster than I originally anticipated. I’ve been working on it night and day, trying to get to a point where clients can actually do something useful with it. But, I’m not the only one who’s been busy!

Ruby hacker shammond42 (@shammond42 on Twitter) has already created a Rubygem wrapper for the API, making it much simpler to interface with from your Ruby or Rails application. For any other Ruby hackers out there, take a look at mage-hand and make sure to follow it on github. Or, if you’re not a Ruby hacker but prefer PHP, .NET, or something else, you might like the next part:

Progress on the API has been much faster than I expected. After a week’s worth of work, we have a fully functioning OAuth provider and a few JSON response API methods ready to go. Before we go too far, though, I’d like to get some feedback on the basic OAuth workflow.

OAuth is a standard workflow for managing third-party applications that want to access resources on behalf of a user. Facebook, Twitter, LinkedIn, Netflix, and a whole slew of other websites have started using OAuth for exactly what we’re trying to do here on Obsidian Portal. Considering that there is a lot of library support (PHP, Ruby, Flash, .NET, etc) for OAuth, it seems like a good way to go.

Unfortunately, OAuth is significantly more complicated than other, simpler authentication methods. It requires a special procedure to authenticate the user, plus each API request must be signed with a special algorithm. What we’d like is some initial feedback on whether it’s accessible enough and works for the developer community.

So what’s in it for you? Well, I’m giving priority to feature requests from people actively playing with the API. If there’s something you want to do, and data you need, then start playing around and tell me what’s missing. If I can add it easily, I will. Of course, everything is likely to change a bit in the coming weeks, but we have to start somewhere.

Over our lifetime, we’ve gotten a handful of requests for an API. In every case, our answer was, “We really want to do this, but just don’t have the time right now.” Well, we’re tired of that answer, and have decided to make some time. We’re super-excited about the idea of third-party developers making cool integrations with Obsidian Portal, and we can’t wait to see what cool stuff you all come up with.

Getting Started

Obsidian Portal is a fairly complex system now, with lots of heterogeneous data. Users, campaigns, wiki pages, adventure log posts, characters, items, maps, images, and surely some other stuff I’m forgetting. It would take forever to build API hooks for all of that data, so we’re going to take some baby steps first. The first phase will (probably) be read-only that exposes a fraction of our data for consumption by third party apps. This is where we need your help: What do you want?

There’s no point in us making an API unless some of you are writing apps to consume our data. We’ve got a few people we’re already talking to, but we want to include as much feedback as possible. If you’re interested, please let us know what you’re thinking.

Keep it serious

Before anyone starts throwing out ideas and requests, I’d like to make it clear that we plan to focus on actual developers and actual applications. I don’t want to get dragged into theoretical “It’d be cool if…” brainstorming. There are a lot of possibilities here, and I want the initial push to be in the direction of something concrete, even if it’s not earth-shattering.

Timeline

Our motto is “Under promise, Over deliver” and I intend to hold to that here. I’m not going to give a definitive timeline, and instead say that hopefully we will have something stable by the end of 2010, or early 2011.