API Client

A Postman-compatible API client built into Jasper. Available in the Revio Desktop app and on the web, with real-time team collaboration.

Open the web client in Jasper

Sign in to access the live API Client at /api-tester — collections, environments, monitors, and the mock server are all there waiting.

Sign in to continue

Introduction

Jasper's API Client is a Postman-compatible tool for testing APIs that lives inside your team workspace. It runs in two surfaces — the web app at /api-tester for quick access from anywhere, and the Revio Desktop app for offline-friendly use and CORS bypass — and both stay in sync via the same backend.

Coming from Postman? Jump straight to the Import Postman Collections section, or read the Jasper vs Postman comparison for a side-by-side feature and pricing breakdown. For the high-level pitch, see the product page.

The API Client is one piece of Jasper's developer-tools surface. Related guides:

  • Revio Desktop app — install the desktop client for offline-first testing, CORS bypass, and large file uploads.
  • CLI tool — Jasper's command-line companion for scripting and CI.
  • GitHub Actions — wire collection runs into your CI pipeline.
  • API tokens — for programmatic access to Jasper's own API.
  • Public gallery — browse and fork shareable collections.

What's new in May 2026

The 16-PR rollout (see changelog) brought the full Postman-clone surface to the web. Highlights:

  • Collections + folders with drag-and-drop, Postman v2.0 / v2.1 import, and OpenAPI / Swagger spec import.
  • Request editor with all HTTP methods, Headers / Params / Body / Auth tabs, and a one-click Send button (see Request Builder).
  • Environments with {{varName}} substitution across URLs, headers, params, body, and auth (see Environment Variables).
  • Runs history — every request saved with full payload, response, status, time, and size.
  • Monitors with cadence and custom cron, plus email + in-app alerts on assertion failure or latency spikes.
  • Mock server backed by saved examples, with a public mock URL in two clicks.
  • AI helpers — describe a request in plain English, analyse a response, or generate Markdown docs from a collection.
  • Version history with side-by-side diff and per-revision rollback.
  • Collaborator roles (Viewer / Editor / Admin) per collection, plus workspace-wide access controls.
  • Public gallery for sharing collections via a public URL with one-click forking.
  • SDK + Postman export — one-click export to Postman v2.1, OpenAPI 3.0, or generated TypeScript / Python / PHP SDKs.

Key Features

  • Collections & Folders — Organize requests in hierarchical collections
  • Environment Variables — Switch between dev, staging, and production
  • Request Builder — Support for all HTTP methods
  • Response Viewer — Syntax highlighting for JSON, XML, and more
  • Team Collaboration — Share collections with your team
  • Request History — Track all requests with versioning

Note: The API Client is available in the Revio Desktop application. Learn more about the Desktop App.

Getting Started

Opening the API Client

  1. Open the Revio Desktop application
  2. Click API Client in the sidebar
  3. You'll see your workspace with collections on the left

Creating Your First Request

  1. Click the + button to create a new tab
  2. Select the HTTP method (GET, POST, PUT, etc.)
  3. Enter the URL you want to test
  4. Add any headers, query params, or body as needed
  5. Click Send

Collections & Folders

Organize your API requests into collections and folders for easy access and sharing.

Creating a Collection

  1. Click New Collection in the sidebar
  2. Enter a name and optional description
  3. Choose the visibility (personal or team)
  4. Click Create

Organizing with Folders

Collections can contain nested folders to organize requests by endpoint, feature, or any structure you prefer.

  • Right-click a collection to add a folder
  • Drag and drop requests between folders
  • Folders can be nested up to 5 levels deep

Saving Requests

  1. Configure your request in the main panel
  2. Press Cmd+S (Mac) or Ctrl+S (Windows)
  3. Select the collection and folder to save to
  4. Enter a descriptive name
  5. Click Save

Request Builder

HTTP Methods

All standard HTTP methods are supported:

