Référence de l’API

L’API REST de ConvertFly vous permet de convertir, d’optimiser et de transformer des fichiers par programmation. Construisez des chaînes de conversion avec des jobs et des tâches : importez un fichier, traitez-le et exportez le résultat en une seule requête.

URL de basehttps://convertfly.io/api/v1

Tous les endpoints sont relatifs à cette URL de base. Les requêtes et les réponses sont au format JSON. Tous les horodatages sont en UTC, au format ISO 8601.

Authentification

Chaque requête doit inclure une clé API dans l’en-tête Authorization. Les clés commencent par le préfixe cvfly_sk_ et se créent dans votre tableau de bord.

En-tête HTTP
Authorization: Bearer cvfly_sk_live_abc123def456...

Conseil de sécurité : n’exposez jamais vos clés API dans du code côté client. Stockez-les dans des variables d’environnement et appelez l’API depuis votre serveur.

Portées des clés

Les clés API peuvent être limitées à certaines opérations. Une clé créée sans liste de portées reçoit les portées par défaut.

PortéeAccès
job:readLire les jobs(par défaut)
job:writeCréer, annuler, relancer et supprimer des jobs et leurs tâches(par défaut)
task:readLire les tâches(par défaut)
convertLancer des conversions(par défaut)
api-key:readLister les clés API
api-key:writeCréer et révoquer des clés API
webhook:readLister les webhooks
webhook:writeCréer et supprimer des webhooks

Démarrage rapide

Convertissez un PDF en DOCX en trois étapes : créez un job, attendez qu’il se termine, puis téléchargez le résultat.

1

Créer un job de conversion

curl
curl -X POST https://convertfly.io/api/v1/jobs \
  -H "Authorization: Bearer cvfly_sk_live_abc123..." \
  -H "Content-Type: application/json" \
  -d '{
    "tasks": {
      "import-file": {
        "operation": "import/url",
        "url": "https://example.com/report.pdf"
      },
      "convert": {
        "operation": "convert",
        "input": ["import-file"],
        "output_format": "docx"
      },
      "export": {
        "operation": "export/url",
        "input": ["convert"]
      }
    }
  }'
JavaScript
const res = await fetch("https://convertfly.io/api/v1/jobs", {
  method: "POST",
  headers: {
    "Authorization": "Bearer cvfly_sk_live_abc123...",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    tasks: {
      "import-file": {
        operation: "import/url",
        url: "https://example.com/report.pdf",
      },
      convert: {
        operation: "convert",
        input: ["import-file"],
        output_format: "docx",
      },
      export: {
        operation: "export/url",
        input: ["convert"],
      },
    },
  }),
});

const job = await res.json();
console.log(job.id);     // "cmxr9k2p0..."
console.log(job.status); // "processing"
Python
import requests

resp = requests.post(
    "https://convertfly.io/api/v1/jobs",
    headers={"Authorization": "Bearer cvfly_sk_live_abc123..."},
    json={
        "tasks": {
            "import-file": {
                "operation": "import/url",
                "url": "https://example.com/report.pdf",
            },
            "convert": {
                "operation": "convert",
                "input": ["import-file"],
                "output_format": "docx",
            },
            "export": {
                "operation": "export/url",
                "input": ["convert"],
            },
        }
    },
)
job = resp.json()
print(job["id"])      # "cmxr9k2p0..."
print(job["status"])  # "processing"
2

Attendre la fin du traitement

Interrogez régulièrement le statut du job ou utilisez les webhooks pour être notifié en temps réel.

curl
curl https://convertfly.io/api/v1/jobs/job_7kX9mP2qR \
  -H "Authorization: Bearer cvfly_sk_live_abc123..."
Réponse
{
  "id": "cmxr9k2p0",
  "status": "finished",
  "created_at": "2026-04-03T10:30:00Z",
  "tasks": [
    {
      "name": "export",
      "operation": "export/url",
      "status": "finished",
      "result": {
        "files": [
          { "url": "https://files.convertfly.io/d/cmv.../result.docx?e=...&s=..." }
        ]
      }
    }
  ]
}
3

Télécharger le résultat

Utilisez l’URL fournie dans le résultat de la tâche d’export. Les liens de téléchargement sont valables 1 heure ; les fichiers sont supprimés 24 heures après leur envoi.

