Habiteo Site Content API — Taxonomy API

Categories, tags, portfolio categories and the taxonomy registry. DERIVED by API Evangelist from the WordPress REST route index at https://www.habiteo.com/wp-json/ — this is the CMS content API behind the marketing site, NOT a Habiteo product API. Habiteo publishes no contract for myHabiteo, the configurator or the MegaWidget.

OpenAPI Specification

habiteo-taxonomy-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Habiteo Site Content API (WordPress REST wp-json) Taxonomy 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: Taxonomy
paths:
  /wp/v2/categories:
    get:
      operationId: getWpV2Categories
      summary: GET /wp/v2/categories
      tags:
      - Taxonomy
      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: 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
          - slug
          - term_group
          - description
          - count
          default: name
        description: Trier la collection par attributs de terme.
      - name: hide_empty
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: Que ce soit pour masquer des termes non affectées à des articles.
      - name: parent
        in: query
        required: false
        schema:
          type: integer
        description: Résultats limités aux termes ayant un parent spécifique.
      - name: post
        in: query
        required: false
        schema:
          type: integer
        description: Limiter le résultat aux termes assignés à un article spécifique.
      - name: slug
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Limiter le résultat aux termes avec un identifiant spécifique.
      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: postWpV2Categories
      summary: POST /wp/v2/categories
      tags:
      - Taxonomy
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Description HTML du terme.
                name:
                  type: string
                  description: Titre HTML pour le terme.
                slug:
                  type: string
                  description: Un identificateur alphanumérique pour le terme, propre au type de la ressource.
                parent:
                  type: integer
                  description: L’ID du terme parent.
                meta:
                  type: object
                  description: Champs métas.
              required:
              - name
      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/categories/{id}:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
      description: Route parameter `id` declared by the WordPress route index.
    get:
      operationId: getWpV2CategoriesId
      summary: GET /wp/v2/categories/{id}
      tags:
      - Taxonomy
      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: postWpV2CategoriesId
      summary: POST /wp/v2/categories/{id}
      tags:
      - Taxonomy
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Description HTML du terme.
                name:
                  type: string
                  description: Titre HTML pour le terme.
                slug:
                  type: string
                  description: Un identificateur alphanumérique pour le terme, propre au type de la ressource.
                parent:
                  type: integer
                  description: L’ID du terme parent.
                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: deleteWpV2CategoriesId
      summary: DELETE /wp/v2/categories/{id}
      tags:
      - Taxonomy
      parameters:
      - name: force
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: 'Nécessite la valeur "true", car les termes ne supportent pas la suppression forcée. '
      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/portfolio_category:
    get:
      operationId: getWpV2Portfoliocategory
      summary: GET /wp/v2/portfolio_category
      tags:
      - Taxonomy
      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: 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
          - slug
          - term_group
          - description
          - count
          default: name
        description: Trier la collection par attributs de terme.
      - name: hide_empty
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: Que ce soit pour masquer des termes non affectées à des articles.
      - name: parent
        in: query
        required: false
        schema:
          type: integer
        description: Résultats limités aux termes ayant un parent spécifique.
      - name: post
        in: query
        required: false
        schema:
          type: integer
        description: Limiter le résultat aux termes assignés à un article spécifique.
      - name: slug
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Limiter le résultat aux termes avec un identifiant spécifique.
      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: postWpV2Portfoliocategory
      summary: POST /wp/v2/portfolio_category
      tags:
      - Taxonomy
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Description HTML du terme.
                name:
                  type: string
                  description: Titre HTML pour le terme.
                slug:
                  type: string
                  description: Un identificateur alphanumérique pour le terme, propre au type de la ressource.
                parent:
                  type: integer
                  description: L’ID du terme parent.
                meta:
                  type: object
                  description: Champs métas.
              required:
              - name
      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/portfolio_category/{id}:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
      description: Route parameter `id` declared by the WordPress route index.
    get:
      operationId: getWpV2PortfoliocategoryId
      summary: GET /wp/v2/portfolio_category/{id}
      tags:
      - Taxonomy
      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: postWpV2PortfoliocategoryId
      summary: POST /wp/v2/portfolio_category/{id}
      tags:
      - Taxonomy
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Description HTML du terme.
                name:
                  type: string
                  description: Titre HTML pour le terme.
                slug:
                  type: string
                  description: Un identificateur alphanumérique pour le terme, propre au type de la ressource.
                parent:
                  type: integer
                  description: L’ID du terme parent.
                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: deleteWpV2PortfoliocategoryId
      summary: DELETE /wp/v2/portfolio_category/{id}
      tags:
      - Taxonomy
      parameters:
      - name: force
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: 'Nécessite la valeur "true", car les termes ne supportent pas la suppression forcée. '
      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/tags:
    get:
      operationId: getWpV2Tags
      summary: GET /wp/v2/tags
      tags:
      - Taxonomy
      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
          - slug
          - term_group
          - description
          - count
          default: name
        description: Trier la collection par attributs de terme.
      - name: hide_empty
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: Que ce soit pour masquer des termes non affectées à des articles.
      - name: post
        in: query
        required: false
        schema:
          type: integer
        description: Limiter le résultat aux termes assignés à un article spécifique.
      - name: slug
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Limiter le résultat aux termes avec un identifiant spécifique.
      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: postWpV2Tags
      summary: POST /wp/v2/tags
      tags:
      - Taxonomy
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Description HTML du terme.
                name:
                  type: string
                  description: Titre HTML pour le terme.
                slug:
                  type: string
                  description: Un identificateur alphanumérique pour le terme, propre au type de la ressource.
                meta:
                  type: object
                  description: Champs métas.
              required:
              - name
      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/tags/{id}:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
      description: Route parameter `id` declared by the WordPress route index.
    get:
      operationId: getWpV2TagsId
      summary: GET /wp/v2/tags/{id}
      tags:
      - Taxonomy
      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: postWpV2TagsId
      summary: POST /wp/v2/tags/{id}
      tags:
      - Taxonomy
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Description HTML du terme.
                name:
                  type: string
                  description: Titre HTML pour le terme.
                slug:
                  type: string
                  description: Un identificateur alphanumérique pour le terme, propre au type de la ressource.
                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: deleteWpV2TagsId
      summary: DELETE /wp/v2/tags/{id}
      tags:
      - Taxonomy
      parameters:
      - name: force
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: 'Nécessite la valeur "true", car les termes ne supportent pas la suppression forcée. '
      responses:
        '200':
 

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/habiteo/refs/heads/main/openapi/habiteo-taxonomy-api-openapi.yml