Overview

Traffic Parrot is an API and service simulation (service virtualization) platform, a product of Traffic Parrot Ltd. It stands in for the APIs, services and systems your application depends on, so your teams can test without waiting for a shared environment, a third party or a mainframe to be available.

One installation simulates HTTP(S) (REST, SOAP and GraphQL), gRPC, WebSocket, JMS, native IBM® MQ with the CICS bridge, file transfers over the local file system, FTP and SFTP, and Thrift, from one web console, one management API and one MCP endpoint for AI agents.

At a glance

Java runtime Java 17 or later. Tested on Java 17 and 21 on Windows, Linux and macOS, and on Java 25 in Docker. Three of the four downloads bundle a Java runtime, so nothing has to be installed first.
Memory 512 MB of RAM with the default heap; 1 GB or more recommended. See hardware requirements.
Disk About 165 MB unpacked for the download without a Java runtime, 320 to 460 MB for the downloads that bundle one, plus room for recordings and logs.
Operating systems Windows, Linux and macOS. The Mac download runs natively on Apple Silicon and Intel.
Runs on A laptop or workstation, a virtual machine, Docker, Kubernetes, OpenShift, and inside a test with Testcontainers.
Licensing A licence file in the installation, the TRAFFICPARROT_LICENSE environment variable (in Docker, Docker Compose and Kubernetes), or a licence server you host.

Where does Traffic Parrot fit in?

Traffic Parrot decouples a team from its dependencies in the testing phase of the software development lifecycle. Depending on your infrastructure and test plans it can virtualize all of the traffic your application sends to its dependencies, over HTTP(S), gRPC, WebSocket, JMS, IBM® MQ, files and Thrift, and proxy the rest through to the real system.

Administration console

Every virtual service is configured from a web console. Mappings are added by hand, recorded from real traffic or imported from a specification, edited in place, and saved as JSON files under the installation that you keep in version control. The same console lists the requests received over HTTP, gRPC, JMS, IBM® MQ and files and, for an unmatched HTTP request, the mappings that came closest and the field each one missed on.

Components

One Traffic Parrot instance is one Java process. It serves the administration console, the management APIs and the MCP endpoint, and runs the virtual services the system under test connects to, each on its own port or queue: HTTP(S), gRPC, WebSocket, JMS, native IBM® MQ, file transfers and Thrift. A small launcher process starts the server and, with the shipped start script, exits once the server is up. Mappings, and the files they reference, are kept on the local file system as JSON, one directory per scenario.

HTTP: a tester uses the web console on the management port; the system under test calls the virtual service on its HTTP and HTTPS ports; mappings and files are stored on disk

For a message queue the virtual service consumes from the request queue and replies on the response queue, on Traffic Parrot's internal broker or on your own broker or queue manager.

Messaging: the virtual service reads the request queue and writes the response queue on a message broker the system under test also uses; mappings are stored on disk

Capabilities

Each entry links to the documentation page that describes it.

Protocols

Recording and import

Matching and responses

AI and MCP

Testing and CI

Protocol matrix

What each protocol's virtual service records, replays and imports, and how an unmatched request is diagnosed.

Protocol Record Replay Import formats Near-miss diagnostics
HTTP(S) Yes, as a recording proxy for HTTP and HTTPS, with URL and body rewriting and credential redaction HTTP/1.0, HTTP/1.1 and HTTP/2; REST, SOAP and GraphQL OpenAPI 2.0 and 3.0.x, Swagger 1.x and 2.x, RAML 0.8, HAR 1.1 and 1.2, Pact v2 to v4, Mountebank imposters, cURL commands, WireMock ZIP, from a file, or from a URL except RAML and WireMock ZIP Request Log ranks the closest mappings, field by field, with a link to edit the stub
gRPC Unary, server streaming and client streaming, with your proto files or server reflection; bidirectional streaming is replayed but not recorded All four call types .proto files, compiled descriptors and descriptor sets (.bin, .set.bin, .desc, .protoset), or server reflection; mapping ZIP Requests page marks each call matched or unmatched
WebSocket Text frames exchanged with a backend Mappings answer text frames None; mappings are written in the console or recorded The message journal marks unmatched frames
JMS Queues and topics, on the internal or an external broker Queues and topics AsyncAPI 2.x and 3.0, Pact message contracts, mapping ZIP Requests page with near misses, when messaging diagnostics are on
IBM® MQ (native) Queues, topics and model queues on your queue manager, and CICS bridge conversations Queues and topics, and the CICS DPL bridge with COBOL copybooks AsyncAPI 2.x and 3.0, Pact message contracts Requests page with near misses, the decoded CICS request included
Files (local, FTP, SFTP) Text and binary files on local file system, SFTP and FTP connections Manual or scripted replay; Traffic Parrot as the SFTP server Mapping ZIP Requests page with near misses, when messaging diagnostics are on
Thrift Yes, with your Thrift IDL files Yes Thrift IDL files None

Security

Requirements

Traffic Parrot requires Java 17 or later. Three of the four downloads bundle a Java runtime, so the JVM is already in the ZIP package you download; the fourth runs on a Java runtime you install, on any of the supported operating systems.

Although Traffic Parrot is built on the JVM it works over the wire, so the systems it simulates and the applications it serves can be written in any language, and no Java knowledge is needed unless you want to write Traffic Parrot plugins and extensions. For example, you can use Traffic Parrot to mock Go or .NET C# microservice APIs.

Hardware requirements

Traffic Parrot ships with a small default Java heap (-Xmx128m in the install's jvm.args file), which you raise for larger recordings, larger datasets, or multiple virtual services per instance (see JVM arguments). The figures below are sized for that default configuration; high request rates and performance testing need more (see Performance testing for sizing guidance).

Minimum Recommended
Memory (RAM) 512 MB (with the default -Xmx128m heap) 1 GB or more (raise -Xmx to 512m or higher for larger workloads)
Disk space About 165 MB unpacked for the download without a bundled Java runtime About 320 MB (Windows), 330 MB (Linux) or 460 MB (Mac, with both Intel and Apple Silicon runtimes) unpacked for the downloads that bundle a Java runtime; allow extra for recordings and logs

Software requirements

Java runtime Java 17 or later, or choose a download that bundles a Java runtime, so no separate installation is required. Tested on Java 17 and 21, and on Java 25 in Docker. The bundled Linux and Windows runtimes are for x64; on another architecture use the download without a bundled runtime and your own Java 17 or later.
Operating system Windows, Linux or macOS. The Mac download runs natively on Apple Silicon and on Intel. Docker images on Alpine and Debian are tested.
Web browser The administration console is tested with Chrome.