Publication d'annonces

GF

Équipe HUSSTEER · mis à jour 2026-07-16 · 6 min

Publier une annonce immobilière et suivre sa diffusion. Ces endpoints orchestrent le moteur de multidiffusion Hussteer — vérification, sélection des portails, génération et livraison — derrière un vocabulaire simple.

Le parcours

Vérifiez l'annonce, prévisualisez ce qui sera publié, publiez, puis suivez l'état. Chaque étape est un endpoint.

Vérifier une annonce

POST/api/publication/validate

Indique si une annonce est prête à être publiée. Renvoie les points **bloquants** (photos, prix, code postal manquant…) et les **avertissements** (à vérifier, jamais bloquants). N'écrit rien.

Corps de la requête

{
  "propertyId": "11111111-1111-1111-1111-111111111111"
}

Réponses

  • 200 — Rapport de vérification.
  • 401
  • 404

Événements déclenchés

  • Aucun — lecture seule.

Exemples

cURL
curl -X POST 'https://hussteer.com/api/publication/validate' \
  -H 'Content-Type: application/json' \
  -H 'Cookie: <votre-session>' \
  -d '{"propertyId":"…"}'
JavaScript
const res = await fetch("https://hussteer.com/api/publication/validate", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  credentials: "include",
  body: JSON.stringify({"propertyId":"…"}),
});
const data = await res.json();
Python
import requests

r = requests.post(
    "https://hussteer.com/api/publication/validate",
    json={"propertyId":"…"},
    cookies={"sb-access-token": "<votre-session>"},
)
print(r.json())

Aperçu de publication

POST/api/publication/preview

Montre exactement ce qui sera publié, calculé depuis l'annonce : nombre de portails sélectionnés, photos, prix, DPE, ville, code postal, adresse masquée ou affichée, méthode de livraison et version du flux.

Corps de la requête

{
  "propertyId": "11111111-1111-1111-1111-111111111111"
}

Réponses

  • 200 — Aperçu de publication.
  • 401
  • 404

Événements déclenchés

  • Aucun — lecture seule.

Exemples

cURL
curl -X POST 'https://hussteer.com/api/publication/preview' \
  -H 'Content-Type: application/json' \
  -H 'Cookie: <votre-session>' \
  -d '{"propertyId":"…"}'
JavaScript
const res = await fetch("https://hussteer.com/api/publication/preview", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  credentials: "include",
  body: JSON.stringify({"propertyId":"…"}),
});
const data = await res.json();
Python
import requests

r = requests.post(
    "https://hussteer.com/api/publication/preview",
    json={"propertyId":"…"},
    cookies={"sb-access-token": "<votre-session>"},
)
print(r.json())

Publier une annonce

POST/api/publication/start

Publie l'annonce : vérifie qu'elle est complète, qu'une livraison est configurée, puis déclenche la diffusion réelle. Renvoie un identifiant de publication à suivre.

Corps de la requête

{
  "propertyId": "11111111-1111-1111-1111-111111111111"
}

Réponses

  • 200 — Publication déclenchée.
  • 401
  • 404
  • 409
  • 422

Événements déclenchés

  • L'annonce entre dans le flux de diffusion.
  • Un suivi de publication est créé (voir /api/publication/status/{id}).
  • L'historique du bien est mis à jour.

Exemples

cURL
curl -X POST 'https://hussteer.com/api/publication/start' \
  -H 'Content-Type: application/json' \
  -H 'Cookie: <votre-session>' \
  -d '{"propertyId":"…"}'
JavaScript
const res = await fetch("https://hussteer.com/api/publication/start", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  credentials: "include",
  body: JSON.stringify({"propertyId":"…"}),
});
const data = await res.json();
Python
import requests

r = requests.post(
    "https://hussteer.com/api/publication/start",
    json={"propertyId":"…"},
    cookies={"sb-access-token": "<votre-session>"},
)
print(r.json())

Relancer une publication

POST/api/publication/retry

Retente la publication après un échec (livraison momentanément indisponible, accès distant…). Ne re-vérifie pas l'annonce : on suppose la cause corrigée. Renvoie un nouvel identifiant à suivre.

Corps de la requête

{
  "propertyId": "11111111-1111-1111-1111-111111111111"
}

Réponses

  • 200 — Publication relancée.
  • 401
  • 404
  • 409

Événements déclenchés

  • Une nouvelle tentative de publication est créée.
  • L'historique du bien est mis à jour.

Exemples

cURL
curl -X POST 'https://hussteer.com/api/publication/retry' \
  -H 'Content-Type: application/json' \
  -H 'Cookie: <votre-session>' \
  -d '{"propertyId":"…"}'
JavaScript
const res = await fetch("https://hussteer.com/api/publication/retry", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  credentials: "include",
  body: JSON.stringify({"propertyId":"…"}),
});
const data = await res.json();
Python
import requests

r = requests.post(
    "https://hussteer.com/api/publication/retry",
    json={"propertyId":"…"},
    cookies={"sb-access-token": "<votre-session>"},
)
print(r.json())

Suivre une publication

GET/api/publication/status/{id}

Renvoie l'état d'une publication : en cours, réussie ou en erreur, avec le nombre d'annonces publiées, les horodatages et l'empreinte du fichier livré.

Paramètres

  • id (path, requis) — Identifiant de publication renvoyé par /start ou /retry.

Réponses

  • 200 — État de la publication.
  • 401
  • 404

Événements déclenchés

  • Aucun — lecture seule.

Exemples

cURL
curl 'https://hussteer.com/api/publication/status/11111111-1111-1111-1111-111111111111' \
  -H 'Cookie: <votre-session>'
JavaScript
const res = await fetch("https://hussteer.com/api/publication/status/11111111-1111-1111-1111-111111111111", { credentials: "include" });
const data = await res.json();
Python
import requests

r = requests.get(
    "https://hussteer.com/api/publication/status/11111111-1111-1111-1111-111111111111",
    cookies={"sb-access-token": "<votre-session>"},
)
print(r.json())

Historique de publication

GET/api/publication/history/{propertyId}

La chronologie de diffusion d'un bien : mises en attente, mises en ligne, erreurs et retraits, dans l'ordre.

Paramètres

  • propertyId (path, requis) — Identifiant du bien.

Réponses

  • 200 — Historique de diffusion.
  • 401
  • 404

Événements déclenchés

  • Aucun — lecture seule.

Exemples

cURL
curl 'https://hussteer.com/api/publication/history/11111111-1111-1111-1111-111111111111' \
  -H 'Cookie: <votre-session>'
JavaScript
const res = await fetch("https://hussteer.com/api/publication/history/11111111-1111-1111-1111-111111111111", { credentials: "include" });
const data = await res.json();
Python
import requests

r = requests.get(
    "https://hussteer.com/api/publication/history/11111111-1111-1111-1111-111111111111",
    cookies={"sb-access-token": "<votre-session>"},
)
print(r.json())

Cet article vous a-t-il été utile ?