topbroker / topbroker-php
TopBroker API Client
Requires
- php: >= 7.1
- ext-json: *
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- php-http/guzzle6-adapter: ^1.0 || ^2.0
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([]);