Build a cURL command from a form: pick a method, add headers, set Bearer / Basic / API-key auth, attach a body, toggle flags, and copy the shell-ready command.
Memorising the exact flag for a multipart upload or the quoting rule for a JSON body in a shell is the kind of thing that breaks your flow. This builder takes the opposite approach: fill in a form with method, URL, headers, auth, body and flags, and it assembles the cURL command for you, ready to paste into a terminal or a CI script.
Authentication is handled automatically. Pick Bearer and type a token, and the tool emits -H ‘Authorization: Bearer …’. Pick Basic and type user:pass, and it Base64-encodes the pair for you, no separate base64 pipe needed. Pick API key and the header goes out as X-Api-Key. No credentials ever leave the browser; the command is built from form state alone.
The page loads with a POST to https://api.example.com/v1/users already filled in. The body reads {"name":"Ada Lovelace","email":"ada@example.com"} and the auth is a Bearer token (sk-test-1234567890abcdef). Two headers are set: Content-Type: application/json and Accept: application/json. The -s flag (silent) is toggled on. Toggle Multi-line off and the command collapses to one line; leave it on and each argument sits on its own line with a trailing backslash. Press Load Sample to cycle through a GitHub API GET, a PUT with Basic auth, and a DELETE with an API-key header.
Authorization header by hand while also using the auth section, the form-generated header wins and the manual one is dropped to avoid duplicates.user:pass to Base64 internally. You never see the encoded string in the form, only in the output.The URL is wrapped in single quotes so query parameters with & do not get interpreted by the shell. The body is passed with -d and is not quoted, matching the most common terminal usage. If your JSON contains single quotes, switch to the multi-line view and add quotes manually. Basic-auth encoding uses btoa, which covers the full Latin-1 range. If the credentials contain characters outside Latin-1 (emoji, CJK), the tool falls back to raw output so you can encode them yourself.
URLs that lack a scheme trigger the note “Tip: URLs without a scheme default to HTTPS in curl. Consider prefixing with https://.” The builder does not block the request, but it does remind you that curl treats a bare hostname as an HTTP URL on some systems.
The builder covers the 90% case: a single request with headers, auth, a body and the common flags. It does not emit --data-raw @file, --form for multipart uploads, --config to read from a file, or --resolve for DNS overrides. For those, the output here is a starting point; copy it, then add the advanced flag by hand.
Request
Headers
Authentication
Request Body
Passed with -d. Empty body is omitted from the command.
Common Flags