---
title: "Admin Scrub Public Agents"
method: POST
path: "/api/v1/agents/admin/scrub-public"
tags: ["agents"]
---

# Admin Scrub Public Agents

`POST /api/v1/agents/admin/scrub-public`

## Request

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

Admin-only escape hatch to scrub leaked test/demo agents from the
public Talent Pool + Compare + Registry surfaces.

Soft-fix only — flips `is_public` to False, leaves the row otherwise
intact so the owner can still find it under their own /agents. Added
2026-05-17 after an E2E session left a handful of throwaway agents
('v0.1.7 verify', 'QA Test Agent', etc.) visible on /compare.

Returns the count + names of rows updated so the operator can sanity-
check what they just touched. ADMIN_EMAILS gate via require_admin.

## Query parameters

- `name_pattern` string, required: Case-insensitive substring. Any agent whose name contains this string will be flipped to is_public=false.

## Response `200`

Successful Response

- object

## Other responses

- `403`: Admin only
- `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)