Method Use Case
GET Retrieve data
POST Create new resources
PUT Update/replace resources
PATCH Partial updates
DELETE Remove resources
HEAD Get headers only
OPTIONS CORS preflight

Headers

Add custom headers to your requests:

  • Click the Headers tab
  • Enter key-value pairs
  • Toggle headers on/off without deleting them
  • Common headers like Content-Type are auto-suggested

Query Parameters

Add query string parameters:

  • Click the Params tab
  • Enter key-value pairs
  • Parameters are automatically URL-encoded
  • The URL updates in real-time as you add params

Request Body

For POST, PUT, and PATCH requests, configure the request body:

Type Description
JSON Raw JSON with syntax highlighting and validation
XML Raw XML content
Text Plain text body
Form Data multipart/form-data for file uploads
URL Encoded application/x-www-form-urlencoded

Authentication

Configure authentication for your API requests:

Supported Auth Types

Type Description
No Auth No authentication required
API Key Send key as header or query param
Bearer Token JWT or OAuth access tokens
Basic Auth Username and password

Setting Authentication

  1. Click the Auth tab in the request builder
  2. Select the authentication type
  3. Enter the required credentials
  4. Auth headers are automatically added to requests

Security Tip: Store sensitive credentials in environment variables rather than hardcoding them in requests.

Environment Variables

Use environment variables to switch between different configurations.

Creating Environments

  1. Click the environment dropdown in the top bar
  2. Select Manage Environments
  3. Click Add Environment
  4. Enter a name (e.g., "Development", "Staging", "Production")
  5. Add key-value pairs for your variables

Using Variables

Reference variables in your requests using double curly braces:

{{base_url}}/api/users/{{user_id}}

Variables can be used in:

  • URLs
  • Headers
  • Query parameters
  • Request body
  • Authentication fields

Variable Scope

  • Environment Variables — Tied to the selected environment
  • Collection Variables — Shared across the collection
  • Global Variables — Available in all requests

Response Viewer

After sending a request, view the response with full details:

Response Body

  • Syntax highlighting for JSON and XML
  • Collapsible/expandable JSON tree view
  • Raw view for plain text
  • Search within response
  • Copy response to clipboard

Response Details

  • Status — HTTP status code and message
  • Time — Request duration in milliseconds
  • Size — Response body size
  • Headers — All response headers
  • Cookies — Set-Cookie headers

Request Tabs

Work on multiple requests simultaneously with tabbed interface:

  • Open multiple tabs for different requests
  • Tabs show unsaved changes indicator
  • Reorder tabs by dragging
  • Middle-click to close tabs
  • Right-click for tab options

Request History

All requests are automatically logged in history:

  • View recent requests in the History panel
  • Search history by URL or method
  • Click any history item to load it
  • History is synced across devices

Import Postman Collections

Easily migrate from Postman by importing your existing collections:

  1. Export your collection from Postman (v2.0 or v2.1 format)
  2. In the API Client, click Import
  3. Select the exported JSON file
  4. Review the import preview
  5. Click Import

Supported imports include:

  • Collections with folders
  • Requests with all settings
  • Environment variables
  • Collection variables

Team Collaboration

Share collections with your team for consistent API testing:

Sharing Collections

  1. Right-click a collection
  2. Select Share with Team
  3. The collection becomes visible to all organization members

Real-time Sync

Changes to shared collections are synced in real-time via WebSockets:

  • See when teammates edit collections
  • Automatic conflict resolution
  • Offline support with sync on reconnect

Desktop & Web Sync

The desktop app and the web app are two views into the same data. Anything you create or change on one surface shows up on the other. There's no “export and re-import” step.

