---
title: "ADMIN-OPS-001 — discover ALL playbooks incl. private/inactive (admin-gated)"
method: GET
path: "/api/v1/admin/playbooks"
tags: ["admin"]
---

# ADMIN-OPS-001 — discover ALL playbooks incl. private/inactive (admin-gated)

`GET /api/v1/admin/playbooks`

## Request

- Base URL: `https://api.badgeia.com`
- URL: `https://api.badgeia.com/api/v1/admin/playbooks`
- Auth: none declared

List operational metadata for every playbook, including private and inactive rows.

The response intentionally excludes prompts, examples, tool configuration,
model settings, notes, agent endpoints, and other execution data. Filters are
optional and AND-combined. Owner email applies only to personal agents;
workspace ownership is represented by ``team_id``/``team_name``.

Auth: anonymous → 401, non-admin → 403, flag-off → 404. Pagination caps at
100 and search metacharacters are matched literally on Postgres and SQLite.

## Query parameters

- `page` integer
- `page_size` integer
- `search` string, nullable: Case-insensitive literal substring filter over playbook or agent name.
- `owner_email` string, nullable: Filter by exact personal-owner email (case-insensitive).
- `team_id` string, uuid, nullable: Filter by exact workspace UUID.

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/badgeia/apis/badge.md) · [All operations](https://skmtc.dev/badgeia/apis/badge/llms.txt) · [OpenAPI document](https://skmtc.dev/badgeia/apis/badge/revisions/7e7f7fee8b77?raw)
