Documentation

Everything you need to know about Mockondo a no-code mock server desktop app.

Getting Started

Mockondo is a native desktop application for macOS (Windows and Linux support coming soon). No configuration files, no terminal commands just download, open, and start mocking.

Installation

Download the latest release from GitHub Releases and open the .zip file on macOS.

Requires macOS 10.15 or later. Apple Silicon (M1/M2/M3) is supported.

Create your first project

  1. Open Mockondo and click New Project.
  2. Set a name, host (default: Project 1), and port (e.g. 3001).
  3. Add an HTTP endpoint, configure the response, and click Start Server.
  4. Your mock API is now live at http://[your-local-IP]:3001.

Each project runs its own independent server you can have multiple projects running simultaneously on different ports.

HTTP Mock Server

Define HTTP endpoints with custom methods, paths, response bodies, status codes, and headers. No backend code required.

Supported methods

GET POST PUT PATCH DELETE

Response configuration

FieldDescription
PathURL path, e.g. /users or /users/:id
Status CodeHTTP status code, e.g. 200, 201, 404
Response BodyJSON or plain text supports interpolation
HeadersCustom response headers (Content-Type, etc.)
Delay (ms)Artificial latency to simulate network conditions

Conditional Rules

Route different responses based on incoming request attributes. Rules are evaluated top-to-bottom and the first match wins.

Condition typeExample
Query parameterstatus equals active
Request headerAuthorization contains Bearer
Request body fielduser.role equals admin
URL path segmentpath contains /v2/
Regex matchemail matches ^[a-z]+@company\.com$

WebSocket Server

Simulate real-time bidirectional communication chat apps, live notifications, stock tickers, collaborative tools, and more.

Endpoint configuration

FieldDescription
PathWebSocket endpoint path, e.g. /ws or /chat
On-connect messageMessage sent immediately when a client connects
Message rulesRespond to specific incoming messages with defined replies
Scheduled pushBroadcast messages to all clients on a timer

Message matching

Define rules to respond to specific incoming messages. Matching supports:

  • Exact match responds when message equals the rule value exactly
  • Contains responds when message contains the rule value
  • Regex responds when message matches a regular expression pattern

Scheduled push

Configure a push interval (in milliseconds) to have Mockondo automatically broadcast a message to all connected clients at regular intervals. Useful for simulating real-time data feeds.

{
  "symbol": "${random.word}",
  "price": ${math.random(100, 500)},
  "change": ${math.random(-5, 5)}
}

Mock Storage (S3)

Mockondo includes an S3-compatible local object storage server. Use it to test file uploads, downloads, and bucket operations without any cloud setup.

Features

  • Create and manage multiple buckets
  • Upload and download files (any type)
  • Presigned URL generation
  • Automatic binding to your local Wi-Fi IP accessible across devices on the same network
  • Compatible with any AWS S3 SDK (set endpoint to the Mockondo address)

Connecting with AWS SDK

import { S3Client } from "@aws-sdk/client-s3";

const client = new S3Client({
  region: "us-east-1",
  endpoint: "http:// [your-local-IP]:9000", // Mockondo S3 port
  forcePathStyle: true,
  credentials: {
    accessKeyId: "mockondo",
    secretAccessKey: "mockondo",
  },
});

Interpolation System

Inject dynamic values into your response bodies using the ${...} interpolation syntax. Works in HTTP responses, WebSocket messages, and HTTP client request bodies.

random.*

VariableDescription
${random.uuid}Random UUID v4
${random.name}Random full name
${random.firstName}Random first name
${random.lastName}Random last name
${random.email}Random email address
${random.phone}Random phone number
${random.image}Random image URL (placeholder)
${random.word}Random single word
${random.sentence}Random sentence
${random.lorem}Lorem ipsum paragraph
${random.jwt}Random JWT token
${random.int(min, max)}Random integer in range
${random.float(min, max)}Random float in range

request.*

VariableDescription
${request.query.KEY}Value of a query parameter
${request.header.KEY}Value of a request header
${request.body.KEY}Value of a body field (dot-notation for nested)
${request.path.PARAM}Value of a URL path parameter

customdata.*

Reference user-defined data lists. Create a list named cities with values, then use:

${customdata.cities.random}   // picks a random item
${customdata.cities.0}        // picks by index

math.*

Evaluate arithmetic expressions inline:

${math.2+2}          // → 4
${math.2*2}          // → 4

