ApiCatcher for macOS

Making macOS HTTP/HTTPS packet capture and debugging simpler

Built on macOS low-level mechanisms, ApiCatcher automatically switches system proxy settings to transparently intercept all system traffic. Features built-in Keychain certificate auto-import and trust mechanism for a clean, easy-to-use experience.

Requires macOS 14.0 (Sonoma) or later|Latest: v0.1.6
ApiCatcher for macOS | HTTP Capture
ApiCatcher for macOS | HTTP Request Details
ApiCatcher for macOS | Remote Realtime Sync
ApiCatcher | Request History
ApiCatcher | Request Details
ApiCatcher | JSON Viewer
ApiCatcher | Request Details Window
ApiCatcher | JSON Diff
ApiCatcher | Request Replay

Professional Packet Capture & API Debugging Tool

Comprehensive network request capture, Mock rewriting, AI scripting, and request replay—all in one efficient network debugging service.

Capture HTTPS Traffic

Directly capture and analyze HTTPS requests and responses on your iOS device.

Capture WebSocket Traffic

Support capturing WS/WSS traffic and displaying data frames as a chat message list.

Allow/Deny Host List

Configure Host allow/deny lists to filter requests and avoid capturing traffic from other applications.

Request Replay

Replay requests with a single tap to quickly reproduce and verify issues.

Combined Replay

Drag and drop to combine multiple requests, supporting dependent parameter injection and sequential execution.

Request Rewrite

Supports Mock, modification, dropping, and other rewrite behaviors to cover common debugging needs.

Execute Scripts

Provides scripting capabilities for complex rewrites and encryption algorithms, with rapid testing.

Scheduled Request Replay

Supports triggering replays on a schedule to assist automated testing and regression verification.

Export Requests

Supports exporting request records for easy sharing and reproduction.

Export API

Automatically generates API documentation, exportable to Postman / Apifox.

Export Image/Video/Audio

Automatically identifies and extracts media requests, supporting merging of segmented downloads.

API Scanning

Rule-based detection and statistics from captured traffic, supporting custom scanning rules.

DNS Mapping

Define custom DNS resolution rules to map domain names to specific IP addresses.

Protobuf Decode

Automatically decode Protobuf-encoded request or response Body.

Clean, Easy-to-Use macOS Network Capture & Debugging Experience

Empowering Mac developers to efficiently locate and analyze HTTP and WebSocket traffic.

Automatic Local System Proxy Switching

macOSPROXY

One-click macOS proxy management. Automatically configures on capture start and seamlessly restores on exit. Perfectly captures Chrome and other mainstream browser traffic while preventing network residue that causes connectivity issues.

Smart Keychain Certificate Injection

KEYCHAINTRUST

One-click import of a locally generated secure CA root certificate into the macOS keychain, automatically requesting elevated privileges to set it as 'Always Trust'. Skip tedious manual steps and quickly enable HTTPS decryption.

Millisecond Real-Time iOS Traffic Sync

WEBSOCKETSYNC

Scan and connect! Leveraging high-performance WebSocket to instantly sync packets captured on iOS devices (ApiCatcher App) to your Mac desktop screen for effortless offline packet analysis.

Extremely Simple and Intuitive Interaction Design

UIUX

Interaction design that takes full advantage of the desktop large screen. Request and response details at a glance, making traffic analysis more efficient.

macOS Packet Capture Configuration Guide & Limitations

In-depth configuration and interception guide for capturing traffic from non-system-proxy applications

1How Packet Capture Works

1. Start Local Proxy

When you enable capture in ApiCatcher, it starts a secure HTTP/HTTPS proxy service locally on your computer. The listening port can be viewed and modified in the main interface or settings (default port: 8888).

2. Auto-Configure System Proxy

After enabling capture, ApiCatcher automatically changes your macOS system network settings, setting both HTTP and HTTPS proxy server addresses to 127.0.0.1:port.

3. Traffic Redirection & Decryption

At this point, network requests from your computer will be automatically redirected to the ApiCatcher proxy service. To decrypt HTTPS encrypted traffic, ApiCatcher uses the CA root certificate you have installed and trusted on your system, dynamically issuing certificates for requested domains to perform man-in-the-middle (MITM) decryption and analysis.

Applications that natively support system proxy (direct capture):

  • Chrome browser: Chrome automatically reads and follows macOS system proxy settings by default, so after enabling capture, HTTP/HTTPS traffic on Chrome will appear directly in ApiCatcher.
  • Most desktop clients that use system network connections by default.

Scenarios that don't support system proxy (manual configuration required):

  • Command-line terminal tools (such as curl, wget, git, etc.) do not automatically read system proxy settings by default.
  • Many development debugging tools or programming language runtimes (such as Node.js, Python, Go, or Java applications) ignore system proxy by default when making network requests.
  • High-security clients with SSL Pinning (certificate binding) enabled.

>_Command-Line Tool (curl) Proxy Configuration

curl in macOS Terminal does not follow the system proxy by default. You need to explicitly specify proxy parameters:

1. Route a Single Request Through Proxy

You can specify the proxy address using the -x parameter when running the command (assuming your ApiCatcher is listening on port 8888):

curl -x http://127.0.0.1:8888 https://api.github.com

Since ApiCatcher performs man-in-the-middle decryption on HTTPS requests, if your terminal has not yet trusted the ApiCatcher certificate, curl may show certificate security errors. You can add the -k parameter to temporarily ignore certificate verification:

curl -k -x http://127.0.0.1:8888 https://api.github.com

2. Configure Global Proxy for the Current Terminal Window (Shell Session)

If you want all subsequent commands in the current terminal window to automatically go through the proxy, you can set environment variables:

export http_proxy="http://127.0.0.1:8888"
export https_proxy="http://127.0.0.1:8888"

To cancel the proxy, simply clear the environment variables:

unset http_proxy https_proxy