go-mokapi
v0.50.0
Published
Easy and flexible API mocking
Maintainers
Readme
About
Mokapi is an open-source, local-first mock API tool to develop and test faster. Simulate complete environments driven by OpenAPI and AsyncAPI specifications without external dependencies.
It supports HTTP/REST, Apache Kafka, MQTT, Websocket, LDAP, and SMTP from a single tool, making it useful across the whole stack, not just for REST APIs.
Use it to:
- Build frontend UIs before the backend exists
- Test error states, timeouts, and edge cases safely
- Run reliable CI/CD pipelines without external dependencies
- Validate API contracts before writing implementation code
Quick Start
Try the mock API instantly:
npx go-mokapi https://petstore3.swagger.io/api/v3/openapi.jsoncurl http://localhost/api/v3/pet/1 -H 'Accept: application/json'A working mock from a public OpenAPI spec in under a minute. No installation required.
Feature
| Feature | Description | |----------------------|---------------------------------------------------------| | Multi-protocol | HTTP/HTTPS, Apache Kafka, MQTT, Websocket, LDAP, SMTP | | Spec-driven | Uses OpenAPI and AsyncAPI as the source of truth | | JavaScript scripting | Customize responses, simulate errors, add delays | | Everything as code | Version-controlled, CI/CD-ready, no UI required | | Config patching | Override parts of a spec without modifying the original | | Built-in dashboard | Real-time request and response viewer at localhost:8080 | | Flexible providers | Load specs from files, URLs, Git repos, or NPM packages |
Usage
Basic HTTP mock
npx go-mokapi ./openapi.yamlWith a remote spec
npx go-mokapi https://example.com/api/openapi.jsonDocker
docker run -it -p 8080:8080 -p 80:80 \
-v $(pwd):/data mokapi/mokapi /data/openapi.yamlDashboard
Open http://localhost:8080 to view live requests, responses, and logs.
Configuration
JavaScript scripting
import { on } from 'mokapi'
export default function() {
on('http', (request, response) => {
// Return 404 for specific IDs
if (request.path.petId === '999') {
response.statusCode = 404
return
}
// Customize response data
response.data.name = 'Custom Pet Name'
})
}Spec patching
Override parts of your OpenAPI spec for specific test scenarios without touching the original file. See the configuration guide for details.
Tutorials
Explore tutorials that walk you through mocking different protocols and scenarios:
Get started with REST API Mocking
Deploy a REST mock API using OpenAPI specificationMock Kafka with AsyncAPI
Simulate Kafka topics and validate message producersMock LDAP Authentication
Test authentication flows without a real LDAP serverMock SMTP Mail Servers
Test email workflows without sending real messagesCI/CD Integration with GitHub Actions
Run Mokapi in automated test pipelines
More at mokapi.io/resources
Documentation
- Getting Started Guide
- HTTP/REST API Documentation
- Kafka Documentation
- LDAP Documentation
- SMTP/Mail Documentation
- JavaScript API Reference
- Configuration Guide
Support the Project
If Mokapi saves you time, consider buying me a coffee. It helps keep the project going.
Merch
License
MIT License - see LICENSE for details.