pagination.*

Access pagination context variables when building paginated responses:

VariableDescription
${pagination.page}Current page number
${pagination.limit}Items per page
${pagination.offset}Calculated offset (page * limit)
${pagination.total}Total item count
${pagination.data}List of item

Full example

{
  "id": "${random.uuid}",
  "name": "${random.name}",
  "email": "${random.email}",
  "role": "${request.body.role}",
  "city": "${customdata.cities.random}",
  "score": ${math.random(0, 100)},
  "token": "${random.jwt}"
}
{
  "total": 100,
  "data": ${pagination.data}
}

Mock Pagination

Generate paginated API responses from a single item template. Mockondo handles the pagination math and wraps items in your configured envelope format.

Configuration

FieldDescription
Item templateJSON template for a single item (supports interpolation)
Page paramQuery param name for the page number (default: page)
Limit paramQuery param name for items per page (default: limit)
Total itemsTotal number of items to simulate
Response envelopeWrapper structure: { data, total, page, limit }

Example request

GET /users?page=2&limit=10

Returns items 11–20 of the total set, with pagination metadata.

Example config

Normal response

{
  "total": 100,
  "data": ${pagination.data}
}

Pagination Data (data from ${pagination.data})

{
  "id": "${random.uuid}",
  "name": "${random.name}",
  "email": "${random.email}",
  "role": "${request.body.role}",
  "city": "${customdata.cities.random}",
  "score": ${math.random(0, 100)},
  "token": "${random.jwt}"
}

HTTP & WS Client

Mockondo includes a full-featured built-in HTTP client (a Postman alternative) and a WebSocket client so you can test your mock servers without leaving the app.

HTTP Client features

  • All HTTP methods (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS)
  • Request headers management
  • Body types: JSON, form data, raw text, binary
  • cURL import and export
  • Full interpolation support in URL, headers, and body
  • Response viewer with syntax highlighting

WebSocket Client features

  • Connect to any WebSocket server (including your Mockondo mock)
  • Send messages with interpolation support
  • Full conversation log with timestamps
  • Auto-reconnect support

API Specifications

Import existing API specs to instantly scaffold mock endpoints, or export your Mockondo configuration as a standard spec to share with your team.

OpenAPI 3.0.3

  • Import parse an OpenAPI 3.0.3 YAML/JSON file and auto-generate HTTP endpoints with example responses
  • Export export your mock definitions as a valid OpenAPI 3.0.3 document (interpolation variables are resolved to examples)

AsyncAPI 2.6

  • Import parse an AsyncAPI 2.6 spec and generate WebSocket endpoints with message definitions
  • Export export WebSocket mock configurations as an AsyncAPI 2.6 document

Mockondo preserves its own metadata (delays, rules, interpolation) when round-tripping through import/export, so you can safely re-import a previously exported file.

Code Generation

Paste any JSON payload and Mockondo will generate strongly-typed model classes in your language of choice.

Supported languages

TypeScript Dart Kotlin Swift

Example

Input JSON:

{
  "id": "abc-123",
  "name": "Alice",
  "email": "alice@example.com",
  "isActive": true
}

Generated TypeScript:

interface User {
  id: string;
  name: string;
  email: string;
  isActive: boolean;
}

AI Agent Integration

Describe what you need in plain language and let Mockondo's AI agent generate your mock server configuration automatically.

What the AI can do

  • Generate complete mock projects from a plain-language description
  • Create complex HTTP endpoints with realistic response data
  • Set up WebSocket servers with message rules
  • Apply appropriate interpolation variables automatically
  • Configure conditional rules based on described behavior

Example prompts

"Create a REST API for an e-commerce app with products, cart, and orders endpoints"

"Build a chat WebSocket server that broadcasts messages to all clients"

"Generate a paginated users endpoint with 500 total users"

The AI agent requires an internet connection and an API key. Configure it in Mockondo's settings panel.

Offline First

Mockondo runs entirely on your machine. No cloud, no account, no internet required your mock servers start instantly and stay private.

Why it matters

  • Work on flights, trains, or anywhere without Wi-Fi
  • No data ever leaves your device (sensitive projects stay private)
  • Zero latency between requests servers respond at local speed
  • All project data is stored locally and persists between sessions

Full state export

Save your entire Mockondo workspace all projects, endpoints, client requests, and S3 config to a single JSON file. Share it with teammates or restore it on another machine.