# Détecter la prose qui sonne comme de l'IA (/fr/api/admin/deslop)

<!-- agent-signals: reading_time_min: 4 · est_tokens: 2284 · updated: 2026-07-30 -->
Related: [Déclencher une automatisation](/fr/api/automations/trigger.md), [Créer un message de l'Assistant](/fr/api/assistant/create-assistant-message-v2.md)

Cet endpoint analyse une page de documentation à la recherche de prose générée par IA et renvoie les passages signalés ainsi que des suggestions de réécriture au style humain.

Authentifiez-vous avec une [clé d'API admin](/fr/api/introduction#admin-api-key).

<div id="credits">
  ## Crédits [#crédits]
</div>

* Consomme 1 crédit IA par page vérifiée.
* Les pages de moins de 50 mots sont ignorées et non facturées. La réponse renvoie `skipped: "too_short"` avec `creditsCharged: 0`.
* Si la détection est temporairement indisponible, l'endpoint renvoie `503` et aucun crédit n'est facturé.
* L'endpoint accepte jusqu'à 30 requêtes par minute par adresse IP client.

<div id="response">
  ## Réponse [#réponse]
</div>

Les pages vérifiées renvoient un verdict (`predictionShort`), des fractions IA et humaine, ainsi qu'un tableau `windows` des passages signalés. Chaque fenêtre comprend une plage de lignes et peut inclure d'une à trois suggestions de réécriture.

<div id="usage">
  ## Utilisation [#utilisation]
</div>

```bash
curl -X POST https://api.mintlify.com/v1/deslop/{projectId} \
  -H "Authorization: Bearer mint_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "path": "guides/quickstart.mdx",
    "content": "# Quickstart\n\nWelcome to our comprehensive documentation..."
  }'
```

`POST /v1/deslop/{projectId}`

Analyse une page à la recherche de prose générée par IA et renvoie les passages signalés ainsi que des suggestions de réécriture. Consomme un crédit IA par page vérifiée. Ignore les pages de moins de 50 mots. Limité à 30 requêtes par minute par adresse IP client.

## OpenAPI

```json
{
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "projectId",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      },
      "description": "L'identifiant de votre projet. Il peut être copié depuis la page [Clés d'API](https://app.mintlify.com/settings/organization/api-keys) de votre tableau de bord."
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "path",
            "content"
          ],
          "properties": {
            "path": {
              "type": "string",
              "minLength": 1,
              "description": "Chemin de la page relatif au dépôt, utilisé uniquement pour le rapport."
            },
            "content": {
              "type": "string",
              "maxLength": 1000000,
              "description": "Le contenu MDX ou Markdown brut de la page à vérifier."
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "La page a été vérifiée, ou ignorée parce qu'elle était trop courte.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "path",
              "skipped",
              "creditsCharged"
            ],
            "properties": {
              "path": {
                "type": "string",
                "description": "Le chemin fourni dans la requête."
              },
              "skipped": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "too_short",
                  null
                ],
                "description": "Raison pour laquelle la page a été ignorée, ou null lorsque la page a été vérifiée. `too_short` signifie que la page contenait moins de 50 mots de prose et n'a pas été facturée."
              },
              "predictionShort": {
                "type": "string",
                "enum": [
                  "AI",
                  "AI-Assisted",
                  "Human",
                  "Mixed"
                ],
                "description": "Verdict global pour la page. Présent uniquement lorsque la page a été vérifiée."
              },
              "fractionAi": {
                "type": "number",
                "description": "Fraction de la page détectée comme générée par IA (0-1)."
              },
              "fractionAiAssisted": {
                "type": "number",
                "description": "Fraction détectée comme assistée par IA (0-1)."
              },
              "fractionHuman": {
                "type": "number",
                "description": "Fraction détectée comme rédigée par un humain (0-1)."
              },
              "windows": {
                "type": "array",
                "description": "Passages signalés (non humains). Présent uniquement lorsque la page a été vérifiée.",
                "items": {
                  "type": "object",
                  "required": [
                    "text",
                    "label",
                    "aiAssistanceScore",
                    "startLine",
                    "endLine"
                  ],
                  "properties": {
                    "text": {
                      "type": "string",
                      "description": "Le texte du passage signalé."
                    },
                    "label": {
                      "type": "string",
                      "description": "Étiquette de détection pour le passage, par exemple `AI-Generated`."
                    },
                    "aiAssistanceScore": {
                      "type": "number",
                      "description": "Score d'assistance par IA pour le passage (0-1)."
                    },
                    "confidence": {
                      "description": "Confiance de la détection, renvoyée sous forme d'étiquette telle que `High` ou de score numérique.",
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "startLine": {
                      "type": "integer",
                      "description": "Ligne de début du passage dans le contenu d'origine (indexée à partir de 1)."
                    },
                    "endLine": {
                      "type": "integer",
                      "description": "Ligne de fin du passage dans le contenu d'origine (indexée à partir de 1)."
                    },
                    "rewrites": {
                      "type": "array",
                      "description": "Suggestions de réécriture au style humain du passage.",
                      "items": {
                        "type": "object",
                        "required": [
                          "text",
                          "rationale"
                        ],
                        "properties": {
                          "text": {
                            "type": "string",
                            "description": "Le passage réécrit."
                          },
                          "rationale": {
                            "type": "string",
                            "description": "Pourquoi la réécriture se lit de manière plus humaine."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "creditsCharged": {
                "type": "integer",
                "description": "Crédits IA facturés pour cette requête (0 lorsque la page est ignorée)."
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "Corps de requête invalide.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "description": "Message d’erreur."
              }
            }
          }
        }
      }
    },
    "402": {
      "description": "Crédits IA insuffisants.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "description": "Message d’erreur."
              }
            }
          }
        }
      }
    },
    "429": {
      "description": "Limite de débit dépassée.",
      "content": {
        "text/plain": {
          "schema": {
            "type": "string",
            "example": "Trop de requêtes, veuillez réessayer plus tard."
          }
        }
      }
    },
    "500": {
      "description": "Une erreur inattendue s'est produite lors du traitement de la page."
    },
    "503": {
      "description": "La détection est temporairement indisponible. Aucun crédit n'est facturé.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "description": "Message d’erreur."
              }
            }
          }
        }
      }
    }
  }
}
```
