TL;DR
Hoppscotch is a free, open-source API development platform. It's a lighter, faster alternative to Postman — runs in your browser with no install, supports REST, GraphQL, WebSocket, MQTT, and SSE.
What Is Hoppscotch?
Hoppscotch is API testing done right:
- Browser-based — no install needed, works at hoppscotch.io
- Lightning fast — built with Nuxt 3, instant responses
- REST, GraphQL, WebSocket — all protocols in one tool
- Collections — organize requests into folders
- Environments — manage variables across configs
- Team collaboration — shared workspaces
- Self-hostable — Docker or npm
- Free — MIT license
Quick Start
Browser (Zero Install)
Just visit hoppscotch.io and start testing.
Self-Host
# Docker
docker run -p 3000:3000 hoppscotch/hoppscotch:latest
# Or use the CLI
npm install -g @hoppscotch/cli
hopp test collection.json
REST API Testing
GET https://jsonplaceholder.typicode.com/posts
Headers:
Content-Type: application/json
Authorization: Bearer {{token}}
Query Params:
userId: 1
_limit: 5
GraphQL
query {
users(limit: 10) {
id
name
email
posts {
title
}
}
}
Environment Variables
{
"name": "Production",
"variables": [
{ "key": "baseUrl", "value": "https://api.myapp.com" },
{ "key": "token", "value": "eyJhbG..." },
{ "key": "userId", "value": "123" }
]
}
Use in requests: {{baseUrl}}/users/{{userId}}
CLI Testing (CI/CD)
# Install CLI
npm install -g @hoppscotch/cli
# Run collection tests
hopp test my-api-tests.json --env production.json
# Use in CI/CD
# .github/workflows/api-tests.yml
# - run: hopp test collection.json --env staging.json
Pre-request Scripts
// Generate timestamp
pw.env.set("timestamp", Date.now().toString());
// Generate random ID
pw.env.set("requestId", crypto.randomUUID());
// Hash for auth
const hmac = await crypto.subtle.sign(
"HMAC",
key,
new TextEncoder().encode(payload)
);
pw.env.set("signature", btoa(String.fromCharCode(...new Uint8Array(hmac))));
Test Scripts
// Status code
pw.test("Status is 200", () => {
pw.expect(pw.response.status).toBe(200);
});
// Response body
pw.test("Has users array", () => {
const body = pw.response.body;
pw.expect(body).toHaveProperty("users");
pw.expect(body.users.length).toBeGreaterThan(0);
});
// Response time
pw.test("Response under 500ms", () => {
pw.expect(pw.response.time).toBeLessThan(500);
});
Hoppscotch vs Postman vs Insomnia vs Bruno
| Feature | Hoppscotch | Postman | Insomnia | Bruno |
|---|---|---|---|---|
| Price | Free | Freemium | Freemium | Free |
| Open source | MIT | No | No | MIT |
| Browser app | Yes | No | No | No |
| Install needed | No | Yes | Yes | Yes |
| GraphQL | Yes | Yes | Yes | Yes |
| WebSocket | Yes | Yes | Yes | No |
| Collections | Yes | Yes | Yes | Yes (Git) |
| Self-host | Yes | No | No | N/A (desktop) |
| Speed | Instant | Slow (Electron) | Moderate | Fast |
Resources
- Hoppscotch App
- Documentation
- GitHub Repository — 67K+ stars
- CLI Documentation
Testing scraping APIs? My Apify tools provide REST APIs for web data extraction — test them instantly with Hoppscotch. Questions? Email spinov001@gmail.com
Top comments (0)