Steps
- Confirm your email first. Creating a key waits for it.
- In Studio, open Settings. Under API Keys, type a name and press + Create. Copy the token now. It starts with
wb_live_and is shown only once. - Store the token as a secret in your CI, for example
WORDIS_BOND_API_KEY. Send it asAuthorization: Bearer <token>. - Find the suite id. List your suites with
GET /api/tests/suitesand copy theidof the one to run.curl -s https://api.wordis-bond.com/api/tests/suites \ -H "Authorization: Bearer $WORDIS_BOND_API_KEY" | jq '.data[] | {id, name}' - Run it. Send only the suite id to
POST /api/tests/run. Every scenario in the suite runs, anddata.runslists one run per scenario. Then wait for each run to finish and fail the step unless every run passed. The script below does both; Studio shows the same recipe under Settings, Use in CI.resp=$(curl -sS -X POST https://api.wordis-bond.com/api/tests/run \ -H "Authorization: Bearer $WORDIS_BOND_API_KEY" \ -H "Content-Type: application/json" \ -d "{ \"suiteId\": \"$SUITE_ID\" }") echo "$resp" | jq -e '.data.runs | length > 0' >/dev/null || { echo "$resp"; exit 1; } for id in $(echo "$resp" | jq -r '.data.runs[].id'); do for i in $(seq 1 60); do run=$(curl -sS https://api.wordis-bond.com/api/tests/$id -H "Authorization: Bearer $WORDIS_BOND_API_KEY") case "$(echo "$run" | jq -r .data.status)" in completed|failed) break ;; esac sleep 15 done echo "$run" | jq -e '.data.passed == true' >/dev/null || { echo "run $id did not pass"; exit 1; } done - Revoke a key you no longer use: press Revoke next to it in Settings. A revoked key is refused at once.
What you get
Your build step fails when any run in the suite does not pass, and succeeds when every run passed.
If something fails
| Status | Code | Message | What it means |
|---|---|---|---|
| 403 | EMAIL_VERIFICATION_REQUIRED | Verify your email before creating API keys. | Confirm your email, then create the key. |
| 402 | API_KEY_LIMIT | The starter plan includes 1 active API key; this account has 1. Revoke one to create another. | The free plan allows one active key. Revoke the old one first. |
| 422 | VALIDATION_ERROR | name is required | Give the key a name. |
| 401 | UNAUTHORIZED | Invalid or revoked API key | The key is wrong or was revoked. Create a new one. |
| 404 | SUITE_NOT_FOUND | Suite not found | The suite id is wrong or belongs to another account. |
| 429 | RATE_LIMITED | Too many scoring requests — slow down (30 per minute). | Your builds sent too many runs in one minute. Retry after a minute. |
Not ready yet
- On the free tier the suite runs against the sandbox agent, so this gate proves your wiring and the judge, not your own agent's behavior. Running a suite against your own voice agent is not ready yet.
Last checked 2026-10-11. More help: Sign up and run your first test · Read a scorecard · Score a captured transcript · Schedule a suite.