> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zelinqa.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Suivre un job de compilation

> Renvoie l'avancement du job : `queued`, `running`, `succeeded` ou `failed`.

En `succeeded`, `configuration_version` porte la version désormais active.
En `failed`, `error` contient une cause bornée et un message lisible : ni
trace interne, ni prompt, ni contenu de lot n'est exposé.




## OpenAPI

````yaml /openapi.fr.yaml get /v1/configuration/compilations/{compilation_id}
openapi: 3.1.0
info:
  title: Zelinqa — API V1
  version: 1.0.0
  summary: >-
    Contrat public du runtime Zelinqa et de la configuration des bases de
    questions.
  description: >-
    Contrat public de l'API Zelinqa V1 sur https://api.zelinqa.ai. La clé API
    identifie le domaine et ses droits. Les mutations utilisent Idempotency-Key
    ; celles d'une session existante utilisent aussi state_version. Les sessions
    restent attachées à leur version publiée.
  contact:
    name: Zelinqa
    url: https://docs.zelinqa.ai
  license:
    name: Proprietary — Zelinqa SAS
    identifier: LicenseRef-Zelinqa-Proprietary
servers:
  - url: https://api.zelinqa.ai
    description: API publique Zelinqa
security:
  - ApiKeyAuth: []
tags:
  - name: sessions
    description: >
      Cycle de vie d'une conversation Zelinqa : création, sélection de la
      question

      suivante, mises à jour hors tour, reprise et retour de résultat.
  - name: configuration
    description: |
      Lecture et modification de la configuration éditoriale d'un domaine, puis
      publication asynchrone de l'artefact moteur.
paths:
  /v1/configuration/compilations/{compilation_id}:
    get:
      tags:
        - configuration
      summary: Suivre un job de compilation
      description: >
        Renvoie l'avancement du job : `queued`, `running`, `succeeded` ou
        `failed`.


        En `succeeded`, `configuration_version` porte la version désormais
        active.

        En `failed`, `error` contient une cause bornée et un message lisible :
        ni

        trace interne, ni prompt, ni contenu de lot n'est exposé.
      operationId: getCompilation
      parameters:
        - name: compilation_id
          in: path
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 128
      responses:
        '200':
          description: Statut du job.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompilationStatus'
              examples:
                en_cours:
                  summary: Compilation en cours
                  value:
                    request_id: req_8300
                    compilation_id: cmp_01K2QF
                    status: running
                    draft_revision: 42
                    created_at: '2026-09-01T09:20:11Z'
                    updated_at: '2026-09-01T09:21:04Z'
                    progress: 0.45
                    error: null
                    configuration_version: null
                terminee:
                  summary: Compilation terminée, nouvelle version active
                  value:
                    request_id: req_8311
                    compilation_id: cmp_01K2QF
                    status: succeeded
                    draft_revision: 42
                    created_at: '2026-09-01T09:20:11Z'
                    updated_at: '2026-09-01T09:23:47Z'
                    progress: 1
                    error: null
                    configuration_version: cfg_00014
                echouee:
                  summary: Compilation échouée, cause bornée
                  value:
                    request_id: req_8322
                    compilation_id: cmp_01K2QG
                    status: failed
                    draft_revision: 43
                    created_at: '2026-09-01T10:02:00Z'
                    updated_at: '2026-09-01T10:07:31Z'
                    progress: 0.62
                    error:
                      code: llm_unavailable
                      message: >-
                        Le service de compilation sémantique est temporairement
                        indisponible.
                    configuration_version: null
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/InsufficientScope'
        '404':
          $ref: '#/components/responses/UnknownCompilation'
