# List Runs

```
GET 
/v1/dbt/projects/:project_id/runs
```

List run history for a project, newest first.

Cursor-paginated: pass the returned `nextKey` back as `exclusiveStartKey`; `nextKey: null` means the last page. Run history is append-only, so this is the dbt list that grows without bound.

Cursor-paginated. The wire query parameter is `exclusiveStartKey` (what the cURL tab and the parameter table show); the TypeScript SDK takes it as the `exclusiveStartKey` option and the Python SDK as the `exclusive_start_key` keyword — one parameter, spelled per language. Pass the previous page's `nextKey` and stop when it comes back `null` — or let `iterAll()` / `iter_all()` drive the cursor for you (see the SDKs page, "Pagination").

## Request[​](#request "Enlace directo al request")

## Responses[​](#responses "Enlace directo al Responses")

* 200
* 404
* 422

Successful Response

Not found

Validation Error
