Everything you need to know about using Relay. From sending your first request to advanced features like variable extraction and client certificates.
Relay is a native macOS REST client built for speed and simplicity. It launches in under 500ms, sends requests with minimal overhead, and keeps your workflow focused.
https://jsonplaceholder.typicode.com/posts).Relay supports nine HTTP methods: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, TRACE, and CONNECT.
By default only the five common methods are shown. Enable all nine in Preferences → General → Show all HTTP methods. Cycle through methods with ⌘⇧→ and ⌘⇧←.
Add parameters in the Params tab as key-value pairs. Each parameter has an enable/disable toggle. Disabled parameters are excluded from the URL without being deleted. Parameters sync bidirectionally with the URL bar.
Add custom headers in the Headers tab. Like parameters, each header has an enable/disable toggle. Headers support {{variable}} interpolation.
Set default headers that apply to every new request in Preferences → Default Headers.
By default Relay follows HTTP redirects. Toggle this per-request in the Inspector panel.
The default request timeout is 30 seconds, configurable in Preferences → General.
Collections group related requests together. Each collection is stored as a folder on disk with individual JSON files for each request, easy to version-control or back up.
The Working Set at the top of the sidebar shows your recently opened and pinned requests. Pin a request with ⌘D to keep it easily accessible.
Star a collection to pin it in the Favorites section of the sidebar for quick access.
Click a collection or folder name to open its settings panel. Here you can configure inherited headers and variables that apply to all requests within that scope.
Configure auth in the Auth tab (⌘3). The selected auth method is applied automatically when sending the request.
Adds an Authorization: Bearer <token> header. Supports {{variable}} interpolation for tokens stored as variables.
Enter a username and password. Relay encodes them as a Base64 Authorization: Basic header automatically.
Set a custom Authorization header value directly for API keys or other auth schemes.
Use {{variableName}} anywhere: URLs, params, headers, auth tokens, and request bodies. Relay highlights variables inline with color-coded source indicators.
Variables resolve with a clear precedence order. When the same key exists at multiple levels, the most specific scope wins:
Type {{ in any variable-enabled field to see an autocomplete dropdown of available variables with their current values and source scope.
Relay automatically selects the best viewer based on the response content type. Use ⌘F to search within the response body.
Syntax-highlighted text view and interactive tree view with collapsible nodes and inline search.
Pretty-printed with syntax highlighting.
Live preview in a sandboxed web view, plus source view.
Embedded PDF viewer with scroll and zoom.
Native rendering for PNG, JPEG, GIF, SVG, and more.
QuickLook preview for Word, Excel, and PowerPoint files.
Raw text display for any text content type.
File size and hex preview for unrecognized formats.
Responses over 10 MB display a Save to File option prominently. The first 1 MB is rendered with a “Load More” option for the rest.
Relay keeps a history of responses for each request. Compare any two past responses side-by-side with the built-in diff viewer to spot changes in API behavior over time.
Press ⌘K to open the code generator. Relay converts your current request, including params, headers, auth, and body, into ready-to-use code.
cURL
fetch, Axios, XHR
requests, http.client
URLSession
net/http
Net::HTTP, Faraday
cURL, Guzzle
HttpClient, OkHttp
Migrate from other tools or import API specs. Relay preserves folder structure, auth configs, and request bodies.
Import from the File menu: ⌘O for file import, ⌘⇧O for URL import.
Variable references like {{baseUrl}} from Postman and Insomnia are preserved as-is. Create matching variables in Relay to activate them.
Toggle the console with ⌘J. It logs every request and response with timestamps, HTTP method badges, status codes, response times, and body sizes.
Pull values out of responses automatically using JSONPath expressions and store them as variables. Useful for chaining requests. Extract an auth token from a login response, then reference it as {{token}} in subsequent requests.
Add test conditions in the Tests tab. After sending a request, Relay evaluates each assertion and shows a pass/fail summary banner.
Assertion targets
Conditions
Configure a proxy in Preferences → Proxy. Relay supports HTTP, HTTPS, and SOCKS5 proxies with optional authentication and a bypass list for specific hosts.
For mutual TLS authentication, configure a PKCS12 certificate (.p12 / .pfx) in Preferences → Certificates. Passwords are stored securely in macOS Keychain.
Set a global certificate for all requests, or override per-collection in the collection settings.
Sync your collections across all your Macs with iCloud. Enable in Preferences → Sync. Requires an iCloud account signed in via System Settings.
When sync is enabled, Relay manages the storage location automatically. Changes propagate across devices within minutes.
Report issues or request features on GitHub.
Open an Issue