Discourse API Documentation Released!

Blake Erickson March 6, 2017

Today we would like to announce our much anticipated Official API Docs!

You can find them at:

Today, more than ever, an application needs to be able to integrate with other applications and the Discourse API allows you to easily integrate your Discourse forum with any other application. We do have a Ruby based API client, but your company or server might not support Ruby, so our documentation can easily be used to write an integration in any programming language through simple HTTP REST calls.

To aid in integrating with the Discourse API there are Postman files that you can import into your Postman app so that you can easily make API calls. Postman is a great tool that allows you to make API requests and see the HTTP status codes and responses. It can be a lot friendlier to use instead of a command line tool like cURL. Here is a demo:

What can you do with the API?

Anything you want! Because Discourse is a JavaScript application (with a Rails backend), we consume our own API, so anything the web application does your API integration can do as well.

You can use the API to manage all aspects of users like creating new user accounts, suspending a user, logging off a user, and assign roles to a user.

You can also create and respond to topics, gather stats about users, send private messages, upload files, and pretty much anything else you can think of.

Discourse also has support for webhooks! This means that Discourse will send a POST request to an endpoint you specify every time an event triggers such as a new topic, new post, or a new user is created. This means that if you wanted to be notified every time someone mentions a specific keyword you wouldn’t have to poll Discourse every X minutes, but instead could just listen for the webhook event. Your app could then parse the topic and then use the API to send you a personal message in Discourse notifying you that keyword was used.

Contributors Welcome

The Discourse API Docs are of course open source and so contributions are more than welcome. If you find a bug, an un-documented endpoint, or anything else please feel free open a pull request following the contributing instructions.


Discourse’s Fourth Birthday

Jeff Atwood February 6, 2017

As of today*, it’s been four years of Discourse!

four cake with light

It feels like only only yesterday that we launched Discourse as an open source project. We’ve certainly been busy for the last four years:

I’m happy to announce that in our fourth year, we’ve just added two team members:

@falco aka Rafael dos Santos Silva from Brazil


@oblakeerickson aka wait for it.. O. Blake Erickson from Idaho, USA


This brings the total Discourse team size up from 9 to 11 souls.

Where do we go from here? Everywhere! Can’t stop. Won’t stop.

More Discourses, more features, more plugins, more integrations. Maybe throw a few new Emoji in there for good measure while we’re at it. And all of it, always, 100% free and open source for you, forever.

* OK technically yesterday but come on that was a Sunday!


Discourse 1.7 Released!

Jeff Atwood January 6, 2017

Today, after four months of work, we’re proud to release Discourse 1.7.

Official iOS and Android Apps

Thanks to Sam Saffron, we released an Official Android Discourse app and an official iOS Discourse app. These apps offer native push notifications and a way to aggregate all your Discourse sites in one place.

Discourse Mobile App for iOS and Android Discourse Mobile App for iOS and Android

Discourse Mobile App for iOS and Android Discourse Mobile App for iOS and Android

The apps are free to use for all, but do note that push notifications require special support from Apple and Google respectively, and are currently only available to sites hosted by us. As with all Discourse code, the app is 100% open source.

Improved Mobile Progress Expansion and Back Button

We’ve drastically improved the behavior of the Back button that appears on the timeline — both on desktop, and on mobile. You will see a back button pop up more reliably when you scroll up while reading a topic, so you never lose your place. And if you expand the mobile progress bar, you now have full access to the timeline, just like on desktop!

Revamped Categories Page

We noticed site owners struggled to decide what their home page should be: a static list of categories, or a dynamic list of topics. Both pages have their pros and cons, and you want to get it right, as the home page is the primary experience for most users.

We’ve added a new default which lets you have the best of both worlds — a set of relatively static categories for navigation on the left, and a list of the most recently updated topics on the right.

Discourse hybrid category and latest page

“Why not both?” indeed!

Setup Wizard

As much as we enjoy Discourse, we have to admit that our setup process wasn’t exactly.. fun. In this release we set out to change that.

When you set up a Discourse for the first time, you’ll now be greeted by the setup wizard, who helpfully walks you through all the steps to getting started with a brand new Discourse instance!

Discourse Setup Wizard Steps

Thanks to Robin for this major improvement in ease of setup. We have plans to make the wizard even better in future releases, but it’s already worlds better than our previous “I hope you enjoy reading this wall of Getting Started text” strategy.

Onebox Everywhere and Start Topic With a Link

In all versions of Discourse, pasting a link on a line by itself resulted in “oneboxing”, or a quick expansion of the link into a title, summary, and picture. But only for certain whitelisted websites. In Discourse 1.7, we’ve extended this support to all links. Any link that supports OpenGraph or oEmbed will now onebox!

