---
seo_title: V1 ou V2 : convertir des fichiers ou lire le web | EnConvert
meta_desc: La V1 convertit fichiers et URL entre formats. La V2 lit le web en direct pour les agents et les pipelines RAG. Laquelle appeler, et ce qui arrive ensuite.
keywords: v1 ou v2 api enconvert, api de conversion de fichiers ou de scraping web, les deux moitiés de l'api enconvert, api de données web pour agents ia, api url vers markdown, api d'ingestion rag, quel endpoint api utiliser, une clé api deux apis
---

# V1 et V2 : convertir des fichiers ou lire le web

L'API EnConvert a deux moitiés. La V1 (`/v1/convert/...`) transforme un fichier ou une URL dans le format que vous nommez ; la V2 (`/v2/...`) lit une page web en direct et vous rend des données qu'un agent peut utiliser. Une seule clé couvre les deux moitiés sur une même URL de base, et les deux facturent le même compteur.

<div class="alert alert-info">
<strong>En ligne aujourd'hui :</strong> toute la V1, plus les six endpoints V2. Perceive et Ingest sont en disponibilité générale. Distill, Lookup, Watch et Discover sont appelables mais en bêta privée, documentés dans <a href="/fr/docs/coming-soon">Bientôt disponible</a>, et leurs formes peuvent changer sans préavis.
</div>

---

## La règle de décision

Si vous connaissez déjà le format de sortie que vous voulez, c'est la V1. Si vous voulez savoir ce qu'il y a sur une page, c'est la V2.

| Ce que vous faites | Moitié | Commencez ici |
|---|---|---|
| Transformer cette URL en PDF | V1 | [url-to-pdf](/fr/docs/endpoints/convert/web-pages/url-to-pdf.md) |
| Transformer ce DOCX en PDF | V1 | [Documents](/fr/docs/endpoints/convert/documents.md) |
| Transformer ce JSON en YAML | V1 | [Formats de données](/fr/docs/endpoints/convert/data-formats.md) |
| Transformer ce HEIC en WebP | V1 | [Images](/fr/docs/endpoints/convert/images.md) |
| Lire cette page en Markdown pour un LLM | V2 | [Perceive](/fr/docs/endpoints/perceive.md) |
| Obtenir le Markdown, une capture d'écran, les liens et les métadonnées à partir d'un seul rendu | V2 | [Perceive](/fr/docs/endpoints/perceive.md) |
| Transformer un site entier en chunks RAG | V2 | [Ingest](/fr/docs/endpoints/ingest.md) |

Le cas limite gênant : `url-to-markdown` (V1) et `perceive` (V2) se recouvrent. Utilisez la V1 quand vous voulez un fichier Markdown et rien d'autre. Utilisez la V2 quand vous voulez aussi la capture d'écran, les liens, les métadonnées de la page, ou la possibilité de récupérer les octets en ligne.

---

## V1 : la conversion déterministe

Vous envoyez des octets ou une URL, et l'endpoint que vous appelez *est* le format cible. `POST /v1/convert/png-to-webp` renvoie du WebP. Rien ne décide quoi que ce soit à votre place.

Il existe 49 endpoints de conversion à cible unique répartis en quatre familles, plus deux crawlers de site qui parcourent un site entier et renvoient un ZIP, soit 51 routes au total.

