Test against any API, before it's ready
Record real traffic or import an OpenAPI spec and get a working mock API in minutes. Every call is checked against the contract, and it all runs in your own cloud.
Runs in your own cloud. No changes to your application code.
$ curl -X POST https://mocks.acme.dev/orders \ -H "Content-Type: application/json" \ -d '{"sku":"LAP-15","qty":2}' HTTP/1.1 201 Created x-mock-response: true x-apiklone-oas-validation: Passed { "orderId": "3f787860-8fea-46f8-8035-4ef64c4c63f0", "sku": "LAP-15", "qty": 2, "status": "CONFIRMED" }
Delivery moves at the speed of your slowest backend
Blocked testing
Testing and frontend work waits until backend services are deployed and stable.
Unstable environments
Shared staging suffers from corrupted data, downtime and rate limits.
Limited coverage
Live backends rarely produce the errors, slow responses and edge cases you need to test.
One layer in front of your APIs, three modes
Point your application at APIKlone instead of the backend. For each endpoint and method, choose what happens to the call.
Capture real traffic
Forwards each call and saves the request and response as a mock file.
Pass straight through
Forwards each call to the backend untouched. Nothing is saved.
Bypass the backend
Answers with a saved stubbed response. The backend is never called.
From a spec to a mock API you can trust
Three things make a mock useful: it exists quickly, it stays true to the contract, and it behaves like the real service.
Mocks from your OpenAPI spec, no recording needed
Upload a Swagger 2 or OpenAPI 3 file and every operation becomes a live endpoint with a sample response built from its schema.
- Path parameters understood:
/products/42finds the mock for/products/{id} - Returns the status codes the spec documents
- Mock files listed by operation, ready to edit
- The same import is available from a pipeline through the REST API
# uploaded: products.yaml (OpenAPI 3.0) GET /shop/products 200 POST /shop/products 201 GET /shop/products/{id} 200 PUT /shop/products/{id} 200 4 mock endpoints live
Every call checked against the contract
Turn on strict validation and APIKlone enforces the spec on the way in and reports on it on the way out.
- A request that breaks the contract gets a 400 naming the field at fault
- Each mock response is labelled Passed or Failed in a header, without stopping your test
- Mocked answers are marked, so a test can tell them from live ones
- Every failure is written to the server log with the reason
POST /orders {"sku":"LAP-15"} HTTP/1.1 400 Bad Request { "error": "OAS Schema Validation Failed", "details": [{ "path": "qty", "message": "must have required property 'qty'", "location": "body" }] }
Mocks that behave like the real service
A fixed response only gets you so far. Fill a mock from the request that triggered it, and slow it down when you need to test patience.
- Dynamic responses: echo IDs, body fields and headers, or add a fresh UUID and timestamp
- Response delay of up to 60 seconds, to exercise timeouts and loading states
- Edited in the browser, with a picker for the placeholders
{
"statusCode": 201,
"delayMs": 300,
"templating": true,
"headers": { "Content-Type": "application/json" },
"body": {
"orderId": "{{uuid}}",
"sku": "{{request.body.sku}}",
"qty": "{{request.body.qty}}",
"createdAt": "{{now}}"
}
}
Traffic recording
Capture real requests and responses once, then replay them offline as often as you like.
Key-based routing
Up to three request fields choose which response is served: success, not found, declined.
Async callbacks
Acknowledge now, then send the callback to your application after a delay you set.
Portable configs
Export an API's endpoints, mocks and spec as one file and import it into another environment.
Enable or disable
Park a whole config without deleting it, and switch between versions of the same API.
Headless REST API
Create configs, import specs and add mocks from a pipeline, with no clicks in the UI.
Control over who does what
Built for teams that have to answer "who changed this?" and "where does our data go?"
Single sign-on
Sign in through your identity provider with SAML or OpenID Connect.
Audit trail
Sign-ins, key changes and config edits, each with who, what, when and outcome.
API keys
One labelled key per pipeline, named in the audit trail and revocable on its own.
Your data stays put
APIKlone runs as one non-root container inside your own perimeter.
All of this is part of APIKlone Enterprise. See pricing.
Runs in your cloud, on your terms
One container plus permanent storage. Follow a step-by-step guide for your cloud, start with one replica and scale out when your teams depend on it.
Microsoft Azure
Container Apps with an Azure Files share
View the guideGoogle Cloud
Cloud Run with a Cloud Storage bucket
View the guideAmazon Web Services
ECS Fargate with an EFS file system
View the guideOr try it on your laptop first
Pull the image, pass your activation key and mount a folder for its data. The dashboard is on port 3000.
- Your activation key is under Profile → My Key once you sign up
- Keys belong in your cloud's secret store: see key management best practices
docker run -d \ --name apiklone \ -e ACTIVATION_KEY="<your-activation-key>" \ -p 3000:3000 \ -v $(pwd)/data:/app/data \ apiklone/apiklone:latest
Ship faster. Test without waiting.
Bring one of your own OpenAPI specs and have a working mock API before your next stand-up.
Contact sales
Tell us what you're trying to test and we'll help you work out the right setup for your environments.
Enterprise solutions
Single Sign-On (SSO), comprehensive audit logs, and dedicated compliance architectures.
Tailored onboarding
Dedicated technical account managers to align your engineering organization.
Direct access and support
Priority SLA responses, or email us any time at support@apiklone.com.