Skip to main content

Welcome to ReqSmith

ReqSmith is a powerful command-line API testing tool that brings Postman-like functionality directly to your terminal. Test REST and GraphQL APIs with features like templates, environments, history tracking, response caching, and optional AI assistance.

Why ReqSmith?

🖥️ CLI-First Design

Built for developers who live in the terminal. No GUI required.

📋 Template Management

Save and reuse request configurations with variable substitution

🌍 Environment Support

Manage different configurations for dev, staging, and production

⚡ Smart Caching

Hybrid memory + disk caching for faster repeated requests

Key Features

  • HTTP/REST API Testing: Support for GET, POST, PUT, PATCH, DELETE, OPTIONS methods
  • GraphQL Support: Native GraphQL query and mutation testing
  • Template System: Save and reuse request configurations with variables
  • Environment Management: Different variable sets for dev, staging, prod
  • Request History: Automatic tracking and replay of previous requests
  • Smart Caching: Hybrid memory + disk caching with TTL
  • Rich Output: Color-coded responses with JSON/XML formatting
  • AI Assistance: Optional Gemini AI integration for suggestions and validation
  • Cross-Platform: Works on Windows, macOS, and Linux

Quick Example

# Simple GET request
reqsmith request get https://api.github.com/users/octocat

# POST request with JSON body
reqsmith request post https://api.example.com/users \
--json '{"name": "John", "email": "john@example.com"}'

# Save request as template
reqsmith template save github-user \
--method GET \
--url "https://api.github.com/users/${USERNAME}" \
--description "Get GitHub user info"

# Use template with variables
reqsmith template use github-user --var USERNAME=octocat

Getting Started

Next Steps

Modern API testing often involves complex workflows:

  • Multiple Environments: Development, staging, production endpoints
  • Authentication: Various auth methods (Bearer tokens, API keys, OAuth)
  • Data Validation: Checking response formats and status codes
  • Performance Testing: Monitoring response times and caching

Managing these testing scenarios manually is complex and time-consuming:

Traditional Way (Without ReqSmith):

# Manual curl requests
curl -X GET https://api.github.com/users/octocat \
-H "Accept: application/json"

# Complex POST with authentication
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-H "Authorization: Bearer token" \
-d '{"name": "John", "email": "john@example.com"}'

The ReqSmith Way:

# Simple and clean
reqsmith request get https://api.github.com/users/octocat
reqsmith request post https://api.example.com/users --json '{"name": "John", "email": "john@example.com"}'

Quick Start

Get up and running with PPM in under 2 minutes:

Step 1: Install ReqSmith

pip install reqsmith

Step 2: Make Your First Request

reqsmith request get https://api.github.com/users/octocat

Step 3: Save as Template

reqsmith template save github-user \
--method GET \
--url "https://api.github.com/users/${USERNAME}"

Step 4: Use Template with Variables

reqsmith template use github-user --var USERNAME=octocat

Key Features

🎯 Template-Based Testing

Save request configurations as reusable templates:

# Save a template
reqsmith template save api-health \
--method GET \
--url "${BASE_URL}/health" \
--header "Authorization: Bearer ${TOKEN}"

# Use across environments
reqsmith template use api-health \
--var BASE_URL=https://api.prod.com \
--var TOKEN=prod-token

🚀 Productivity Boost

  • Instant request replay from history
  • Environment switching in seconds
  • Template sharing across teams

🔒 Enterprise Ready

  • Secure credential management
  • Request/response logging
  • CI/CD integration capabilities

Real-World Impact

BenefitDescription
Developer ProductivitySave hours per week on API testing and debugging
Team CollaborationShare templates and environments across teams
Testing EfficiencyAutomated caching and history for faster iterations

What's Next?


info

ReqSmith is open source and actively maintained. Join our community on GitHub to contribute, report issues, or request features.