We also made it easier to start a topic with a link, as it’s so common to want to have a conversation about an article you read online. Simply paste a link into the title field and we’ll populate the body and title for you. And the resulting topic will show a link source, ala Reddit.

Redesigned Email Summaries

Email summaries are critical to the health of any Discourse instance — we automatically email anyone who hasn’t been seen on the site for a week with a “greatest hits” of the most interesting community discussions, with an eye on enticing them back to participate.

Since we mail a lot of these out, they need to be great. With the help of Rewphus from the community and Neil from our team, we completely redesigned the summary to make it more visually interesting and show more relevant stats to each user, such as now many new notifications they have, or how many new likes they’ve gotten (if available).

Discourse weekly summary email

(Note that we only email people we haven’t seen once per week, for a maximum of year since we last saw them. Proper unsubscribe email headers are built in, plus a one-click link to unsubscribe.)

Advanced Search UI

We’ve improved basic search a few times, and we’ve added a number of advanced search terms, but they were hard to find and use. No longer! Thanks to community member cpradio, we now have a proper user interface for advanced search. Fill out exactly what you want to search for in a simple form — no complex commands required!

Enhanced Groups Pages

There’s been a lot of interest in more dynamic Groups pages, as well as continuing on our march toward making every @group first class citizens alongside every @user.

Guo Xiang Tan spent a few weeks improving our groups pages, adding descriptions and full names to groups, as well as letting people (if allowed by the group) to join and leave the group, or request membership to a closed group.

Email Forwarding Support

Another frequent request, for those sites that have incoming email configured, is to allow forwarding emails into Discourse. Thanks to the hard work of Régis, this is now possible!

forward emails into Discourse

(For this version, we only support forwarding a single email, but we plan to allow forwarding of entire email chains into Discourse in 1.8 and beyond.)

Public Security Program

To make sure Discourse is as safe and secure as possible, in 2017 we’ve added a public exploit bounty program at Hacker One. This is in addition to our existing security policy and the two formal security audits our customers contributed in 2016.

Although we didn’t uncover any critical vulnerabilities from our Hacker One program so far, we have benefited from several minor issues they uncovered. And we absolutely want to reward and publicly acknowledge anyone who privately discloses a security vulnerability that helps make Discourse safer for everyone. This is important to us, and we feel Hacker One gives us a framework for doing so, as well as “defense in depth.”

Safe Mode

We’ve added a quick and easy Safe Mode switch to diagnose problems with third party plugins.

Discourse Safe Mode

This is an important milestone, along with improved plugin versioning in this release, but there’s still much work to be done in ensuring safety and stability with third party plugins.

Ember 2.10 Latest

At long last, we’ve been able to upgrade our client side JavaScript framework, Ember.js, to the latest version. We spent a long time on Ember 1.12 waiting for critical improvements on the Ember roadmap, such as Glimmer 2, and our patience was rewarded — thanks to Ember 2.10 (and two months of work by Robin), you can enjoy 30% smaller app payloads, and 2x the performance of Ember 1.12 on most devices!

Ember.js logo

As a developer, you can now refer to the most recent and latest Ember documentation when building plugins or enhancements for Discourse.

… And Much More

These are just highlights of 1.7 — there are literally hundreds of other tiny improvements, refinements, and bugfixes that we aren’t covering here, but are in the full release notes.

Easy One Click Upgrade

Who wouldn’t want all these fantastic new features? That’s reason enough to upgrade! But do note this is another major security release — we urge everyone to upgrade to it as soon as possible. Fortunately, upgrading is as easy as clicking the Update button in our simple one click updater. It’s linked right from your dashboard:

You may need to SSH in to update your server in some upgrade scenarios. But it’s easy!

cd /var/discourse
git pull
./launcher rebuild app

If you don’t have a Discourse to upgrade, why not? Install it yourself in under 30 minutes, or get a free 14 day hosting trial!

Thank You

As always, let us first thank our customers for their direct financial support, without which there would be no Discourse project at all.

No open source project survives without code contributions, and we had many in this release. Thanks for the pull request contributions in this release from:


Also, thanks to the greater Discourse community for their numerous contributions toward this release — translations in Transifex, posting support and bug requests on meta.discourse, or simply providing feedback based on extensive participation in multiple Discourse communities. All your suggestions make Discourse better for everyone.

For insight into what’s coming up in future releases of Discourse, keep an eye on the releases category at meta discourse. And now, onward to Discourse 1.8!