Immofacile API V2 (1.1.0)
This documentation will guide you through integrating with Immofacile, the leading SaaS CRM for real estate agencies. Our REST APIs allow you to connect your applications, automate your business workflows, and extend the power of our ecosystem.
This documentation and APIs are designed for three distinct types of users:
- IT Departments (CIO) of large networks / Franchises: Who want to interconnect Immofacile with their proprietary internal tools.
- Developers / Partners: Commissioned by our clients to build custom showcase websites or specific business applications.
- Software Vendors (PropTech / Ecosystem Partners): Valuation tools, marketing automation providers, and any type of partner we want to connect to our system.
- Real estate listing portals: Currently fed mostly via CSV or XML feeds, APIs are needed to better manage listing distribution and lead returns.
To support the digitalization of real estate agencies, Immofacile offers a bidirectional architecture:
- Extraction (Read): Securely access your client data (properties, contacts, events, etc.).
- Injection (Write): Create, update, or enrich the agency database (leads, properties, actions, etc.) while respecting the CRM's business rules.
- Sandbox (Test): An isolated environment containing demo data for development without risk of polluting production (coming soon).
- Production: The agency's live environment.
- Security: Authentication relies on the OAuth 2.0 protocol (via a
Client IDandClient Secretgenerated from the Immofacile admin dashboard) or by API Key for simple internal script integrations.
To avoid hardcoding URLs and to dynamically adapt to the client agency's access rights, our API implements the Discovery principle.
- The concept: By querying the single entry point, the API returns the list of all resources you have access to, along with associated URLs and available actions (
GET,POST, etc.). - Example request:
GET https://api.immofacile.com/v2/
Intensive polling is prohibited on our platform. To synchronize your data in real time, you must use our Webhooks system. Rather than asking Immofacile whether data has changed, Immofacile sends an HTTP POST notification to your server as soon as an event occurs.
- Event format: Each payload sent by our Webhook contains the event type (
event_type) and the identifier of the related resource.
- Step 1: Duplicate check — Before creating a contact, the third-party application must verify the prospect does not already exist in the agency database via email or phone.
- Action:
POST /customers/searchwith email criterion
- Action:
- Step 2: Contact creation — If the contact does not exist, create it.
- Action:
POST /customers - Payload:
{"firstname": "Jean", "lastname": "Dupont", "phone": "0601020304", "type": "Prospect Vendeur"}
- Action:
- Step 3: Search project creation — Create the search project based on the property the contact inquired about.
- Step 4: Add property to contact follow-up — Associate the listing details to the contact so the agent has context during callback.
- Step 1: Initialization (Full Sync) — On first connection, retrieve the entire active catalog.
- Step 2: Listen for updates (Delta Sync via Webhook) — Register the website URL on our webhook to listen for the
property.updatedevent.- Action: Configuration via dashboard or
POST /hooksto subscribe toproperty.updated.
- Action: Configuration via dashboard or
- Step 3: Targeted update — When a price changes or a property is sold in Immofacile, the website receives the webhook. It then queries the specific property to update its local database.
The API is organized into packs:
- Products — Property listings management
- Customers — Customer management, search requests, follow-ups, actions
- Leads — Seller and buyer lead creation
- Users — Agent/collaborator management
- Agencies — Agency information
- Discovery — Scope discovery
- Webhooks — Event subscriptions
Each endpoint carries one or more colored badges indicating which subscription pack(s) grant access to it. An endpoint may belong to several packs. Use these badges to check whether your subscription covers a given endpoint.
| Badge | Access pack | Color |
|---|---|---|
| 🟣 Customers | Customers, search requests, follow-ups, actions | purple |
| 🟢 Properties | Property listings and criteria | green |
| 🟠 Leads | Seller and buyer lead creation | orange |
| 🔴 Sales | Sale agreements, offers, leases | red |
| 🟪 Websites | Read feeds for websites and portals | blueberry |
Obtain a Bearer token via POST /api/client/token/site (OAuth2 client credentials). Include it in the Authorization: Bearer {token} header for all requests.
Base URL is dynamic. The token response includes a domain field. Use it as the base for every subsequent call ({domain}/api/v2/site/...). In the Try it console, set the domain server variable to that value.