Overview

The Request Builder is the heart of Request Man, allowing you to construct and send HTTP requests with full control over every aspect of the request. Whether you're testing a simple GET endpoint or configuring complex POST requests with authentication, the Request Builder has you covered.

Request Man - New Request GET https://api.example.com/users Send Params Headers Body Auth Query Parameters Key: id Value: 123 Key: status Value: active + Add Row Response 200 OK 284 ms 2.4 KB { "users": [ { "id": 123, "name": "John", "status": "active" } ], "total": 1 }

HTTP Methods

Request Man supports all standard HTTP methods:

Method Color Purpose Has Body
GET Green Retrieve data from server ❌ No
POST Orange Create new resources ✅ Yes
PUT Blue Update existing resources (full) ✅ Yes
PATCH Purple Update existing resources (partial) ✅ Yes
DELETE Red Remove resources ⚠️ Optional
HEAD Gray Get headers only (no body) ❌ No
OPTIONS Gray Check allowed methods ❌ No
GET ▼ GET POST PUT POST Selected

URL Configuration

Basic URL Input

Enter your API endpoint in the URL field. Request Man supports:

https://api.example.com/users https://api.example.com/users Recent https://api.example.com/orders Recent https://api.example.com/products Collection

Variable Substitution

Use double curly braces to insert variables:

{{baseUrl}}/api/users/{{userId}}

Variables can come from:

https:// {{baseUrl}} /users/ {{userId}} Resolves to: https://api.example.com/users/123

Query Parameters

Adding Parameters

The Params tab provides a visual interface for query parameters:

Click Params Tab

Switch to the Params tab below the URL input.

Add Key-Value Pairs

Enter parameter names and values in the table.

Params KEY VALUE DESCRIPTION id 123 User ID status active Filter by status limit 10 Results per page + Add Parameter

Enable/Disable Parameters

Use checkboxes to toggle parameters without deleting them.

Before: limit = 10 Click After: limit = 10 Parameter disabled but not deleted

Bulk Edit

Click "Bulk Edit" to enter parameters as plain text:

page=1
limit=20
sort=name
order=asc

Request Headers

Common Headers

Request Man provides auto-suggestions for common headers:

Headers KEY VALUE Content-Type application/json Authorization Accept User-Agent Authorization Bearer token...

Adding Custom Headers

Navigate to Headers Tab

Click the "Headers" tab below the URL input.

Enter Header Name and Value

Type the header name and its value in separate columns.

Enable/Disable Headers

Toggle individual headers on/off with checkboxes.

