How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Keploy Cloud API

REST API for Keploy Cloud (base https://api.keploy.io/client/v1) providing AI test-suite generation and execution, app/test-suite management, recordings/mocks, test and load-test reports, schema coverage, smart sets, branches, jobs, API keys, clusters, and account/subscription info. Authenticated via scoped kep_-prefixed API keys (X-API-Key or Bearer). A first-party OpenAPI 3.0.3 (55 paths, 71 operations) is served at https://api.keploy.io/client/v1/openapi.yaml.

This API exposes 71 operations across 55 paths, organized into 14 resource areas, and defines 82 schemas. It is described by OpenAPI 3.0.3, at version 1.0.0.

Requests are made against 2 base URLs: https://api.keploy.io/client/v1, https://api.staging.keploy.io/client/v1.

71 operations 55 paths 82 schemas 6 DELETE40 GET1 PATCH19 POST5 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.3
API Version
1.0.0
Base URL
https://api.keploy.io/client/v1
Authentication
API Key
Terms of Service
Resource Areas
14

Authentication & Security 1

Keploy Cloud API declares 1 security scheme for authenticating requests. An API key is passed in the header as X-API-Key (apiKeyAuth). By default, every request must be authenticated.

  • apiKeyAuth — Personal Access Token (kep-prefixed). Generate from Settings API Keys.

Paths & Operations 71

Across 55 paths, the API surfaces 71 operations — 6 DELETE, 40 GET, 1 PATCH, 19 POST, 5 PUT. They span 14 resource areas, including Apps, Clusters, Recordings, Test Reports, Test Suites, Test Runs, Load Tests, Generation History, and 6 more. Each is listed below with its method, path, parameters, and response codes.

Apps 6
GET
/apps
List apps
listApps 3 params → 200401403429500
POST
/apps
Create an app
createApp body → 201400401403409429413500
GET
/apps/{appId}
Get an app
getApp 2 params → 200401403404429500
PUT
/apps/{appId}
Update an app
updateApp 1 param body → 200400401403404429413500
DELETE
/apps/{appId}
Delete an app
deleteApp 1 param → 200401403404429500
GET
/apps/{appId}/schema-coverage
Get schema coverage
getSchemaCoverage 1 param → 200401403404429500
Clusters 3
GET
/clusters
List clusters
listClusters → 200401403429500
POST
/clusters
Create a cluster
createCluster body → 201400401403409413429500
GET
/apps/by-cluster/{clusterId}
List apps in a cluster
listAppsByCluster 1 param → 200401403429500
Recordings 16
GET
/apps/with-recordings
List proxy apps with network recordings
listAppsWithRecordings → 200401403429500
GET
/apps/{appId}/recordings
List recording sessions
listRecordings 3 params → 200401403404429500
GET
/apps/{appId}/recordings/{testSetId}
Get recorded test cases
getRecording 4 params → 200401403404429500
GET
/apps/{appId}/generated-schema
Get auto-generated OpenAPI schema
getGeneratedSchema 1 param → 200401403404429500
GET
/apps/{appId}/recordings/{testSetId}/mocks
List mocks for a recording
listMocks 4 params → 200401403404429500
POST
/apps/{appId}/recordings/{testSetId}/mocks
Author one mock under a recording
createMock 2 params body → 200400401403404429500
GET
/apps/{appId}/recordings/{testSetId}/mocks/{mockId}
Read one mock's canonical YAML
getMock 4 params → 200401403404429500
PUT
/apps/{appId}/recordings/{testSetId}/mocks/{mockId}
Replace one mock's stored data
updateMock 3 params body → 200400401403404429500
DELETE
/apps/{appId}/recordings/{testSetId}/mocks/{mockId}
Drop one mock
deleteMock 4 params → 200401403404429500
GET
/apps/{appId}/recordings/{testSetId}/test-cases/{testCaseId}/mock-mapping
Read the mocks currently linked to a test case
getMockMapping 4 params → 200401403404429500
POST
/apps/{appId}/recordings/{testSetId}/test-cases/{testCaseId}/mock-mapping
Link or unlink a mock from a test case
editMockMapping 3 params body → 200400401403404429500
POST
/apps/{appId}/recordings/bundle
Atomic test set + cases + mocks + mappings ingest
uploadRecordingBundle 1 param body → 200400401403404409429500
GET
/apps/{appId}/recordings/{testSetId}/test-cases/{testCaseId}
Get a single test case
getTestCase 4 params → 200401403404429500
PUT
/apps/{appId}/recordings/{testSetId}/test-cases/{testCaseId}
Update a test case
updateTestCase 4 params body → 200401403404429413500
GET
/apps/{appId}/recordings/{testSetId}/export
Export a recording bundle
exportRecording 3 params → 200401403404429500
POST
/apps/{appId}/recordings/{testSetId}/import
Import test case changes into a recording
importRecording 3 params body → 200401403404429413500
Test Reports 5
GET
/apps/{appId}/test-reports
List test run reports
listTestReports 9 params → 200401403404429500
GET
/apps/{appId}/test-reports/{reportId}
Get a test run report
getTestReport 2 params → 200401403404429500
GET
/apps/{appId}/test-reports/{reportId}/full
Get a fully-inflated test run report
getTestReportFull 7 params → 200401403404429500
GET
/apps/{appId}/test-reports/{reportId}/test-set-reports
List test set reports within a run
listTestSetReports 4 params → 200401403404429500
GET
/apps/{appId}/test-reports/{reportId}/test-set-reports/{testSetReportId}/test-cases
List test case reports
listTestCaseReports 5 params → 200401403404429500
Test Suites 9
GET
/apps/{appId}/test-suites
List test suites
listTestSuites 7 params → 200401403429500
POST
/apps/{appId}/test-suites
Create a test suite
createTestSuite 3 params body → 201400401403409413426429
POST
/apps/{appId}/test-suites/generate
Generate test suites via AI
generateTestSuites 1 param body → 202400401403429413500
POST
/apps/{appId}/test-suites/run
Run test suites
runTestSuites 1 param body → 202400401403429413500
POST
/apps/{appId}/test-suites/bulk-delete
Bulk-delete test suites
bulkDeleteTestSuites 1 param body → 200400401403429413500
GET
/apps/{appId}/test-suites/{suiteId}
Get a test suite
getTestSuite 3 params → 200401403404429500
PUT
/apps/{appId}/test-suites/{suiteId}
Update a test suite
updateTestSuite 3 params body → 200400401403404429413500
DELETE
/apps/{appId}/test-suites/{suiteId}
Delete a test suite
deleteTestSuite 3 params → 200401403404429500
POST
/apps/{appId}/test-suites/{suiteId}/validate
Validate a test suite
validateTestSuite 2 params → 202401403404429500
Test Runs 6
GET
/apps/{appId}/test-runs
List test runs
listTestRuns 4 params → 200400401403429500
GET
/apps/{appId}/test-runs/{runId}
Get a test run
getTestRun 2 params → 200401403404429500
POST
/apps/{appId}/test-runs/{runId}/normalize
Normalize a test run
normalizeTestRun 2 params → 200401403404429500
GET
/apps/{appId}/test-runs/{runId}/suite-reports
List suite reports for a test run
listSuiteReports 5 params → 200401403404429500
GET
/apps/{appId}/test-runs/{runId}/suite-reports/{reportId}
Get a suite report
getSuiteReport 3 params → 200401403404429500
POST
/apps/{appId}/test-runs/{runId}/suite-reports/{reportId}/normalize
Normalize a suite report
normalizeSuiteReport 3 params → 200401403404429500
Load Tests 5
POST
/apps/{appId}/load-tests
Start a load test
startLoadTest 1 param body → 202400401403429413500
GET
/apps/{appId}/load-tests
List load test runs
listLoadTestRuns 1 param → 200401403429500
GET
/apps/{appId}/load-tests/{runId}
Get a load test report
getLoadTestReport 2 params → 200401403404429500
POST
/apps/{appId}/load-tests/{runId}/stop
Stop a running load test
stopLoadTest 2 params → 200401403404429500
GET
/apps/{appId}/load-tests/{runId}/events
Stream load test events (SSE)
streamLoadTestEvents 2 params → 200401403404429500
Generation History 2
GET
/apps/{appId}/generation-history
List generation history
listGenerationHistory 1 param → 200401403429500
GET
/apps/{appId}/generation-history/{jobId}
Get generation history details
getGenerationHistoryDetails 2 params → 200401403404429500
Branches 2
GET
/apps/{appId}/branches
List Keploy branches on an app
listBranches 2 params → 200401403404429500
POST
/apps/{appId}/branches/ci
Find-or-create a CI branch
createCIBranch 1 param body → 200400401403404409429413
Jobs 5
GET
/jobs
List jobs
listJobs 2 params → 200401403429500
GET
/jobs/{jobId}
Get a job
getJob 1 param → 200401403404429500
POST
/jobs/{jobId}/stop
Stop a running job
stopJob 1 param → 200401403404429500
GET
/jobs/{jobId}/events
Stream job events (SSE)
streamJobEvents 1 param → 200401403404429500
GET
/jobs/{jobId}/validation-result
Get job validation result
getValidationResult 1 param → 200401403404429500
Company 2
GET
/company/subscription
Get company subscription
getSubscription → 200401403429500
GET
/company/usage
Get company usage
getUsage → 200401403429500
Users 1
GET
/users/me
Get current user
getCurrentUser → 200401429500
API Keys 3
POST
/api-keys
Create an API key
createAPIKey body → 201400401403429413500
GET
/api-keys
List API keys
listAPIKeys → 200401403429500
DELETE
/api-keys/{keyId}
Revoke an API key
revokeAPIKey 1 param → 200401403404429500
SmartSet 6
GET
/apps/{appId}/smart-set/cases
List smart test cases
listSmartTestCases 3 params → 200401403404429500
PATCH
/apps/{appId}/smart-set/cases/{name}
Edit a smart test case (branch-only)
updateSmartTestCase 2 params body → 200400401403404429500
DELETE
/apps/{appId}/smart-set/cases/{name}
Delete a smart test case (branch-only)
deleteSmartTestCase 3 params → 200400401403404429500
POST
/apps/{appId}/smart-set/cases/{name}/obsolete
Mark a smart test case obsolete / restore it (branch-only)
setSmartTestCaseObsolete 2 params body → 200400401403404429500
PUT
/apps/{appId}/smart-set/mocks/{name}
Create or replace a smart-set mock's content (branch-only)
upsertSmartMock 2 params body → 200400401403404429500
DELETE
/apps/{appId}/smart-set/mocks/{name}
Delete a smart-set mock (branch-only)
deleteSmartMock 3 params → 200400401403404429500

Schemas 82

The contract defines 82 schemas that model the data the API accepts and returns. The most detailed are TestRunReportResponse (31 properties), UpdateAppRequest (23 properties), OssTestResult (17 properties), TestSetReportResponse (14 properties). Each schema is shown below with its type and property counts.

Envelope
object
3 properties
Meta
object
4 properties
Pagination
object
5 properties
APIError
object
3 properties
ErrorDetail
object
2 properties
AppResponse
object
Lightweight app shape returned by listApps. Single-app reads (getApp/updateApp/createApp) return the full App schema below instead.
6 properties
App
object
13 properties
Origin
object
5 properties
AppWithRecordingsResponse
object
3 properties
TestSetResponse
object
9 properties
HTTPRequest
object
4 properties
HTTPResponse
object
3 properties
TestCaseResponse
object
8 properties
GeneratedSchemaResponse
object
2 properties
ClusterResponse
object
3 properties
CreateClusterRequest
object
2 properties 1 required
ClusterCreatedResponse
object
4 properties
AppByClusterResponse
object
3 properties
TestRunReportResponse
object
Rollup view of a single legacy /tr test run. For AI analysis prefer getTestReportFull — this shape gives counts + CI/normalize/coverage metadata but doesn't in…
31 properties
TestSetReportResponse
object
Per-test-set roll-up. Includes tests[] (per-case name + status + statuscode) so callers can identify failing cases without fanning out to listTestCaseReports.
14 properties
TestCaseReportResponse
object
Individual test-case result. ossreport.result carries the structured request/response/body/header diff; ossreport.mockmismatches carries the expected-vs-actual…
6 properties
CreatorDetails
object
3 properties
NormalizeData
object
3 properties
TestCoverage
object
3 properties
CIMetadata
object
CI provenance stamped by the enterprise CLI when running in a pipeline.
12 properties
TestCaseInfo
object
Mirrors models.TestCaseInfo (pkg/models/testSetReport.go). Field names match the JSON tags on the Go struct exactly — testName (camelCase) for the case name, s…
3 properties
MockEntry
object
2 properties
OssTestResult
object
Wire shape of go.keploy.io/server/v3@v3.5.49 models.TestResult. Property names track the JSON tags on the Go struct exactly — note that several are camelCase (…
17 properties
OssFailureInfo
object
Wire shape of go.keploy.io/server/v3@v3.5.49 models.FailureInfo. Populated by the matcher (risk, category, assessment) and the replayer (matchedcalls, unmatche…
6 properties
MockMismatchInfo
object
2 properties
OssResult
object
6 properties
IntResult
object
3 properties
HeaderResult
object
3 properties
BodyResult
object
4 properties
HTTPReq
object
Wire shape of go.keploy.io/server/v3@v3.5.49 models.HTTPReq. header is a map[string]string (single value per key), not a list. There is no host / port / bodyty…
11 properties
HTTPResp
object
Wire shape of go.keploy.io/server/v3@v3.5.49 models.HTTPResp. header is a map[string]string (single value per key). No bodytype on this struct.
10 properties
MockReferenceResponse
object
6 properties
MockSpecResponse
object
3 properties
SubscriptionResponse
object
6 properties
PublicAPIKey
object
10 properties
CreateAppRequest
object
Body for POST /apps. Name is required and immutable — pick it carefully because updateApp deliberately rejects renames (the app name is the stable identifier d…
9 properties 1 required
UpdateAppRequest
object
RENAMING APPS IS PROHIBITED. The app name is the immutable identifier devs and CI scripts type into commands; the API rejects every attempt to change it. Do no…
23 properties
Auth
object
Authentication configuration for test execution. The runner injects the matching headers on every step request.
6 properties
GenerateTestSuitesRequest
object
12 properties 1 required
CreateAPIKeyRequest
object
3 properties 2 required
EnvelopeApp
object
3 properties
EnvelopeAppList
object
3 properties
EnvelopeAppWithRecordingsList
object
3 properties
EnvelopeTestSetList
object
3 properties
EnvelopeTestCaseList
object
3 properties
EnvelopeTestCase
object
3 properties
EnvelopeGeneratedSchema
object
3 properties
EnvelopeClusterList
object
3 properties
EnvelopeClusterCreated
object
3 properties
EnvelopeAppByClusterList
object
3 properties
EnvelopeTestRunReportList
object
3 properties
EnvelopeTestRunReport
object
3 properties
EnvelopeTestSetReportList
object
3 properties
EnvelopeTestRunReportFull
object
3 properties
TestRunReportFull
object
3 properties
TestSetReportWithCases
EnvelopeTestCaseReportList
object
3 properties
EnvelopeMockReferenceList
object
3 properties
EnvelopeMockList
object
3 properties
EnvelopeMockSingle
object
3 properties
EnvelopeSuccess
object
3 properties
EnvelopeMappingEdit
object
3 properties
EnvelopeBundleUpload
object
3 properties
RecordingExport
object
4 properties
MappingDocument
object
4 properties
EnvelopeRecordingExport
object
3 properties
RecordingImportResult
object
4 properties
EnvelopeRecordingImportResult
object
3 properties
EnvelopeSubscription
object
3 properties
EnvelopeAPIKeyCreated
object
3 properties
EnvelopeAPIKeyList
object
3 properties
EnvelopeDeleted
object
3 properties
EnvelopeError
object
2 properties
ValidatorRule
object
A single MCP-validator rule. Returned inside ValidatorVersionMismatch.changedrules so clients can render the specific rules that were added between their pre-v…
4 properties
ValidatorVersionMismatch
object
Body of the HTTP 426 response when an enterprise binary pre-validates a suite locally and stamps a X-Keploy-Validator-Version header whose value disagrees with…
5 properties
EnvelopeValidatorVersionMismatch
object
Standard envelope wrapping a ValidatorVersionMismatch payload under data. This is the actual on-the-wire shape of the 426 response — every other apiv1 response…
2 properties
RunTestSuitesRequest
object
Body for POST /apps/{appId}/test-suites/run. Mirrors apiv1.RunTestSuitesRequest in testsuites.go — the spec documents only the fields the SaaS path uses; neste…
6 properties 1 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

keploy-cloud-api-openapi.yaml Raw ↑
Where this information came from

This is an independent, third-party profile of Keploy Cloud API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.