What are the parts of an HTTP request?
An HTTP request is a method (GET, POST, PUT, PATCH, DELETE …) and a target URL — path plus query parameters — followed by headers and, for methods that carry data, a body whose format the Content-Type header names. RFC 9110 defines the methods and their semantics: GET and HEAD are safe, PUT and DELETE are idempotent, POST is neither, which is what decides whether a request may be retried. A cURL command line is the same request written out, and is the lingua franca for reproducing an API call in a bug report.
Read the guide: What is API Testing? How to Test a REST API
How to use API Payload Builder
- Add fields with their paths and values (or paste a base JSON first).
- Choose automatic typing or strings-only, and the output format.
- Copy the body and the Content-Type header into your request.
API Payload Builder features
- Field editor with dotted paths (customer.address.city) and array indices (items[0].sku, tags[])
- Automatic value typing: numbers, booleans, null, JSON arrays and objects — or force strings
- Deep merge onto an optional base JSON document
- Output as pretty or minified JSON, application/x-www-form-urlencoded or multipart/form-data with the matching Content-Type
- Structure tree and payload statistics (size, fields, depth, arrays, nulls)
- Guards against precision loss for very large integers
API Payload Builder example
Build an order payload
Input:
customer.name = Layla Hassan · items[0].sku = KB-100 · items[0].qty = 2 · notify = true · coupon = nullOutput:
{
"customer": { "name": "Layla Hassan" },
"items": [{ "sku": "KB-100", "qty": 2 }],
"notify": true,
"coupon": null
}
Content-Type: application/jsonFrequently asked questions about API Payload Builder
How do I create nested objects and arrays?
Use dotted paths for objects (customer.address.city) and indices or [] for arrays (items[0].sku, tags[]). The tool builds the structure for you and shows it as a tree.
How are value types decided?
In automatic mode, 42 becomes a number, true/false booleans, null a JSON null, and anything starting with [ or { that parses is embedded as JSON. Wrap a value in double quotes to force a string, or switch to "Everything as strings".
What is the "Base JSON" field for?
Paste an existing payload (from docs or a previous request) and the fields you add are deep-merged on top of it, so you only edit what changes.
What do the form and multipart outputs look like?
application/x-www-form-urlencoded flattens nested values with bracket notation; multipart/form-data produces the boundary-delimited body with one part per field (nested values as JSON parts). Both outputs come with the matching Content-Type header.
References
- RFC 9110: HTTP SemanticsThe meaning of HTTP methods, header fields, status codes and content negotiation, independent of the wire version.
- HTTP headers — MDNReference for request and response headers: syntax, directives and browser support.
- RFC 7578: Returning Values from Forms: multipart/form-dataThe multipart/form-data encoding used for file uploads and mixed form submissions.