---
title: "Every account's runs, newest first. Owner only."
method: GET
path: "/v1/admin/runs"
tags: ["admin"]
---

# Every account's runs, newest first. Owner only.

`GET /v1/admin/runs`

## Request

- Base URL: `https://api.hookdetector.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.hookdetector.com/v1/admin/runs`
- Auth: none declared

Research runs across every account, newest first: run_id, account_id, the person's
email, kind, topic, language, country, status, requested, hooks (results delivered:
hooks for a short run, videos for a long or packaging run), reserved, charged, failure_kind, error, created_at and finished_at. Needs the admin scope and an
admin account. MCP: admin_list_runs.

## Query parameters

- `limit` integer, nullable: page size, 1 to 200 (default 50)
- `status` 'queued' | 'running' | 'done' | 'failed', nullable: only runs with this status
- `account_id` string, nullable: only this account's

## Headers

- `authorization` string, nullable: Bearer hd_... from POST /v1/accounts or POST /v1/keys

## Response `200`

Successful Response

- AdminRunList
  - `runs` AdminRunItem[], required: every account's runs, newest first
    - `run_id` string, required
    - `account_id` string, required
    - `email` string, nullable, required
    - `kind` string: short, long or packaging
    - `topic` string, required
    - `language` string, nullable, required
    - `country` string, nullable, required
    - `status` string, required: queued, running, done or failed
    - `requested` integer, required
    - `hooks` integer, required: results delivered: hooks for a short run, videos for a long or packaging run
    - `reserved` integer, required
    - `charged` integer, required
    - `failure_kind` string, nullable, required
    - `error` string, nullable, required
    - `created_at` string, required
    - `finished_at` string, nullable, required

## Other responses

- `401`: missing, invalid, revoked or expired API key (code key_expired)
- `403`: the key lacks the admin scope (insufficient_scope), or its account is not the owner's (admin_required)
- `413`: request body over the size cap
- `422`: invalid input
- `500`: our fault; names the request id

---

[API](https://skmtc.dev/hookdetector/apis/hook-detector.md) · [All operations](https://skmtc.dev/hookdetector/apis/hook-detector/llms.txt) · [OpenAPI document](https://skmtc.dev/hookdetector/apis/hook-detector/revisions/b136a2804d2b?raw)
