Documentation

ImmoWP API & intégrations

Modèle de données

API v1 (défaut) : schéma normalized générique (snake_case, types numériques, objets imbriqués). Les champs absents sont omis (pas de chaînes vides).

format=raw : modèle historique ImmoWP (camelCase français, compatible plugin WordPress).

// normalized (défaut)
{
  "id": "…",
  "reference": "297db",
  "crm_source": "immofacile",
  "offer_type": "sale",
  "property_type": "house",
  "title": { "fr": "Maison 3 chambres + bureau" },
  "financial": { "sale_price": { "amount": 164650, "currency": "EUR" } },
  "areas": { "living": { "value": 95, "unit": "sqm" } },
  "rooms": { "total": 5, "bedrooms": 3 },
  "location": { "city": "…", "postal_code": "…", "country": "FR", "geo": { "latitude": …, "longitude": … } },
  "media": { "photos": [ { "url": "https://…", "ordinal": 0 } ] },
  "energy": { "dpe_letter": "D", "ges_letter": "C" },
  "amenities": [ "garden", "pool" ]
}

Query : ?format=normalized (défaut) ou ?format=raw.

Modèle raw (legacy ImmoWP)

Champs en camelCase français. Les champs non renseignés par le CRM peuvent être vides ("").

Identité

  • affId — identifiant technique CRM
  • affNum — référence affichable
  • passerelleName — nom du connecteur
  • typeTransaction — vente / location / …
  • typeCode, typeLibelle — type de bien
  • dateCreation, dateMaj, dateDispo

Textes (multilingues)

  • intitule, intituleEn, intituleEs, intituleDe, intituleIt, intituleRu, intituleNv
  • commentaires (+ variantes de langue)

Prix & location

  • prix, prixCurrency, prixM2, prixHorsHono
  • loyer, loyerMensuelCC, chargesMensuelles, depotGarantie
  • montantHonoAcq, montantHonoVen, pourcentageHono

Surfaces & pièces

  • surfaceHabitable, surfaceCarrez, surfaceTerrain
  • nbrePieces, nbreChambres, nbreSDB, nbreWC
  • nbreEtage, numEtage, anneeConstruction

Localisation

  • ville, codePostal, pays, adresse
  • latitude, longitude (si fournis par le CRM)

Médias

  • photos — tableau d’URLs / objets média
  • video, visiteVirtuelle

Agence & négociateur

  • agenceNom, agenceTel, agenceMail, agenceLogo
  • negoNom, negoPrenom, negoEmail, negoTel

Diagnostics

  • dpe / classe énergie, GES — selon mapping CRM

Exemple minimal

{
  "affId": "12345",
  "affNum": "A-2026-01",
  "intitule": "Appartement 3 pièces centre-ville",
  "commentaires": "Lumineux, proche commerces…",
  "typeTransaction": "Vente",
  "prix": "285000",
  "prixCurrency": "EUR",
  "surfaceHabitable": "72",
  "nbrePieces": "3",
  "nbreChambres": "2",
  "ville": "Lyon",
  "codePostal": "69003",
  "photos": ["https://cdn.example/1.jpg"]
}

La disponibilité des champs dépend du CRM source. Un même champ peut être rempli par Apimo et vide sur un flux Hektor minimal.