B.R.M Chronographes Site Catalogue Admin API

The site-catalogue-admin API from B.R.M Chronographes — 10 operation(s) for site-catalogue-admin.

Operations 13

GET /api/site/catalogue/categories Categories Arbre #
POST /api/site/catalogue/categories Categorie Creer #
GET /api/site/catalogue/categories/{cat_id} Categorie Detail #
PUT /api/site/catalogue/categories/{cat_id} Categorie Modifier #
DELETE /api/site/catalogue/categories/{cat_id} Categorie Supprimer #
PUT /api/site/catalogue/categories/{cat_id}/textes/{langue} Categorie Texte #
POST /api/site/catalogue/categories/{cat_id}/deplacer Categorie Deplacer #
POST /api/site/catalogue/categories/reordonner Categories Reordonner #
GET /api/site/catalogue/declinaisons/produits Declinaisons Produits #
GET /api/site/catalogue/declinaisons/produit/{ps_id} Declinaisons Produit #
PUT /api/site/catalogue/declinaisons/{dec_id} Declinaison Modifier #
POST /api/site/catalogue/declinaisons/{dec_id}/defaut Declinaison Defaut #
GET /api/site/catalogue/etat Etat #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/brm-chronographes-com:brm-chronographes-com-site-catalogue-admin-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

brm-chronographes-com-site-catalogue-admin-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: BRM Hub Site Catalogue Admin API
  version: 1.0.0
tags:
- name: site-catalogue-admin
paths:
  /api/site/catalogue/categories:
    get:
      tags:
      - site-catalogue-admin
      summary: Categories Arbre
      description: 'L''arborescence complète, à plat : l''écran la remonte en arbre.'
      operationId: categories_arbre_api_site_catalogue_categories_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - HTTPBearer: []
    post:
      tags:
      - site-catalogue-admin
      summary: Categorie Creer
      description: 'Crée une catégorie — sans `ps_id` : elle n''existe pas dans la boutique.'
      operationId: categorie_creer_api_site_catalogue_categories_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategorieNouvelle'
        required: true
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearer: []
  /api/site/catalogue/categories/{cat_id}:
    get:
      tags:
      - site-catalogue-admin
      summary: Categorie Detail
      description: Une catégorie et ses textes, langue par langue.
      operationId: categorie_detail_api_site_catalogue_categories__cat_id__get
      security:
      - HTTPBearer: []
      parameters:
      - name: cat_id
        in: path
        required: true
        schema:
          type: integer
          title: Cat Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - site-catalogue-admin
      summary: Categorie Modifier
      description: Renommer, masquer, changer l'adresse, la bannière, les métadonnées (FR).
      operationId: categorie_modifier_api_site_catalogue_categories__cat_id__put
      security:
      - HTTPBearer: []
      parameters:
      - name: cat_id
        in: path
        required: true
        schema:
          type: integer
          title: Cat Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/app__routers__site_catalogue_admin__CategorieEntrante'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - site-catalogue-admin
      summary: Categorie Supprimer
      description: 'Ne supprime qu''une catégorie née au Hub, vide et sans enfant.


        Une catégorie venue de la boutique ne se supprime pas : elle se masque.

        Sinon la prochaine resynchronisation la ferait revenir, et on ne saurait

        pas pourquoi.'
      operationId: categorie_supprimer_api_site_catalogue_categories__cat_id__delete
      security:
      - HTTPBearer: []
      parameters:
      - name: cat_id
        in: path
        required: true
        schema:
          type: integer
          title: Cat Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/site/catalogue/categories/{cat_id}/textes/{langue}:
    put:
      tags:
      - site-catalogue-admin
      summary: Categorie Texte
      description: Les textes d'une langue. FR et EN dans les colonnes, les dix autres à côté.
      operationId: categorie_texte_api_site_catalogue_categories__cat_id__textes__langue__put
      security:
      - HTTPBearer: []
      parameters:
      - name: cat_id
        in: path
        required: true
        schema:
          type: integer
          title: Cat Id
      - name: langue
        in: path
        required: true
        schema:
          type: string
          title: Langue
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TexteEntrant'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/site/catalogue/categories/{cat_id}/deplacer:
    post:
      tags:
      - site-catalogue-admin
      summary: Categorie Deplacer
      description: Change de parent, et de rang dans la fratrie. Refuse les cycles.
      operationId: categorie_deplacer_api_site_catalogue_categories__cat_id__deplacer_post
      security:
      - HTTPBearer: []
      parameters:
      - name: cat_id
        in: path
        required: true
        schema:
          type: integer
          title: Cat Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Deplacement'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/site/catalogue/categories/reordonner:
    post:
      tags:
      - site-catalogue-admin
      summary: Categories Reordonner
      description: L'ordre d'une fratrie, dans l'ordre reçu. Rien d'autre ne bouge.
      operationId: categories_reordonner_api_site_catalogue_categories_reordonner_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/app__routers__site_catalogue_admin__Reordonnancement'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearer: []
  /api/site/catalogue/declinaisons/produits:
    get:
      tags:
      - site-catalogue-admin
      summary: Declinaisons Produits
      description: Les produits qui ont des déclinaisons, et l'état de chacun.
      operationId: declinaisons_produits_api_site_catalogue_declinaisons_produits_get
      security:
      - HTTPBearer: []
      parameters:
      - name: q
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 100
          - type: 'null'
          title: Q
      - name: edites
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Edites
      - name: orphelins
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Orphelins
      - name: page
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          default: 1
          title: Page
      - name: taille
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          default: 40
          title: Taille
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/site/catalogue/declinaisons/produit/{ps_id}:
    get:
      tags:
      - site-catalogue-admin
      summary: Declinaisons Produit
      description: Les déclinaisons d'un produit, avec l'écart TTC calculé — pas additionné.
      operationId: declinaisons_produit_api_site_catalogue_declinaisons_produit__ps_id__get
      security:
      - HTTPBearer: []
      parameters:
      - name: ps_id
        in: path
        required: true
        schema:
          type: integer
          title: Ps Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/site/catalogue/declinaisons/{dec_id}:
    put:
      tags:
      - site-catalogue-admin
      summary: Declinaison Modifier
      description: Écart de prix, stock, référence, activité. Le défaut a sa propre route.
      operationId: declinaison_modifier_api_site_catalogue_declinaisons__dec_id__put
      security:
      - HTTPBearer: []
      parameters:
      - name: dec_id
        in: path
        required: true
        schema:
          type: integer
          title: Dec Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeclinaisonEntrante'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/site/catalogue/declinaisons/{dec_id}/defaut:
    post:
      tags:
      - site-catalogue-admin
      summary: Declinaison Defaut
      description: 'Désigne la déclinaison qui ouvre la fiche — il y en a une, et une seule.


        Toute la fratrie passe en `origine = ''hub''` : sans cela, la prochaine

        resynchronisation rendrait son drapeau à l''ancienne et la fiche aurait

        deux défauts.'
      operationId: declinaison_defaut_api_site_catalogue_declinaisons__dec_id__defaut_post
      security:
      - HTTPBearer: []
      parameters:
      - name: dec_id
        in: path
        required: true
        schema:
          type: integer
          title: Dec Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/site/catalogue/etat:
    get:
      tags:
      - site-catalogue-admin
      summary: Etat
      description: Ce que le back-office possède aujourd'hui — et en combien de langues.
      operationId: etat_api_site_catalogue_etat_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - HTTPBearer: []
