**Source URL:** https://limited.veevavault.dev/vault-api/api-reference/26.3/workflows/bulk-active-workflow-actions/remove-participants-from-multiple-workflows

# Remove Participants from Multiple Workflows

Remove members from participant groups across multiple active workflows in a single asynchronous job. Vault starts a job and returns a `job_id`. Use this ID to retrieve per-workflow results with [Retrieve Remove Participants from Multiple Workflows Results](/vault-api/api-reference/26.3/workflows/bulk-active-workflow-actions/retrieve-remove-participants-from-multiple-workflows-results). Maximum 500 workflows per request.

Per-workflow eligibility is validated inside the job. Ineligible workflows are skipped rather than failing the whole job, and their outcomes appear in the results. For example, ineligible workflows include inactive workflows, or when attempting to remove an auto-managed group.

Removing a participant changes participant-group membership only. It does not cancel or reassign tasks already assigned to (or accepted by) that user, those tasks remain assigned. The user can no longer accept available tasks in the group. To end a user's already accepted, in-progress task, use *Cancel Task* (`canceltasks`) or *Reassign Task* (`reassigntasks`) with the [Initiate Workflow Actions on Multiple Workflows](/vault-api/api-reference/26.3/workflows/bulk-active-workflow-actions/initiate-workflow-actions-on-multiple-workflows) endpoint.

<Endpoint path="/api/{version}/object/workflow/actions/removeparticipants" method="POST" />

## Headers

<FieldTable>
| Name | Description |
| --- | --- |
| `Content-Type` | `application/json` |
| `Accept` | `application/json` |
</FieldTable>

## Body Parameters

<FieldTable>
| Name | Description |
| --- | --- |
| `items`<Requiredness type="required" /> | An array of removal items. Each item must be a unique (`workflow_id`, `participant_group_name`) pair. |
| `items[].workflow_id`<Requiredness type="required" /> | The active workflow instance ID for this item. |
| `items[].participant_group_name`<Requiredness type="required" /> | The participant group to update on this workflow. |
| `items[].user_ids`<Requiredness type="conditional" /> | Vault user IDs to remove. Required if `group_ids` is omitted or empty. |
| `items[].group_ids`<Requiredness type="conditional" /> | Vault user group IDs to remove. Required if `user_ids` is omitted or empty. |
</FieldTable>

## Request

<CodeExample title="">
```bash
curl -X POST -H "Authorization: {AUTH_VALUE}" \
  -H "Content-Type: application/json" \
https://myvault.veevavault.com/api/v26.3/object/workflow/actions/removeparticipants \
  --data '{
    "items": [
      { "workflow_id": 2903, "participant_group_name": "approvers__c", "user_ids": [1024, 2055], "group_ids": [710] },
      { "workflow_id": 2904, "participant_group_name": "approvers__c", "user_ids": [1024, 2055], "group_ids": [710] }
    ]
  }'
```
</CodeExample>

## Response

<CodeExample title="">
```json
{
  "responseStatus": "SUCCESS",
  "data": {
    "job_id": 93601,
    "url": "/api/v26.3/services/jobs/93601",
    "results_url": "/api/v26.3/object/workflow/actions/removeparticipants/results/93601"
  }
}
```
</CodeExample>

## Response Details

On `SUCCESS`, Vault returns a `job_id`. You can poll the job status with [Retrieve Job Status](/vault-api/api-reference/26.3/jobs/retrieve-job-status), and once complete, obtain results from [Retrieve Remove Participants from Multiple Workflows Results](/vault-api/api-reference/26.3/workflows/bulk-active-workflow-actions/retrieve-remove-participants-from-multiple-workflows-results).

---

**Previous:** [Initiate Workflow Actions on Multiple Workflows](/vault-api/api-reference/26.3/workflows/bulk-active-workflow-actions/initiate-workflow-actions-on-multiple-workflows)  
**Next:** [Replace Participants on Multiple Workflows](/vault-api/api-reference/26.3/workflows/bulk-active-workflow-actions/replace-participants-on-multiple-workflows)