curl
curl -o result.docx "https://files.convertfly.io/d/..."

Jobs

Un job est un conteneur regroupant une ou plusieurs tâches qui forment une chaîne de conversion. Les tâches d’un job s’exécutent dans l’ordre de leurs dépendances : chaque tâche peut faire référence au résultat d’une tâche précédente via le champ input.

Principe de la chaîne

Une chaîne typique se présente ainsi : import/url -> convert -> export/url. Vous pouvez aussi enchaîner plusieurs opérations : import -> convert -> optimize -> watermark -> export.

Statuts d’un job

StatutDescription
waitingJob créé, en file d’attente
processingAu moins une tâche est en cours d’exécution
finishedToutes les tâches se sont terminées avec succès
errorUne ou plusieurs tâches ont échoué

Créer un job

POST/api/v1/jobs
tagstring

Étiquette facultative pour organiser les jobs (p. ex. batch-2026-04).

tasksobjectobligatoire

Table associant des noms de tâches à des définitions de tâches. Les noms de tâches doivent être uniques au sein du job.

webhook_urlstring

URL qui recevra un événement job.finished ou job.failed à la fin du job.

curl
curl -X POST https://convertfly.io/api/v1/jobs \
  -H "Authorization: Bearer cvfly_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "tag": "invoice-batch",
    "tasks": {
      "import-file": {
        "operation": "import/url",
        "url": "https://example.com/invoice.pdf"
      },
      "to-png": {
        "operation": "convert",
        "input": ["import-file"],
        "output_format": "png",
        "options": { "density": 300 }
      },
      "export": {
        "operation": "export/url",
        "input": ["to-png"]
      }
    }
  }'
Réponse (201 Created)
{
  "id": "cmxr9k2p0",
  "tag": "invoice-batch",
  "status": "processing",
  "created_at": "2026-04-03T10:30:00Z",
  "tasks": [
    { "name": "import-file", "operation": "import/url", "status": "finished" },
    { "name": "to-png",      "operation": "convert",    "status": "processing" },
    { "name": "export",      "operation": "export/url", "status": "waiting" }
  ]
}

Exemple : fusionner des fichiers en un seul PDF

L’opération merge combine au moins deux entrées (PDF et/ou images) en un seul PDF. Indiquez dans l’ordre les noms des tâches d’entrée dans le tableau input.

curl
curl -X POST https://convertfly.io/api/v1/jobs \
  -H "Authorization: Bearer cvfly_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "tasks": {
      "cover": {
        "operation": "import/url",
        "url": "https://example.com/cover.png"
      },
      "report": {
        "operation": "import/url",
        "url": "https://example.com/report.pdf"
      },
      "merge-all": {
        "operation": "merge",
        "input": ["cover", "report"]
      },
      "export": {
        "operation": "export/url",
        "input": ["merge-all"]
      }
    }
  }'

Exemple : capturer un site web

L’opération capture-website ne nécessite aucune tâche d’entrée : elle rend une URL publique en PDF, PNG ou JPG.

curl
curl -X POST https://convertfly.io/api/v1/jobs \
  -H "Authorization: Bearer cvfly_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "tasks": {
      "capture": {
        "operation": "capture-website",
        "url": "https://example.com",
        "output_format": "pdf",
        "width": 1280
      },
      "export": {
        "operation": "export/url",
        "input": ["capture"]
      }
    }
  }'

Consulter un job

GET/api/v1/jobs/:id

Récupérez le détail d’un job et le statut de toutes ses tâches.

curl
curl https://convertfly.io/api/v1/jobs/job_7kX9mP2qR \
  -H "Authorization: Bearer cvfly_sk_..."

Lister les jobs

GET/api/v1/jobs
pageinteger

Numéro de page, à partir de 1. Par défaut : 1.

limitinteger

Résultats par page, de 1 à 100. Par défaut : 20.

statusstring

Filtrer par statut : WAITING, PROCESSING, FINISHED, ERROR.

tagstring

Filtrer par étiquette.

curl
curl "https://convertfly.io/api/v1/jobs?status=finished&per_page=5" \
  -H "Authorization: Bearer cvfly_sk_..."
Réponse
{
  "data": [ ... ],
  "links": { "first": "?page=1&per_page=5", "last": "?page=9&per_page=5", "prev": null, "next": "?page=2&per_page=5" },
  "meta": {
    "page": 1,
    "per_page": 5,
    "total": 42
  }
}

