Compose an HTTP request step by step — path variables such as {userId}, query parameters,
headers, JSON / form bodies and authentication — and generate ready-to-run code for
cURL, Node.js fetch, Python requests or PowerShell.
This tool is for designing and generating; to actually send a request and inspect the live response, hand the
request over with the Test request → button (opens the
REST API Client / Tester), or convert pasted cURL with the
cURL Command Converter.
Everything is assembled locally in your browser. No request is ever sent from this page.
Path Parameters ({name} tokens in the URL above)
Query Parameters
Headers
Body
Authorization
Live cURL preview — updates as you type:
cURLNode.js fetchPython requestsPowerShell
Tips: wrap a URL segment in curly braces ({userId}) to manage it as a path parameter; generated code is refreshed on every edit.
GET/HEAD requests ignore a body. Generated file uploads use @file style cURL or placeholders in other languages — attach real files in your own code.
Cross-origin sending is covered by the REST API Client (respect the server’s CORS policy); to reverse an existing command use the
cURL Command Converter.
HTTP methods explained
When you pick a method, the generated cURL / Node / Python / PowerShell code changes to match. Here is what each verb means for the request you are building:
GET — Retrieve a representation of a resource. It should not change server state, and the generated request normally has no body. Use GET for reads, searches and list endpoints.
POST — Submit data to create a new resource or trigger an action. The body becomes the payload in generated code (--data-raw in cURL, a body argument in Node/Python, etc.). POST is not idempotent: sending it twice may create two resources.
PUT — Replace an existing resource completely. Send the full object in the body; omitted fields may be treated as blank. Generated code sends the whole body to the exact URL.
PATCH — Update only the fields you include. The body carries a partial change set, so generated requests are smaller than PUT when you are editing just one or two values.
DELETE — Remove the resource at the URL. It is idempotent and usually has no body, so generated code is a simple delete call with headers only.
HEAD — Ask for headers only, with no response body. Generated code looks like a GET but returns metadata such as Content-Length, Last-Modified or Content-Type, saving bandwidth.
OPTIONS — Discover what the server allows for a URL, or simulate a CORS preflight. The response headers (for example Access-Control-Allow-Methods) show permitted verbs. OPTIONS normally has no request body.
Easy to mix up:HEAD vs GET — generated requests are similar, but HEAD returns no body. PUT vs PATCH — PUT rewrites the whole resource; PATCH changes only the fields you provide.
🔷 API Tools
Test and build HTTP & WebSocket requests, convert cURL, browse OpenAPI specs.