| Famille | Endpoints | Entrée |
|---|---|---|
| [Pages web](/fr/docs/endpoints/convert/web-pages.md) | 5 | Une URL (ou une liste d'URL) dans un corps JSON |
| [Documents](/fr/docs/endpoints/convert/documents.md) | 13 | Un envoi de fichier (`multipart/form-data`) |
| [Formats de données](/fr/docs/endpoints/convert/data-formats.md) | 11 | Un envoi de fichier (`multipart/form-data`) |
| [Images](/fr/docs/endpoints/convert/images.md) | 22 | Un envoi de fichier (`multipart/form-data`) |

Parmi eux, `website-to-pdf` et `website-to-screenshot` sont les deux crawlers : ils découvrent les pages d'un domaine et répondent toujours [de manière asynchrone](/fr/docs/concepts/sync-and-async.md) avec `202` et un ZIP. Tous les autres endpoints convertissent une entrée en une sortie. La carte complète des entrées vers les sorties se trouve sur [la matrice de conversion](/fr/docs/endpoints/convert/matrix.md).

Un appel V1 ressemble à ceci :

```bash
curl -X POST https://api.enconvert.com/v1/convert/url-to-pdf \
  -H "X-API-Key: sk_your_private_key" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/pricing"}'
```

```json
{
    "presigned_url": "https://spaces.example.com/...signed...",
    "object_key": "env/files/{project_id}/url-to-pdf/example_20260404_123456789.pdf",
    "filename": "example_20260404_123456789.pdf",
    "file_size": 123456,
    "conversion_time_seconds": 12.5
}
```

Définissez `direct_download=true` sur une requête synchrone à une seule URL et le corps de la réponse est le PDF lui-même au lieu de ce JSON.

---

## V2 : lire le web en direct

La V2 effectue le rendu d'une page dans un vrai Chrome headless (JavaScript exécuté, contenu en chargement différé chargé) et renvoie ce qui s'y trouve : Markdown, HTML nettoyé ou brut, une capture d'écran, un PDF, l'inventaire des liens et des images, des données structurées de la page, ou des chunks prêts pour le RAG. Vous ne nommez pas tant un format de sortie que les sorties que vous voulez à partir d'un seul rendu.

Voici l'appel utile le plus simple. Envoyez une URL à `/v2/perceive` pour récupérer du Markdown propre et les métadonnées structurées de la page :

```bash
curl -X POST https://api.enconvert.com/v2/perceive \
  -H "X-API-Key: sk_your_private_key" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/pricing",
    "outputs": ["markdown", "structured"]
  }'
```

La réponse contient une URL de téléchargement pré-signée pour le Markdown et le bloc structuré en ligne :

```json
{
    "operation_id": "per_3f9a2c1b8e7d4a6f90b1c2d3e4f5a6b7",
    "status": "completed",
    "url_final": "https://example.com/pricing",
    "render_quality": 0.93,
    "outputs": {
        "markdown": {
            "url": "https://spaces.example.com/...signed...",
            "size_bytes": 8421,
            "expires_in": 900
        }
    },
    "structured": {
        "metadata": {"title": "Pricing"}
    }
}
```

Vous envoyez du JSON, vous récupérez un résultat en ligne ou une URL signée à courte durée de vie vers un artefact. C'est la forme de chaque endpoint V2.

---

## Ce qui est en ligne aujourd'hui

Les six endpoints V2 sont appelables. Deux d'entre eux sont en disponibilité générale : Perceive et Ingest.

| Endpoint | Statut | Ce qu'il fait |
|---|---|---|
| [`POST /v2/perceive`](/fr/docs/endpoints/perceive.md) | En ligne | Rend une URL une seule fois et retourne toutes les sorties demandées : Markdown, HTML nettoyé ou brut, capture d'écran, PDF, liens, images, données structurées. |
| [`POST /v2/ingest`](/fr/docs/endpoints/ingest.md) | En ligne | Crawle un site (ou accepte des fichiers téléversés) et produit un seul fichier JSONL de chunks prêts pour le RAG, de manière asynchrone derrière un `job_id`. |
| Distill | Bêta privée | [Référence](/fr/docs/coming-soon/distill.md) |
| Lookup | Bêta privée | [Référence](/fr/docs/coming-soon/lookup.md) |
| Watch | Bêta privée | [Référence](/fr/docs/coming-soon/watch.md) |
| Discover | Bêta privée | [Référence](/fr/docs/coming-soon/discover.md) |

<div class="alert alert-warning">
<strong>Les quatre dernières lignes sont en bêta privée.</strong> Distill, Lookup, Watch et Discover répondent à de vraies requêtes aujourd'hui, mais ils ne sont ni annoncés ni en disponibilité générale, et leurs formes de requête et de réponse peuvent changer sans préavis : gardez-les hors de tout ce qui est critique. Watch exige un forfait payant ; les trois autres fonctionnent sur tous les forfaits, Founding compris. Les détails sont dans <a href="/fr/docs/coming-soon">Bientôt disponible</a>.
</div>

---

## Ce que les deux moitiés partagent

La V2 est purement additive. Les endpoints V1 restent inchangés et ne sont affectés par rien de tout cela. Il n'y a pas de migration : vous ajoutez la V2 à côté de la V1 quand vous en avez besoin.

**Une seule clé.** Une clé privée `sk_` dans l'en-tête `X-API-Key`, ou une clé publique `pk_` échangée contre un jeton bearer JWT, fonctionne de façon identique sur la V1 et la V2. Consultez [le guide d'authentification](/fr/docs/authentication.md) pour le flux complet, y compris le verrouillage de domaine et le renouvellement de jeton.

**Une seule liste d'autorisation.** Chaque clé API porte une liste d'endpoints autorisés. Un chemin V2 absent de la liste de la clé est rejeté avec `403`, exactement comme le serait un chemin V1.

**Un seul compteur.** Les conversions V1 et les opérations V2 facturent le même compteur mensuel d'ops. Une op est une unité de travail : une conversion, une URL perçue, une page ingérée. Il n'y a pas de multiplicateurs par endpoint, donc un rendu coûteux coûte la même op qu'une conversion de JSON vers YAML. Les allocations par plan sont sur [les limites de débit et quotas](/fr/docs/reference/rate-limits.md).

