---
title: "Create Verification Drill"
method: POST
path: "/api/v1/doc-verification-suites/{suite_id}/drills"
tags: ["authed"]
---

# Create Verification Drill

`POST /api/v1/doc-verification-suites/{suite_id}/drills`

## Request

- Base URL: `https://api.teaflask.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.teaflask.com/api/v1/doc-verification-suites/{suite_id}/drills`
- Auth: none declared

Creates the drill row and starts the drill workflow with the manual
trigger, which bypasses the enable/sampling gate. If the orchestration
service can't be reached the row is honestly settled as failed and the
caller gets the 503 — never a drill that silently goes nowhere.

## Path parameters

- `suite_id` string, uuid, required

## Response `201`

Successful Response

- VerificationDrillResponse
  - `id` string, uuid, required
  - `organization_id` string, uuid, required
  - `suite_id` string, uuid, required
  - `trigger` 'authoring' | 'manual', required: Manual drills bypass the enable/sampling gate.
  - `status` 'running' | 'succeeded' | 'failed', required
  - `mutant_count` integer, required
  - `caught_count` integer, nullable, required
  - `escaped_count` integer, nullable, required
  - `errored_count` integer, nullable, required
  - `error` string, nullable, required
  - `started_at` string, date-time, required
  - `finished_at` string, date-time, nullable, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `405`: Method not allowed
- `409`: Suite is not drillable
- `422`: Validation error
- `500`: Internal server error
- `503`: Orchestration unavailable

---

[API](https://skmtc.dev/teaflask/apis/teaflask-api.md) - [All operations](https://skmtc.dev/teaflask/apis/teaflask-api/llms.txt) - [OpenAPI document](https://skmtc.dev/teaflask/apis/teaflask-api/revisions/d23e9286b847?raw)
