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.
| 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. |
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.
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.
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.
Each entry links to the documentation page that describes it.
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 |
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.
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 |
| 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. |