antistatique / pricehubble-php-sdk
Super-simple, minimum abstraction Pricehubble API v1.x wrapper, in PHP
Requires
- php: >=8.0
- ext-curl: *
- ext-json: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.21
- php-coveralls/php-coveralls: ^2.1
- php-mock/php-mock-phpunit: ^2.6
- phpmd/phpmd: ^2.6
- phpunit/php-code-coverage: ^9
- phpunit/phpunit: ^9
- sebastian/phpcpd: ^6.0
- symfony/dotenv: ^5.4
- vimeo/psalm: ^4.10
README
Super-simple, minimum abstraction Pricehubble API v1.x wrapper, in PHP.
I hate complex wrappers. This lets you get from the Pricehubble API docs to the code as directly as possible.
Getting started
You can install pricehubble-php-sdk
using Composer:
composer require antistatique/pricehubble-php-sdk
Examples
See the examples/
directory for examples of the key client features. You can view them in your browser by running the php built-in web server.
php -S localhost:8000 -t examples/
And then browsing to the host and port you specified (in the above example, http://localhost:8000
).
Basic Example
Start by use
-ing the class and creating an instance with your API key
use \Antistatique\Pricehubble\Pricehubble;
Every request should contain a valid access token. use the Pricehubble::authenticate
method prior any requests.
All operational requests require an authentication to be present and unexpired.
Valuation
Performs valuations for the specified real estate properties on the specified valuation dates. The endpoint can be used to do a valuation of a single property, to create time series or to perform bulk valuations.
The number of valuations per call may not exceed 50, i.e. you can perform valuations for 1 property on 50 dates or for 50 properties on 1 date, but not for 50 properties on 50 dates.
👉 https://docs.pricehubble.com/international/valuation/
$pricehubble = new Pricehubble(); $pricehubble->authenticate($username, $password) $response = $pricehubble->valuation()->full([ 'dealType' => 'sale', 'valuationInputs' => [ [ 'property' => [ 'location' => [ 'address' => [ 'postCode' => '8037', 'city' => 'Zürich', 'street' => 'Nordstrasse', 'houseNumber' => '391' ], ], 'buildingYear' => 1850, 'livingArea' => 800, 'propertyType' => [ 'code' => 'apartment' ], ], ], ], 'countryCode' => 'CH', ]); print_r($response);
Valuation Light
Performs a simple valuation of the specified property.
If you would like to perform valuations for multiple properties (in a single call), create time series, or achieve better valuations by taking more parameters into account, consider using the full-fledged Valuation endpoint.
👉 https://docs.pricehubble.com/international/valuation_light/
$pricehubble = new Pricehubble(); $pricehubble->authenticate($username, $password) $response = $pricehubble->valuation()->light([ 'dealType' => 'sale', 'property' => [ 'location' => [ 'address' => [ 'postCode' => '8037', 'city' => 'Zürich', 'street' => 'Nordstrasse', 'houseNumber' => '391' ], ], 'buildingYear' => 1850, 'livingArea' => 800, 'propertyType' => [ 'code' => 'apartment' ], ], 'countryCode' => 'CH', ]); print_r($response);
Points of Interest
Returns point of interests such as schools, shops, etc. that match the specified search criteria.
👉 https://docs.pricehubble.com/international/pois/
$pricehubble = new Pricehubble(); $pricehubble->authenticate($username, $password) $response = $pricehubble->pointsOfInterest()->gather([ 'coordinates' => [ 'latitude' => 47.3968601, 'longitude' => 8.5153549, ], 'radius' => 1000, 'category' => [ 'education', 'leisure', ], 'subcategory' => [ 'kindergarten', 'playground', ], 'offset' => 0, 'limit' => 10, 'countryCode' => 'CH', ]); print_r($response);
Troubleshooting
To get the last error returned by either the HTTP client or by the API, use getLastError()
:
echo $pricehubble->getLastError();
For further debugging, you can inspect the headers and body of the response:
print_r($pricehubble->getLastResponse());
If you suspect you're sending data in the wrong format, you can look at what was sent to Pricehubble by the wrapper:
print_r($pricehubble->getLastRequest());
If your server's CA root certificates are not up to date you may find that SSL verification fails and you don't get a response. The correction solution for this is not to disable SSL verification. The solution is to update your certificates. If you can't do that, there's an option at the top of the class file. Please don't just switch it off without at least attempting to update your certs -- that's lazy and dangerous. You're not a lazy, dangerous developer are you?