cURL Command Generator

Build a request visually, get cURL, fetch, Python, and Node snippets instantly

Request

Query parameters

Headers

Authentication

Body

Nothing you build here is ever uploaded, everything is generated locally in your browser.

About this tool

Building a correct cURL command by hand means remembering flag order, shell-quoting rules, and how auth headers get formatted, one missed quote and the whole request silently fails. This tool builds the request from a form (method, URL, query params, headers, body, auth) and renders it as a ready-to-run cURL command, and switching the output tab regenerates the exact same request as JavaScript fetch, Python requests, or Node axios code, so you can move between testing in a terminal and testing in application code without retyping anything.

Why does the generated command wrap every value in single quotes?

Single-quoting in a POSIX shell prevents the shell from expanding variables, glob patterns, or special characters inside your header values, URLs, or JSON body before cURL ever sees them. Without it, something like a $ in a token or an unescaped & in a URL can break the command or get silently swallowed by the shell.

What's the difference between Bearer, Basic, and API key auth here?

Bearer sends a single token in an Authorization: Bearer <token> header, common for OAuth2 and JWT-based APIs. Basic auth sends a username:password pair, and the generator handles the base64 encoding step differently per output format, cURL's -u flag encodes it for you, but the fetch snippet has to call btoa() explicitly. API key auth just sends your chosen header name and value as-is, which is how many REST APIs (like this one's own key-based services) expect credentials.

Is anything I type here, like API keys, sent anywhere?

No. The form fields are only used to assemble the text of the command or code snippet shown in the output box; nothing is transmitted to any server, and no actual HTTP request is ever made from this page. It's purely a text generator.