Open API, powered by Buildium (v1)

Download OpenAPI specification:Download



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!

What's in this Guide?

This guide is full of simple, easy-to-follow instructions that’ll help you use Buildium’s API like a pro.

Topics include:

  • choosing the right resources for your use case
  • making HTTP requests to any resource
  • understanding data and response codes

Getting Started

Excited to get going? We’ll walk you through the setup process.

Account Configuration

Before you can use Buildium’s API, you’ll need to make some tweaks to your account settings.

Enabling the API

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.

Let's Begin!

  1. Sign in to your Buildium account from your browser.

  2. Open the Settings menu and click Application settings.

  3. Under System preferences, click Api settings. A modal will appear.

  4. 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.

API Keys

Account-level API keys authenticate every request and keep things secure.

API keys have two components: a “client ID” and a “secret”.

  • Client IDs are similar to usernames. They’re used to identify your Buildium account and are safe to share.
  • Secrets are similar to passwords. They must be kept confidential.

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!

Creating API Keys

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

  1. Sign in to your Buildium account from your browser.

  2. Open the Settings menu and click API Keys. The page will open automatically.

  3. Click Create API Key. A modal will appear.

  4. 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.

  5. 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.

  6. 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.

Keeping API Keys Safe

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.

  • Avoid hard-coding client IDs and secrets inside source files.
  • Avoid storing client IDs and secrets in any files that may be committed to source control, particularly cloud-based source control platforms.
  • Apply restrictions to client IDs and secrets shared with your staff. You can restrict a key to particular Buildium entities or to read-only access (GET resources only).
  • Avoid sharing client IDs and secrets across public, insecure platforms.
  • Establish a process to regularly recreate your client IDs and secrets from your Buildium account.

How to Make a Request

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.

Let's Get Started!

Step 1: Get Your API Key

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.

Step 2: Install a HTTP client

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.

Step 3: Make a Sample 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.

  1. Open the Postman application.
  2. Open the verb menu and select GET.
  3. Enter the request endpoint in the field next to GET.
  4. To authenticate the request, enter your client ID and secret respectively in these request headers:
    • x-buildium-client-id
    • x-buildium-client-secret
    • Your full request should look similar to the image below.

  1. Review the parameters of your request on last time. Once finished, click Send.

  2. If successful, you should see a JSON response and a 200 HTTP status code. Voilà! You've connected to the Buildium API.

You now have the knowledge required to make requests for any of our resources.

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.

API Overview

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.

Base URL

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 404 response code reminding you of this constraint.

API Versioning

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.

Releasing Changes to the API

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

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.

  • Adding new API resources and/or endpoints.
  • Adding new optional request parameters to existing API methods.
  • Adding new properties to existing API responses and non-required properties for request messages.
  • Changing property order in existing API responses.

All backward-compatible changes to the API will be documented in the Changelog.

Backwards-incompatible Changes

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:

  • Removing a property from a request and/or response message.
  • Changing the name of a property in a message.
  • Adding a required parameter to a request message.
  • Changing existing enumeration values.

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:

  • x-buildium-client-id
  • x-buildium-client-secret

Failing to provide both of them in the request header will cause the API to return a 401 HTTP status code.

Rate Limiting

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).

Bulk Request Options

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 limit and offset request parameters to reduce the amount of data returned.

The 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.

The 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 X-Total-Count

Pagination Example

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.

Note: The limit and offset parameter names are case-sensitive. If they aren't formatted correctly, the API will return a 404 HTTP status code.

Sorting Results

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:

orderby=LeaseType desc

Additionally, you can sort by multiple properties by comma separating the properties. For example:

orderby=Rent desc,City asc

Note: While the orderby parameter is case-sensitive, the properties specified in the orderby value aren't.

Response Codes

The Buildium API supports standard HTTP status codes.

Response Code Description
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