components:
  schemas:
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    CategorieNouvelle:
      properties:
        nom:
          type: string
          maxLength: 200
          minLength: 1
          title: Nom
        slug:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Slug
        parent_id:
          anyOf:
          - type: integer
            minimum: 1.0
          - type: 'null'
          title: Parent Id
        active:
          type: boolean
          title: Active
          default: true
      type: object
      required:
      - nom
      title: CategorieNouvelle
    Deplacement:
      properties:
        parent_id:
          anyOf:
          - type: integer
            minimum: 1.0
          - type: 'null'
          title: Parent Id
        position:
          anyOf:
          - type: integer
            maximum: 9999.0
            minimum: 0.0
          - type: 'null'
          title: Position
      type: object
      title: Deplacement
    app__routers__site_catalogue_admin__Reordonnancement:
      properties:
        parent_id:
          anyOf:
          - type: integer
            minimum: 1.0
          - type: 'null'
          title: Parent Id
        ordre:
          items:
            type: integer
          type: array
          maxItems: 500
          minItems: 1
          title: Ordre
      type: object
      required:
      - ordre
      title: Reordonnancement
    DeclinaisonEntrante:
      properties:
        impact_ht:
          anyOf:
          - type: number
            maximum: 1000000.0
            minimum: -1000000.0
          - type: 'null'
          title: Impact Ht
        impact_ttc:
          anyOf:
          - type: number
            maximum: 1000000.0
            minimum: -1000000.0
          - type: 'null'
          title: Impact Ttc
        quantite:
          anyOf:
          - type: integer
            maximum: 1000000.0
            minimum: 0.0
          - type: 'null'
          title: Quantite
        reference:
          anyOf:
          - type: string
            maxLength: 120
          - type: 'null'
          title: Reference
        ean13:
          anyOf:
          - type: string
            maxLength: 20
          - type: 'null'
          title: Ean13
        active:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Active
        position:
          anyOf:
          - type: integer
            maximum: 9999.0
            minimum: 0.0
          - type: 'null'
          title: Position
      type: object
      title: DeclinaisonEntrante
      description: L'écart peut être saisi HT (ce que la base garde) ou TTC (ce qui s'affiche).
    TexteEntrant:
      properties:
        nom:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Nom
        slug:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Slug
        description:
          anyOf:
          - type: string
            maxLength: 60000
          - type: 'null'
          title: Description
        meta_titre:
          anyOf:
          - type: string
            maxLength: 300
          - type: 'null'
          title: Meta Titre
        meta_description:
          anyOf:
          - type: string
            maxLength: 1000
          - type: 'null'
          title: Meta Description
      type: object
      title: TexteEntrant
    app__routers__site_catalogue_admin__CategorieEntrante:
      properties:
        nom:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Nom
        slug:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Slug
        description:
          anyOf:
          - type: string
            maxLength: 60000
          - type: 'null'
          title: Description
        meta_titre:
          anyOf:
          - type: string
            maxLength: 300
          - type: 'null'
          title: Meta Titre
        meta_description:
          anyOf:
          - type: string
            maxLength: 1000
          - type: 'null'
          title: Meta Description
        banniere:
          anyOf:
          - type: string
            maxLength: 500
          - type: 'null'
          title: Banniere
        active:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Active
        parent_id:
          anyOf:
          - type: integer
            minimum: 1.0
          - type: 'null'
          title: Parent Id
        position:
          anyOf:
          - type: integer
            maximum: 9999.0
            minimum: 0.0
          - type: 'null'
          title: Position
      type: object
      title: CategorieEntrante
      description: Ce qu'on accepte de recevoir — et rien d'autre (pas d'affectation en masse).
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer