# POST /auto-queues/:queue_id/bulk-enroll

**Resource:** [Auto Queues](./auto-queues.md)  
**MCP tool:** `bulk_enrol_in_auto_queue`  
**Scopes:** `automations:write`  
**Write operation:** yes

Bulk-enrol contacts or opportunities in an event queue. Pass ids directly, or a filter to enrol everything matching it. At least one of contact_ids, deal_ids, contact_filter or customer_filter is required.

## Parameters

| Name | In | Type | Required | Description |
|------|----|------|----------|-------------|
| `queue_id` | path | string | yes |  |
| `contact_ids` | body | array | no | Contact UUIDs to enrol. |
| `deal_ids` | body | array | no | Opportunity UUIDs to enrol. |
| `contact_filter` | body | object | no | Enrol every contact matching this filter instead of listing ids. |
| `customer_filter` | body | object | no | Enrol every company matching this filter instead of listing ids. |
| `enrollment_time` | body | string | no | When enrolment takes effect. Defaults to now. |
| `skip_if_already_enrolled` | body | boolean | no | Skip records already in the queue instead of re-enrolling them. |
| `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/auto-queues/:queue_id/bulk-enroll"   -H "Authorization: Bearer YOUR_API_KEY"   -H "Content-Type: application/json"   -d '{"contact_ids":["..."]}'
```

## Response example

```json
{
  "data": {
    "enrolled": 47,
    "skipped": 3,
    "failed": 0,
    "enrollment_ids": ["uuid1", "uuid2", "..."],
    "has_more": false
  },
  "meta": { "credits_remaining": 9440, "url": "https://app.trustpager.com/auto/event-queues/QUEUE_ID" }
}
```

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