---
title: "Appliquer ou retirer une installation intacte après aperçu"
method: POST
path: "/api/v1/technical-specialists"
tags: ["Agents"]
---

# Appliquer ou retirer une installation intacte après aperçu

`POST /api/v1/technical-specialists`

## Request

- Base URL: `https://arcadeops.leadalpes.fr`
- URL: `https://arcadeops.leadalpes.fr/api/v1/technical-specialists`
- Auth: `bearerAuth` (a scheme the document does not define)

MANAGER+, hash exact, transaction sérialisable ; aucune personnalisation écrasée. Rollback automatique interdit après une exécution.

## Request body

- object
  - `role` 'fullstack' | 'ai-engineer' | 'app-security' | 'reliability', required
  - `expectedHash` string, required
  - `operation` 'apply' | 'rollback', required

## Response `200`

Installation idempotente

- object
  - `agentId` string, required
  - `action` 'created' | 'reused' | 'rolled_back', required

## Other responses

- `400`: Contrat invalide
- `401`: Authentification requise
- `403`: Permission ou quota insuffisant
- `409`: Aperçu périmé ou personnalisation conservée
- `429`: Limite de fréquence
- `500`: Échec fermé du runtime

---

[API](https://skmtc.dev/leadalpes/apis/arcadeops-api.md) · [All operations](https://skmtc.dev/leadalpes/apis/arcadeops-api/llms.txt) · [OpenAPI document](https://skmtc.dev/leadalpes/apis/arcadeops-api/revisions/f10422ec7412?raw)
