HTTP · GraphQL · WebSocket · SSE - for macOS
The API client that feels like a Mac app.
Because it is one. Curlew is built in SwiftUI and AppKit, opens instantly, and keeps everything on your machine: no account, no cloud relay, no telemetry.
Get Curlew for Mac
$1.99 once · macOS 14 Sonoma or later
Pick a request, press Send or ⌘↩. Responses in this preview are canned; the app talks to your real APIs.
HTTP/1.1 200 OK
Everything it does, as response headers.
Curlew has a long feature list. This seemed like the honest way to print it.
- Protocols
- HTTP with every method, GraphQL with live schema introspection, WebSocket frames, and a Server-Sent Events viewer for streaming APIs.
- Body
- JSON with formatting and validation, URL-encoded and multipart forms with file attachments, plain text, XML.
- Authorization
- OAuth 2.0 (Authorization Code with PKCE, Client Credentials, background refresh), Bearer, Basic, API keys.
- Client-Cert
- Mutual TLS with PKCS#12 certificates bound to hostnames. Per-request TLS bypass for localhost and staging, with a visible warning.
- Environment
{{baseUrl}}anywhere, with autocomplete. Request chaining lifts values out of one response into the next request.- Pre-Request
- Sandboxed JavaScript before each send for signatures, HMAC-SHA256 hashes and computed headers.
- Import-Export
- OpenAPI 3.0, Postman 2.1 and HAR 1.2 in both directions. Markdown API docs. JSON to CSV or TSV.
- Codegen
- 13 languages: Swift, Python, JavaScript, Node.js, Go, Rust, Java, C#, Kotlin, PHP, Ruby, cURL, HTTPie. Plus typed models from any JSON response in Swift, TypeScript, Python, Go and Rust.
- Test
- Collection Runner with assertions on status, JSON path, body text and latency. Markdown test reports.
- Mock
- A built-in mock server serves a whole collection on localhost, with wildcard routes and CORS.
- Monitor
- Menu bar monitors re-run a request on an interval and notify you when it fails.
- Timing
- DNS, TCP, TLS, time to first byte and download as a waterfall. Repeat a request 5–100× for min, median, p95 and max.
- Inspect
- JWT decoder with expiry countdown, cookie jar, searchable headers, HTML and image preview, hex dump, and a diff against the previous response.
- Telemetry
- none
200 OKcurlew.app/features · 14 headers
{{$dynamic}}
Twenty variables that invent test data.
Drop one into a URL, header or body and it is generated fresh on every send. Click any card to roll it again.
keyboard-first
Hands stay on the keys.
- Send request⌘↩
- Focus address⌘L
- Quick open⌘K
- New request⌘N
- New collection⌘⇧N
- Duplicate⌘D
- Find in response⌘F
- Find & replace everywhere⌘⇧F
where your data lives
In a file you can read.
The whole workspace is human-readable JSON in the app's sandbox. Inspect it, put it in git, share it with the team.
~/Library/Containers/…/Application Support/Curlew/workspace.json
- No account. Nothing to sign up for or sign in to.
- Secrets in the Keychain. Marked variables and client certificates never touch disk in plain text, and are masked in exports.
- No cloud relay. Requests go from your Mac to your API and nowhere else.
One small price. No subscription.
Version 1.0 for macOS 14 Sonoma or later.
Mac App Store$1.99