---
title: "Approve All Opportunities"
method: POST
path: "/radar/opportunities/approve-all"
tags: ["Radar"]
---

# Approve All Opportunities

`POST /radar/opportunities/approve-all`

## Request

- Base URL: `https://be.graph8.com/api/v1`
- URL: `https://be.graph8.com/api/v1/radar/opportunities/approve-all`
- Auth: HTTP bearer

Bulk-approve opportunities in one lane - currently FAIL-CLOSED (HTTP 409).

campaign_builder deliberately rejects bulk approval until an item-by-item
review contract exists: ``approve_all_opportunities`` raises 409 'Bulk
approval requires review' on every call (campaign_builder/routers/radar.py).
This bridge forwards to that handler so the 409 is surfaced honestly instead
of fabricating a 200 - it never mutates or bills. Approve opportunities one
at a time via ``POST /radar/opportunities/{gap_id}/approve``.

Product gap (out of this bridge's scope): the developer-api reference
(docs/developer-api-reference.md ~L3799-3800) and the MCP tool
g8_radar_approve_all_opportunities still advertise a working 'top-50 drain'
and must be re-documented to the 409 contract, or the cb handler must gain a
real bulk-review flow.

## Headers

- `Authorization` string, nullable
- `X-Target-Org-Id` string, nullable

## Request body

- ApproveAllRequest
  - `lane` string

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/graph8/apis/graph8-developer-api.md) · [All operations](https://skmtc.dev/graph8/apis/graph8-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/graph8/apis/graph8-developer-api/revisions/2e7cfa0ca921?raw)