Request Headers Authorization: Bearer token123 × Content-Type: application/json × Accept: */* × + Add Header Click checkbox to toggle • Click × to delete
Tip: Headers set in the Authorization tab are automatically added and managed separately.

Authorization

The Authorization tab provides a dedicated interface for authentication. Request Man supports 7 authentication types:

Bearer Token

Simple token-based authentication

Learn More →

Basic Auth

Username and password authentication

Learn More →

API Key

API key in header or query params

Learn More →

OAuth 2.0

Modern OAuth 2.0 flows with token caching

Learn More →

OAuth 1.0

Legacy OAuth 1.0 authentication

Learn More →

Digest Auth

MD5-based digest authentication

Learn More →

AWS Signature

AWS Signature Version 4 signing

Learn More →
Authorization Type Bearer Token ▼ Bearer Token Basic Auth API Key OAuth 2.0 No Auth Token eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp...

Request Body

Body Types

Request Man supports multiple body formats:

1. None

No request body (used for GET, DELETE, HEAD, OPTIONS)

2. JSON

Raw JSON data with syntax highlighting and validation:

{
  "name": "John Doe",
  "email": "john@example.com",
  "age": 30,
  "active": true
}
Body JSON Form Data Raw { "name": "John Doe", "email": "john@example.com", "age": 30, "active": true } 1 2 3 4 5 6 ✓ Valid JSON

3. Form Data (URL Encoded)

Key-value pairs for form submissions:

Form Data KEY VALUE TYPE username john_doe Text email john@example.com Text avatar 📎 profile.jpg File + Add Field

4. Raw Text

Plain text, XML, or any other text-based format

5. Binary/File Upload

Upload files directly from your system

📎 Drag & Drop file here or click to browse 📄 document.pdf ✓ document.pdf (2.4 MB) ×

Variable Substitution in Body

Use variables in request body for dynamic data:

{
  "userId": "{{userId}}",
  "timestamp": {{$timestamp}},
  "email": "{{$randomEmail}}"
}

Pre-request Scripts

Execute JavaScript before sending the request:

// Set dynamic timestamp
rm.environment.set("timestamp", Date.now());

// Generate random token
const token = "Bearer_" + Math.random().toString(36).substring(7);
rm.environment.set("authToken", token);

// Log information
console.log("Request will be sent at:", new Date().toISOString());
Pre-request Script // Set auth token before request const token = rm.environment.get( "authToken" ); if (token) { rm.request.headers.add({ key: "Authorization" , value: `Bearer ${token}` }); } console.log( "Request will be sent" ); 1 2 3 4 5 6 7 8 9

Learn more about scripts →

Test Scripts

Validate responses with test assertions:

// Test status code
rm.test("Status is 200", function () {
    rm.expect(rm.response.code).to.equal(200);
});

// Test response body
const jsonData = rm.response.json();
rm.test("User ID exists", function () {
    rm.expect(jsonData.id).to.exist;
});

// Test response time
rm.test("Response time < 500ms", function () {
    rm.expect(rm.response.responseTime).to.be.below(500);
});
Tests // Test response status rm.test( "Status is 200" , () => { rm.response.to.have.status( 200 ); }); // Test response body rm.test( "Has user data" , () => { const json = rm.response.json(); rm.expect(json).to.have.property( "name" ); });

Learn more about testing →

Sending Requests

Configure Your Request

Set up all necessary components: URL, method, headers, auth, and body.

Click Send Button

Click the blue "Send" button in the top right.

Before Click: Send Sending: Sending... Request sent to server...

View Response

The response appears below with status code, time, and body.

Keyboard Shortcut: Press Ctrl + Enter (or Cmd + Enter on Mac) to send the request quickly!

Response Viewer

Response Tabs

1. Body Tab

View formatted response body with syntax highlighting:

200 OK 324 ms 1.8 KB Body Headers Tests { "status": "success", "data": { "id": 123, "name": "John Doe", "email": "john@example.com" }, "timestamp": 1699876543 }

2. Headers Tab

View all response headers:

Headers NAME VALUE Content-Type application/json; charset=utf-8 Content-Length 1847 Server nginx/1.18.0 Date Fri, 28 Nov 2025 12:34:56 GMT Access-Control-Allow-Origin * 5 headers received

3. Raw Tab

View the complete raw HTTP response

4. Test Results Tab

See test script results and assertions:

Test Results ✓ All Tests Passed 4 passed • 0 failed • 324ms Status code is 200 45ms Response has data property 23ms User name is correct 12ms

Status Code Display

Response status is color-coded:

Body Headers Tests Cookies Click Tab content switches instantly

Saving Requests

Save to Collection

Click Save Button

Click the "Save" button next to the Send button.

Choose Collection

Select an existing collection or create a new one.

Save Request Request Name Get User Details Save to Collection User API ▼ Cancel Save

Name Your Request

Give your request a descriptive name.

Confirm Save

Click "Save" to add the request to your collection.

Save Request Saved! Request added to collection successfully

Tips & Best Practices

Use Variables

Store API URLs and tokens as environment variables for easy switching between environments.

Save Frequently

Save your requests to collections to avoid losing your work and enable easy reuse.

Name Descriptively

Use clear, descriptive names like "Get User Profile" instead of "GET /users".

Add Tests

Write test scripts to automate validation and catch issues early.

Use Code Snippets

Generate code in multiple languages for easy integration into your applications.

Check Console

Open the console (View → Console) to see detailed logs and debug issues.