Pump.io is a free, federated and decentralized social network, as well as the software running on its servers.

The basic concept is “I publish stuff, like text and pictures, and share them with the world, or with some specific people”. It’s mostly the typical concept of “social network”. First of all, we want to make it clear that it’s still in an early stage of development.

An example with 3 of the public nodes of the Pump network

An example with 3 of the public nodes of the Pump network.

Pump.io can be considered an evolution of the GNU Social microblogging software, previously known as StatusNet. Just like it, it’s Free Software, and its protocol is built on the idea of federation between servers, so, for instance john@example.com can talk to ann@anotherpump.net, etc.

Part of the basic idea of Pump.io is to have the minimal necessary functionality in the ‘core’ software, and let third party developers easily create services that can interact with that core, thus creating a system with many possibilities and applications.

The number of compatible clients increases steadily. For now, there are three Pump clients for desktop systems (Dianara, Pumpa and Choqok), three more for Android (Puma, Impeller and AndStatus), a plugin for Emacs, a few command line utilities, like p, and several external web-based services, such as pump2status.net, pumpbridge.net or pump2tweet.com.

It is important to understand that the great potential of Pump.io is based, in great part, in the diversity of applications built around it. It’s not a good idea to restrict yourself to the web interface, because most of the great possibilities are lost. Pump.io is much more than that.

Current Status

Current server software is 0.3.0-alpha and the web interface is quite basic, but the system shows great potential. It has an API, so there are some very capable applications in the making, that can be used right now, and it’s only a matter of time before even more software to interact with this system becomes available for PC, tablets and phones. In fact, some of the applications available today, already have some functionality that is not yet present in the web interface. For instance, editing (updating) posts and comments, or uploading audio and video.

There are also external web services that interact with Pump, like the proof-of-concept game, Open Farm Game or (soon) the media publishing platform, GNU MediaGoblin.

Some users have already set up some bots that also publish content on Pump. Some examples are the Quote of the Day, XKCD comics or Today in History.


To start, we recommend you take a look at our articles “Basic Pump.io” and “Some tips for a better experience using the Pump.io network“.

Another great resource under construction is the Pump.io User Guide.

NOTE: “Basic Pump.io” has not yet been imported into the English version of the blog.

More information


8 thoughts on “Pump.io

  1. Pingback: Some tips for a better experience using the Pump.io network | Communication Freedom

  2. Pingback: Dianara, a Diaspora client | Jan+KDE

  3. This English blog post above mentions an apparently (based on the link text) English “Basic Pump.io” blog post, but the link URL points to a Spanish article (I’m not fluent in Spanish though working on it) at http://comunicatelibremente.wordpress.com/2014/01/17/pump-io-basico/ that I can’t read very easily. Looks like you have an English blog and a Spanish blog on the same subject (communication freedom), and I’d like to read the “Basic Pump.io” article in English, only I can’t find it. Help?

    • Never mind. I read somewhere else that the Spanish blog came first and some of the articles have been translated to English now, but not yet for the pump-io-basico article. Still very helpful and thanks very much!

    • Sigh… I guess I need to finish reading the article (NOTE: “Basic Pump.io” has not yet been imported into the English version of the blog.) before asking silly questions.

    • Yes, I need to get back to importing content to this blog one of these days.
      The Spanish blog is maintained by a few people, but this one is basically maintaned by me, and it shows.

      Glad it was useful!

  4. Hello All,

    I am developing pump.io on my iOS app. We have created server in backend. I am able to get lists (favourites, followers, users, feeds) from users already registered using browser not from in iOS app. But while registration from iOS app using api, i got some error. Is their any authentication we needed?

    Actually the URL which i used is: https://hostname/api/users/
    and used JSON Object to add parameters
    @”nickname” : @”sam123″,
    @”password” : @“sam123″,
    @“email” : @“sam123@sam123.com”

    I would like to register automatically a user from my iOS app using the api.
    What are the PATH, params ?

    In pump.io wiki -> API.md they provided us:
    User registration

    There is a collection of all users at the endpoint /api/users. To create a new user, POST a user representation (see below) to the list. You can also get the latest registered users by GETting the collection.

    The JSON object representing the user has the following properties:

    nickname: The user’s nickname. 1-64 characters, including only ASCII capital and lowercase letters and numbers as well as “-“, “.”, and “_”. The nickname is immutable and unique per server; it can’t be changed.
    password: The plain-text password. This isn’t returned when you GET the user object, but you have to provide it when registering or updating the user.
    profile: a “person” object. This is created automatically when you create a new user; don’t try to add it yourself. Don’t update this directly; update the person through its object endpoint.
    Waiting your response.

    Shiju Varghese

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s