How sync works

  • Same backend — both surfaces talk to the Laravel api-tester/* endpoints, so collections, environments, history, and team membership are identical regardless of where you opened them.
  • Real-time updates — the desktop and web clients each subscribe to your organisation's WebSocket channel, so an edit on one device propagates within a second to every other open client.
  • Active-editing protection — if you have a request focused and a teammate updates it, your in-progress edit is preserved. The remote update queues and applies once you stop typing (500ms debounce).
  • Conflict resolution — if both you and a teammate have unsaved changes to the same item, you'll see a side-by-side picker on save: Keep mine, Use theirs, or merge by hand.
  • Offline behaviour — the desktop app keeps working offline. Pending changes queue locally and sync the moment the connection comes back. Sync status lives in the bottom-right corner of the app: Synced, Pending, or Offline.

When to use which surface

Use case Recommended surface
Hitting a localhost API on your machine Desktop (no browser CORS, full network access)
File uploads > 10MB Desktop (browser upload limits don't apply)
Quick check from a teammate's laptop or a kiosk Web (no install required)
Mobile or tablet on the go Web (responsive on smaller screens)

Keyboard Shortcuts

Action Mac Windows
Send Request Cmd+Enter Ctrl+Enter
Save Request Cmd+S Ctrl+S
New Tab Cmd+T Ctrl+T
Close Tab Cmd+W Ctrl+W
Search Requests Cmd+P Ctrl+P
Toggle Sidebar Cmd+B Ctrl+B

Troubleshooting

The variable I referenced is showing up as literal {{name}} in the URL or response

Three things to check:

  • Environment selected? — the environment dropdown in the top bar should show the environment that defines this variable. If it shows No environment, pick one.
  • Variable name typo? — variables are case-sensitive. {{baseUrl}} won't pick up a variable defined as baseurl.
  • Scope conflict? — environment variables override collection variables, which override globals. Open Manage environments and check which scope is winning.

Request fails with a CORS error

CORS is a browser-only restriction. The desktop app uses Electron's net module, which bypasses CORS entirely — if the same request fails in the web app but works on desktop, that's the cause. For day-to-day testing of your own backend, switch to the desktop app, or configure your server to send the appropriate Access-Control-Allow-Origin header.

Collection isn't syncing across devices

  1. Check the sync status indicator (bottom-right of the desktop app, or the connection dot in the web sidebar). If it shows Offline, you've lost your WebSocket connection — refresh the page or restart the app.
  2. Confirm both surfaces are signed in to the same organisation. The dropdown is at the top-left of the workspace.
  3. Check that the collection is shared with the team, not marked personal. Right-click the collection → Visibility.
  4. If you're behind a corporate firewall or VPN, WebSocket traffic on port 443 to ws.heyjasper.ai needs to be allowed.

The Authorization header isn't being sent

Open the Auth tab. If it's set to Inherit from parent but no parent (collection or folder) defines an auth strategy, no header is added. Either set an explicit auth type on the request, or configure auth on the collection.

File upload fails with “Request entity too large”

The hard limit on a single uploaded file is 100MB. Above that you'll need to chunk the upload, use a presigned URL flow, or temporarily target your server's raw upload endpoint outside the API client.

“Server unreachable” or 5xx on every request

First check the status page. If everything's green, copy the Request ID from the response viewer's Detailed tab and send it to support — we can trace the request server-side from that ID.

Postman import skipped some requests

We support Postman Collection v2.0 and v2.1. v1 collections must be converted in Postman first (right-click the collection → Edit → toggle to v2). Auth strategies that depend on Postman scripts (e.g. dynamic OAuth) can import the request shell but the script itself doesn't carry over — pre-request and test scripts are on the roadmap.

Future Features

Planned features for upcoming releases:

  • OAuth 2.0 — Full OAuth authentication flows
  • Pre-request Scripts — JavaScript scripts to run before requests
  • Test Scripts — Assertions and automated testing
  • GraphQL Support — GraphQL query builder and explorer
  • WebSocket Testing — Test WebSocket connections
  • Code Generation — Generate curl, axios, fetch code
  • Mock Servers — Create mock API endpoints

Need help? Check the Troubleshooting section, the Desktop App documentation, or contact support.

Was this page helpful?