Intégration Agence Plus ↔ Next.js

Connecter Agence Plus à Next.js

Construisez un site immobilier moderne avec Next.js qui se nourrit automatiquement des annonces de Agence Plus. L'API REST Ts-Immo s'appelle depuis vos composants serveur, vos Route Handlers ou en ISR — pour des pages SSG ultra-rapides et un SEO optimal.

Pourquoi un site Next.js pour agence immobilière ?

Next.js est aujourd'hui le framework de référence pour construire des sites immobiliers performants. SSG / ISR / RSC garantissent un temps de chargement < 1 s, un SEO excellent et des coûts d'hébergement maîtrisés. Couplé à Ts-Immo et Agence Plus, vous obtenez un site sur mesure entièrement piloté par votre CRM.

  • Pages SSG ou ISR (revalidation toutes les 10 minutes par défaut)
  • Composants serveur React (RSC) — aucune fuite de clé API côté client
  • JSON-LD `RealEstateListing` injecté automatiquement pour le SEO
  • Image optimization Next.js native sur les photos Ts-Immo

L'API REST Ts-Immo en bref

Ts-Immo expose une API REST JSON unifiée, indépendante de Agence Plus. Vous interrogez toujours la même API quel que soit le CRM : si vous changez de logiciel un jour, votre site Next.js n'a pas besoin d'être modifié.

Récupérer la liste des biens
# Public — sans authentification
curl https://api.ts-immo.org/v1/gateway/public/properties/agence-cote-d-azur

# Client — avec API token
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
  https://api.ts-immo.org/v1/gateway/properties

Exemple de réponse JSON

Format standard Ts-Immo
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "uri": {
      "fr": "agence-cote-d-azur/villa-4-pieces-vue-mer",
      "en": "agence-cote-d-azur/4-room-villa-sea-view"
    },
    "type": "house",
    "offer_type": "sale",
    "status": "available",
    "title": { "fr": "Villa 4 pièces vue mer", "en": "4-room villa sea view" },
    "bedrooms": 3,
    "financial": {
      "transaction": {
        "price": { "amount": 850000.00, "currency": "EUR" }
      }
    },
    "location": {
      "city": "Nice",
      "postal_code": "06000",
      "country": "France",
      "country_code": "FR"
    },
    "images": [
      { "url": "https://cdn.example.com/photo1.jpg", "ordinal": 0 }
    ]
  }
]

Mise en place dans un projet Next.js

Étapes recommandées pour intégrer Ts-Immo dans un projet Next.js (App Router).

  • Créer un compte sur https://dashboard.ts-immo.org et enregistrer la passerelle correspondant à votre CRM.
  • Récupérer la clé API Ts-Immo dans le tableau de bord.
  • Dans votre projet Next.js, créer un fichier .env.local avec TS_IMMO_API_KEY et TS_IMMO_API_URL.
  • Appeler l'API REST depuis les composants serveur (RSC), les Route Handlers ou via fetch côté serveur.
  • Mettre en cache les réponses avec next: { revalidate: 600 } pour des pages SSG/ISR ultra-rapides.

Composant serveur — liste des biens

Exemple complet d'un composant serveur Next.js qui consomme l'API Ts-Immo (donc indirectement Agence Plus) avec ISR.

app/biens/page.tsx
// app/biens/page.tsx — Server Component
type Property = {
  id: string
  uri: { fr: string; en: string }
  type: 'apartment' | 'house' | 'land' | 'commercial' | 'parking' | string
  offer_type: 'sale' | 'rental' | 'auction' | string
  status: 'available' | 'sold' | 'rented' | string
  title: { fr: string; en?: string }
  bedrooms: number | null
  financial: { transaction: { price: { amount: number; currency: 'EUR' } } }
  location: { city: string; postal_code: string; country: string; country_code: string }
  images: { url: string; ordinal: number }[]
}

async function getProperties(agencySlug: string): Promise<Property[]> {
  const res = await fetch(
    `${process.env.TS_IMMO_API_URL}/v1/gateway/public/properties/${agencySlug}`,
    { next: { revalidate: 600 } }, // ISR : 10 minutes
  )
  if (!res.ok) throw new Error('Ts-Immo API error')
  return res.json()
}

export default async function BiensPage() {
  const list = await getProperties('mon-agence')
  return (
    <ul>
      {list.map((p) => (
        <li key={p.id}>
          {p.title.fr} — {p.location.city} —{' '}
          {p.financial.transaction.price.amount.toLocaleString('fr-FR')} €
        </li>
      ))}
    </ul>
  )
}

Configuration de Agence Plus dans Ts-Immo

Configurer un export FTP/SFTP dans Agence Plus. Renseigner l'hôte, le port et les identifiants.

ChampDescription
TypeSFTP (recommandé) ou FTP
Hôteex. ftp.example.com
Port22 (SFTP) ou 21 (FTP)
IdentifiantNom d'utilisateur fourni par Agence Plus
Mot de passeMot de passe FTP fourni par Agence Plus
Chemin/export/annonces.xml (ou équivalent)
Archive zipOui / Non selon le format

JSON-LD SEO pour chaque annonce

Ts-Immo recommande l'utilisation du schéma JSON-LD `RealEstateListing` (Schema.org) sur chaque page de détail. Le SDK Ts-Immo fournit un helper qui génère le JSON-LD à partir de l'objet Listing — voir le guide « API immobilière REST ».

Remontée des leads

Côté Next.js, créez un Route Handler `/api/lead` qui appelle l'endpoint `POST /v1/gateway/estimations` de Ts-Immo (avec un sous-objet `lead`). Les prospects sont persistés dans Ts-Immo et consultables via `GET /v1/gateway/leads`.

Questions fréquentes

Next.js Pages Router est-il supporté ?+

Oui. L'API REST Ts-Immo s'appelle via getStaticProps / getServerSideProps comme n'importe quelle API. L'App Router est néanmoins recommandé (RSC + ISR + streaming).

Quelle stratégie de cache pour les listings Agence Plus ?+

Pour Agence Plus (sync plusieurs fois par jour), une revalidation ISR de 10 à 30 minutes est largement suffisante.

Peut-on filtrer / paginer les annonces ?+

Oui. L'API REST Ts-Immo supporte les paramètres suivants : type, category, city, postalCode, minPrice, maxPrice, minSurface, maxSurface, rooms, page, perPage, sort.

Comment gérer les images Next.js ?+

Utilisez <Image /> de next/image avec les URLs CDN Ts-Immo (cdn.ts-immo.org). Pensez à ajouter le domaine dans next.config.ts (remotePatterns).

Le SDK est-il typé en TypeScript ?+

Oui. Un SDK TypeScript est en cours de publication (npm install @ts-immo/sdk). En attendant, l'API REST est entièrement documentée et facile à typer manuellement.

Faut-il un compte Agence Plus actif ?+

Oui. Vous restez client Agence Plus pour la gestion métier. Ts-Immo est uniquement la passerelle qui amène les données Agence Plus vers votre site Next.js.

Prêt à connecter votre CRM ?

Démarrez gratuitement ou contactez-nous pour une démonstration personnalisée de Ts-Immo.

Connecter Agence Plus à Next.js — API REST temps réel — Ts-Immo