⇄
Developer/cURL to Code Converter

cURL to Code Converter

Turn any cURL command into fetch, axios, or Python requests code. Parsed locally — safe for real tokens.

100% LOCALFetch / Axios / PythonShlex-safe parserLive preview100% local
Saved Configurations· Auto-save on
▾
La calculatricePage 1

Paste a cURL command to translate it into fetch, axios, or Python code

Data Source & Legal Disclaimer
Effective: 2026Last updated: 2026-09-07Update: Manual review
Sources: Parsing happens locally — MDN fetch API

cURL parsing and code generation run entirely in your browser. Your command (including any tokens!) is never uploaded.

See all data sources & update policy →
Comment ça marchePage 2

How the parser reads a cURL command — illustrated

A shell tokenizer first splits the command, honoring single quotes (no escapes inside), double quotes (\\" \\$ escapes), and backslash continuations. Then a flag pass maps each option: -H becomes a header pair, repeated -d flags join with & exactly as cURL sends them, -F flags signal multipart FormData, -u becomes HTTP Basic auth, and the method defaults to POST when a body exists, GET otherwise. Output is copy-paste runnable — but review it: secrets in the command end up in the code.

Tokenize (shell rules) → map flags → emit fetch / axios / requests
Shell tokenizing'…' literal · "…" escapes\\ line continuationFlag mapping-H → headers · -d → body-F → FormData · -u → authmethod: POST if bodyfetch()axiosrequestsduplicated -d flags join with & — matching what cURL actually sends on the wire

Quote handling follows real shell semantics: single quotes are literal, double quotes allow escapes, backslash continues lines.

Documenting an API call — Kai's integration notes

Kai copies a working cURL from a Stripe-style dashboard and needs it inside his Next.js route handler.

  1. Paste the command:The multi-line command (backslash continuations) parses to POST, two headers, and a JSON body — nothing to configure
  2. Pick fetch:The emitted code is a drop-in await fetch(url, { method, headers, body }) for his route handler
  3. Check the secrets:The Authorization bearer token from the command appears in the code — expected, since he pasted it locally; the privacy badge reminds him nothing was uploaded
  4. Swap targets:For the Python docs he re-exports the same parse as requests code — one parse, three targets
FAQ et détailsPage 3

Convert cURL to JavaScript Fetch, Axios, or Python requests online free. Everything runs locally; nothing is uploaded.

FreeToolHub cURL to Fetch Converter is a free browser-based tool — convert cURL to JavaScript Fetch, Axios, or Python requests online free. No signup, no upload; everything runs locally in your browser.

À propos de cet outil

Qu'est-ce que cet outil ?

Convertissez des commandes cURL en code JavaScript Fetch, Axios ou Python requests gratuitement en ligne. Gère les chaînes entre guillemets, les caractères d'échappement, les en-têtes répétés, les corps -d joints, les téléversements de fichiers -F, l'authentification, les redirections et les indicateurs non sécurisés. Aperçu en direct de la requête analysée et sortie prête à copier. 100 % basé sur le navigateur.

Fetch / Axios / PythonShlex-safe parserLive preview100% local

Pourquoi convertir du cURL

La documentation d'API parle en cURL ; votre application parle Fetch, Axios ou Python requests. Retaper une commande complexe - en-têtes, authentification, corps multipart - est là où se trouvent les erreurs de transcription. Coller la commande et obtenir un code correct et idiomatique dans votre client HTTP réel supprime toute la classe d'erreurs de copie.

Analyse comme un shell, exécution comme un navigateur

L'analyseur de jetons suit les règles du shell Unix : les chaînes entre guillemets simples sont littérales, les chaînes entre guillemets doubles respectent les échappements avec antislash, et les antislashes en fin de ligne joignent les lignes continuées. La requête analysée - méthode, URL, en-têtes, corps, authentification - est prévisualisée avant génération, et tout le pipeline s'exécute dans votre navigateur afin que les commandes avec identifiants ne quittent jamais la page.

Lecture du code généré comme un relecteur

Le code fetch généré est un point de départ, et une rapide passe de relecture le rend prêt pour la production. Premièrement, les en-têtes : les guillemets simples de cURL disparaissent en JavaScript, donc les chaînes contenant des guillemets simples nécessitent un échappement — le générateur émet des chaînes entre guillemets doubles pour celles-ci, ce qui mérite une double vérification lorsque le corps contient les deux types de guillemets. Deuxièmement, la gestion des erreurs : fetch résout avec succès sur les HTTP 404 et 500, contrairement à axios, donc une implémentation réelle nécessite une vérification res.ok que la version mono-ligne n'inclut pas. Troisièmement, les identifiants : l'indicateur -b cookie de cURL devient un en-tête Cookie, mais dans les navigateurs, le cookie jar est géré par l'option credentials à la place — les requêtes même origine veulent généralement credentials : 'include' plutôt qu'un en-tête construit manuellement. Les traductions axios et Python ont la même forme : correctes comme squelette, à revoir avant expédition.

Questions fréquentes

Quels indicateurs cURL sont pris en charge ?

L'analyseur lit -X (méthode), -H (en-têtes répétés), -d (plusieurs corps sont joints par esperluette), -F (multipart avec détection @fichier), -u (authentification de base), --url, -L (suivre les redirections), -k (non sécurisé), -I (HEAD), -A (agent utilisateur), -e (référent) et -b (cookies). Les indicateurs non pris en charge sont signalés au lieu d'être ignorés silencieusement.

Comment les guillemets et échappements sont-ils gérés ?

Les commandes sont tokenisées avec un analyseur de style shlex : les guillemets simples protègent tout ce qu'ils contiennent, les guillemets doubles autorisent les échappements avec antislash, et les continuités de ligne avec antislash joignent les commandes multi-lignes. Cela reflète la façon dont un shell Unix analyserait la même commande.

Mon jeton d'API est-il envoyé quelque part ?

Non. L'analyse et la génération de code s'exécutent entièrement dans votre navigateur - une commande cURL contenant un en-tête Authorization ne quitte jamais la page. C'est exactement pourquoi l'outil existe : coller du cURL avec identifiants sur des sites aléatoires est un vrai vecteur de fuite.

Pourquoi mon code fetch diffère-t-il en structure du cURL ?

cURL exprime une requête comme des indicateurs en ligne de commande tandis que fetch l'exprime comme un objet options - le générateur réorganise plutôt que de traduire mot à mot. Les indicateurs comme -X fusionnent dans method, -H dans headers, -d dans body, et -u dans un en-tête Authorization. La requête sémantique est identique même lorsque la disposition ne l'est pas.

Peut-il gérer les téléversements de fichiers multipart ?

Oui pour la syntaxe de formulaire cURL -F : le générateur mappe chaque champ -F en FormData et supprime l'en-tête Content-Type manuel, car le navigateur doit définir lui-même la limite multipart. Les références de fichier binaire comme @photo.jpg deviennent une note dans la sortie - joignez un vrai File ou Blob de votre code à ce champ.

Outils connexes

Partager :𝕏inf⬆
Joke of the Day
Oct 22

What do you call a really smart cookie?

Free core, no account

Keep the Free Edition Free

No signups, no data sold. Every tool is free to use — the free tier allows 5 downloads or saves per day, and the optional Pro plan ($7/mo, $59/yr) adds unlimited downloads, batch processing, white-label exports and an ad-free experience.

☕Support me on Ko-fi— support the free tier

100% of proceeds go towards hosting & building more free tools.