**Un seul mécanisme de livraison.** Les fichiers produits par l'une ou l'autre moitié sont téléversés vers le stockage et retournés sous forme d'URL pré-signée qui expire au bout de 15 minutes (`expires_in: 900`). Récupérez à nouveau l'opération, le job ou le lot pour obtenir un nouveau jeu d'URLs ; re-signer ne re-rend rien et ne coûte aucune op. Détails sur [les URLs signées](/fr/docs/concepts/signed-urls.md).

---

## Choix de conception valables sur toute la V2

Apprenez-les une fois et ils s'appliquent à toute la V2.

**Un seul rendu via un navigateur partagé.** Perceive et Ingest effectuent leur rendu via le même singleton headless Chrome et le même pipeline de capture que [l'endpoint V1 url-to-pdf](/fr/docs/endpoints/convert/web-pages/url-to-pdf.md). Les bannières de cookies sont fermées, la page est défilée pour déclencher le contenu lazy, et les images ont le temps de charger.

**Protection SSRF sur chaque URL.** Avant tout fetch ou rendu, chaque URL est examinée : schéma, identifiants embarqués, noms d'hôtes bloqués et IP résolue. Une URL qui résout vers une adresse privée, loopback, link-local, ou de métadonnées cloud est rejetée avec `400`. Cela s'applique aussi bien aux seeds qu'aux liens crawlés.

**Score de qualité de rendu.** Chaque rendu porte un score `render_quality` de `0.0` à `1.0`. Un score bas signale une page qui semble bloquée par une protection anti-bot ou cachée derrière un mur de connexion, ce qui vous permet de distinguer une vraie capture d'une page de challenge.

**Des identifiants uniquement là où c'est sûr.** Perceive accepte `auth`, `cookies`, et des `headers` personnalisés pour les pages derrière une connexion. Ingest, délibérément, ne les accepte pas : ses jobs sont durables et reprenables, et rien de secret ne doit être persisté pour une reprise. Besoin d'identifiants pour une page d'un ensemble ingest ? Rendez-la plutôt via [perceive](/fr/docs/endpoints/perceive.md).

**Les paramètres réservés le disent.** Lorsqu'un paramètre est accepté par le schéma mais pas encore branché, la V2 vous le signale au lieu de l'ignorer silencieusement. Les paramètres `proxy_url`, `geolocation`, et `action_chain` de perceive retournent `422` aujourd'hui ; ses noms d'extraction `prices`, `contacts`, et `technologies` atterrissent dans `warnings` et sont abandonnés.

<div class="alert alert-info">
<strong>La V2 est en bêta.</strong> Figez votre intégration sur les noms de champs et les codes de statut documentés, lisez <code>warnings</code> sur chaque réponse, et attendez-vous à ce que les corps de réponse gagnent des champs avant que la V2 ne quitte la bêta. De nouveaux champs peuvent apparaître ; ceux qui sont documentés ne changeront jamais de signification silencieusement.
</div>

---

## Par où commencer

- **Convertir un fichier ou une URL :** [les endpoints Convert](/fr/docs/endpoints/convert.md).
- **Lire une page :** [l'endpoint perceive](/fr/docs/endpoints/perceive.md).
- **Construire un corpus RAG à partir d'un site :** [l'endpoint ingest](/fr/docs/endpoints/ingest.md).
- **Essayer les endpoints en bêta privée :** [Bientôt disponible](/fr/docs/coming-soon.md).

Si vous n'avez pas encore fait votre premier appel, [le guide de démarrage rapide](/fr/docs/quickstart.md) vous explique comment obtenir une clé et exécuter une requête de bout en bout.

---

## Questions fréquentes

### Ai-je besoin d'une clé API distincte pour la V2 ?

Non. Une seule clé couvre les deux moitiés. Une clé privée `sk_` dans l'en-tête `X-API-Key`, ou un JWT généré à partir d'une clé publique `pk_`, authentifie la V1 et la V2 de façon identique, sous réserve de la liste d'endpoints autorisés de la clé.

### La V2 remplace-t-elle la V1 ?

Non. La V2 est additive et la V1 est inchangée. Si vous voulez un format de sortie nommé à partir d'un fichier ou d'une URL, la V1 reste le bon appel, et cela ne changera pas.

### Comment l'utilisation est-elle comptabilisée entre la V1 et la V2 ?

Les deux moitiés facturent un seul compteur mensuel d'ops, et une op est une unité de travail : une conversion V1, une URL perçue, une page ingérée. Il n'y a pas de pondération par endpoint. Voir [les limites de débit et quotas](/fr/docs/reference/rate-limits.md).

### Quels endpoints V2 puis-je appeler aujourd'hui ?

Les six. Perceive et Ingest sont en disponibilité générale. Distill, Lookup, Watch et Discover sont en bêta privée : appelables avec votre clé habituelle, documentés dans [Bientôt disponible](/fr/docs/coming-soon.md), libres de changer de forme sans préavis, et Watch exige en plus un forfait payant.
