Welcome to Buildium’s API—a powerful, RESTful programming interface that lets you leverage valuable Buildium data.
Using HTTP requests, you can create integrations with applications that specialize in accounting, lead tracking, and more. Enjoy greater flexibility, transparency, and control over your business!
This guide is full of simple, easy-to-follow instructions that’ll help you use Buildium’s API like a pro.
Before you can use Buildium’s API, you’ll need to make some tweaks to your account settings.
In order to start creating your keys and making requests, you’ll need to enable the API.
Tip: You’ll need an administrator user role with access to Application settings to set things up properly.
Sign in to your Buildium account from your browser.
Open the Settings menu and click Application settings.
Under System preferences, click Api settings. A modal will appear.
Click the Open API toggle to turn it on. Then click Save.
Congratulations! Your account's enabled. Now, you’re ready to start managing API keys.
If you are having issues enabling the API within your account you can submit a Support request for assistance.
Account-level API keys authenticate every request and keep things secure.
API keys have two components: a “client ID” and a “secret”.
Whenever you make a request, you’ll need the API key’s client ID and secret. If you forget it, make a mistake, or try to use information that’s linked to a deleted key, the API will return a
401 response code.
Tip: We compiled a list of best practices that detail how securely store API keys. Give it a read!
Now that the Open APi is enabled, you’ll be able to create API keys. You’re almost there!
Tip: You’ll need an administrator user role to complete this step, too.
How to create an API key
Sign in to your Buildium account from your browser.
Open the Settings menu and click API Keys. The page will open automatically.
Click Create API Key. A modal will appear.
Enter a clear, memorable name and description for your API key. It’ll make it easier to locate the right key when you make a request. Once finished, click Next.
Now, choose which pieces of Buildium data you want this API key to have access to by marking the corresponding checkboxes. Once finished, click Next.
You successfully created an API key!
Important: This is your only chance to record the secret. Make sure it’s stored somewhere secure! If it’s forgotten, you’ll need to delete this key and start from scratch.
You have now successfully created an API key and have everything you need to send requests to the Buildium API!
Before moving on to making your first request please review Keeping your Keys Safe for an overview on securely storing your API keys.
If you are having issues creating API keys you can submit a Support request for assistance.
Based on their permissions, API keys could have full access to your account’s Buildium data. It’s important that you only grant access to trusted applications, securely record secrets, and consider a password manager to stay organized.
You’ve done a great job setting up your account, Now, we’ll walk you through how to access your data. It’s very straightforward and should only take a few minutes!
Tip: Looking for the right HTTP client? If you’re just getting started, we recommend Postman.
If you haven't yet done so, obtain your API key client ID and secret from your Buildium account. Your API key is how the Buildium API authenticates requests and ensures only you can access your data.
See Getting Started for a deeper dive into enabling the API and creating keys.
The Buildium API supports any standard HTTP client. If you're looking for a user-friendly HTTP client application, we recommend Postman – it allows you to access the Buildium API without writing code. We’ll use Postman for our example below to demonstrate sending an API request.
Let's dive in and make a simple request to get all the Rental Properties in your account. This will confirm your connectivity to our platform and validate the keys you created on our website. Simply follow the instructions below.
secretrespectively in these request headers:
Review the parameters of your request on last time. Once finished, click Send.
If successful, you should see a JSON response and a
200 HTTP status code. Voilà! You've connected to the Buildium API.
If you've received an error response please review the JSON response message for a description of how to resolve the issue. You can also see more information about HTTP status codes in the Response Codes section. If you are still having trouble making a request after reviewing these sections please submit a Support request.
The Buildium API is built upon standard REST conventions. It's designed to use consistent resource-oriented URLs, accept and return JSON-encoded messages, and use standard HTTP status codes and verbs.
The base URL for production environment API requests is:
The base URL for sandbox environment API requests is:
In order to ensure all requests and responses are secure between the API consumer and Buildium servers, requests must be made using the
https protocol. Any requests not made with the
https protocol will be refused by the Buildium API platform.
Note: URL paths are case-sensitive to stay consistent with common REST standards. If your request doesn’t align with the documented URL path, you’ll receive a
404response code reminding you of this constraint.
The Buildium API is version controlled. Versioning ensures backwards-incompatible changes to the API don’t impact any existing integrations.
Buildium uses only a major version nomenclature to manage changes. The current version of the Buildium API is version 1. By specifying a version in the resource request URL, you'll get expected responses regardless of future changes to the API. Here's an example of calling version 1 of the retrieve all rentals resource:
Any request submitted without the version in the URL path will result in a
404 error response code.
The Buildium API will continue to evolve to ensure it meets the needs of our customers. Changes will be defined as either backwards-compatible or backwards-incompatible.
We’ll always provide advance notice for all API releases–regardless of the type of modifications being made.
Backward-compatible changes are modifications to the API that shouldn't impact existing integrations. They'll apply to the current version of the API. Simply put: you won’t need to change the version to consume new changes like these.
It's important as you develop against the Buildium API that you ensure these types of changes don't impact your integration. Here's are examples of backward-compatible modifications.
All backward-compatible changes to the API will be documented in the Changelog.
When backwards-incompatible changes to the API occur, a new version of the API will be released. You’ll need to update the URL path to consume resources under the new API version.
Backwards-incompatible changes include:
New versions of the API will have full reference documentation and an upgrade guide.
The Buildium API uses API key’s client IDs and secrets to authenticate requests.
An API key client ID and secret must be passed in every request header using the following parameters:
Failing to provide both of them in the request header will cause the API to return a
401 HTTP status code.
Rate limits help us ensure consistent and reliable performance for all users, even during peak loads. That’s why we limit clients to 10 concurrent requests per second.
If your request rate violates that limit, a response code of
429 is returned. Simply retry the request after a short interval (~200ms).
All top-level API resources support bulk fetches. For instance, you can retrieve all Associations. These resources also allow for filtering criteria. Each resource has descriptions of the filter criteria available.
In addition to filtering, our API gives you the ability to control the returned data’s pagination and the sort order.
Endpoints that return result sets allow for pagination using
offset request parameters to reduce the amount of data returned.
limit request parameter will cap the number of results that come back in the response. If you don't specify a
limit value, a default of 50 results are returned. The maximum
limit value is 1000. If a
limit value is specified greater than 1000, it will be overridden to the default to 1000.
offset request parameter indicates the record position within the resultset to start at when returning the results. The
offset is zero-based and is inclusive. If no
offset value is submitted it will default to 0.
The total resultset count is returned in the HTTP Header
As an example, let's say we make a request to retrieve all rental properties with no paging parameters. Our response indicates in the
X-Total-Count header that there are 150 total rental properties. We want to get only the last 50 results so we would submit a request with the
offset set to 100 and the
limit set to 50.
offsetparameter names are case-sensitive. If they aren't formatted correctly, the API will return a
404HTTP status code.
You can specify the sort order of returned data by assigning any property from the returned object to the
orderby parameter in the querystring. For example:
By default, the sort is performed in ascending order. To specify sort order, use "asc" for ascending or "desc" for descending. For example:
Additionally, you can sort by multiple properties by comma separating the properties. For example:
orderby=Rent desc,City asc
Note: While the
orderbyparameter is case-sensitive, the properties specified in the
The Buildium API supports standard HTTP status codes.
|200 OK||Everything worked as expected.|
|400 Bad Request||The request was unacceptable, often due to missing a required parameter.|
|401 Unauthorized||The API client ID and secret weren’t provided or they’re no longer valid. Be sure that the client ID and secret combination are correct and they are still active.|
|403 Forbidden||The API key doesn't have permission to perform the request. This could be due to authorization for the given endpoint or an inability to access given entities within the platform (e.g. properties).|
|404 Not Found||The requested resource doesn't exist.|
|415 Unsupported Media Type||Ensure you have the appropriate content-type header value set on your request. Each res|