Valide le brouillon, crée un job de compilation et retourne immédiatement
202 Accepted. La compilation ne s’exécute jamais dans la requête HTTP :
un corpus important demande plusieurs lots LLM, bien au-delà de la limite de
la passerelle.
Le brouillon ne devient la configuration active qu’à la fin de la
compilation. Une ancienne version compilée reste lisible pour terminer les
sessions qui l’utilisent déjà.
Un second publish du même domaine alors qu’un job est queued ou running
retourne 409 compilation_in_progress avec le compilation_id en cours.
Suivre l’avancement avec
GET /v1/configuration/compilations/{compilation_id}.
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.
En-têtes
Idempotency-Key
string
requis
Clé unique par mutation logique, choisie par l'appelant.
Même clé et même corps renvoient exactement la réponse d'origine, sans
rejouer l'effet : aucun retry ne double turn_count, un outcome, un
événement, un feedback ou une publication. Même clé avec un corps différent
produit 409 idempotency_key_reused.
Les enregistrements sont isolés par tenant et par opération, et sont purgés
après 24 heures. Passé ce délai, la même clé est traitée comme neuve.
Required string length: 8 - 128
Corps
application/json
expected_draft_revision
integer
Refuse la publication si le brouillon a changé depuis cette révision.
Recommandé depuis Studio pour éviter de publier le travail d'un autre
éditeur.
Plage requise: x >= 0
Réponse
Job de compilation créé.
request_id
string
requis
compilation_id
string
requis
Required string length: 1 - 128
status
enum<string>
requis
Options disponibles:
queued,
running,
succeeded,
failed
draft_revision
integer
requis
Plage requise: x >= 0
created_at
string<date-time>
requis
updated_at
string<date-time>
requis
progress
number
requis
Avancement indicatif, sans garantie de linéarité.
Plage requise: 0 <= x <= 1
error
object | null
requis
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.
Show child attributes
configuration_version
string | null
requis
Version désormais active, renseignée uniquement en succeeded.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Zelinqa","colors":{"primary":"#7C3AED","light":"#A78BFA","dark":"#8B5CF6"},"logo":{"light":"https://mintcdn.com/zelinqa-d77427f3/NHQX6jXz7QClMoqF/logo/light.svg?fit=max\u0026auto=format\u0026n=NHQX6jXz7QClMoqF\u0026q=85\u0026s=6cbe3336a207008182be0916b85b70ef","dark":"https://mintcdn.com/zelinqa-d77427f3/NHQX6jXz7QClMoqF/logo/dark.svg?fit=max\u0026auto=format\u0026n=NHQX6jXz7QClMoqF\u0026q=85\u0026s=7ff1e5b30a949dd04c9ea9b6f3e6beaa","href":"https://zelinqa.ai"},"favicon":"https://mintcdn.com/zelinqa-d77427f3/04zoXbeL2ZlFQrrw/favicon.svg?fit=max\u0026auto=format\u0026n=04zoXbeL2ZlFQrrw\u0026q=85\u0026s=76e8077a8df9fee9dce67ea7cf0612cb","api":{"openapi":["openapi.fr.yaml","openapi.yaml"],"playground":{"display":"interactive"},"examples":{"languages":["bash","python","javascript"]}},"navbar":{"primary":{"type":"button","label":"Zelinqa Studio","href":"https://client.zelinqa.ai"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"fr","default":true,"href":"fr/introduction"},{"language":"en","href":"en/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"zelinqa-d77427f3","hasAudioNarration":false,"actualSubdomain":"zelinqa-d77427f3","customDomains":["docs.zelinqa.ai"],"gitSource":{"type":"github","owner":"zelinqa","repo":"nbq-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ad54348ae0c8a39b0082ad1","clientVersion":"0.0.4142","searchFilterCounts":[{"language":"en","tag":"API Reference","count":17},{"language":"fr","tag":"Référence API","count":17},{"language":"en","tag":"Developers","count":14},{"language":"fr","tag":"Développeurs","count":14},{"language":"en","tag":"Zelinqa Studio","count":11},{"language":"fr","tag":"Zelinqa Studio","count":11},{"language":"en","tag":"Configure","count":6},{"language":"en","tag":"Configuration","count":6},{"language":"fr","tag":"Configurer","count":6},{"language":"fr","tag":"Configuration","count":6},{"language":"en","tag":"API guides","count":5},{"language":"en","tag":"Guides","count":5},{"language":"en","tag":"Publish and operate","count":5},{"language":"en","tag":"Sessions","count":5},{"language":"fr","tag":"Guides API","count":5},{"language":"fr","tag":"Guides","count":5},{"language":"fr","tag":"Publier et exploiter","count":5},{"language":"fr","tag":"Sessions","count":5},{"language":"en","tag":"Resources","count":3},{"language":"fr","tag":"Ressources","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":""}],"page":{"pagePath":"api-reference/configuration/publier-le-brouillon","slug":"/api-reference/configuration/publier-le-brouillon","pageMetadata":{"title":"Publier le brouillon","description":"Valide le brouillon, crée un job de compilation et retourne immédiatement\n`202 Accepted`. La compilation ne s'exécute **jamais** dans la requête HTTP :\nun corpus important demande plusieurs lots LLM, bien au-delà de la limite de\nla passerelle.\n\nLe brouillon ne devient la configuration active qu'à la fin de la\ncompilation. Une ancienne version compilée reste lisible pour terminer les\nsessions qui l'utilisent déjà.\n\nUn second publish du même domaine alors qu'un job est `queued` ou `running`\nretourne `409 compilation_in_progress` avec le `compilation_id` en cours.\n\nSuivre l'avancement avec\n`GET /v1/configuration/compilations/{compilation_id}`.\n","deprecated":null,"version":null,"openapi":"/openapi.fr.yaml post /v1/configuration/publish","href":"/api-reference/configuration/publier-le-brouillon","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Valide le brouillon, crée un job de compilation et retourne immédiatement\\n\", _jsx(_components.code, {\n children: \"202 Accepted\"\n }), \". La compilation ne s’exécute \", _jsx(_components.strong, {\n children: \"jamais\"\n }), \" dans la requête HTTP :\\nun corpus important demande plusieurs lots LLM, bien au-delà de la limite de\\nla passerelle.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Le brouillon ne devient la configuration active qu’à la fin de la\\ncompilation. Une ancienne version compilée reste lisible pour terminer les\\nsessions qui l’utilisent déjà.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Un second publish du même domaine alors qu’un job est \", _jsx(_components.code, {\n children: \"queued\"\n }), \" ou \", _jsx(_components.code, {\n children: \"running\"\n }), \"\\nretourne \", _jsx(_components.code, {\n children: \"409 compilation_in_progress\"\n }), \" avec le \", _jsx(_components.code, {\n children: \"compilation_id\"\n }), \" en cours.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Suivre l’avancement avec\\n\", _jsx(_components.code, {\n children: \"GET /v1/configuration/compilations/{compilation_id}\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Publier le brouillon","description":"Valide le brouillon, crée un job de compilation et retourne immédiatement\n`202 Accepted`. La compilation ne s'exécute **jamais** dans la requête HTTP :\nun corpus important demande plusieurs lots LLM, bien au-delà de la limite de\nla passerelle.\n\nLe brouillon ne devient la configuration active qu'à la fin de la\ncompilation. Une ancienne version compilée reste lisible pour terminer les\nsessions qui l'utilisent déjà.\n\nUn second publish du même domaine alors qu'un job est `queued` ou `running`\nretourne `409 compilation_in_progress` avec le `compilation_id` en cours.\n\nSuivre l'avancement avec\n`GET /v1/configuration/compilations/{compilation_id}`.\n","deprecated":null,"version":null,"openapi":"/openapi.fr.yaml post /v1/configuration/publish","href":"/api-reference/configuration/publier-le-brouillon","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["configuration"],"summary":"Publier le brouillon","description":"Valide le brouillon, crée un job de compilation et retourne immédiatement\n`202 Accepted`. La compilation ne s'exécute **jamais** dans la requête HTTP :\nun corpus important demande plusieurs lots LLM, bien au-delà de la limite de\nla passerelle.\n\nLe brouillon ne devient la configuration active qu'à la fin de la\ncompilation. Une ancienne version compilée reste lisible pour terminer les\nsessions qui l'utilisent déjà.\n\nUn second publish du même domaine alors qu'un job est `queued` ou `running`\nretourne `409 compilation_in_progress` avec le `compilation_id` en cours.\n\nSuivre l'avancement avec\n`GET /v1/configuration/compilations/{compilation_id}`.\n","operationId":"publishConfiguration","x-required-scopes":["configuration:publish"],"parameters":["42cfece1-5076-4017-b713-4a86530892ec"],"requestBody":"5095e7e7-6974-464f-b1ab-46a8433ebdd8","responses":{"202":"9ce27d56-d6bd-432e-9109-44b9938c4e50","401":"fe3c872c-9222-4a16-932b-839b432b6acf","403":"3d313e62-c577-4b07-86cb-74e3a6e119fc","409":"ca85608a-88ae-4c27-9374-b42ad3309130","422":"12ca524e-54f6-479b-8cc0-1ffa37b25d97","503":"2760c3db-b2fd-4cb3-ae10-083da511c171"},"method":"post","type":"path","servers":["1a6b3648-7307-43a6-aa3e-c2fc73c4533a"],"security":["9a21f59e-73e7-40cb-aed4-69ae805ab1b8"],"path":"/v1/configuration/publish","baseUrlOptions":["https://api.zelinqa.ai"],"title":"Publier le brouillon","codeSamples":[],"requestExampleLanguages":["bash","python","javascript"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"42cfece1-5076-4017-b713-4a86530892ec":{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"isRequired":true,"description":"Clé unique par mutation logique, choisie par l'appelant.\n\nMême clé et même corps renvoient exactement la réponse d'origine, sans\nrejouer l'effet : aucun retry ne double `turn_count`, un outcome, un\névénement, un feedback ou une publication. Même clé avec un corps différent\nproduit `409 idempotency_key_reused`.\n\nLes enregistrements sont isolés par tenant et par opération, et sont purgés\naprès **24 heures**. Passé ce délai, la même clé est traitée comme neuve.\n","uniqueKey":"","typeLabel":"string"},"description":"Clé unique par mutation logique, choisie par l'appelant.\n\nMême clé et même corps renvoient exactement la réponse d'origine, sans\nrejouer l'effet : aucun retry ne double `turn_count`, un outcome, un\névénement, un feedback ou une publication. Même clé avec un corps différent\nproduit `409 idempotency_key_reused`.\n\nLes enregistrements sont isolés par tenant et par opération, et sont purgés\naprès **24 heures**. Passé ce délai, la même clé est traitée comme neuve.\n"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_draft_revision":{"type":"integer","minimum":0,"description":"Refuse la publication si le brouillon a changé depuis cette révision.\nRecommandé depuis Studio pour éviter de publier le travail d'un autre\néditeur.\n","uniqueKey":"expected_draft_revision","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"publication_simple":{"title":"publication_simple","value":{}},"publication_verrouillee":{"title":"publication_verrouillee","value":{"expected_draft_revision":42}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"9ce27d56-d6bd-432e-9109-44b9938c4e50":{"description":"Job de compilation créé.","content":{"application/json":{"schema":{"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","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"compilation_id":{"type":"string","minLength":1,"maxLength":128,"isRequired":true,"uniqueKey":"compilation_id","typeLabel":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"draft_revision":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"draft_revision","typeLabel":"integer"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"progress":{"type":"number","minimum":0,"maximum":1,"description":"Avancement indicatif, sans garantie de linéarité.","isRequired":true,"uniqueKey":"progress","typeLabel":"number"},"error":{"oneOf":[{"type":"object","description":"Cause bornée d'un échec de compilation. Aucune trace interne, aucun prompt et\naucun contenu de lot n'est exposé.\n\n`details` n'est renseigné que pour `validation_failed`, dont les erreurs sont\ncorrigeables par l'éditeur ; pour `llm_unavailable`, `timeout` et\n`internal_error`, il reste absent.\n","required":["code","message"],"properties":{"code":{"type":"string","enum":["validation_failed","llm_unavailable","timeout","internal_error"],"isRequired":true,"uniqueKey":"error.oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.oneOf.0.message","typeLabel":"string"},"details":{"type":"array","items":{"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.","isRequired":true,"uniqueKey":"error.oneOf.0.details.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.oneOf.0.details.items.[INDEX].message","typeLabel":"string"},"entity":{"type":"string","enum":["objective","dimension","success_information","question"],"uniqueKey":"error.oneOf.0.details.items.[INDEX].entity","typeLabel":"enum\u003cstring>"},"entity_id":{"type":"string","maxLength":128,"uniqueKey":"error.oneOf.0.details.items.[INDEX].entity_id","typeLabel":"string"},"change_index":{"type":"integer","minimum":0,"description":"Position de l'opération fautive dans `changes`, lorsque l'anomalie vient d'un changement.","uniqueKey":"error.oneOf.0.details.items.[INDEX].change_index","typeLabel":"integer"}},"uniqueKey":"error.oneOf.0.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.oneOf.0.details","typeLabel":"object[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error","typeLabel":"object | null"},"configuration_version":{"oneOf":[{"type":"string","description":"Version désormais active, renseignée uniquement en `succeeded`.","isRequired":true,"uniqueKey":"configuration_version.oneOf.0","typeLabel":"string"},{"type":"null","description":"Version désormais active, renseignée uniquement en `succeeded`.","isRequired":true,"uniqueKey":"configuration_version.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"configuration_version","typeLabel":"string | null"}},"uniqueKey":"","typeLabel":"object"},"example":{"request_id":"req_82bd","compilation_id":"cmp_01K2QF","status":"queued","draft_revision":42,"created_at":"2026-09-01T09:20:11Z","updated_at":"2026-09-01T09:20:11Z","progress":0,"error":null,"configuration_version":null},"examples":{"Example":{"title":"Example","value":{"request_id":"req_82bd","compilation_id":"cmp_01K2QF","status":"queued","draft_revision":42,"created_at":"2026-09-01T09:20:11Z","updated_at":"2026-09-01T09:20:11Z","progress":0,"error":null,"configuration_version":null}}},"exampleType":"examples"}},"exampleType":"examples"},"fe3c872c-9222-4a16-932b-839b432b6acf":{"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":{"type":"object","additionalProperties":false,"required":["code","message","request_id","details"],"description":"Enveloppe uniforme de toutes les erreurs métier.","properties":{"code":{"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"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"isRequired":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"unauthorized","message":"Clé d'intégration absente ou invalide.","request_id":"req_9000","details":{}},"examples":{"Example":{"title":"Example","value":{"code":"unauthorized","message":"Clé d'intégration absente ou invalide.","request_id":"req_9000","details":{}}}},"exampleType":"examples"}},"exampleType":"examples"},"3d313e62-c577-4b07-86cb-74e3a6e119fc":{"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":{"type":"object","additionalProperties":false,"required":["code","message","request_id","details"],"description":"Enveloppe uniforme de toutes les erreurs métier.","properties":{"code":{"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"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"isRequired":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"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"]}},"examples":{"Example":{"title":"Example","value":{"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"]}}}},"exampleType":"examples"}},"exampleType":"examples"},"ca85608a-88ae-4c27-9374-b42ad3309130":{"description":"Une compilation est déjà en cours, ou la clé d'idempotence a été réutilisée.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["code","message","request_id","details"],"description":"Enveloppe uniforme de toutes les erreurs métier.","properties":{"code":{"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"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"isRequired":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"compilation_in_progress":{"title":"compilation_in_progress","value":{"code":"compilation_in_progress","message":"Une compilation est déjà en cours pour cette configuration.","request_id":"req_9005","details":{"compilation_id":"cmp_01K2QF","status":"running"}}},"idempotency_key_reused":{"title":"idempotency_key_reused","value":{"code":"idempotency_key_reused","message":"Cette clé d'idempotence est déjà associée à une autre requête.","request_id":"req_9006","details":{"idempotency_key":"publish-rev-42"}}}},"exampleType":"examples"}},"exampleType":"examples"},"12ca524e-54f6-479b-8cc0-1ffa37b25d97":{"description":"La validation du brouillon a échoué. Toutes les anomalies sont renvoyées\nensemble, avec la position de l'opération fautive lorsqu'elle vient d'un\nchangement, afin que Studio puisse les afficher d'un seul coup.\n","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["code","message","request_id","details"],"description":"Enveloppe uniforme de toutes les erreurs métier.","properties":{"code":{"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"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"isRequired":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"validation_publication":{"title":"validation_publication","value":{"code":"configuration_validation_failed","message":"La configuration comporte 2 anomalies bloquantes.","request_id":"req_9015","details":{"issues":[{"code":"success_information_without_active_question","message":"L'information « Fenêtre de livraison souhaitée » n'a pas de question active.","entity":"success_information","entity_id":"delivery_window"},{"code":"success_information_only_in_optional_dimension","message":"L'information « Budget annuel » ne dépend que d'une dimension optionnel.","entity":"success_information","entity_id":"annual_budget"}]}}},"revision_perimee":{"title":"revision_perimee","value":{"code":"configuration_validation_failed","message":"Le brouillon a été modifié depuis votre dernière lecture.","request_id":"req_9016","details":{"issues":[{"code":"draft_revision_mismatch","message":"Révision attendue 42, révision courante 44.","entity":"objective"}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"2760c3db-b2fd-4cb3-ae10-083da511c171":{"description":"La clé d'idempotence n'a pas pu être réservée après deux tentatives, à cause\nd'un cycle anormal de requêtes concurrentes portant la même clé.\n\nCe n'est **pas** une erreur du client et ce n'est pas un conflit : réessayer\naprès un court délai a des chances d'aboutir. À distinguer de\n`idempotency_key_reused`, qui est définitif pour ce couple clé/corps.\n","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["code","message","request_id","details"],"description":"Enveloppe uniforme de toutes les erreurs métier.","properties":{"code":{"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"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"isRequired":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"idempotency_contention","message":"La clé d'idempotence n'a pas pu être réservée, réessayez.","request_id":"req_9017","details":{"idempotency_key":"next-ses01J8Z-turn-4","retry_after_seconds":1}},"examples":{"Example":{"title":"Example","value":{"code":"idempotency_contention","message":"La clé d'idempotence n'a pas pu être réservée, réessayez.","request_id":"req_9017","details":{"idempotency_key":"next-ses01J8Z-turn-4","retry_after_seconds":1}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"9a21f59e-73e7-40cb-aed4-69ae805ab1b8":{"ApiKeyAuth":{"type":"http","scheme":"bearer","bearerFormat":"Zelinqa API key","description":"Envoyez la clé API dans Authorization: Bearer \u003cclé>. Elle identifie le domaine et les droits autorisés. Ne transmettez pas d'en-têtes d'identité internes.","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"1a6b3648-7307-43a6-aa3e-c2fc73c4533a":{"url":"https://api.zelinqa.ai","description":"API publique Zelinqa"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"Zelinqa API key","description":"Envoyez la clé API dans Authorization: Bearer \u003cclé>. Elle identifie le domaine et les droits autorisés. Ne transmettez pas d'en-têtes d'identité internes.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Envoyez la clé API dans Authorization: Bearer \u003cclé>. Elle identifie le domaine et les droits autorisés. Ne transmettez pas d'en-têtes d'identité internes.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"ApiKeyAuth","name":"Authorization"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi.fr.yaml"},"subdomain":"zelinqa-d77427f3","siteName":"Zelinqa","title":"Publier le brouillon - Zelinqa","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"fr":{"href":"/api-reference/configuration/publier-le-brouillon","matchLevel":0},"en":{"href":"/en/introduction","matchLevel":4}}},"lastModified":"2026-10-18T22:01:15.285Z","originalFileLocation":"api-reference/configuration/publier-le-brouillon.mdx","locale":"fr"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Valide le brouillon, crée un job de compilation et retourne immédiatement 202 Accepted. La compilation ne s\u0026#x27;exécute jamais dans la requête HTTP : un corpus important demande plusieurs lots LLM, bien au-delà de la limite de la passerelle. Le brouillon ne devient la configuration active qu\u0026#x27;à la fin de la compilation. Une ancienne version compilée reste lisible pour terminer les sessions qui l\u0026#x27;utilisent déjà. Un second publish du même domaine alors qu\u0026#x27;un job est queued ou running retourne 409 compilation_in_progress avec le compilation_id en cours. Suivre l\u0026#x27;avancement avec GET /v1/configuration/compilations/{compilation_id}.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Zelinqa\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zelinqa-d77427f3/DJdTp2ipwe2o2XTM/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/zelinqa-d77427f3/DJdTp2ipwe2o2XTM/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zelinqa-d77427f3/DJdTp2ipwe2o2XTM/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/zelinqa-d77427f3/DJdTp2ipwe2o2XTM/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/zelinqa-d77427f3/DJdTp2ipwe2o2XTM/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zelinqa-d77427f3/DJdTp2ipwe2o2XTM/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zelinqa-d77427f3/DJdTp2ipwe2o2XTM/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/zelinqa-d77427f3/DJdTp2ipwe2o2XTM/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/zelinqa-d77427f3/DJdTp2ipwe2o2XTM/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Publier le brouillon - Zelinqa\">\u003cmeta data-mint-head property=\"og:description\" content=\"Valide le brouillon, crée un job de compilation et retourne immédiatement 202 Accepted. La compilation ne s\u0026#x27;exécute jamais dans la requête HTTP : un corpus important demande plusieurs lots LLM, bien au-delà de la limite de la passerelle. Le brouillon ne devient la configuration active qu\u0026#x27;à la fin de la compilation. Une ancienne version compilée reste lisible pour terminer les sessions qui l\u0026#x27;utilisent déjà. Un second publish du même domaine alors qu\u0026#x27;un job est queued ou running retourne 409 compilation_in_progress avec le compilation_id en cours. Suivre l\u0026#x27;avancement avec GET /v1/configuration/compilations/{compilation_id}.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Zelinqa\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.zelinqa.ai/api-reference/configuration/publier-le-brouillon\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://zelinqa-d77427f3.mintlify.site/_mintlify/api/og/v2?division=Configuration\u0026amp;title=Publier+le+brouillon\u0026amp;description=Valide+le+brouillon%2C+cr%C3%A9e+un+job+de+compilation+et+retourne+imm%C3%A9diatement%0A%60202+Accepted%60.+La+compilation+ne+s%27ex%C3%A9cute+**jamais**+dans+la+requ%C3%AAte+HTTP+%3A%0Aun+corpu\u0026amp;theme=2bd94d4ac999925d0fca8b51\u0026amp;signature=e2713241fc84662b7214c3e25906da2cef47d8630c3d7c75e644406d21abe0d1\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Publier le brouillon - Zelinqa\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Valide le brouillon, crée un job de compilation et retourne immédiatement 202 Accepted. La compilation ne s\u0026#x27;exécute jamais dans la requête HTTP : un corpus important demande plusieurs lots LLM, bien au-delà de la limite de la passerelle. Le brouillon ne devient la configuration active qu\u0026#x27;à la fin de la compilation. Une ancienne version compilée reste lisible pour terminer les sessions qui l\u0026#x27;utilisent déjà. Un second publish du même domaine alors qu\u0026#x27;un job est queued ou running retourne 409 compilation_in_progress avec le compilation_id en cours. Suivre l\u0026#x27;avancement avec GET /v1/configuration/compilations/{compilation_id}.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://zelinqa-d77427f3.mintlify.site/_mintlify/api/og/v2?division=Configuration\u0026amp;title=Publier+le+brouillon\u0026amp;description=Valide+le+brouillon%2C+cr%C3%A9e+un+job+de+compilation+et+retourne+imm%C3%A9diatement%0A%60202+Accepted%60.+La+compilation+ne+s%27ex%C3%A9cute+**jamais**+dans+la+requ%C3%AAte+HTTP+%3A%0Aun+corpu\u0026amp;theme=2bd94d4ac999925d0fca8b51\u0026amp;signature=e2713241fc84662b7214c3e25906da2cef47d8630c3d7c75e644406d21abe0d1\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/zelinqa-d77427f3/DJdTp2ipwe2o2XTM/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Zelinqa\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7C3AED\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.zelinqa.ai/api-reference/configuration/publier-le-brouillon\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/configuration/publier-le-brouillon.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.zelinqa.ai/#organization\",\"name\":\"Zelinqa\",\"url\":\"https://docs.zelinqa.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/zelinqa-d77427f3/NHQX6jXz7QClMoqF/logo/light.svg?fit=max\u0026auto=format\u0026n=NHQX6jXz7QClMoqF\u0026q=85\u0026s=6cbe3336a207008182be0916b85b70ef\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.zelinqa.ai#website\",\"name\":\"Zelinqa\",\"url\":\"https://docs.zelinqa.ai\",\"publisher\":{\"@id\":\"https://docs.zelinqa.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.zelinqa.ai/api-reference/configuration/publier-le-brouillon#webpage\",\"url\":\"https://docs.zelinqa.ai/api-reference/configuration/publier-le-brouillon\",\"name\":\"Publier le brouillon\",\"description\":\"Valide le brouillon, crée un job de compilation et retourne immédiatement 202 Accepted. La compilation ne s'exécute jamais dans la requête HTTP : un corpus important demande plusieurs lots LLM, bien au-delà de la limite de la passerelle. Le brouillon ne devient la configuration active qu'à la fin de la compilation. Une ancienne version compilée reste lisible pour terminer les sessions qui l'utilisent déjà. Un second publish du même domaine alors qu'un job est queued ou running retourne 409 compilation_in_progress avec le compilation_id en cours. Suivre l'avancement avec GET /v1/configuration/compilations/{compilation_id}.\",\"dateModified\":\"2026-10-18T22:01:15.285Z\",\"isPartOf\":{\"@id\":\"https://docs.zelinqa.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.zelinqa.ai/api-reference/configuration/publier-le-brouillon#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.zelinqa.ai/api-reference/configuration/publier-le-brouillon#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Configuration\",\"item\":\"https://docs.zelinqa.ai/api-reference/configuration/lire-la-configuration-%C3%A9ditoriale\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Publier le brouillon\",\"item\":\"https://docs.zelinqa.ai/api-reference/configuration/publier-le-brouillon\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.zelinqa.ai/api-reference/configuration/publier-le-brouillon#apireference\",\"headline\":\"Publier le brouillon\",\"name\":\"Publier le brouillon\",\"description\":\"Valide le brouillon, crée un job de compilation et retourne immédiatement 202 Accepted. La compilation ne s'exécute jamais dans la requête HTTP : un corpus important demande plusieurs lots LLM, bien au-delà de la limite de la passerelle. Le brouillon ne devient la configuration active qu'à la fin de la compilation. Une ancienne version compilée reste lisible pour terminer les sessions qui l'utilisent déjà. Un second publish du même domaine alors qu'un job est queued ou running retourne 409 compilation_in_progress avec le compilation_id en cours. Suivre l'avancement avec GET /v1/configuration/compilations/{compilation_id}.\",\"url\":\"https://docs.zelinqa.ai/api-reference/configuration/publier-le-brouillon\",\"mainEntityOfPage\":{\"@id\":\"https://docs.zelinqa.ai/api-reference/configuration/publier-le-brouillon#webpage\"},\"dateModified\":\"2026-10-18T22:01:15.285Z\",\"publisher\":{\"@id\":\"https://docs.zelinqa.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.zelinqa.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Zelinqa\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Zelinqa\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/configuration/publier-le-brouillon.md","siteName":"Zelinqa","nav":{"global":null,"languages":[{"language":"fr","default":true,"tabs":[{"tab":"Développeurs","pages":[{"title":"Développeurs","href":"/fr/introduction"}]},{"tab":"Zelinqa Studio","pages":[{"title":"Zelinqa Studio","href":"/fr/studio/overview"}]},{"tab":"Référence API","groups":[{"group":"Guides API","pages":[{"title":"Référence API V1","href":"/fr/api-reference/overview"},{"title":"Authentification, idempotence et concurrence","href":"/fr/api-reference/auth-concurrency"},{"title":"Intégration REST","href":"/fr/integrations/rest-api"},{"title":"Appels HTTP avec curl","href":"/fr/quickstart/first-api-call"},{"title":"Erreurs","href":"/fr/api-reference/errors"}]},{"group":"Sessions","pages":[{"title":"Créer une session","deprecated":null,"version":null,"openapi":"/openapi.fr.yaml post /v1/sessions","href":"/api-reference/sessions/créer-une-session"},{"title":"Comprendre le tour précédent et proposer les questions suivantes","deprecated":null,"version":null,"openapi":"/openapi.fr.yaml post /v1/sessions/{session_id}/next","href":"/api-reference/sessions/comprendre-le-tour-précédent-et-proposer-les-questions-suivantes"},{"title":"Appliquer un contexte ou une mise à jour sans consommer de tour","deprecated":null,"version":null,"openapi":"/openapi.fr.yaml post /v1/sessions/{session_id}/events","href":"/api-reference/sessions/appliquer-un-contexte-ou-une-mise-à-jour-sans-consommer-de-tour"},{"title":"Lire l'état public d'une session","deprecated":null,"version":null,"openapi":"/openapi.fr.yaml get /v1/sessions/{session_id}","href":"/api-reference/sessions/lire-létat-public-dune-session"},{"title":"Déclarer le résultat réel de la conversation","deprecated":null,"version":null,"openapi":"/openapi.fr.yaml post /v1/sessions/{session_id}/feedback","href":"/api-reference/sessions/déclarer-le-résultat-réel-de-la-conversation"}]},{"group":"Configuration","pages":[{"title":"Lire la configuration éditoriale","deprecated":null,"version":null,"openapi":"/openapi.fr.yaml get /v1/configuration","href":"/api-reference/configuration/lire-la-configuration-éditoriale"},{"title":"Lister les questions","deprecated":null,"version":null,"openapi":"/openapi.fr.yaml get /v1/configuration/questions","href":"/api-reference/configuration/lister-les-questions"},{"title":"Consulter le journal des changements","deprecated":null,"version":null,"openapi":"/openapi.fr.yaml get /v1/configuration/audit","href":"/api-reference/configuration/consulter-le-journal-des-changements"},{"title":"Appliquer des changements au brouillon","description":"Applique **atomiquement** une liste ordonnée d'opérations au brouillon :\nsoit toutes réussissent, soit aucune n'est écrite. Les identifiants fournis\npar l'appelant sont conservés ; ils restent stables entre les publications.\n\nCette route ne publie rien. Le brouillon devient actif uniquement après\n`POST /v1/configuration/publish` et la fin de la compilation.\n\nLes erreurs de validation sont renvoyées groupées dans\n`configuration_validation_failed`, avec la position de chaque opération\nfautive, afin que Studio puisse toutes les afficher d'un coup.\n","deprecated":null,"version":null,"openapi":"/openapi.fr.yaml post /v1/configuration/changes","href":"/api-reference/configuration/appliquer-des-changements-au-brouillon"},{"title":"Publier le brouillon","deprecated":null,"version":null,"openapi":"/openapi.fr.yaml post /v1/configuration/publish","href":"/api-reference/configuration/publier-le-brouillon"},{"title":"Suivre un job de compilation","description":"Renvoie l'avancement du job : `queued`, `running`, `succeeded` ou `failed`.\n\nEn `succeeded`, `configuration_version` porte la version désormais active.\nEn `failed`, `error` contient une cause bornée et un message lisible : ni\ntrace interne, ni prompt, ni contenu de lot n'est exposé.\n","deprecated":null,"version":null,"openapi":"/openapi.fr.yaml get /v1/configuration/compilations/{compilation_id}","href":"/api-reference/configuration/suivre-un-job-de-compilation"}]},{"group":"Service","pages":[{"title":"Sonde de disponibilité","deprecated":null,"version":null,"openapi":"/openapi.fr.yaml get /v1/health","href":"/api-reference/legacy/sonde-de-disponibilité"}]}]}]},{"language":"en","pages":[{"title":"en","href":"/en/introduction"}]}]},"basePath":"","title":"Publier le brouillon - Zelinqa","buildId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","deploymentId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-NXj-Rqjv.js","utils-m0thOP-_.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D13EKcfm.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema--XTdfsEb.js","snippetPresets-D3s4lmAH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-ChURybxL.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DL8CiXq2.js","shallow-DI2-YB2E.js","getApiPlaygroundDisplay-DxbW7b_y.js","CodeSnippet-CiNYS0pP.js","CodeSnippets-BT87bThu.js","Page-DSpdRuhM.js","getPastedJson-F_g_IrFQ.js","icon-CCIG5BAs.js","MethodPill-DY3E0jwx.js","DuplicateIcon-BN88xnEg.js","createIcon-VCCc5HO5.js","DynamicMarkdown-CaSwclgK.js","SectionHeading-DXV8nWhc.js","axios-vUo_bRtp.js","Markdown-CV32Re6G.js","clsx-5ydLOnhV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-pFDdfjRe.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BUGO5bPJ.js"]}