Help Center
The API provides a flexible interface to personalize and customize your financial information. Read the documentation below and get started with sample code in Ruby, Python, PHP or Perl.
API documentation
API calls follow the format:[command].[format]?token=login_token[&params]
Valid values for command:
login:  get a unique 'token' which must included on all future requests
add_transaction:  add a transaction
upload_statement:  upload a bank or credit card statement
transactions:  list of transactions, 25 at a time
reports:  get financial reports
accounts:  list of accounts with balances
loans:  list of your loans
tags:  list of your transaction tags
budgets:  list of your budgets
reminders:  list of your bill reminders
groups:  list of your groups
contacts:  list of your contacts
Valid values for formats:
{ json | xml | png }

All commands, except the login command, must specify a token parameter returned by the login command in the event of a successful login.

The transactions and reports commands also accept several parameters allowing you to search powerfully and precisely. Details about these parameters are in the corresponding sections.

The response element contains a status element which reports the status of the API call. If the call succeeded, it's content is OK, otherwise it is ERROR: [error_description].

Before accessing any of the API commands, you must obtain a unique, ephemeral token by logging in to the API service. You can use your email address or your buxfer username as the userid parameter.

On successful login, the command returns a token which must be included in all future API requests.

Login using email address and password
See sample output


Unlike all the other commands, this command only looks at POST parameters and discards GET parameters.

Two parameters are accepted:

  • format: the only valid value currently is "sms".
  • text: the text of the transaction to be parsed.

Transaction text is specified in exactly the same format as Buxfer SMS messages. For details, read our mobile manual. If we cannot successfully parse the message, Buxfer will create a "stub" transaction which you can review whenever you log-in to the site next.

Paid 5.45 at starbucks; tagged as coffee
POST PARAMS: format=sms&text=starbucks 5.45 tags:coffee
Got a pending paycheck for $4000 into bank account
POST PARAMS: format=sms&text=paycheck +4000 acct:Checking status:pending
See sample output


This command only looks at POST parameters and discards GET parameters.


  • accountId
  • statement: the text of the statement to be uploaded
  • dateFormat: (optional) date format used in the statement (one of "MM/DD/YYYY" or "DD/MM/YYYY")

See sample output


You can restrict the set of transactions returned by specifying parameters. The permitted parameters are:

  • accountId OR accountName
  • tagId OR tagName
  • startDate AND endDate OR month: date can be specified as "10 feb 2008", or "2008-02-10". month can be specified as "feb08", "feb 08", or "feb 2008".
  • budgetId OR budgetName
  • contactId OR contactName
  • groupId OR groupName
or any combination of the above parameters.

Each call to this method returns at most 25 transactions matching the specified criteria. If there are more that 25 results, you can specify increasing values of the page parameter to page through the results.

Your most recent 25 transactions
Previous 25 transactions
Transactions for account 'Amex'
Transactions for account id f32ade4
Transactions for tag 'Grocery' for January 2008
See sample output


The parameters applicable to the transactions command are also applicable to this command.

Report data for account 'Amex' for January 2008
See sample output


List of all your accounts
List of all your accounts (JSON)
See sample output


List of all your loans with friends
See sample output


List of all your tags
See sample output


List of all your budgets
See sample output


List of all your bill reminders
See sample output


List of all your groups
See sample output


List of all your contacts
See sample output