Supprimer un job

DELETE/api/v1/jobs/:id

Supprime un job et tous les fichiers associés. Les tâches en cours sont annulées. Cette action est irréversible.

curl
curl -X DELETE https://convertfly.io/api/v1/jobs/job_7kX9mP2qR \
  -H "Authorization: Bearer cvfly_sk_..."

Attendre la fin du traitement

GET/api/v1/jobs/:id/wait

Endpoint à interrogation longue qui reste en attente jusqu’à ce que le job atteigne un état final (FINISHED ou ERROR). Il expire au bout de 300 secondes et renvoie 202 Accepted si le job est toujours en cours.

curl
curl "https://convertfly.io/api/v1/jobs/job_7kX9mP2qR/wait?timeout=120" \
  -H "Authorization: Bearer cvfly_sk_..."

Tâches

Les tâches sont les étapes individuelles d’un job. Chaque tâche possède un nom (la clé dans l’objet tasks), une operation et, en option, un tableau input faisant référence aux noms de tâches précédentes.

Champs d’une tâche

ChampTypeDescription
operationstringL’opération à effectuer (voir Opérations)
inputstring[]Noms des tâches dont le résultat sert d’entrée
output_formatstringFormat cible des opérations de conversion
optionsobjectParamètres propres à l’opération (qualité, densité, etc.)

Lister les tâches d’un job

GET/api/v1/jobs/:id/tasks
Réponse
{
  "data": [
    {
      "name": "import-file",
      "operation": "import/url",
      "status": "finished",
      "result": { "file_id": "file_Xk9m..." }
    },
    {
      "name": "convert",
      "operation": "convert",
      "status": "finished",
      "result": { "file_id": "file_Pm3n..." }
    }
  ]
}

Consulter une tâche

GET/api/v1/jobs/:job_id/tasks/:task_name

Annuler une tâche

POST/api/v1/jobs/:job_id/tasks/:task_name/cancel

Annule une tâche en cours ou en attente. Les tâches en aval qui en dépendent sont également annulées.

Relancer une tâche en échec

POST/api/v1/jobs/:job_id/tasks/:task_name/retry

Relance une tâche dont le statut est ERROR. Des crédits sont à nouveau consommés si la tâche est facturable.

Import de fichiers

Il existe trois façons de transmettre des fichiers à ConvertFly. Choisissez celle qui correspond le mieux à votre cas d’usage.

Import depuis une URL

La méthode la plus simple. ConvertFly télécharge le fichier depuis une URL accessible publiquement.

Définition de la tâche
{
  "import-file": {
    "operation": "import/url",
    "url": "https://example.com/document.pdf",
    "filename": "document.pdf",
    "headers": {
      "Authorization": "Bearer your-external-token"
    }
  }
}

Import direct (URL présignée)

Pour les fichiers présents sur votre machine. Le processus se déroule en deux étapes : créez d’abord la tâche pour obtenir une URL d’import présignée, puis envoyez votre fichier par PUT vers cette URL.

Étape 1 : créer un job avec import/upload
{
  "upload-file": {
    "operation": "import/upload",
    "filename": "photo.jpg"
  }
}
Étape 2 : envoyer le fichier vers l’URL présignée
# The task result will contain the presigned URL
curl -X PUT "https://files.convertfly.io/convertfly-files/..." \
  -H "Content-Type: image/jpeg" \
  --data-binary @photo.jpg

Import en Base64

Pour les petits fichiers (moins de 10 Mo). Intégrez directement le contenu du fichier dans la requête.

Définition de la tâche
{
  "import-file": {
    "operation": "import/base64",
    "file": "JVBERi0xLjQKJcOkw7zD...",
    "filename": "document.pdf"
  }
}
MéthodeTaille max.Idéal pour
import/url5 GBFichiers déjà hébergés en ligne
import/upload5 GBFichiers locaux, fichiers volumineux
import/base6410 MBPetits fichiers, intégrés à la requête

Options de conversion

Chaque opération accepte des options spécifiques. Voici toutes les opérations disponibles et les paires de formats pour les conversions.

Opérations disponibles

