Plans

API de plans

Transformez un croquis, une photo ou un scan de plan en un plan 2D propre et modifiable en un seul appel. 5 crédits par plan, enregistré dans le bien de votre choix.

Envoyez un croquis, une photo ou un scan d'un plan et récupérez un plan 2D propre. Pedra lit les murs, les portes, les fenêtres et les noms des pièces, les redresse et dessine un plan avec les cotes écrites sur le dessin. Le plan est enregistré dans un bien, pour que vos utilisateurs puissent l'ouvrir dans Pedra et le modifier comme s'ils l'avaient dessiné eux-mêmes.

Coût

5 crédits par plan, débités uniquement quand un plan est produit. Une lecture qui échoue est gratuite. Si le compte a moins de 5 crédits, l'appel est refusé avant de démarrer, avec un 403 qui l'indique.

Où le plan est enregistré

Comme pour les images et les vidéos : passez propertyId pour ajouter le plan à l'un de vos biens (via list_properties ou create_property). Sans lui, Pedra crée un nouveau bien, nommé avec propertyName. La réponse contient toujours le propertyId et un appUrl qui l'ouvre dans Pedra.

Créer un plan

POST/api/create_floor_plan

La lecture d'un dessin prend environ 1 à 3 minutes. Par défaut, l'appel attend et renvoie le plan terminé (la connexion reste ouverte pendant le travail). Passez "waitForCompletion": false pour obtenir un floorPlanId immédiatement et interroger floor_plan_status.

apiKeystringobligatoire
Votre clé API.
imageUrlstringobligatoire
Le croquis, la photo ou le scan du plan : une URL publique ou une data URL en base64. JPEG, PNG ou WebP, jusqu'à 12 Mo.
propertyIdstring
Bien dans lequel enregistrer le plan. Sans lui, un nouveau bien est créé.
propertyNamestring
Nom du nouveau bien, quand aucun propertyId n'est passé. Par défaut, le nom du plan.
namestring
Nom du plan, imprimé en dessous, par ex. "Rez-de-chaussée".
Default: Floor plan
unitsstring
Unités des cotes.
Values: metric imperial
Default: metric
waitForCompletionboolean
false renvoie un floorPlanId tout de suite ; interrogez floor_plan_status pour le résultat.
Default: true
curl -X POST https://app.pedra.ai/api/create_floor_plan \
  -H "Content-Type: application/json" \
  -d '{
    "apiKey": "YOUR_API_KEY",
    "imageUrl": "https://example.com/sketches/calle-mayor-12.jpg",
    "propertyId": "196e742a-5b0d-4c9e-8a3f-7e2b1c6d9f04",
    "name": "Ground floor"
  }'

Réponse

JSON
{
  "message": "Floor plan created",
  "floorPlanId": "Ae6pgFD6yZyyhpzZH",
  "propertyId": "196e742a-5b0d-4c9e-8a3f-7e2b1c6d9f04",
  "name": "Ground floor",
  "status": "ready",
  "imageUrl": "https://img.pedra.ai/floorplan-source-QiqMn78cKtNHk4LpF",
  "appUrl": "https://app.pedra.ai/?projectId=196e742a-5b0d-4c9e-8a3f-7e2b1c6d9f04",
  "creditsUsed": 5
}
# 1. Start the conversion (returns at once with "status": "processing")
curl -X POST https://app.pedra.ai/api/create_floor_plan \
  -H "Content-Type: application/json" \
  -d '{
    "apiKey": "YOUR_API_KEY",
    "imageUrl": "https://example.com/sketches/calle-mayor-12.jpg",
    "propertyName": "Calle Mayor 12",
    "waitForCompletion": false
  }'

# 2. Poll every 10 seconds until "status" is "ready" (or "failed")
curl -X POST https://app.pedra.ai/api/floor_plan_status \
  -H "Content-Type: application/json" \
  -d '{ "apiKey": "YOUR_API_KEY", "floorPlanId": "FLOOR_PLAN_ID" }'
JSON
{
  "message": "Floor plan conversion started",
  "floorPlanId": "Ae6pgFD6yZyyhpzZH",
  "propertyId": "196e742a-5b0d-4c9e-8a3f-7e2b1c6d9f04",
  "name": "Ground floor",
  "status": "processing",
  "appUrl": "https://app.pedra.ai/?projectId=196e742a-5b0d-4c9e-8a3f-7e2b1c6d9f04"
}

Statut du plan

POST/api/floor_plan_status

Renvoie "processing", "ready" (avec imageUrl) ou "failed". Ne consomme jamais de crédits.

apiKeystringobligatoire
Votre clé API.
floorPlanIdstringobligatoire
Id renvoyé par create_floor_plan.
curl -X POST https://app.pedra.ai/api/floor_plan_status \
  -H "Content-Type: application/json" \
  -d '{ "apiKey": "YOUR_API_KEY", "floorPlanId": "FLOOR_PLAN_ID" }'

Réponse

JSON
{
  "floorPlanId": "Ae6pgFD6yZyyhpzZH",
  "propertyId": "196e742a-5b0d-4c9e-8a3f-7e2b1c6d9f04",
  "name": "Ground floor",
  "status": "ready",
  "imageUrl": "https://img.pedra.ai/floorplan-source-QiqMn78cKtNHk4LpF",
  "appUrl": "https://app.pedra.ai/?projectId=196e742a-5b0d-4c9e-8a3f-7e2b1c6d9f04",
  "creditsUsed": 5
}

Obtenir un bon plan

  • Écrivez au moins une cote réelle sur le dessin (la longueur d'un mur ou la surface totale). Sans elle, la distribution est correcte mais sans dimensions.
  • Nommez chaque pièce. Les noms sont repris sur le plan tels qu'ils sont écrits.
  • Photographiez la feuille de dessus, à plat et bien éclairée. Les images sont réduites à 2400 px sur le grand côté, un fichier plus lourd n'apporte donc rien.

Erreurs

  • 400 imageUrl manquant, ou l'URL n'est pas une image.
  • 403 crédits insuffisants (5 nécessaires).
  • 404 clé API inconnue, ou un propertyId / floorPlanId qui n'appartient pas à ce compte.
  • 409 le bien contient déjà 30 plans.
  • 500 le dessin n'a pas pu être lu. Rien n'est facturé et aucun plan ne reste.

Depuis ChatGPT ou Claude

Les mêmes endpoints sont les outils pedra_create_floor_plan et pedra_get_floor_plan du serveur MCP de Pedra. Joignez une photo du croquis dans le chat et demandez le plan.