https://app.cntillion.com/api/v2. Authenticate with a workspace
key from Workspace settings → API keys. A Read only key can read tests,
transcripts, and results. Creating or changing tests, starting runs, and
canceling them requires a Full access key. Keys can access only their own
workspace. The Developer API covers key expiry,
revocation, pagination, errors, and the 100-request-per-10-second rate limit.
Create a reusable test
201 with data.id, data.configuration, data.revision, and
creator metadata. Simulations can run for 1 to 50 turns. testType can also be
next_reply or tool_invocation; both take a messages context transcript
ending with a user message.
Read a saved test’s configuration to copy or modify it. Configuration supports
multiple criteria, success/failure examples, JSON dynamic variables,
simulator/evaluator models, workflow starting nodes and transition assertions,
and mock strategies with conditional overrides. Each tool parameter can use
anything, exact, regex, or llm validation. Use action IDs returned by the
agent’s test listing, including distinct IDs for each MCP subtool.
Library and agent suites
Library
filter values are all, created-by-me, and shared-with-me, relative
to the API key’s creator. Older tests without creator metadata appear under
shared tests. The workspace library allows 500 tests, and each agent can have
200 attached or local tests.
Updates include configuration and the latest revision. A stale revision
returns 409. Updating a shared test changes its definition for every attached
agent. Wait for active runs to finish before editing a test. A test or folder
ID outside the workspace returns 404 TEST_NOT_FOUND or FOLDER_NOT_FOUND.
Start a run
source defaults to agent, which takes IDs from the agent’s suite. The
workspace source attaches missing library tests to the selected agent before
queuing them. repeats accepts every integer from 1 through 20, subject to a
maximum of 200 conversations per request.
A run requires an Idempotency-Key of 1 to 128 characters. Retry the same
logical request with the same key and body after a network failure. Replays
return the original response for 24 hours with Idempotent-Replayed: true and
create no additional conversations. Reusing the key with another body returns
409 IDEMPOTENCY_KEY_REUSED.
A successful request returns 202:
skipped when a release check requires
every selected test to run. If message credits would be needed, the API instead
returns 409 with data.requiresConfirmation: true, data.estimate, and
data.credits. Review the estimate, then explicitly set
allowMessageCredits: true and use a new idempotency key to proceed.
Execution overrides select a simulated channel, named environment, target,
agent configuration, starting workflow node, or dynamic variables. Targets are
draft, published, branch, or version; branch and version targets require
id. Branch targets use the branch’s current published version. Named
environments belong to the test configuration and can provide variables and
secure HTTP/MCP connection resource mappings. Each run stores a private
configuration and tool snapshot; public results omit its stored credentials.
Read results and cancel runs
Resubmitting needs an
Idempotency-Key and takes optional testIds,
allowMessageCredits and overrides. It starts a new run with its own
suiteId. Without testIds it reruns the tests that failed, and returns 409
NOTHING_TO_RESUBMIT when none did. A test from outside the run returns 404
TEST_NOT_IN_SUITE.
Poll each returned batch ID until all conversations leave QUEUED or
IN_PROGRESS. Terminal verdicts are PASSED, FAILED, and NO_VERDICT.
Treat both failures and no-verdict results as a failed release check.
groupingStatus is pending, in_progress, or completed. Once complete,
resultGroups contains shared failure reasons and their runIds. Groups retain
every conversation’s original verdict. If semantic summarization cannot
complete, exact-reason groups remain available. Cancellation invalidates worker
leases, preserves completed verdicts, and retains usage already recorded.
JavaScript client and CI
The Centillion Labs repository includes the dependency-free JavaScript clientscripts/agent-testing-client.mjs and CLI scripts/agent-testing-cli.mjs for
Node.js 22 or later. Store CENTILLION_API_KEY in your CI secret store.
--test TEST_ID
flags. Use --source workspace, --settings overrides.json, or a stable
--idempotency-key when needed. CENTILLION_API_URL selects another API base
URL, including its path, for example https://staging.example.com/api/v2.
Exit codes are 0 when every selected conversation passes, 1 for failed,
no-verdict, or skipped tests, and 2 for request or timeout errors. The default
timeout is 1,800 seconds, configurable with --timeout; a timeout attempts to
cancel pending conversations. --no-wait returns queued batch IDs immediately.
Use --help for library CRUD, results, and cancellation commands. Saved evidence
contains transcripts and tool inputs. Restrict access to those CI artifacts.