HTTP Request Builder

Send HTTP requests directly from the browser and inspect responses

Convert to another language
⚠ Browser requests are subject to CORS. Cross-origin APIs without proper CORS headers will fail. For unrestricted requests, use curl or a backend proxy.

About this tool

The HTTP Request Builder lets you construct and fire HTTP requests from your browser — set the method, URL, custom headers, and request body, then inspect the response status, headers, and body. It is a lightweight alternative to Postman for quick API testing without leaving the browser.

When to use it

  • Testing REST API endpoints during development without installing desktop tools
  • Quickly verifying authentication headers and response formats
  • Debugging webhook payloads by sending POST requests with custom bodies
  • Checking CORS headers and response codes from public APIs
  • Importing an existing Postman collection to quickly test a request without opening Postman
  • Copying the current request as a curl command to run from a terminal or paste into a bug report

Tips

  • Browser requests are subject to CORS — cross-origin APIs that don't set Access-Control-Allow-Origin will fail. Use a CORS proxy or test same-origin APIs.
  • Set Content-Type: application/json when sending JSON bodies so the server parses the body correctly.
  • For APIs requiring Bearer token auth, add an Authorization header with value: Bearer <your-token>.
  • Export any request as a Postman collection to share with teammates who use Postman
  • Use 'Copy as cURL' then 'Convert to another language' to get the same request as ready-to-run JavaScript, Python, PHP, or Go code.

Frequently asked questions

Why do I get a CORS error even though the API works in my app?

CORS (Cross-Origin Resource Sharing) errors occur when a browser blocks a request to a different domain that hasn't explicitly allowed your origin. Your app works because it runs on the same domain as the API, or the API is configured to allow your app's domain. Browser-based testing tools run from a different origin (the tool's URL), which the API may not allowlist. Native HTTP clients like curl and Postman bypass CORS entirely because they're not browsers.

What is the difference between GET, POST, PUT, PATCH, and DELETE?

GET retrieves data — idempotent, no body. POST creates a new resource — non-idempotent (calling twice creates two records). PUT replaces a resource completely — idempotent. PATCH partially updates a resource — may or may not be idempotent depending on implementation. DELETE removes a resource — idempotent. HEAD is like GET but returns only headers, no body.

How do I send a JSON body in a POST request?

Set the method to POST, add a header Content-Type: application/json, and paste your JSON into the body field. The Content-Type header tells the server how to parse the body. Without it, many APIs return a 400 Bad Request or silently ignore the body.

What is the difference between query parameters and a request body?

Query parameters are appended to the URL (e.g. /api/users?page=2&limit=10) and are visible in logs and browser history — use for filtering and pagination. The request body carries data in the message payload, not the URL — use for creating/updating resources and for sensitive data that shouldn't appear in logs. GET requests conventionally have no body; POST/PUT/PATCH use the body.

Related tools

🥷 ToolNinja