Collez une commande cURL, vérifiez la requête normalisée (méthode, URL, en-têtes, corps) puis copiez le code cURL, fetch ou axios. Ce que la page ne peut pas reproduire est signalé avant la copie.
Fonctionne localement dans votre navigateurPrise en charge commune -X, -H, -d, --url, -u, et -b choix. Il lit uniquement la commande que vous collez.
Import a cURL command or complete the request fields.
Import a cURL command or complete the request fields.
Import a cURL command or complete the request fields.
La conversion conserve la méthode, URL, les en-têtes et le corps que vous saisissez. Vérifiez les informations d'identification, les cookies, les redirections, la gestion des réponses et les URL spécifiques à l'environnement avant d'ajouter du code à votre application.
Collez une commande cURL : la page remplit les champs de la requête au-dessus des zones de code — méthode, URL, un en-tête par ligne et le corps. Les trois zones affichent ensuite la même requête en commande cURL, en code fetch du navigateur et en appel axios, pour faire passer dans votre client JavaScript une commande déjà testée en terminal.
L’analyse, l’encodage et la génération du code s’exécutent dans cet onglet. La page n’envoie pas la requête et n’appelle pas l’URL : aucune requête ne quitte le navigateur pendant le travail de l’outil. Une commande collée contient souvent un en-tête Authorization, un cookie de session ou une clé d’API : traitez-la comme un secret — elle reste dans la page, mais reste aussi lisible dans les champs et dans le code généré.
L’import lit les options qui définissent la requête : -X/--request pour la méthode, -H/--header, -d/--data avec ses variantes -raw, -binary et -ascii, --data-urlencode, --json, --url, -u/--user pour le HTTP Basic, -b/--cookie, -A/--user-agent, -e/--referer et -I/--head. Les options courtes acceptent la valeur collée, donc -XPOST ou -H'Accept: text/html' fonctionnent, et les drapeaux peuvent être groupés, comme -sS ou -kL. Plusieurs -d sont reliés par & comme dans curl, et --data-urlencode encode en pourcentage tout ce qui sort du jeu non réservé : --data-urlencode 'q=a b&c' donne le corps q=a%20b%26c.
Les drapeaux qui ne concernent que l’exécution de curl — -o/--output, -m/--max-time, --retry, -L, -k, -s, --compressed, --http2 et similaires — sont acceptés puis ignorés, faute d’équivalent dans le code généré. Tout ce qui modifierait la requête d’une manière inexprimable est signalé au lieu d’être écarté en silence : -F/--form, -T/--upload-file, -G/--get, -x/--proxy, les certificats client, --netrc, les valeurs @file de -d, -H et -b, un en-tête sans deux-points et les options inconnues apparaissent dans la liste « Ignoré : ».
La zone cURL est assemblée à partir des champs, jamais recopiée : une option par ligne avec --request, --url, --header pour chaque en-tête et --data pour le corps, chaque valeur entre guillemets simples. La zone fetch produit fetch(url, {…}) avec la méthode, un objet d’en-têtes et un corps ; si un en-tête Content-Type contient « json », le corps est écrit en JSON.stringify({…}) pour garder sa forme, sinon en chaîne JSON. La zone axios suit les mêmes règles avec méthode en minuscules, url, headers et data, ce qui permet de comparer les deux fragments JavaScript ligne à ligne.
La méthode vient de la commande : GET par défaut, POST dès qu’un corps est présent, et -I impose HEAD sauf si un -X explicite le remplace. Les noms d’en-tête identiques fusionnent en une seule clé dans l’objet des zones fetch et axios, alors que la zone cURL garde chaque ligne. La validation d’URL accepte ce qu’un navigateur peut appeler : une URL absolue avec schéma. Si le schéma n’est pas http:// ou https://, les fragments sont tout de même générés, mais la ligne d’état prévient que seul cURL pourra exécuter la requête.
La conversion est à sens unique. Une commande cURL (ou une requête saisie à la main) devient du code cURL, fetch et axios ; la page ne sait pas lire du code fetch ou axios pour en refaire une commande cURL. Elle n’exécute jamais la requête non plus : rien ici ne dit si un point d’accès répond, quel code de statut revient ni si un jeton est encore valide.
Certaines parties d’une commande ne passent pas dans un fragment de navigateur. curl sait lire un corps, un en-tête ou un cookie dans un fichier, construire un formulaire multipart, passer par un proxy ou présenter un certificat client ; une page n’accède ni à votre système de fichiers ni à vos réglages de proxy, et un corps multipart écrit à la main aurait besoin d’une boundary. Ces options sont listées au lieu d’être devinées : le code généré ne garde que ce qui est reproductible et le reste demeure dans votre terminal. Pour ces parties, exécutez curl et utilisez cette page pour ce qui se transpose proprement.