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.
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.