PHPackages                             trackstone/laravel-immo-data - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. trackstone/laravel-immo-data

ActiveLibrary[API Development](/categories/api)

trackstone/laravel-immo-data
============================

Laravel integration for the Immo Data PHP SDK

v1.1.0(2mo ago)05↓75%MITPHPPHP ^8.3CI passing

Since Feb 24Pushed 2mo agoCompare

[ Source](https://github.com/trackstone/laravel-immo-data)[ Packagist](https://packagist.org/packages/trackstone/laravel-immo-data)[ Docs](https://github.com/trackstone/laravel-immo-data)[ RSS](/packages/trackstone-laravel-immo-data/feed)WikiDiscussions 1.x Synced 1mo ago

READMEChangelog (2)Dependencies (12)Versions (5)Used By (0)

Laravel Immo Data
=================

[](#laravel-immo-data)

[![Tests](https://github.com/trackstone/laravel-immo-data/actions/workflows/tests.yml/badge.svg)](https://github.com/trackstone/laravel-immo-data/actions/workflows/tests.yml)

Laravel integration for the [Immo Data PHP SDK](https://github.com/trackstone/immo-data-php-sdk) — French real estate data including property valuation, geocoding, geographic boundaries, and market prices.

Requirements
------------

[](#requirements)

- PHP 8.3+
- Laravel 11 or 12

Installation
------------

[](#installation)

```
composer require trackstone/laravel-immo-data
```

The service provider and facade are auto-discovered. No manual registration needed.

Configuration
-------------

[](#configuration)

Add your API key to `.env`:

```
IMMO_DATA_API_KEY=your-api-key
```

Optionally publish the config file:

```
php artisan vendor:publish --tag=immo-data-config
```

This creates `config/immo-data.php`:

```
return [
    'api_key'  => env('IMMO_DATA_API_KEY', ''),
    'base_url' => env('IMMO_DATA_BASE_URL', 'https://api.immo-data.fr'),
];
```

Usage
-----

[](#usage)

### Via Facade

[](#via-facade)

```
use ImmoData\Laravel\Facades\ImmoData;
use ImmoData\Enums\{RealtyType, GeoLevel, Condition, Dpe};
use ImmoData\Requests\ValuationRequest;

// Valuation
$request = new ValuationRequest(
    longitude: 2.3488,
    latitude: 48.8534,
    realtyType: RealtyType::Apartment,
    nbRooms: 3,
    livingArea: 65.0,
    condition: Condition::Excellent,
    dpe: Dpe::C,
    elevator: true,
);

$result = ImmoData::valuation()->estimate($request);
echo $result->mainValuation; // 485000.0

// Geocode
$results = ImmoData::geocode()->search('Paris', [GeoLevel::City]);
echo $results[0]->label; // "Paris, Ile-de-France"

// Geographic data
$city = ImmoData::geo()->city('75056');
echo $city->cityName; // "Paris"

// Market data
$price = ImmoData::market()->currentPrice(
    code: '75',
    geoLevel: GeoLevel::Department,
    realtyType: RealtyType::Apartment,
);
echo $price->value; // EUR/m²
```

### Via Dependency Injection

[](#via-dependency-injection)

```
use ImmoData\ImmoDataClient;
use ImmoData\Enums\RealtyType;
use ImmoData\Requests\ValuationRequest;

class PropertyController extends Controller
{
    public function __construct(
        private readonly ImmoDataClient $immoData,
    ) {}

    public function estimate()
    {
        $request = new ValuationRequest(
            longitude: 2.3488,
            latitude: 48.8534,
            realtyType: RealtyType::Apartment,
            nbRooms: 3,
            livingArea: 65.0,
        );

        return $this->immoData->valuation()->estimate($request);
    }
}
```

### Via Service Container

[](#via-service-container)

```
$client = app(ImmoData\ImmoDataClient::class);
$result = $client->geocode()->search('Lyon');
```

Available Methods
-----------------

[](#available-methods)

ResourceMethodDescription`valuation()``estimate(ValuationRequest)`Property price estimation`geocode()``search(string, ?GeoLevel[], int)`Location search`geo()``region(string)`Get region by code`geo()``department(string)`Get department by code`geo()``city(string)`Get city by INSEE code`geo()``district(string)`Get district by code`geo()``subdistrict(string)`Get subdistrict (IRIS) by code`market()``priceHistory(string, GeoLevel, RealtyType, ?string, ?string)`Price history`market()``currentPrice(string, GeoLevel, RealtyType)`Current price per m²For full documentation on request parameters, DTOs, enums, and error handling, see the [PHP SDK documentation](https://github.com/trackstone/immo-data-php-sdk).

Code Style
----------

[](#code-style)

This package uses [Laravel Pint](https://laravel.com/docs/pint) with the PER Coding Style preset.

```
# Fix code style
composer cs

# Check without fixing
composer cs:check
```

Testing
-------

[](#testing)

```
composer test
```

License
-------

[](#license)

MIT

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance86

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 90.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~7 days

Total

3

Last Release

69d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7335fdf3624fa02c2aaa78e9dffebb9494081dfaae9a22c692231e4f4cb1051f?d=identicon)[blackjak231](/maintainers/blackjak231)

---

Top Contributors

[![blackjak231](https://avatars.githubusercontent.com/u/1529214?v=4)](https://github.com/blackjak231 "blackjak231 (10 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

---

Tags

apilaravelfrancereal-estateimmobiliertrackstoneimmo-data

###  Code Quality

TestsPHPUnit

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/trackstone-laravel-immo-data/health.svg)

```
[![Health](https://phpackages.com/badges/trackstone-laravel-immo-data/health.svg)](https://phpackages.com/packages/trackstone-laravel-immo-data)
```

###  Alternatives

[andreaselia/laravel-api-to-postman

Generate a Postman collection automatically from your Laravel API

1.0k586.2k3](/packages/andreaselia-laravel-api-to-postman)[mll-lab/laravel-graphiql

Easily integrate GraphiQL into your Laravel project

683.2M9](/packages/mll-lab-laravel-graphiql)[dragon-code/laravel-json-response

Automatically always return a response in JSON format

1118.6k1](/packages/dragon-code-laravel-json-response)[claude-php/claude-php-sdk-laravel

Laravel integration for the Claude PHP SDK - Anthropic Claude API

5010.8k](/packages/claude-php-claude-php-sdk-laravel)[surface/laravel-webfinger

A Laravel package to create an ActivityPub webfinger.

113.8k](/packages/surface-laravel-webfinger)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
