Page d'atterrissage d'un bien
POST /site/create - scope tools:sitegen, réponse immédiate. Une page d'atterrissage avec un lien partageable pour un bien, le vôtre ou n'importe quel bien public. La traduction de la description et la construction du site prennent parfois plus de ~100 secondes, après quoi la réponse est coupée avec 524 : avec l’en-tête Prefer: respond-async et une Idempotency-Key, un 202 avec une tâche de requête arrive aussitôt ; interrogez GET /site/create/jobs/{id} (gratuit) - result contient la même réponse 200. Événements - site.completed / site.failed.
| Champ | Type | Description |
|---|---|---|
objectId | string | obligatoire : identifiant du bien |
siteName | string | nom du lien dans votre liste |
language | string | ENG (par défaut), RUS, UKR, DEU, SPA, AZE, ARB, FRA, ZHO, TUR |
coverPhotoId | string | photo du bien à afficher en premier |
brandColor | string | couleur d'accent #RRGGBB |
showPhone | oui/non | afficher votre téléphone sur la page (non par défaut) |
curl -X POST https://developers.grem.capital/api/v1/site/create \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"objectId":"OBJECT_ID","siteName":"Torstraße 12","language":"ENG"}'
Réponse :
| Champ | Description |
|---|---|
landingId | identifiant du site |
baseUrl | adresse du site |
link | le lien créé : nom, langue, code et adresse |
Sans objectId - 400 ; un bien inaccessible - 403 ou 404.
Présentation PDF
POST /pdf/create - scope tools:pdf, tâche. Un PDF à votre marque pour un bien, le vôtre ou n'importe quel bien public.
| Champ | Type | Description |
|---|---|---|
pdfName | string | obligatoire : nom du document, jusqu'à 200 caractères |
objectId | string | obligatoire : identifiant du bien |
language | string | ENG (par défaut), RUS, UKR, DEU, SPA, AZE, ARB, FRA, ZHO, TUR |
descriptionType | string | presentation (par défaut), description ou social |
currency | string | UAH, USD, EUR, AZN, GBP, AED, CNY, TRY, GEL |
priceForPdf | number | un autre prix pour le document |
coverPhotoId | string | photo de couverture |
descriptionOverride | string | votre propre texte pour ce document uniquement, jusqu'à 3000 caractères |
brandColor | string | couleur d'accent #RRGGBB |
curl -X POST https://developers.grem.capital/api/v1/pdf/create \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"pdfName":"Torstraße 12 - presentation","objectId":"OBJECT_ID","language":"ENG"}'
La langue doit être en majuscules et figurer dans cette liste : ru ou en renvoient 400.
202 avec jobId. La tâche terminée (GET /pdf/create/jobs/{id}) :
| Champ | Description |
|---|---|
link | adresse directe du document |
pageCount | nombre de pages |
sizeBytes | taille |
coverImageUrl | couverture |
Le fichier est aussi disponible à GET /artifacts/v1/ai/pdf-generator/files/{id}/download. Événements : pdf.completed / pdf.failed.
Flyer personnel
POST /flyer/create - scope tools:flyer, réponse immédiate. Un flyer de courtier (A4, carré ou story) avec votre photo, les chiffres de la plateforme et un QR code vers votre lien de parrainage. Le flyer lui-même est gratuit ; seul l'appel API est facturé.
| Champ | Type | Description |
|---|---|---|
language | string | ENG (par défaut) et les autres codes comme pour la page d'atterrissage ; la casse n'a pas d'importance |
layouts | array | a4 (impression), feed45, square, story, link ; par défaut ["a4"] ; au moins un ; la casse n'a pas d'importance |
formats | array | png, jpg, pdf ; par défaut ["png","pdf"]. Le PDF n'est produit que pour a4 ; de un à trois ; la casse n'a pas d'importance |
name, role, city, kicker | string | nom, rôle, ville, sous-titre |
photoRef | string | avatar - votre photo de profil, ou une image au format data:image/... |
ctaUrl | string | lien de parrainage pour le QR code (domaines de la plateforme uniquement) |
slogan | array | jusqu'à 2 lignes |
features | array | jusqu'à 6 éléments { "icon", "title" } ; icon - crm, ai, globe, publisher, marketing, shield, wallet, chart, lock ou handshake |
joinTitle, joinNote | string | invitation à rejoindre |
builtFor | array | à qui il s'adresse, jusqu'à 6 lignes |
footer | array | jusqu'à 2 lignes |
contacts | object | coordonnées : téléphone, e-mail, etc. |
Les champs inconnus sont ignorés.
curl -X POST https://developers.grem.capital/api/v1/flyer/create \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"language":"ENG","layouts":["a4"],"formats":["pdf"],"name":"Anna Schmidt","role":"Real estate agent","city":"Berlin","photoRef":"avatar"}'
Réponse :
| Champ | Description |
|---|---|
files | fichiers générés |
files[].layout, files[].format | mise en page et type de fichier |
files[].width, files[].height, files[].bytes | taille |
files[].path | chemin de téléchargement : https://developers.grem.capital/api/v1/artifacts + path |
ctaUrl | le lien imprimé dans le QR code |
historyId | entrée de l'historique des flyers |
Brouillon à partir de documents ou d'un site web
POST /draft/extract - scope tools:draft, réponse immédiate. GREM lit des brochures, des listes de prix ou le site web d'un promoteur et crée un brouillon de bien avec ses champs et ses photos. Limite : 2 brouillons par jour et par compte ; le suivant est refusé avec 403 jusqu'au lendemain. Seul l'appel API est facturé, l'outil n'a pas de prix. Un gros document peut prendre plus de ~100 secondes, après quoi la réponse est coupée avec 524 : avec l’en-tête Prefer: respond-async et une Idempotency-Key, les fichiers sont envoyés et un 202 avec une tâche de requête (areq_…) arrive aussitôt ; interrogez GET /draft/extract/jobs/{id} (gratuit) - result contient la même réponse 200. Événements - draft.completed / draft.failed.
Corps - multipart/form-data :
| Partie | Description |
|---|---|
data | chaîne JSON : {"type": "property"} ou {"type": "complex"}, éventuellement avec "site": "https://..." - obligatoire |
| fichiers | documents (PDF, DOC/DOCX, images) sous n'importe quels noms de partie |
Envoyez soit des fichiers, soit site dans data, sinon vous obtenez 400 avec le champ files.
curl -X POST https://developers.grem.capital/api/v1/draft/extract \
-H "Authorization: Bearer gsk_live_xxx" \
-F 'data={"type":"complex"}' \
-F "brochure=@brochure.pdf" -F "prices=@pricelist.pdf"
La réponse est le brouillon créé (non publié). Vérifiez-le et complétez-le avec GET /objects/{kind}/{id} et PUT /objects/{kind}/{id} (Biens).