⇄
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 calculadoraPage 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 →
Cómo funcionaPage 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 y detallesPage 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.

Sobre esta herramienta

¿Qué es esta herramienta?

Convierte comandos cURL a código JavaScript Fetch, Axios o Python requests online gratis. Maneja cadenas entrecomilladas, caracteres escapados, cabeceras repetidas, cuerpos -d unidos, subidas -F, autenticación, redirecciones y la opción insecure. Vista previa en vivo de la petición analizada y salida lista para copiar. 100% en el navegador.

Fetch / Axios / PythonShlex-safe parserLive preview100% local

¿Por qué convertir cURL en absoluto?

La documentación de las APIs habla cURL; tu aplicación habla fetch, Axios o Python requests. Reescribir a mano un comando complejo —cabeceras, auth, cuerpos multipart— es donde viven los errores de transcripción. Pegar el comando y obtener código correcto e idiomático en tu cliente HTTP real elimina toda esa clase de errores de copiado.

Analiza como una shell, ejecuta como un navegador

El tokenizador refleja las reglas de una shell de Unix: las cadenas entre comillas simples son literales, las de comillas dobles respetan los escapes con barra invertida, y una barra invertida final une líneas continuadas. La petición analizada —método, URL, cabeceras, cuerpo, auth— se previsualiza en vivo antes de la generación, y toda la canalización se ejecuta en tu navegador para que los comandos con credenciales nunca salgan de la página.

Leer el código generado como lo haría un revisor

El código fetch generado es un punto de partida, y una pasada rápida de revisión lo deja listo para producción. Primero, las cabeceras: las comillas simples de cURL desaparecen en JavaScript, así que las cadenas que contienen comillas simples necesitan escapado; el generador emite comillas dobles para esos casos, y conviene verificarlo cuando el cuerpo contiene ambos tipos de comillas. Segundo, el manejo de errores: fetch resuelve con éxito ante HTTP 404 y 500, a diferencia de axios, así que una implementación real necesita una comprobación de res.ok que el one-liner no incluye. Tercero, las credenciales: el flag -b de cookies de cURL se convierte en una cabecera Cookie, pero en los navegadores el cookie jar lo gestiona la opción credential; las peticiones del mismo origen suelen querer credentials: include en lugar de una cabecera construida a mano. Las traducciones a axios y a Python tienen la misma forma: correctas como esqueleto, revisadas antes de enviar.

Preguntas frecuentes

¿Qué flags de cURL se admiten?

El analizador lee -X (método), -H (cabeceras repetibles), -d (varios cuerpos se unen con &), -F (multipart con detección de @file), -u (auth básica), --url, -L (seguir redirecciones), -k (inseguro), -I (HEAD), -A (user agent), -e (referer) y -b (cookies). Los flags no admitidos se reportan en lugar de descartarse en silencio.

¿Cómo se manejan las comillas y los escapes?

Los comandos se tokenizan con un analizador estilo shlex: las comillas simples protegen todo lo de dentro, las dobles permiten escapes con barra invertida, y las continuaciones de línea con barra invertida unen comandos de varias líneas. Esto refleja cómo una shell de Unix analizaría el mismo comando.

¿Se envía mi token de API a algún sitio?

No. El análisis y la generación de código se ejecutan por completo en tu navegador: un comando cURL que contenga una cabecera Authorization nunca sale de la página. Precisamente por eso existe la herramienta: pegar cURL con credenciales en sitios web aleatorios es un vector de fuga real.

¿Por qué mi código fetch se ve distinto del cURL en estructura?

cURL expresa una petición como flags de línea de comandos mientras que fetch la expresa como un objeto de opciones: el generador reordena en lugar de traducir palabra por palabra. Flags como -X se funden en method, -H en headers, -d en body y -u en una cabecera Authorization. La petición semántica es idéntica aunque la disposición no lo sea.

¿Puede manejar subidas de archivos multipart?

Sí para la sintaxis de formularios -F de cURL: el generador mapea cada campo -F a FormData y descarta la cabecera Content-Type manual, porque el navegador debe establecer el multipart boundary por sí mismo. Las referencias binarias como @photo.jpg se convierten en una nota en la salida: adjunta un File o Blob real desde tu código en ese campo.

Herramientas relacionadas

Compartir:𝕏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.