Simple to use python library for Buffer App
Switch branches/tags
Nothing to show
Pull request Compare This branch is 7 commits ahead, 10 commits behind vtemian:master.
Latest commit 75e947e Mar 8, 2017 @erickhun erickhun committed on GitHub Merge pull request #8 from alexbenfica/fix_accents
Fixed erros with accents in media items or url
Failed to load latest commit information.
buffpy Fixed erros with accents in media items or url Mar 7, 2017
examples Documented authorization Mar 9, 2014
.coveragerc Omit thme all Aug 27, 2013
.gitignore Initial commit Jun 27, 2013
LICENSE.txt Adding a MIT license Jul 15, 2013 Documented authorization Mar 9, 2014
setup.cfg Dump version Mar 9, 2014

buffer-app-python (buffpy)

Simple to use python library for Buffer App

Build Status Coverage Status Downloads

ORM`ish details some useful entities:

  • user
  • profile
  • update
  • link
  • info

Every entity can be seen as an object that has attributes and methods. Those methdos and attributes are linked to certain endpoints.

All objects are special dicts. For example, you can do something like:     => '12455678976asd'
user        => {...}

If you want to see more complete examples, click here


Get access_token using buffer docs

service = AuthService(client_id, client_secret, redirect_uri)

url = service.authorize_url

# Access the url and retrieve the token
auth_code = #Paste the code from the redirected url

access_token = service.get_access_token(auth_code)

api = service.create_session(access_token)


A user represents a single Buffer user account.

api = API(client_id='client_id',

# instantiate an user object
user = User(api=api)

print user
print user.timezone


A Buffer profile represents a connection to a single social media account.

profiles = Profiles(api=api)
print profiles.all() # get all profiles

# filter profiles using some criteria
profile = Profiles(api=api).filter(service='twitter')[0]
print profile # my twitter profile

# get schedules of my twitter profile
print profile.schedules

# update schedules times for my twitter profile
profile.schedules = {
  'days': ['tue', 'thu'],
  'times': ['13:45']


An update represents a single post to a single social media account.

# retrieve a single update based on an id
update = Update(api=api, id='51de8d33e48c051712000019')
print update

# get update's interactions
print update.interactions

# edit
update = update.edit(text="Hey!")

# publish now

# move to top

# delete

Updates and profiles

# get all pending updates of a social network profile
profile = Profiles(api=api).filter(service='twitter')[0]
print profile.updates.pending

# get all sent updates of a social network profile
print profile.updates.sent

# retrieve all update's interactions
print profile.updates.sent[0].interactions

# shuffle updates
print profile.updates.shuffle(count=10)

# reorder updates
print profile.updates.reorder(['51dd27629f7fdf520d00009a'])

# create an update
print"Hello there", now=True)


A link represents a unique URL that has been shared through Buffer

# get a link's shares
print Link(api=api, url='').shares


Returns an object with the current configuration that Buffer is using, including supported services, their icons and the varying limits of character and schedules.

# instantiate the api object
api = API(client_id='client_id',

# get api's info