# Run a takeoff

From start to finish: plan upload, then the AI assessment, then symbols on the canvas. The same sequence ships as an MCP prompt (`takeoff_from_plans`) and as an [Arazzo workflow](https://api.exayard.com/workflows.arazzo.yaml).

## Steps

1. Create a project (or use an existing one). Upload a plan PDF via `POST /v1/files` + the presigned R2 URL.
2. `POST /v1/projects/{id}/assessments` starts an AI pass that runs in the background. A project runs one takeoff at a time: a second start while one is running answers 409 [`ANALYSIS_IN_PROGRESS`](https://developers.exayard.com/concepts/errors.md#ANALYSIS_IN_PROGRESS).
3. Poll `GET /v1/assessments/{id}` until `status === "complete"`. Or subscribe to the `assessment.completed` webhook event.
4. The measured elements are symbols. Use `GET /v1/projects/{id}/line-items` to see what's now bound.

## Don't

- Don't re-run the assessment to "refresh" quantities; re-count from the existing symbols instead, or it'll wipe user edits.
