HTTP Requests
Learn how to make HTTP requests with Solo to test and debug your REST APIs.
Creating a New HTTP Request
- Click the "+" button in the sidebar or use the keyboard shortcut
- Select HTTP as the request type
- Enter your API endpoint URL
- Choose the HTTP method (GET, POST, PUT, PATCH, DELETE)
- Click Send to execute the request
HTTP Methods
Solo supports all standard HTTP methods:
GET
Retrieve data from an API endpoint.
GET https://api.example.com/users
POST
Create new resources on the server.
POST https://api.example.com/users
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com"
}
PUT
Update an existing resource completely.
PUT https://api.example.com/users/123
Content-Type: application/json
{
"name": "John Updated",
"email": "john.updated@example.com"
}
PATCH
Partially update an existing resource.
PATCH https://api.example.com/users/123
Content-Type: application/json
{
"email": "newemail@example.com"
}
DELETE
Remove a resource from the server.
DELETE https://api.example.com/users/123
Request Configuration
URL and Query Parameters
Enter your API endpoint in the URL field. Query parameters can be added in two ways:
Inline in URL:
https://api.example.com/search?q=solo&limit=10
Using the Query Params tab:
- Click on the Query Params tab
- Add key-value pairs for your parameters
- Toggle individual parameters on/off using checkboxes
Example:
- Key:
q
→ Value:solo
- Key:
limit
→ Value:10
Headers
Add custom headers to your requests:
- Click on the Headers tab
- Add header key-value pairs
- Common headers:
Content-Type: application/json
Accept: application/json
User-Agent: Solo HTTP Client
Request Body
For POST, PUT, and PATCH requests, add a request body:
- Click on the Body tab
- Select the body type:
- JSON – For JSON payloads (most common)
- Text – For plain text
- Form Data – For form submissions
- Enter your request body content
JSON Example:
{
"title": "New Post",
"body": "This is the post content",
"userId": 1
}
Authentication
Solo supports multiple authentication methods:
Bearer Token
- Click on the Auth tab
- Select Bearer Token from the dropdown
- Enter your access token
- Solo automatically adds the
Authorization: Bearer <token>
header
Example:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Basic Auth
- Click on the Auth tab
- Select Basic Auth from the dropdown
- Enter your username and password
- Solo encodes credentials and adds the
Authorization: Basic <encoded>
header
No Auth
Select No Auth if the API endpoint is public or uses custom authentication.
Response Viewer
After sending a request, Solo displays the response:
Response Tabs
- Body – View the response content with syntax highlighting
- Headers – Inspect response headers
- Metadata – See request timing, status code, and size
Response Body Formats
Solo automatically detects and formats:
- JSON – Pretty-printed with syntax highlighting
- HTML – Rendered preview
- XML – Formatted with proper indentation
- Plain Text – Raw response
Status Codes
Solo displays the HTTP status code with color coding:
- 🟢 2xx – Success (green)
- 🟡 3xx – Redirection (yellow)
- 🔴 4xx – Client Error (red)
- 🔴 5xx – Server Error (red)
Advanced Features
Variable Substitution
Use variables in your requests for dynamic values:
GET https://{{base_url}}/users/{{user_id}}
Authorization: Bearer {{auth_token}}
Learn more in the Variables documentation.
Copy as cURL
Export any request as a cURL command:
- Configure your request
- Click the Copy as cURL button
- Paste into your terminal or share with teammates
Example output:
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-H "Authorization: Bearer token123" \
-d '{"name":"John Doe","email":"john@example.com"}'
Learn more in the cURL Integration documentation.
Request Description
Document your API requests:
- Click on the Description tab
- Add notes about what the request does
- Document expected responses or usage examples
- All descriptions are saved locally
Keyboard Shortcuts
Work faster with keyboard shortcuts:
Cmd/Ctrl + Enter
– Send requestCmd/Ctrl + S
– Save requestCmd/Ctrl + N
– New requestCmd/Ctrl + K
– Focus URL input
View all shortcuts by clicking the keyboard icon in the title bar.
Best Practices
Organize Your Requests
- Group related requests into folders
- Use descriptive names for your requests
- Add descriptions to document API behavior
Use Variables
- Define variables for base URLs, tokens, and IDs
- Switch between environments easily
- Keep sensitive data in variables, not hardcoded
Save Request History
All requests are automatically saved locally, so you can:
- Review previous API calls
- Replay requests with the same configuration
- Track API changes over time
Troubleshooting
Common Issues
CORS Errors
- CORS restrictions apply when testing APIs from the browser
- Use the native desktop app for full functionality without CORS limitations
Connection Refused
- Verify the API endpoint URL is correct
- Check if the API server is running
- Ensure no firewall is blocking the connection
Timeout Errors
- Increase the timeout in settings if needed
- Check if the API endpoint is responsive
- Verify network connectivity
Next Steps
- GraphQL Requests – Test GraphQL APIs
- Variables – Use dynamic variables in requests
- Collections – Organize requests into folders
- cURL Integration – Import and export cURL commands