openapi: 3.2.0 info: title: Habiteo Site Content API (WordPress REST wp-json) Comments API version: wp-json summary: Anonymous read surface of the WordPress REST API that www.habiteo.com serves. description: 'Habiteo publishes www.habiteo.com on WordPress, which exposes the WordPress REST API at https://www.habiteo.com/wp-json/. The wp/v2 namespace is anonymously readable and returns the company''s news posts, marketing pages, portfolio entries, media library, taxonomies and users as JSON. This document was DERIVED mechanically by API Evangelist from the route-discovery document served at https://www.habiteo.com/wp-json/ on 2026-08-17 — every path, method and parameter below is taken verbatim from that descriptor. Habiteo publishes no OpenAPI, no developer portal and no API documentation of its own, and THIS IS NOT A HABITEO PRODUCT API: it is the content API the CMS exposes. Habiteo''s actual products (myHabiteo, the 3D configurator, the MegaWidget) have no published contract. Write operations exist on these routes but require WordPress authentication (Application Passwords over HTTP Basic, or a cookie + nonce).' contact: name: Habiteo url: https://www.habiteo.com/ x-derived-by: API Evangelist enrichment pipeline x-derived-from: https://www.habiteo.com/wp-json/ x-derived-on: '2026-08-17' x-provider-published: false servers: - url: https://www.habiteo.com/wp-json description: Production tags: - name: Comments paths: /wp/v2/comments: get: operationId: getWpV2Comments summary: GET /wp/v2/comments tags: - Comments parameters: - name: context in: query required: false schema: type: string enum: - view - embed - edit default: view description: Le contexte dans lequel la requête est faite ; cela détermine les champs renvoyés. - name: page in: query required: false schema: type: integer default: 1 description: Page courante dans la collection. - name: per_page in: query required: false schema: type: integer default: 10 description: Nombre maximal d’éléments à renvoyer dans le groupe de résultats. - name: search in: query required: false schema: type: string description: Limiter les résultats à ceux qui correspondent à une chaîne de caractères. - name: after in: query required: false schema: type: string description: Limiter les réponses aux commentaires publiés après une date donnée et conforme ISO8601. - name: author in: query required: false schema: type: array items: type: integer description: Limiter le jeu de résultats aux commentaires assignés aux ID utilisateurs spécifiés. Nécessite des droits spécifiques. - name: author_exclude in: query required: false schema: type: array items: type: integer description: S’assurer que le jeu de résultats exclut les commentaires assignés aux ID utilisateurs spécifiés. Nécessite des droits spécifiques. - name: author_email in: query required: false schema: type: string description: Limiter le jeu de résultats à une adresse email d’auteur spécifique. Nécessite les droits correspondants. - name: before in: query required: false schema: type: string description: Limiter les réponses aux commentaires publiés avant une date donnée et conforme ISO8601. - name: exclude in: query required: false schema: type: array default: [] items: type: integer description: S’assure que le jeu de résultats exclut des ID spécifiques. - name: include in: query required: false schema: type: array default: [] items: type: integer description: Limiter le groupe de résultats aux ID spécifiés. - name: offset in: query required: false schema: type: integer description: Ignorer un nombre spécifique d’éléments au sein du jeu de résultats. - name: order in: query required: false schema: type: string enum: - asc - desc default: desc description: Le paramètre order trie les attributs dans l’ordre croissant ou décroissant. - name: orderby in: query required: false schema: type: string enum: - date - date_gmt - id - include - post - parent - type default: date_gmt description: Trier la collection par attribut d’objet. - name: parent in: query required: false schema: type: array default: [] items: type: integer description: Limiter le jeu de résultats aux commentaires ayant un ID parent spécifique. - name: parent_exclude in: query required: false schema: type: array default: [] items: type: integer description: S’assure que le jeu de résultats exclut des ID parents spécifiques. - name: post in: query required: false schema: type: array default: [] items: type: integer description: Limite le jeu de résultats aux commentaires assignés à des ID d’articles spécifiques. - name: status in: query required: false schema: type: string default: approve description: Limiter le jeu de résultats aux commentaires assignés à un état spécifique. Nécessite les droits correspondants. - name: type in: query required: false schema: type: string default: comment description: Limite le jeu de résultats aux commentaires assignés à un type spécifique. Nécessite des droits spécifiques. - name: password in: query required: false schema: type: string description: Le mot de passe pour cet article, s’il est protégé par un mot de passe. responses: '200': description: Successful response. content: application/json: schema: type: object '400': description: Invalid parameter. content: application/json: schema: $ref: '#/components/schemas/WPError' '401': description: Not authenticated. content: application/json: schema: $ref: '#/components/schemas/WPError' '403': description: rest_forbidden — the anonymous caller may not perform this action. content: application/json: schema: $ref: '#/components/schemas/WPError' '404': description: No route or resource matched. content: application/json: schema: $ref: '#/components/schemas/WPError' post: operationId: postWpV2Comments summary: POST /wp/v2/comments tags: - Comments requestBody: required: false content: application/json: schema: type: object properties: author: type: integer description: L’ID de l’objet user, si l’auteur était un utilisateur. author_email: type: string description: Adresse de messagerie pour l’objet auteur. author_ip: type: string description: Adresse IP de l’auteur de l’objet. author_name: type: string description: Nom d’affichage pour l’objet auteur. author_url: type: string description: URL pour l’objet auteur. author_user_agent: type: string description: Agent utilisateur pour l‘objet author. content: type: object description: Le contenu pour cet objet. date: type: string description: La date à laquelle l’objet a été publié, dans le fuseau horaire du site. date_gmt: type: string description: La date à laquelle l’objet a été publié, au format GMT. parent: type: integer default: 0 description: L’ID du parent de l’objet. post: type: integer default: 0 description: L’ID de l’objet article associé. status: type: string description: État de l’objet. meta: type: object description: Champs métas. responses: '200': description: Successful response. content: application/json: schema: type: object '400': description: Invalid parameter. content: application/json: schema: $ref: '#/components/schemas/WPError' '401': description: Not authenticated. content: application/json: schema: $ref: '#/components/schemas/WPError' '403': description: rest_forbidden — the anonymous caller may not perform this action. content: application/json: schema: $ref: '#/components/schemas/WPError' '404': description: No route or resource matched. content: application/json: schema: $ref: '#/components/schemas/WPError' security: - basicAuth: [] - cookieNonce: [] /wp/v2/comments/{id}: parameters: - name: id in: path required: true schema: type: string description: Route parameter `id` declared by the WordPress route index. get: operationId: getWpV2CommentsId summary: GET /wp/v2/comments/{id} tags: - Comments parameters: - name: context in: query required: false schema: type: string enum: - view - embed - edit default: view description: Le contexte dans lequel la requête est faite ; cela détermine les champs renvoyés. - name: password in: query required: false schema: type: string description: Le mot de passe pour cet article, s’il est protégé par un mot de passe. responses: '200': description: Successful response. content: application/json: schema: type: object '400': description: Invalid parameter. content: application/json: schema: $ref: '#/components/schemas/WPError' '401': description: Not authenticated. content: application/json: schema: $ref: '#/components/schemas/WPError' '403': description: rest_forbidden — the anonymous caller may not perform this action. content: application/json: schema: $ref: '#/components/schemas/WPError' '404': description: No route or resource matched. content: application/json: schema: $ref: '#/components/schemas/WPError' post: operationId: postWpV2CommentsId summary: POST /wp/v2/comments/{id} tags: - Comments requestBody: required: false content: application/json: schema: type: object properties: author: type: integer description: L’ID de l’objet user, si l’auteur était un utilisateur. author_email: type: string description: Adresse de messagerie pour l’objet auteur. author_ip: type: string description: Adresse IP de l’auteur de l’objet. author_name: type: string description: Nom d’affichage pour l’objet auteur. author_url: type: string description: URL pour l’objet auteur. author_user_agent: type: string description: Agent utilisateur pour l‘objet author. content: type: object description: Le contenu pour cet objet. date: type: string description: La date à laquelle l’objet a été publié, dans le fuseau horaire du site. date_gmt: type: string description: La date à laquelle l’objet a été publié, au format GMT. parent: type: integer description: L’ID du parent de l’objet. post: type: integer description: L’ID de l’objet article associé. status: type: string description: État de l’objet. meta: type: object description: Champs métas. responses: '200': description: Successful response. content: application/json: schema: type: object '400': description: Invalid parameter. content: application/json: schema: $ref: '#/components/schemas/WPError' '401': description: Not authenticated. content: application/json: schema: $ref: '#/components/schemas/WPError' '403': description: rest_forbidden — the anonymous caller may not perform this action. content: application/json: schema: $ref: '#/components/schemas/WPError' '404': description: No route or resource matched. content: application/json: schema: $ref: '#/components/schemas/WPError' security: - basicAuth: [] - cookieNonce: [] delete: operationId: deleteWpV2CommentsId summary: DELETE /wp/v2/comments/{id} tags: - Comments parameters: - name: force in: query required: false schema: type: boolean default: false description: Que ce soit pour éviter la corbeille ou forcer la suppression. - name: password in: query required: false schema: type: string description: Le mot de passe pour cet article, s’il est protégé par un mot de passe. responses: '200': description: Successful response. content: application/json: schema: type: object '400': description: Invalid parameter. content: application/json: schema: $ref: '#/components/schemas/WPError' '401': description: Not authenticated. content: application/json: schema: $ref: '#/components/schemas/WPError' '403': description: rest_forbidden — the anonymous caller may not perform this action. content: application/json: schema: $ref: '#/components/schemas/WPError' '404': description: No route or resource matched. content: application/json: schema: $ref: '#/components/schemas/WPError' security: - basicAuth: [] - cookieNonce: [] components: securitySchemes: basicAuth: type: http scheme: basic description: WordPress Application Passwords over HTTP Basic. Required for every write operation. cookieNonce: type: apiKey in: header name: X-WP-Nonce description: WordPress logged-in cookie plus an X-WP-Nonce header, used by first-party admin clients. schemas: WPError: type: object description: The WordPress REST error envelope. Not RFC 9457 problem+json. properties: code: type: string description: Machine-readable error code, e.g. rest_post_invalid_id. message: type: string description: Human-readable message. Localized — this install answers in French. data: type: object properties: status: type: integer description: HTTP status repeated in the body.