OpérationDescriptionCrédits
import/uploadImporter un fichier via une URL présignée0
import/urlImporter un fichier depuis une URL0
import/base64Importer un fichier à partir de données Base640
convertConvertir d’un format à un autre1-4
optimizeCompresser ou optimiser un fichier1
thumbnailGénérer une miniature d’aperçu1
mergeFusionner plusieurs PDF et/ou images en un seul PDF1
watermarkAjouter un filigrane texte ou image à des images, des vidéos ou des PDF1
splitExtraire des pages d’un PDF, ou le diviser en un PDF par page (ZIP)1
rotateFaire pivoter les pages d’un PDF de 90, 180 ou 270 degrés1
resizeRedimensionner une image par largeur, hauteur ou pourcentage, en conservant les proportions1
gifTransformer un extrait vidéo en GIF animé (début, durée, fps, largeur)2
ocrReconnaître le texte de PDF ou d’images (14 langues, les mêmes que sur la page OCR)3
capture-websiteCapturer un site web public en PDF, PNG ou JPG1
metadataExtraire les métadonnées d’un fichier1
export/urlObtenir une URL de téléchargement signée0
export/s3Exporter directement vers votre bucket S30

Paires de formats prises en charge

Conversions courantes. Le format est détecté automatiquement à partir du fichier, mais vous pouvez aussi définir input_format explicitement.

CatégorieFormats d’entréeFormats de sortie
Documentspdf, docx, doc, odt, rtf, txt, htmlpdf, docx, odt, rtf, txt, html
Tableursxlsx, xls, ods, csvxlsx, ods, csv, pdf
Présentationspptx, ppt, odppptx, odp, pdf
Imagesjpg, png, gif, bmp, tiff, webp, svg, heicjpg, png, gif, bmp, tiff, webp
Vidéomp4, avi, mov, mkv, webmmp4, avi, mov, mkv, webm, gif
Audiomp3, wav, ogg, flac, aac, m4amp3, wav, ogg, flac, aac

Options de qualité et de traitement

Transmettez-les dans l’objet options d’une tâche de conversion.

qualityinteger

Qualité de sortie pour les formats avec perte (1 à 100). Par défaut : 85.

densityinteger

Résolution en DPI pour la conversion de documents en images. Par défaut : 150.

widthinteger

Redimensionne à cette largeur en pixels. Conserve les proportions si height est omis.

heightinteger

Redimensionne à cette hauteur en pixels. Conserve les proportions si width est omis.

pagesstring

Plage de pages pour les opérations sur documents. P. ex. 1-5, 1,3,5, all.

Exemple : PNG haute qualité à 300 DPI
{
  "convert-hq": {
    "operation": "convert",
    "input": ["import-file"],
    "output_format": "png",
    "options": {
      "density": 300,
      "quality": 95
    }
  }
}

Webhooks

Enregistrez des URL de webhook pour être notifié en temps réel lorsque des jobs ou des tâches changent de statut. Toutes les charges utiles sont signées en HMAC-SHA256 pour que vous puissiez vérifier qu’elles proviennent bien de ConvertFly.

Créer un webhook

POST/api/v1/webhooks
urlstringobligatoire

L’URL HTTPS qui recevra les événements du webhook.

eventsstring[]obligatoire

Types d’événements auxquels s’abonner.

curl
curl -X POST https://convertfly.io/api/v1/webhooks \
  -H "Authorization: Bearer cvfly_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-app.com/webhooks/convertfly",
    "events": ["job.finished", "job.failed"]
  }'
Réponse (201 Created)
{
  "data": {
    "id": "wh_Abc123...",
    "url": "https://your-app.com/webhooks/convertfly",
    "events": ["job.finished", "job.failed"],
    "signing_secret": "whsec_9f8e7d6c5b4a...",
    "created_at": "2026-04-03T10:30:00Z"
  }
}

Lister les webhooks

GET/api/v1/webhooks

Supprimer un webhook

DELETE/api/v1/webhooks/:id

Types d’événements

ÉvénementDéclencheur
job.finishedToutes les tâches du job se sont terminées avec succès
job.failedUne ou plusieurs tâches ont échoué, le job est à l’état ERROR
task.finishedUne tâche s’est terminée
task.failedUne tâche a échoué

Charge utile du webhook

POST vers votre URL de webhook
{
  "event": "job.finished",
  "timestamp": "2026-04-03T10:31:15Z",
  "data": {
    "id": "job_7kX9mP2qR",
    "status": "finished",
    "tasks": { ... }
  }
}

