Help

Run a suite from CI

Create an API key, run a saved suite from your build with one request, and fail the build when a run does not pass.

Steps

  1. Confirm your email first. Creating a key waits for it.
  2. 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.
  3. Store the token as a secret in your CI, for example WORDIS_BOND_API_KEY. Send it as Authorization: Bearer <token>.
  4. Find the suite id. List your suites with GET /api/tests/suites and copy the id of 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}'
  5. Run it. Send only the suite id to POST /api/tests/run. Every scenario in the suite runs, and data.runs lists 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
  6. 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

StatusCodeMessageWhat it means
403EMAIL_VERIFICATION_REQUIREDVerify your email before creating API keys.Confirm your email, then create the key.
402API_KEY_LIMITThe 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.
422VALIDATION_ERRORname is requiredGive the key a name.
401UNAUTHORIZEDInvalid or revoked API keyThe key is wrong or was revoked. Create a new one.
404SUITE_NOT_FOUNDSuite not foundThe suite id is wrong or belongs to another account.
429RATE_LIMITEDToo 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.