Propertybase Platform API Documentation

This document includes the documentation for the API endpoints for the Propertybase Platform. Propertybase will provide you with an API Key that you should keep private. All endpoints support a JSON response.

Documentation Updates




Add base attributes to the Sales Exclusive Patch endpoint


Allow agent_email in leads create/update action, for lead assignment, as a fallback to agent_id


Added list_office_mls_ids and list_agent_mls_ids to Searches and SavedSearches resources


Added active_status to the index action query parameters of Agent, Employee, Office & Team

Added Deactivate/Reactivate PUT request to Agent, Employee, Office & Team.


Added parameter, includes, to teams and offices index calls, to include agent_mls_ids or office_mls_ids


Added SalesExclusives endpoint


Added propertybase_user_id to the Agent, Employee, Team endpoints, POST and PATCH parameters/responses, and GET request responses


Added property_type_ids & property_sub_type_ids to SearchAttributes, added team_office_id to Team responses


Added Development and DevelopmentCategory endpoints

Nested under the Development endpoint, added DevelopmentAddress, DevelopmentAgent, DevelopmentAreaProfile, DevelopmentCategory, DevelopmentFloorPlans, DevelopmentListingSheet, DevelopmentPicture, and DevelopmentPrice endpoints.


Added additional `property` details (location details, price, type, status, etc) to some endpoints: EmailFriend, FavoriteProperty, Inquiry, Showing, PropertyNote, PropertyView


Added `signup_fields` key to Leads `show` response, containing price_range, contact_method, timeline, and where_heard


Added `user_id` to Team, Agent & Employee response


Added to SavedSearch response data - new_listing, status_changed, price_changed, open_house_changes, any_changes


Update DynamicForm with form_sections


Added resource paths where available

Updated showings to return time in UTC


Added referral_source_domain to Leads endpoints


Added MarketReportUpdate resources that are nested under MarketReport


Update SearchObject to accept array of property types/subtypes/statuses


Update MarketReportUpdate documentation with field max_price


Add SavedSearch Data endpoint


Add Lead Search creation endpoint


Add more attributes & UTM param to lead details response


New MarketReportUpdate resource


Added email filters on agents and employees list endpoints


Added includes parameter to the agents/index endpoint. With the value, agent_mls_ids, we will include that data in the response for each agent


Added MarketReport endpoints


Added DynamicForm & FormSubmission endpoints


Added property_address to GET PropertyViews & FavoriteProps as raw string. Added agent_id & office_id as integer & employee_name as raw string to GET ContactForms.


Added property_address to GET LeadProperties as a raw address string.


Added filter by email to GET Leads


Added mls_id and mls_name to GET PropertyNote and mls_id to GET PropertyView.


Added optional mls_id and mls_name to POST PropertyViewUpdate.


Added Phone Types to Lead Enumerations response.


Added agent accreditations to the Agents post, patch, and get agent response.


Added agent_id, team_id, owner_id, and owner_type to Lead responses.


Initial release of Offices, Agents, Employees and Teams endpoints.

Authentication & Security

Propertybase support staff will provide you with the domain name and an API Key that you will use in combination to authenticate for API calls.  The API Key should be kept private for security purposes.  Any person with your API Key can make changes to your system including creating, updating and deleting records. If you feel your API Key has been compromised or you have lost the key please contact our support staff (help@propertybase.com) and they will remove your old key from our system and issue you a new key.  When you make API requests you will pass an HTTP Header with the name “X-BL-API-Key” and the value will be the API Key that was provided.  The combination of the API Key and the domain the HTTP API request was received for will be used to authenticate the request.

Requests and Responses

API requests will only respond to JSON requests.  Each API call should pass an HTTP Header of “Content-Type: application/json” in addition to the “X-BL-API-Key: xxxxxxxxxx” HTTP Header. If the request is an HTTP Post the body of the request should be in JSON format.  We will define the options for the query params on GET requests or the body on POST, PATCH and DELETE requests. Also, we will define the JSON objects that will be used in the body of the response for each API endpoint defined below.

GET requests are used to fetch the list of records or an individual records by id.
POST requests are used to create a new record.
PATCH requests are used to update a record (PUT is also supported however PATCH is the preferred type).
DELETE requests are used to delete a record.

Example request via cURL:

curl -H "Content-Type: application/json" -H "X-BL-API-Key: xxxxxxxxxx" -X GET http://www.domain.com/api/v2/offices

All responses will return a json object in the body.  Responses will always contain a "status" attribute that will be either "success" or "failure" and a "message" attribute.  Successful requests will also contain a "data" attribute that could either be an array of objects or a single object depending on the request.  Failed requests will not contain the "data" attribute, they will contain an "errors" attribute that will be an array of error messages that describe why the request failed.  The status code of the response will not be returned in the body of the response but will be available in the response headers.  See the "Appendix A: Error Codes" for the definition of error codes.  The following is an example of the response body for an errored request:


  "status" : "failure",

  "message" : "Office not created",

  "errors" : [

    "Office name must be unique"




Each API key will be predefined to a set of permissions per resource. The permissions include Read, Write, and Delete access. API Keys could have different levels of access for each type, for example, Read only access to Offices, but Read, and Write for Agents and Employees.  An unauthorized request would result in a response with a status of 401 and the body of the response would be similar to the following:


  "status" : "unauthorized",

  "message" : "Office not created",

  "errors" : [

    "API Key does not have permissions to create offices"