Vérifier les signatures

Chaque requête de webhook comporte deux en-têtes : X-Webhook-Signature et X-Webhook-Timestamp. Vérifiez-les pour vous assurer que la charge utile a bien été envoyée par ConvertFly et n’a pas été altérée.

Node.js
import crypto from "crypto";

function verifyWebhook(rawBody, signature, timestamp, secret) {
  const signedContent = timestamp + "." + rawBody;
  const expected = "v1=" + crypto
    .createHmac("sha256", secret)
    .update(signedContent)
    .digest("hex");

  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature)
  );
}
Python
import hmac, hashlib

def verify_webhook(raw_body: bytes, signature: str, timestamp: str, secret: str) -> bool:
    signed_content = f"{timestamp}.{raw_body.decode()}"
    expected = "v1=" + hmac.new(
        secret.encode(), signed_content.encode(), hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(expected, signature)

Clés API

Gérez vos clés API par programmation. Vous pouvez aussi les gérer depuis le tableau de bord.

Créer une clé API

POST/api/v1/api-keys
namestringobligatoire

Un nom descriptif pour la clé.

scopesstring[]

Autorisations à accorder. Par défaut : ["*"] (accès complet).

Réponse (201 Created)
{
  "data": {
    "id": "key_Xk9m...",
    "name": "production-server",
    "key": "cvfly_sk_live_abc123def456...",
    "scopes": ["*"],
    "created_at": "2026-04-03T10:30:00Z"
  }
}

Important : la clé API complète ne s’affiche qu’une seule fois, au moment de sa création. Conservez-la en lieu sûr : vous ne pourrez plus la récupérer.

Lister les clés API

GET/api/v1/api-keys

Révoquer une clé API

DELETE/api/v1/api-keys/:id

Invalide immédiatement la clé. Toute requête qui l’utilise renverra 401.

Limitation du débit

Le débit des requêtes est limité par clé API afin de garantir un usage équitable. Au-delà de la limite, les requêtes renvoient 429 Too Many Requests.

Limite par défaut

Chaque clé API autorise 100 requêtes par heure. La limite et la fenêtre en vigueur pour une clé sont renvoyées dans rate_limit et rate_limit_window (en secondes) lorsque vous listez vos clés. Contactez-nous si votre intégration nécessite une limite plus élevée.

En-têtes de réponse

Chaque réponse à une requête effectuée avec une clé API comporte ces en-têtes :

X-RateLimit-Limiten-tête

Nombre maximal de requêtes autorisées dans la fenêtre en cours.

X-RateLimit-Remainingen-tête

Requêtes restantes dans la fenêtre en cours.

X-RateLimit-Reseten-tête

Horodatage Unix de la réinitialisation de la fenêtre.

Retry-Afteren-tête

Nombre de secondes à attendre avant de réessayer (uniquement sur les réponses 429).

Exemple de réponse 429
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1743681600
Retry-After: 3600

{
  "code": "RATE_LIMIT_EXCEEDED",
  "message": "Rate limit exceeded. 100 requests per 3600s allowed."
}

Erreurs

ConvertFly utilise les codes de statut HTTP habituels. Toutes les réponses d’erreur suivent un format cohérent, avec un code lisible par machine et un message lisible par un humain.

Format des réponses d’erreur

JSON
{
  "code": "INVALID_DATA",
  "message": "Missing required field: output_format",
  "details": {
    "field": "output_format",
    "reason": "required"
  }
}

Codes d’erreur

CodeHTTPDescription
INVALID_DATA400Corps de requête ou paramètres invalides
UNAUTHENTICATED401Clé API absente ou invalide
FORBIDDEN403La clé API ne dispose pas de la portée requise pour cette opération
NOT_FOUND404La ressource n’existe pas ou a été supprimée
CONFLICT409La ressource existe déjà ou l’opération entre en conflit avec l’état actuel
PAYLOAD_TOO_LARGE413Le corps de la requête dépasse la taille maximale autorisée
UNSUPPORTED_FORMAT422La conversion demandée n’est pas prise en charge
RATE_LIMIT_EXCEEDED429Limite de débit dépassée, voir Limitation du débit
INSUFFICIENT_CREDITS402Crédits insuffisants pour effectuer l’opération
SERVER_ERROR500Erreur interne du serveur : réessayez ou contactez l’assistance
UNAVAILABLE503Service temporairement indisponible : réessayez dans un instant

Gérer les erreurs

JavaScript
const res = await fetch("https://convertfly.io/api/v1/jobs", {
  method: "POST",
  headers: {
    "Authorization": "Bearer cvfly_sk_...",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ tasks: { /* ... */ } }),
});

