openapi: 3.2.0 info: title: Habiteo Site Content API (WordPress REST wp-json) Users 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: Users paths: /wp/v2/users: get: operationId: getWpV2Users summary: GET /wp/v2/users tags: - Users 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: 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: asc 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: - id - include - name - registered_date - slug - email - url default: name description: Trier la collection par attribut d’objet. - name: slug in: query required: false schema: type: array items: type: string description: Limiter les résultats aux utilisateurs avec un identifiant spécifique. - name: roles in: query required: false schema: type: array items: type: string description: Limiter le résultat aux utilisateurs correspondants à au moins un rôle spécifique fourni. Accepte les listes de type CSV ou les rôles uniques. 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: postWpV2Users summary: POST /wp/v2/users tags: - Users requestBody: required: true content: application/json: schema: type: object properties: username: type: string description: Nom de connexion pour l’utilisateur. name: type: string description: Nom affiché pour l’utilisateur. first_name: type: string description: Prénom de utilisateur. last_name: type: string description: Nom de l’utilisateur. email: type: string description: L’adresse e-mail pour l’utilisateur. url: type: string description: URL de l’utilisateur. description: type: string description: Description de l’utilisateur. locale: type: string enum: - '' - en_US - de_DE - en_GB - es_ES - fr_FR - he_IL - ko_KR - pt_BR - ro_RO - ru_RU - zh_CN description: Langue de l’utilisateur. nickname: type: string description: Le surnom de l’utilisateur. slug: type: string description: Un identificateur alphanumérique pour l’utilisateur. roles: type: array items: type: string description: Rôles assignés à l’utilisateur. password: type: string description: Mot de passe pour l’utilisateur (jamais inclus). meta: type: object description: Champs métas. required: - username - email - password 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/users/me: get: operationId: getWpV2UsersMe summary: GET /wp/v2/users/me tags: - Users 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. 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: postWpV2UsersMe summary: POST /wp/v2/users/me tags: - Users requestBody: required: false content: application/json: schema: type: object properties: username: type: string description: Nom de connexion pour l’utilisateur. name: type: string description: Nom affiché pour l’utilisateur. first_name: type: string description: Prénom de utilisateur. last_name: type: string description: Nom de l’utilisateur. email: type: string description: L’adresse e-mail pour l’utilisateur. url: type: string description: URL de l’utilisateur. description: type: string description: Description de l’utilisateur. locale: type: string enum: - '' - en_US - de_DE - en_GB - es_ES - fr_FR - he_IL - ko_KR - pt_BR - ro_RO - ru_RU - zh_CN description: Langue de l’utilisateur. nickname: type: string description: Le surnom de l’utilisateur. slug: type: string description: Un identificateur alphanumérique pour l’utilisateur. roles: type: array items: type: string description: Rôles assignés à l’utilisateur. password: type: string description: Mot de passe pour l’utilisateur (jamais inclus). 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: deleteWpV2UsersMe summary: DELETE /wp/v2/users/me tags: - Users parameters: - name: force in: query required: false schema: type: boolean default: false description: Nécessite la valeur "true", car l’utilisateur ne supporte pas la suppression forcée. - name: reassign in: query required: true schema: type: integer description: Réaffectez les articles et les liens de l’utilisateur supprimé à cet ID d’utilisateur. 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/users/{id}: parameters: - name: id in: path required: true schema: type: string description: Route parameter `id` declared by the WordPress route index. get: operationId: getWpV2UsersId summary: GET /wp/v2/users/{id} tags: - Users 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. 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: postWpV2UsersId summary: POST /wp/v2/users/{id} tags: - Users requestBody: required: false content: application/json: schema: type: object properties: username: type: string description: Nom de connexion pour l’utilisateur. name: type: string description: Nom affiché pour l’utilisateur. first_name: type: string description: Prénom de utilisateur. last_name: type: string description: Nom de l’utilisateur. email: type: string description: L’adresse e-mail pour l’utilisateur. url: type: string description: URL de l’utilisateur. description: type: string description: Description de l’utilisateur. locale: type: string enum: - '' - en_US - de_DE - en_GB - es_ES - fr_FR - he_IL - ko_KR - pt_BR - ro_RO - ru_RU - zh_CN description: Langue de l’utilisateur. nickname: type: string description: Le surnom de l’utilisateur. slug: type: string description: Un identificateur alphanumérique pour l’utilisateur. roles: type: array items: type: string description: Rôles assignés à l’utilisateur. password: type: string description: Mot de passe pour l’utilisateur (jamais inclus). 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: deleteWpV2UsersId summary: DELETE /wp/v2/users/{id} tags: - Users parameters: - name: force in: query required: false schema: type: boolean default: false description: Nécessite la valeur "true", car l’utilisateur ne supporte pas la suppression forcée. - name: reassign in: query required: true schema: type: integer description: Réaffectez les articles et les liens de l’utilisateur supprimé à cet ID d’utilisateur. 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.