---
updatedAt: 2025-09-24T21:43:32.000Z
agentTools:
  projectIndex: https://docs.quable.com/llms.txt
---

# Delete documents from a classification

```python Python
# python3 quable-api-v5_delete-documents-by-classification.py INSTANCE BEARER CLASSIFICATION_CODE

import requests
import logging
import argparse
import sys

# Configuring the logger to display on screen and save to file
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    handlers=[
        logging.FileHandler('app.log'),
        logging.StreamHandler(sys.stdout)
    ]
)
logger = logging.getLogger(__name__)

# Parse command line arguments
parser = argparse.ArgumentParser(description='Script pour appeler une API.')
parser.add_argument('instance', type=str, help='L\'instance à prendre en compte')
parser.add_argument('bearer', type=str, help='Le Bearer pour l\'authentification.')
parser.add_argument('classification_id', type=str, help='L\'ID de la classification.')
args = parser.parse_args()

# Authorization Header
headers = {
    "Authorization": f"Bearer {args.bearer}"
}

# API base URL
base_url = f"https://{args.instance}.quable.com/api/documents"

# API Initial parameters
params = {
    "classifications.id[]": args.classification_id,
    "page": 1,
    "limit": 30
}

while True:
    try:
        logger.info(f"Récupération des documents de la page {params['page']}")
        response = requests.get(base_url, params=params, headers=headers)
        if response.status_code != 200:
            logger.error(f"Erreur lors de la récupération des documents: {response.text}")
            break
        data = response.json()
        documents = data.get("hydra:member", [])

        for document in documents:
            doc_id = document.get('id')
            doc_url = f"{base_url}/{doc_id}"
            logger.info(f"Suppression du document d'ID: {doc_id}")

            # Appel de l'API pour chaque document
            doc_response = requests.delete(doc_url, headers=headers)
            if doc_response.status_code != 204:
                logger.error(f"Erreur lors de la récupération du document {doc_id}: {doc_response.text}")

        # Checking for the presence of a next page
        if "hydra:next" in data["hydra:view"]:
            params['page'] += 1
        else:
            break

    except Exception as e:
        logger.exception(f"Une exception a été levée: {e}")
        break
```

```json Response Example
{"success":true}
```

# How to launch

<!-- python@1 -->



# Imports packages

<!-- python@3-6 -->



# Configure logging

<!-- python@8-17 -->



# Parse arguments

<!-- python@19-24 -->



# Set Variables according to arguments

<!-- python@26-39 -->



# Get documents from page x

<!-- python@43-49 -->



# Delete documents one by one

<!-- python@51-59 -->



# Check if a new page need to be retrieved

<!-- python@61-65 -->



# Exception management

<!-- python@67-69 -->