DEV Community

Alex Spinov
Alex Spinov

Posted on

Hoppscotch Has a Free API — Open-Source Postman Alternative That's Blazing Fast

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
Enter fullscreen mode Exit fullscreen mode

REST API Testing

GET https://jsonplaceholder.typicode.com/posts

Headers:
  Content-Type: application/json
  Authorization: Bearer {{token}}

Query Params:
  userId: 1
  _limit: 5
Enter fullscreen mode Exit fullscreen mode

GraphQL

query {
  users(limit: 10) {
    id
    name
    email
    posts {
      title
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Environment Variables

{
  "name": "Production",
  "variables": [
    { "key": "baseUrl", "value": "https://api.myapp.com" },
    { "key": "token", "value": "eyJhbG..." },
    { "key": "userId", "value": "123" }
  ]
}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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))));
Enter fullscreen mode Exit fullscreen mode

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);
});
Enter fullscreen mode Exit fullscreen mode

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


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)