Mokapi is an open-source tool that helps Agile, DevOps, and Continuous Deployment teams design, test, and validate APIs before implementation. It enables rapid prototyping of scenarios—like delayed responses, failures, or edge cases—without needing a live backend. By simulating real-world conditions early, Mokapi improves API quality and reduces the risk of bugs in production.
- Multiple Protocol support: HTTP, HTTPS, Apache Kafka, SMTP, LDAP
- Everything as Code: Reusing, version control, consistency and integrate mocks with your CI/CD.
- An embedded JavaScript engine to control everything - status, headers, delays, errors or other edge cases.
- Patch Configuration changes for mocking needs, rather than changing the original contract
- Multiple Provider support: File, HTTP, GIT, NPM to gather configurations and scripts.
- Dashboard to see what's going on.
Mokapi supports mocking REST APIs using OpenAPI 2.0 / 3.0 / 3.1 and event-driven systems using AsyncAPI.
Install and start Mokapi using one of the following methods. Replace the URL with your own OpenAPI or AsyncAPI specification.
Windows
choco install mokapi
mokapi https://petstore31.swagger.io/api/v31/openapi.json
MacOS
brew tap marle3003/tap
brew install mokapi
mokapi https://petstore31.swagger.io/api/v31/openapi.json
Docker
docker run -p 80:80 -p 8080:8080 mokapi/mokapi:latest https://petstore31.swagger.io/api/v31/openapi.json
Once Mokapi is running, you can make requests to your mocked API like so:
curl http://localhost/api/v31/pet/2 -H 'Accept: application/json'
Mokapi makes it simple to control responses using embedded JavaScript.
For example, you can dynamically change the response based on query parameters:
import { on } from 'mokapi';
export default function() {
on('http', (request, response): boolean => {
switch (request.path.petId) {
case 2:
response.data.name = 'Betty';
return true;
case 9:
response.statusCode = 404;
}
return false;
});
}
Mokapi’s dashboard lets you visualize your mock APIs. View requests and responses in real-time, generate and validate sample data for testing.
Explore tutorials that walk you through mocking different protocols and scenarios:
-
🌍 Get started with REST API
This tutorial will show you how to mock a REST API using an OpenAPI specification. -
⚡ Mocking Kafka with AsyncAPI
Mocking a Kafka topic using Mokapi and verifying that a producer generates valid messages. -
👨💻 Mocking LDAP Authentication
Simulate LDAP-based login flows, including group-based permissions. -
📧 Mocking SMTP Mail Servers
Use Mokapi to simulate sending and receiving emails in Node.js apps. -
🖥️ End-to-End Testing with Jest and GitHub Actions
Integrate Mokapi into your CI pipeline for full-stack E2E testing.
More examples are available on mokapi.io/docs/resources
If you find Mokapi helpful, consider supporting the project:
This project is licensed under the MIT License. See the LICENSE file for details.