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
Suggests
None
Provides
None
Conflicts
None
Replaces
None
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([]);