# POST /opportunities/bulk-products

**Resource:** [Opportunities](./opportunities.md)  
**MCP tool:** `bulk_add_opportunity_products_multi`  
**Scopes:** `opportunities:write`  
**Write operation:** yes

Add product line items to up to 100 opportunities in a single request (cross-opportunity bulk). Each item is { opportunity_id, products: [{ product_id, quantity, unit_price, discount_percent?, sort_order?, section? }] }. Per-item errors are isolated; each affected opportunity's value rolls up automatically. Built for high-volume migrations / batch quoting.

## Parameters

| Name | In | Type | Required | Description |
|------|----|------|----------|-------------|
| `items` | body | array | yes |  |
| `require_approval` | body | boolean | no | Optional. Set true to route this write into the approval queue for human review instead of executing it immediately (returns 202 + an approval_id). Works even when your key/token has permission to execute directly. |

## Request example

```bash
curl -X POST   "https://api.trustpager.com/functions/v1/api/v1/opportunities/bulk-products"   -H "Authorization: Bearer YOUR_API_KEY"   -H "Content-Type: application/json"   -d '{"items":"..."}'
```

---
Base URL: `https://api.trustpager.com/functions/v1/api/v1` — Auth: `Authorization: Bearer YOUR_API_KEY`