if (!res.ok) {
  const error = await res.json();
  console.error(`[${error.code}] ${error.message}`);
  // "[INVALID_DATA] Missing required field: output_format"
  return;
}

const { data: job } = await res.json();

Crédits

Chaque opération coûte un certain nombre de crédits. Les opérations d’import et d’export sont gratuites. Votre solde restant figure dans chaque réponse de l’API, dans l’en-tête X-Credits-Remaining.

Coût en crédits par type de conversion

OpérationCoûtExemples
Import / ExportGratuitimport/url, import/upload, export/url, export/s3
Conversion d’image1 créditjpg en png, webp en gif, heic en jpg
Conversion audio1 créditmp3 en wav, flac en aac
Document en PDF1 crédittxt en pdf, html en pdf, md en pdf
Office en PDF2 créditsdocx en pdf, pptx en pdf, xlsx en pdf
Conversion vidéo2 créditsmp4 en webm, mov en mp4
PDF en Office4 créditspdf en docx, pdf en pptx
Optimisation1 créditCompresser des images, des PDF
Miniature1 créditGénérer une image d’aperçu
Fusion1 créditCombiner plusieurs PDF
Filigrane1 créditAjouter une surimpression texte ou image
Diviser PDF1 créditExtraire les pages 1-3, 7 ou un fichier par page
Pivoter PDF1 créditTourner toutes les pages ou une sélection
Redimensionner une image1 crédit1200 px de large, 50 pour cent
Créer un GIF2 créditsExtrait mp4 en gif, même prix qu’une conversion vidéo
Capture de site web1 créditRendre une URL en PDF ou en image
OCR3 créditsRendre un PDF scanné interrogeable
Métadonnées1 créditExtraire les informations d’un fichier

Consulter votre solde

Chaque réponse de l’API comporte l’en-tête X-Credits-Remaining indiquant votre solde actuel.

En-têtes de réponse
HTTP/1.1 201 Created
Content-Type: application/json
X-Credits-Remaining: 9847
X-Credits-Used: 2

Lorsque votre solde est insuffisant pour exécuter un job, l’API renvoie 402 avec le code d’erreur INSUFFICIENT_CREDITS. Rechargez vos crédits depuis votre espace de facturation.

Bac à sable

Les clés de bac à sable vous permettent de développer et de tester une intégration de bout en bout sans dépenser de crédits. Créez une clé avec "sandbox": true ; elle commence par le préfixe cf_test_ au lieu de cvfly_sk_. Tout fonctionne comme en production, à trois différences près.

CréditsJamais débités. Votre solde reste inchangé.
Taille des fichiersLes fichiers d’entrée sont limités à 5 Mo.
SortieLes images, vidéos et PDF portent un filigrane « ConvertFly SANDBOX ».
Créer une clé de bac à sable
curl -X POST https://convertfly.io/api/v1/api-keys \
  -H "Authorization: Bearer YOUR_LIVE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Sandbox", "sandbox": true}'

# Response includes: "key": "cf_test_...", "is_sandbox": true

Prêt à vous lancer ?

Créez votre compte gratuit et testez l’API avec une clé de bac à sable, sans frais.

Vos données

Pas de publicité ni de réseau publicitaire, donc rien à refuser. Voici ce que nous utilisons.

Vos fichiers

Stockés chiffrés et supprimés 24 heures après l’envoi.

Cookies indispensables

Toujours actifs
Sert àNomDurée
Retenir votre langueNEXT_LOCALEJusqu’à la fermeture du navigateur
Compter votre quota gratuitcf_free1 an
Garder votre connexionauthjs.*30 jours, si vous avez un compte

Plausible, hébergé par Dizzus, sans cookie. Nous voyons des totaux, pas des personnes.

Prestataires : Stripe pour les paiements, Cloudflare pour le DNS et la protection contre les robots. Politique de confidentialité