# WireMock

<span class="status stable">Stable</span>

WireMock is a tool for mocking and simulating APIs for testing and development.

| Property                | Value                 |
| ----------------------- | --------------------- |
| **Type**                | API Mocking Tool      |
| **Forge Compatibility** | Forge 2.1+, Forge 3.0 |
| **Status**              | Stable                |

---

## Description

WireMock Cloud is a hosted service for WireMock, a tool used for mocking and simulating APIs. It allows you to create, manage, and deploy mock APIs in the cloud, providing a scalable and collaborative environment for API testing and development.

WireMock can also run locally via WireMock CLI, integrated with Aspire for local development scenarios.

---

## Why we use it

We use WireMock Cloud to simulate API responses and behavior for testing and development purposes. This helps us to:

- **Decouple development** from external dependencies
- **Test edge cases** that are hard to reproduce with real APIs
- **Ensure resilience** by simulating error conditions
- **Enable true local development** without external API access

WireMock Cloud also allows us to download our mocks locally for other APIs we are calling.

---

## When to use it

- ✅ Mocking external API dependencies during development
- ✅ Integration testing without real external services
- ✅ Recording and replaying API interactions
- ✅ Simulating error scenarios and edge cases

**When NOT to use it:**

- ❌ Production environments (mocks are for development/testing only)
- ⚠️ When you need to verify actual external API behavior

---

## Prerequisites

- WireMock Cloud account (for cloud-hosted mocks)
- Docker Desktop (for local WireMock CLI)

---

## Related Documentation

| Guide                                                                             | Description                      |
| --------------------------------------------------------------------------------- | -------------------------------- |
| [Host WireMock CLI](../../guides/development/mocking/host-wiremock-cli.md)        | Running WireMock locally         |
| [WireMock CLI Recording](../../guides/development/mocking/wiremock-cli-record.md) | Recording API interactions       |
| [Aspire WireMock CLI](../../foundry/aspire-wiremockcli.md)                        | WireMock integration with Aspire |

---

## Links

- [WireMock Cloud](https://wiremock.io/cloud)
- [WireMock Documentation](https://wiremock.org/docs/)
- [WireMock Learning Resources](https://learn.wiremock.org)