components:
  schemas:
    CompilationStatus:
      type: object
      additionalProperties: false
      required:
        - request_id
        - compilation_id
        - status
        - draft_revision
        - created_at
        - updated_at
        - progress
        - error
        - configuration_version
      properties:
        request_id:
          type: string
        compilation_id:
          type: string
          minLength: 1
          maxLength: 128
        status:
          type: string
          enum:
            - queued
            - running
            - succeeded
            - failed
        draft_revision:
          type: integer
          minimum: 0
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        progress:
          type: number
          minimum: 0
          maximum: 1
          description: Avancement indicatif, sans garantie de linéarité.
        error:
          oneOf:
            - $ref: '#/components/schemas/CompilationError'
            - type: 'null'
        configuration_version:
          type:
            - string
            - 'null'
          description: Version désormais active, renseignée uniquement en `succeeded`.
    CompilationError:
      type: object
      additionalProperties: false
      required:
        - code
        - message
      description: >
        Cause bornée d'un échec de compilation. Aucune trace interne, aucun
        prompt et

        aucun contenu de lot n'est exposé.


        `details` n'est renseigné que pour `validation_failed`, dont les erreurs
        sont

        corrigeables par l'éditeur ; pour `llm_unavailable`, `timeout` et

        `internal_error`, il reste absent.
      properties:
        code:
          type: string
          enum:
            - validation_failed
            - llm_unavailable
            - timeout
            - internal_error
        message:
          type: string
          minLength: 1
        details:
          type: array
          items:
            $ref: '#/components/schemas/ConfigurationIssue'
    ErrorEnvelope:
      type: object
      additionalProperties: false
      required:
        - code
        - message
        - request_id
        - details
      description: Enveloppe uniforme de toutes les erreurs métier.
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode'
        message:
          type: string
          minLength: 1
        request_id:
          type: string
          minLength: 1
        details:
          type: object
          additionalProperties: true
    ConfigurationIssue:
      type: object
      additionalProperties: false
      required:
        - code
        - message
      description: >-
        Anomalie de configuration, structurée pour être affichée telle quelle
        dans Studio.
      properties:
        code:
          type: string
          minLength: 1
          maxLength: 100
          description: >-
            Code d'anomalie stable, en minuscules avec des traits de
            soulignement. Traitez les codes connus et affichez le message
            associé pour tout autre code ; le catalogue peut évoluer avec les
            règles de validation.
        message:
          type: string
          minLength: 1
        entity:
          type: string
          enum:
            - objective
            - dimension
            - success_information
            - question
        entity_id:
          type: string
          maxLength: 128
        change_index:
          type: integer
          minimum: 0
          description: >-
            Position de l'opération fautive dans `changes`, lorsque l'anomalie
            vient d'un changement.
    ErrorCode:
      type: string
      description: Catalogue fermé des erreurs métier V1.
      enum:
        - unauthorized
        - insufficient_scope
        - idempotency_contention
        - state_version_conflict
        - idempotency_key_reused
        - unknown_session
        - invalid_previous_turn
        - constraint_no_match
        - invalid_choice
        - compiled_artifact_unavailable
        - configuration_validation_failed
        - compilation_in_progress
        - unknown_configuration
        - unknown_compilation
  responses:
    Unauthorized:
      description: >-
        Réponse 401 possible au niveau de l'application. Une clé absente ou
        invalide est généralement refusée en 403 par la passerelle, sans
        enveloppe métier garantie.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            code: unauthorized
            message: Clé d'intégration absente ou invalide.
            request_id: req_9000
            details: {}
    InsufficientScope:
      description: >-
        Accès refusé. La passerelle peut renvoyer 403 pour une clé absente,
        invalide, expirée, révoquée ou dépourvue du scope requis, sans enveloppe
        métier garantie.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            code: insufficient_scope
            message: Cette clé ne permet pas de publier une configuration.
            request_id: req_9001
            details:
              required_scopes:
                - configuration:publish
              granted_scopes:
                - configuration:read
                - configuration:write
    UnknownCompilation:
      description: Job de compilation inconnu, ou appartenant à un autre tenant.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            code: unknown_compilation
            message: Ce job de compilation est inconnu.
            request_id: req_9009
            details:
              compilation_id: cmp_inconnu
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: Zelinqa API key
      description: >-
        Envoyez la clé API dans Authorization: Bearer <clé>. Elle identifie le
        domaine et les droits autorisés. Ne transmettez pas d'en-têtes
        d'identité internes.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.