topbroker/topbroker-php

TopBroker API Client

1.5.0 2022-08-17 16:16 UTC

This package is auto-updated.

Last update: 2025-06-28 22:53:27 UTC


README

PHP bindings to the TopBroker API

Installation

This library supports PHP 7.1 and later The recommended way to install is through Composer:

composer require topbroker/topbroker-php php-http/guzzle6-adapter

Usage

Initialize your client using your access token:

use TopBroker\TopBrokerApi;
$topbroker = new TopBrokerApi('<insert_api_username_token_here>', '<insert_api_password_token_here>');

Estates

Estate listing

https://app.topbroker.lt/api-docs/#/estates/getEstates

/** Get Estate List */ 
$topbroker->estates->getList([]);

/** Get Estate List Flat and Houses, 
 * Minimum 50 sq. m area, sort by price from highest to lowest  */
$topbroker->estates->getList([
  'estate_type' => ['house', 'flat'], 
  'area_min' => 50, 
  'sort_by' => 'price', 'sort_to' => 'desc',
  'per_page' => 10, 'page' => 1 ]);

/** Get Estate List By Custom Field */
$topbroker->estates->getList(['custom_fields' => [
  'c_f_e_zymos' => ['Discounted', 'Top']]
  ]);

Get Estate Count By User ID

https://app.topbroker.lt/api-docs/#/estates/countEstate

$topbroker->estates->getCount(['user_id' => 123]);

Get All available Estates Custom Fields

https://app.topbroker.lt/api-docs/#/estates/getEstateCustomFields

$topbroker->estates->getCustomFields([]);

Get Estates Custom Views

https://app.topbroker.lt/api-docs/#/estates/getEstatesCustomViews

$topbroker->estates->getCustomViews([]);

Get Estates Record Statuses

https://app.topbroker.lt/api-docs/#/estates/getEstateRecordStatuses

$topbroker->estates->getRecordStatuses([]);

Get Attributes for specific Estate Type

https://app.topbroker.lt/api-docs/#/estates/getEstateCustomFields

$topbroker->estates->getAttributes('commercial');
$topbroker->estates->getAttributes('flat');
$topbroker->estates->getAttributes('site');
$topbroker->estates->getAttributes('house');

Create a Estate

https://app.topbroker.lt/api-docs/#/estates/createEstate

$topbroker->estates->createItem([
  'estate_type' => 'flat', 
  'user_id' => 123, 
  'municipality_id' => 461,
  'city_id' => 1,
  'block_id' => 1,
  'street_id' => 22189,
  'area' => 68.2,
  'sale_price' => 125000,
  'floor' => 2,
  'floor_count' => 5,
  'room_count' => 3,
  'custom_fields' => [
    'c_f_c_tags' => ['Good location']
    ]);

Get Estate by ID

https://app.topbroker.lt/api-docs/#/estates/getEstate

$topbroker->estates->getItem(12345);

Update Estate

https://app.topbroker.lt/api-docs/#/estates/updateEstate

$topbroker->estates->updateItem(12345, [
  'name' => 'Johnny NewName', 
  'custom_fields' => ['c_f_c_company_name' => 'Company ABC']
  ]);

Get Estate Photos

https://app.topbroker.lt/api-docs/#/estates/getEstatePhotos

$topbroker->estates->getPhotos(12345);

Get Estate Media (Video && 3D Tours)

https://app.topbroker.lt/api-docs/#/estates/getEstateMedia

$topbroker->estates->getMedia(12345);

Get Estate Nearby Places

https://app.topbroker.lt/api-docs/#/estates/getEstateNearbyPlaces

$topbroker->estates->getNearbyPlaces(12345);

Change Estate Privacy

https://app.topbroker.lt/api-docs/#/estates/changeEstatePrivacy

$topbroker->estates->changePrivacy(12345, ['privacy_level' => 'public']);

Change Estate Owner

https://app.topbroker.lt/api-docs/#/estates/changeEstateOwner

$topbroker->estates->changeOwner(12345, ['user_id' => 1]);

Delete Estate

soft-delete, record will be stored in Settings->Trashbin where users will be able to recovery records

https://app.topbroker.lt/api-docs/#/estates/deleteEstate

$topbroker->estates->deleteItem(12345);

Locations

Various location based records related directly to Estate and Inquiry records. Also can be used in Custom Fields in any record.

Location record hierarchy: Municipality -> City -> Block (District) -> Street

Municipalities

https://app.topbroker.lt/api-docs/#/municipalities/getMunicipalities

$topbroker->locations->getMunicipalities([]);

Cities

https://app.topbroker.lt/api-docs/#/cities/getCities

/** List of cities located in specific municipality */
$topbroker->locations->getCities(['municipality_id' => 123]);

Blocks (Districts)

https://app.topbroker.lt/api-docs/#/blocks/getBlocks

/** List of districts located in specific city */
$topbroker->locations->getBlocks(['city_id' => 123]);

Streets

https://app.topbroker.lt/api-docs/#/streets/getStreets

/** List of street located in specific city, containing Flat type estates and minimum price 100K */
$topbroker->locations->getStreets([
  'city_id' => 123, 'for_sale ' => true, 
  'price_to' => 100000, 'estate_type' => ['flat']
  ]);

Locations

Location is flattened hierarchy records of Municipality, City, Block and Street. Mainly used in Inquiry records. Also is used in Custom Fields 'location' type records values

https://app.topbroker.lt/api-docs/#/locations/getLocations

$topbroker->locations->getList([]);

Location Item by ID

https://app.topbroker.lt/api-docs/#/locations/getLocation

$topbroker->locations->getItem(1234);

Contacts

Get Contact List

https://app.topbroker.lt/api-docs/#/contacts/getContacts

/** Get Contact List */
$topbroker->contacts->getList([]);

/** Get Contact List By User ID */
$topbroker->contacts->getList(['user_id' => 123]);

/** Get Contact List By Custom Field */
$topbroker->contacts->getList(['custom_fields' => [
  'c_f_c_company_name' => 'Company XYZ', 
  'c_f_c_company_size' => '5-10']
  ]);

Count Contacts By User ID

https://app.topbroker.lt/api-docs/#/contacts/countContacts

$topbroker->contacts->getCount(['user_id' => 123]);

Contact Custom Field list

https://app.topbroker.lt/api-docs/#/contacts/getContactCustomFields

$topbroker->contacts->getCustomFields([]);

Get Contact Record Statuses

https://app.topbroker.lt/api-docs/#/contacts/getContactRecordStatuses

$topbroker->contacts->getRecordStatuses([]);

Create a Contact

https://app.topbroker.lt/api-docs/#/contacts/createContact

$topbroker->contacts->createItem([
  'name' => 'John Doe',
  'user_id' => 123, 
  'custom_fields' => [
    'c_f_c_company_name' => 'Company XYZ', 
    'c_f_c_company_size' => '5-10']
    ]);

Get Contact by ID

https://app.topbroker.lt/api-docs/#/contacts/getContact

$topbroker->contacts->getItem(12345);

Update Contact

https://app.topbroker.lt/api-docs/#/contacts/updateContact

$topbroker->contacts->updateItem(12345, [
  'name' => 'Johnny NewName', 
  'custom_fields' => ['c_f_c_company_name' => 'Company ABC']
  ]);

Change Contact Owner

https://app.topbroker.lt/api-docs/#/contacts/changeContactOwner

$topbroker->contacts->changeOwner(12345, ['user_id' => 1]);

Change Contact Privacy

https://app.topbroker.lt/api-docs/#/contacts/changeContactPrivacy

$topbroker->contacts->changePrivacy(12345, ['privacy_level' => 'shared', 'user_ids' => [12, 34, 42]]);

Delete Contact

soft-delete, record will be stored in Settings->Trashbin where users will be able to recovery records

https://app.topbroker.lt/api-docs/#/contacts/deleteContact

$topbroker->contacts->deleteItem(12345);

Inquiries

Get Inquiry List

https://app.topbroker.lt/api-docs/#/inquiries/getInquiries

/** Get Contact List */
$topbroker->inquiries->getList([]);

/** Get Contact List By User ID */
$topbroker->inquiries->getList(['user_id' => 123]);

/** Get Contact List By Custom Field */
$topbroker->inquiries->getList(['custom_fields' => [
  'c_f_i_special_needs' => 'Disco ball']
  ]);

Count Inquiries

https://app.topbroker.lt/api-docs/#/inquiries/countInquiry

$topbroker->inquiries->getCount([]);

Inquiry Custom Field list

https://app.topbroker.lt/api-docs/#/inquiries/getInquiriesCustomFields

$topbroker->inquiries->getCustomFields([]);

Get Inquiry Record Statuses

https://app.topbroker.lt/api-docs/#/inquiries/getInquiryRecordStatuses

$topbroker->inquiries->getRecordStatuses([]);

Create a Inquiry

https://app.topbroker.lt/api-docs/#/inquiries/createInquiry

$topbroker->inquiries->createItem([
  'estate_type' => 'house', 
  'title' => 'Hub','user_id' => 123, 
  'custom_fields' => [
    'c_f_i_special_needs' => ['Disco ball', 'Unicorn'], 
    'c_f_c_company_size' => '1-5']
    ]);

Get Inquiry by ID

https://app.topbroker.lt/api-docs/#/inquiries/getInquiry

$topbroker->inquiries->getItem(12345);

Update Inquiry

https://app.topbroker.lt/api-docs/#/inquiries/updateInquiry

$topbroker->inquiries->updateItem(12345, [
  'title' => 'Dev Hub', 
  'custom_fields' => ['c_f_c_company_name' => 'Startup XYZ']
  ]);

Change Inquiry Owner

https://app.topbroker.lt/api-docs/#/inquiries/changeInquiryOwner

$topbroker->inquiries->changeOwner(12345, ['user_id' => 1]);

Change Inquiry Privacy

https://app.topbroker.lt/api-docs/#/inquiries/changeInquiryPrivacy

$topbroker->inquiries->changePrivacy(12345, ['privacy_level' => 'shared', 'user_ids' => [12, 34, 42]]);

Delete Inquiry

soft-delete, record will be stored in Settings->Trashbin where users will be able to recovery records

https://app.topbroker.lt/api-docs/#/inquiries/deleteInquiry

$topbroker->inquiries->deleteItem(12345);

Finances

Using finances, users can track income and expenditure associated with properties and clients.

Return filtered finances list

https://app.topbroker.lt/api-docs/#/finances/getFinances

$topbroker->finances->getList(['user_id' => 12345]);

Return filtered finances records sum

https://app.topbroker.lt/api-docs/#/finances/getFinancesSum

$topbroker->finances->getSum(['user_id' => 12345]);

Returns finance income groups

https://app.topbroker.lt/api-docs/#/finances/getFinanceGroupIncome

$topbroker->finances->getIncomeGroups();

Returns finance expenses groups

https://app.topbroker.lt/api-docs/#/finances/getFinanceGroupExpenses

$topbroker->finances->getExpensesGroups();

Deals

Solded/rented property Deals

Get Deal List

https://app.topbroker.lt/api-docs/#/deals/getDeals

$topbroker->deals->getList(['user_id' => 12345, 'finance_operation_type' => 'income']);

Get Deal by ID

https://app.topbroker.lt/api-docs/#/deals/getDeal

$topbroker->deals->getItem(12345);

Count Deals

https://app.topbroker.lt/api-docs/#/deals/getDealsCount

$topbroker->deals->getCount(['estate_type' => ['flat']]);

Average calculated Deals

https://app.topbroker.lt/api-docs/#/deals/getDealsAverage

$topbroker->deals->getAverage(['for_sale' => true]);

Users

Get User List

https://app.topbroker.lt/api-docs/#/users/getUsers

$topbroker->users->getList(['custom_fields' => ['c_f_u_visible_in_homepage' => 'Yes']]);

Get User by ID

https://app.topbroker.lt/api-docs/#/users/getUser

$topbroker->users->getItem(12345);

Count Users

https://app.topbroker.lt/api-docs/#/users/countUsers

$topbroker->users->getCount([]);

User Custom Field list

https://app.topbroker.lt/api-docs/#/users/getUsersCustomFields

$topbroker->users->getCustomFields([]);