Vue d'ensemble des SDKs
Les SDKs officiels Infoparcelle simplifient l'intégration de l'API dans vos applications en gérant automatiquement l'authentification, la pagination, les erreurs et le rate limiting.
SDKs disponibles
MCP Server
Serveur MCP (Model Context Protocol) permettant aux LLMs (Claude, ChatGPT, etc.) d'accéder directement aux données Infoparcelle via 14 outils spécialisés.
Deux méthodes d'utilisation :
- MCP Hébergé : Utilisez notre serveur hébergé via OAuth2 (aucune installation requise)
- Auto-hébergé : Installez votre propre instance avec clé API
# Auto-hébergement
git clone https://github.com/Rootsud/Infoparcelle-MCP.git
cd Infoparcelle-MCP
npm install
npm run build
Exemple d'utilisation dans Claude :
Trouve-moi des terrains constructibles de plus de 1000m²
dans le département 69 avec un bon accès
Fonctionnalités :
- ✅ 14 outils MCP (géocodage, parcelles, DVF, DPE, PLU, permis, etc.)
- ✅ Compatible Claude Desktop, ChatGPT et tous les clients MCP
- ✅ Mode hébergé (OAuth2) ou auto-hébergé (clé API)
- ✅ Support HTTP et stdio
- ✅ Authentification automatique et retry
- ✅ Accès à toutes les données Infoparcelle
Prérequis :
- Node.js >= 18.0.0 (pour auto-hébergement)
- Compte Infoparcelle avec clé API ou OAuth2
Dépôt GitHub : Rootsud/Infoparcelle-MCP
Documentation complète : Guide MCP
PHP SDK
SDK PHP moderne pour l'API Infoparcelle - Accédez facilement aux données foncières, cadastrales et immobilières françaises.
composer require infoparcelle/php-sdk
Exemple de base :
<?php
use Infoparcelle\InfoparcelleClient;
$client = new InfoparcelleClient('VOTRE_CLE_API');
// Recherche d'adresse
$adresses = $client->geocoding()->search('7 Rue de l\'Elysée Paris');
foreach ($adresses as $adresse) {
echo $adresse->adresseComplete . "\n";
}
// Recherche de parcelles
$parcelles = $client->parcelles()->search([
'code_departement' => '75',
'superficie_min' => 500,
]);
Fonctionnalités :
- ✅ PHP 8.1+ avec types stricts
- ✅ PSR-4, PSR-7, PSR-18 compliant
- ✅ DTOs typés et orienté objet
- ✅ Pagination automatique par curseur
- ✅ Gestion d'erreurs avec exceptions détaillées
- ✅ Client HTTP optimisé (Guzzle 7)
- ✅ Documentation PHPDoc complète
Prérequis :
- PHP 8.1 ou supérieur
- Extension JSON
- Composer
Dépôt GitHub : Rootsud/Infoparcelle-SDK-PHP
JavaScript/TypeScript SDK
SDK JavaScript/TypeScript moderne pour l'API Infoparcelle - Compatible Node.js et navigateurs.
npm install @infoparcelle/sdk
# ou
yarn add @infoparcelle/sdk
# ou
pnpm add @infoparcelle/sdk
Exemple de base :
import { InfoparcelleClient } from '@infoparcelle/sdk';
const client = new InfoparcelleClient('VOTRE_CLE_API');
// Recherche d'adresse
const adresses = await client.geocoding.search({
recherche: "7 Rue de l'Elysée Paris",
limite: 10,
});
// Recherche de parcelles
const parcelles = await client.parcelles.search({
filters: {
code_departement: '75',
superficie_min: 500,
},
limite: 20,
});
Fonctionnalités :
- ✅ TypeScript avec types stricts
- ✅ Compatible Node.js ET navigateurs
- ✅ Tree-shakeable (bundle minimal ~15kb)
- ✅ Zero dépendances (utilise Fetch API native)
- ✅ Pagination automatique par curseur
- ✅ Retry automatique avec backoff
- ✅ Exceptions typées et informatives
- ✅ Documentation TSDoc complète
Prérequis :
- Node.js >= 18.0.0 ou navigateur moderne avec support Fetch
- TypeScript >= 5.0.0 (pour développement)
Dépôt GitHub : Rootsud/Infoparcelle-SDK-TS
Comparaison des SDKs
| Fonctionnalité | MCP Server | PHP | JavaScript/TypeScript |
|---|---|---|---|
| Authentification | ✅ OAuth2/API Key | ✅ | ✅ |
| Pagination auto | ✅ | ✅ | ✅ |
| Retry auto | ✅ | ✅ | ✅ |
| Types stricts | ✅ TypeScript | ✅ | ✅ |
| Async/await | ✅ | ❌ | ✅ |
| Support navigateur | ❌ | ❌ | ✅ |
| Compatible LLMs | ✅ Claude, ChatGPT | ❌ | ❌ |
| Mode hébergé | ✅ | ❌ | ❌ |
| Installation requise | ❌ (mode hébergé) | ✅ | ✅ |
| DTOs/Types | ✅ | ✅ | ✅ |
| Zero dépendances | ❌ | ❌ | ✅ |
| Taille bundle | N/A | N/A | ~15kb gzippé |
Avantages des SDKs
1. Simplicité d'utilisation
Sans SDK :
// Gérer manuellement l'authentification, les erreurs, la pagination...
const response = await fetch(
'https://app.infoparcelle.fr/api/v1/geocoder/search?recherche=1+Rue+de+Rivoli',
{
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
}
);
if (!response.ok) {
const error = await response.json();
throw new Error(error.message);
}
const data = await response.json();
// Gérer la pagination, les curseurs, etc.
Avec SDK :
// Tout est géré automatiquement
const adresses = await client.geocoding.search({ recherche: '1 Rue de Rivoli' });
2. Gestion automatique des erreurs
Les SDKs lancent des exceptions typées pour chaque type d'erreur.
TypeScript/JavaScript :
import {
InfoparcelleClient,
RateLimitError,
ResourceNotFoundError,
AuthenticationError,
QuotaExceededError,
} from '@infoparcelle/sdk';
try {
const parcelle = await client.parcelles.get('010040000B0064');
} catch (error) {
if (error instanceof ResourceNotFoundError) {
console.error('Ressource non trouvée');
} else if (error instanceof RateLimitError) {
console.error(`Réessayez dans ${error.retryAfter}s`);
} else if (error instanceof AuthenticationError) {
console.error('Clé API invalide');
} else if (error instanceof QuotaExceededError) {
console.error('Quota épuisé');
}
}
PHP :
use Infoparcelle\Exceptions\RateLimitException;
use Infoparcelle\Exceptions\ResourceNotFoundException;
use Infoparcelle\Exceptions\QuotaExceededException;
use Infoparcelle\Exceptions\ApiException;
try {
$parcelle = $client->parcelles()->find('010040000B0064');
} catch (ResourceNotFoundException $e) {
echo "Ressource non trouvée\n";
} catch (RateLimitException $e) {
$retryAfter = $e->getRetryAfter();
echo "Limite dépassée, réessayez dans {$retryAfter}s\n";
} catch (QuotaExceededException $e) {
echo "Quota épuisé\n";
} catch (ApiException $e) {
echo "Erreur API: {$e->getMessage()}\n";
}
3. Pagination transparente
TypeScript/JavaScript :
const parcelles = await client.parcelles.search({
filters: { code_departement: '75' },
limite: 50,
});
console.log(`Résultats: ${parcelles.length}`);
console.log(`Plus de résultats: ${parcelles.hasMore}`);
if (parcelles.hasMore) {
const nextPage = await client.parcelles.search({
filters: { code_departement: '75' },
curseur: parcelles.nextCursor,
limite: 50,
});
}
PHP :
$parcelles = $client->parcelles()->search(
filters: ['code_departement' => '75'],
limite: 50
);
echo "Page 1: {$parcelles->count()} résultats\n";
if ($parcelles->hasNextPage()) {
$nextCursor = $parcelles->getNextCursor();
$nextPage = $client->parcelles()->search(
filters: ['code_departement' => '75'],
limite: 50,
curseur: $nextCursor
);
}
4. Types et autocomplétion
Les SDKs TypeScript et PHP offrent une autocomplétion complète et une vérification de types.
TypeScript :
import { InfoparcelleClient, Geometrie, OrdreTri } from '@infoparcelle/sdk';
const client = new InfoparcelleClient('VOTRE_CLE_API');
// Autocomplétion complète des paramètres
const parcelles = await client.parcelles.search({
filters: {
code_departement: '75',
superficie_min: 500,
},
geometrie: Geometrie.CONTOUR, // Enum typé
ordre_tri: OrdreTri.DESC,
limite: 20,
});
PHP :
use Infoparcelle\Enums\Geometrie;
use Infoparcelle\Enums\OrdreTri;
// Types stricts et autocomplétion IDE
$parcelles = $client->parcelles()->search(
filters: [
'code_departement' => '75',
'superficie_min' => 500,
],
geometrie: Geometrie::CONTOUR,
ordreTri: OrdreTri::DESC,
limite: 20
);
5. Retry automatique
En cas d'erreur temporaire (429, 500, 503), les SDKs réessaient automatiquement avec backoff exponentiel.
TypeScript/JavaScript :
const client = new InfoparcelleClient({
apiKey: 'VOTRE_CLE_API',
maxRetries: 3,
timeout: 30000,
});
// Réessaie automatiquement jusqu'à 3 fois
const parcelles = await client.parcelles.search({
filters: { code_departement: '75' },
});
PHP :
use Infoparcelle\Config\Configuration;
$config = new Configuration(
apiKey: 'VOTRE_CLE_API',
timeout: 30,
maxRetries: 3
);
$client = new InfoparcelleClient($config);
// Retry automatique géré par le client
$parcelles = $client->parcelles()->search(['code_departement' => '75']);
Installation rapide
PHP
Installez le SDK via Composer :
composer require infoparcelle/php-sdk
Configuration :
use Infoparcelle\InfoparcelleClient;
use Infoparcelle\Config\Configuration;
// Configuration simple
$client = new InfoparcelleClient('VOTRE_CLE_API');
// Configuration avancée
$config = new Configuration(
apiKey: 'VOTRE_CLE_API',
baseUrl: 'https://app.infoparcelle.fr',
timeout: 30,
connectTimeout: 10,
maxRetries: 3
);
$client = new InfoparcelleClient($config);
JavaScript/TypeScript
Installez le SDK via npm, yarn ou pnpm :
npm install @infoparcelle/sdk
# ou
yarn add @infoparcelle/sdk
# ou
pnpm add @infoparcelle/sdk
Configuration :
import { InfoparcelleClient } from '@infoparcelle/sdk';
// Configuration simple
const client = new InfoparcelleClient('VOTRE_CLE_API');
// Configuration avancée
const client = new InfoparcelleClient({
apiKey: 'VOTRE_CLE_API',
baseUrl: 'https://app.infoparcelle.fr',
timeout: 30000,
maxRetries: 3,
});
Exemples d'utilisation
Géocodage
JavaScript/TypeScript :
// Recherche d'adresse
const adresses = await client.geocoding.search({
recherche: "7 Rue de l'Elysée Paris",
limite: 10,
});
for (const adresse of adresses) {
console.log(adresse.adresse_complete);
console.log(`GPS: ${adresse.latitude}, ${adresse.longitude}`);
}
// Géocodage inverse
const adresse = await client.geocoding.reverse({
latitude: 48.8584,
longitude: 2.2945,
});
PHP :
// Recherche d'adresse
$adresses = $client->geocoding()->search('7 Rue de l\'Elysée Paris');
foreach ($adresses as $adresse) {
echo $adresse->adresseComplete . "\n";
echo "GPS: {$adresse->getLatitude()}, {$adresse->getLongitude()}\n";
}
// Géocodage inverse
$parcelles = $client->geocoding()->reverse(48.8584, 2.2945);
Recherche de parcelles
JavaScript/TypeScript :
// Recherche avancée
const parcelles = await client.parcelles.search({
filters: {
code_departement: '75',
superficie_min: 500,
avec_batiment: true,
},
geometrie: Geometrie.CENTRE,
ordre_tri: OrdreTri.DESC,
limite: 20,
});
// Par référence cadastrale
const results = await client.parcelles.findByReference('75056', 'AK', '0042');
// Par proximité
const nearby = await client.parcelles.findNearby(
48.8584,
2.2945,
500, // rayon en mètres
{ avec_batiment: true }
);
PHP :
// Recherche avancée
$parcelles = $client->parcelles()->search(
filters: [
'code_departement' => '75',
'superficie_min' => 500,
'avec_batiment' => true,
],
geometrie: Geometrie::CENTRE,
ordreTri: OrdreTri::DESC,
limite: 20
);
// Par référence cadastrale
$parcelles = $client->parcelles()->findByReference(
codeCommune: '75056',
section: 'AK',
numero: '0042'
);
// Par proximité
$parcelles = $client->parcelles()->findNearby(
latitude: 48.8584,
longitude: 2.2945,
rayon: 500,
additionalFilters: ['avec_batiment' => true]
);
Transactions immobilières (DVF)
JavaScript/TypeScript :
const transactions = await client.dvf.search({
filters: {
code_departement: '75',
date_mutation_min: '2023-01-01',
valeur_fonciere_min: 100000,
},
limite: 50,
});
PHP :
$transactions = $client->dvf()->search(
filters: [
'code_departement' => '75',
'date_mutation_min' => '2023-01-01',
'valeur_fonciere_min' => 200000,
'type_local' => 'Appartement',
],
limite: 50
);
Ressources disponibles
Documentation complète
Consultez les README des SDK pour une documentation détaillée :
-
PHP SDK : Rootsud/Infoparcelle-SDK-PHP
- Installation et configuration
- Exemples d'utilisation pour toutes les ressources API
- Gestion d'erreurs et pagination
- Notes importantes et limitations
-
JavaScript/TypeScript SDK : Rootsud/Infoparcelle-SDK-TS
- Installation et configuration
- Utilisation Node.js et navigateur
- Exemples TypeScript typés
- Optimisations et meilleures pratiques
Liens utiles
- 📖 Documentation API : infoparcelle.fr/documentation
- 🌐 Site web : infoparcelle.fr
- 🔑 Gérer vos clés API : infoparcelle.fr/compte/api
- 📧 Support : contact@infoparcelle.fr
Contribution
Les SDKs sont sous licence MIT. Les contributions sont les bienvenues !
- Issues : Signalez des bugs ou proposez des améliorations sur GitHub
- Pull Requests : Soumettez vos contributions
- Documentation : Aidez à améliorer les exemples et guides
Nous recommandons vivement l'utilisation des SDKs pour simplifier votre intégration et bénéficier de toutes les fonctionnalités avancées : authentification automatique, gestion des erreurs, pagination transparente, retry automatique et types stricts !
Prochaines étapes
- Installez un SDK selon votre langage préféré
- Obtenez une clé API sur infoparcelle.fr/compte/api
- Consultez les exemples dans les README des SDK
- Explorez la documentation API pour découvrir toutes les fonctionnalités disponibles