Request tooling

HTTP Request Header Builder

Pick a method, add a URL, headers and a body, and get back the exact same request written three ways: raw HTTP, a fetch() snippet and a curl command.

Headers

Body

Raw HTTP request

fetch() snippet

curl command

Nothing here is sent over the network — only text is generated, locally, in your browser.

📝

Three formats at once

Raw HTTP, fetch() and curl update together as you edit the method, URL, headers or body.

Datalist suggestions

Common header names like Content-Type and Authorization autocomplete as you type.

🔒

Nothing is sent

This is a pure text generator — no request ever leaves your browser.

How to use the HTTP request header builder

Build the shape of a request once, then copy it in whichever format your next tool needs.

  1. Choose a method and URLPick GET, POST or another verb, and enter the endpoint you are targeting.
  2. Add headers and a bodyAdd as many header rows as you need, and fill in a body for methods that support one.
  3. Copy the format you needGrab the raw HTTP text, the fetch() snippet, or the curl command with one click.

Why the same request looks different in three places

A raw HTTP request, a fetch() call and a curl command all describe the exact same thing on the wire, but each has its own syntax for headers, methods and bodies. Copying between them by hand is a common source of typos — a missing colon in a header, a forgotten -H flag, or a body that never gets stringified. This tool keeps one source of truth and regenerates all three representations together.

Raw HTTP

The literal bytes a client sends: a request line, headers, a blank line, then the body. Useful for documentation or debugging with netcat.

fetch()

The standard browser and Node.js API for making requests from JavaScript, using a plain headers object and a body string.

curl

The universal command-line HTTP client. Every -H flag maps to one header, and --data-raw carries the body untouched.

Why the body field is conditional

GET, HEAD and DELETE requests are conventionally bodyless, so the field hides itself to match real-world server expectations.

HTTP request header builder FAQ

Answers about how the generated output works.

Does this tool actually send the request?

No. It only generates text: the raw HTTP request, a fetch() snippet and a curl command. Nothing is sent over the network, so you can safely build requests containing real tokens or secrets.

Why is the body field only shown for some methods?

GET, HEAD and DELETE conventionally do not carry a request body, so the body textarea is hidden for those methods to match how most servers and HTTP libraries expect requests to look. Switch to POST, PUT or PATCH to add one.

What goes into the raw HTTP request text?

The request line (method, path and HTTP/1.1), every header you added, a Host header derived from your URL, a blank line, and then your body if the method supports one — the same structure a server would actually receive on the wire.

Can I add any header name I want?

Yes. The header name field suggests common headers like Content-Type and Authorization through a datalist, but you can type any custom header name and value.

Is my data saved or sent anywhere?

No. Everything is generated locally in your browser as you type. Nothing is stored or transmitted.