# Approve or dismiss vocabulary suggestions in bulk

Approve or dismiss up to 100 suggestions. Each one is decided on its own and reported; one that cannot be decided never stops the others. Approvals need edit rights on the list. Needs the right to manage the team vocabulary.

#### Request Body

**`ids`** array of strings required

1 to 100 suggestion IDs.

**`action`** string required

`approve` or `dismiss`.

**`list_id`** string optional

For `approve`: the list to write into; null for the organization's target list.

## Returns

**`results`** array

One result per distinct ID, in the order given: `id`, `status` (`approved`, `dismissed` or `skipped`), `reason` when skipped (`not_found`, `already_decided`, `duplicate` or `invalid`) and `entry_id`, the entry an approval wrote.

Example

```bash cURL
curl -X POST "https://api.aitronos.com/v1/vocabulary/suggestions/bulk" \
  -H "X-API-Key: $FREDDY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ids": ["vsug_4e8b2d6f1a3c5097", "vsug_9d1f3b5a7c2e4068"], "action": "approve"}'
```


```python Python
import os
import requests

api_key = os.environ["FREDDY_API_KEY"]

response = requests.post(
    "https://api.aitronos.com/v1/vocabulary/suggestions/bulk",
    headers={"X-API-Key": api_key},
    json={"ids": ["vsug_4e8b2d6f1a3c5097", "vsug_9d1f3b5a7c2e4068"], "action": "approve"},
)

print(response.json())
```


```javascript JavaScript
const apiKey = process.env.FREDDY_API_KEY;

const response = await fetch('https://api.aitronos.com/v1/vocabulary/suggestions/bulk', {
  method: 'POST',
  headers: {
    'X-API-Key': apiKey,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({"ids": ["vsug_4e8b2d6f1a3c5097", "vsug_9d1f3b5a7c2e4068"], "action": "approve"})
});

const data = await response.json();
console.log(data);
```

**Response:**


```json 200 OK
{
  "results": [
    {
      "id": "vsug_4e8b2d6f1a3c5097",
      "status": "approved",
      "reason": null,
      "entry_id": "tdict_5a9c2e7b1d3f4068"
    },
    {
      "id": "vsug_9d1f3b5a7c2e4068",
      "status": "skipped",
      "reason": "already_decided",
      "entry_id": null
    }
  ]
}
```

Errors

```json 401 Unauthorized
{
  "success": false,
  "error": {
    "code": "AUTHENTICATION_REQUIRED",
    "message": "Authentication required. Please provide a valid API key.",
    "system_message": "Missing or invalid authorization header",
    "type": "authentication_error",
    "status": 401,
    "details": {},
    "trace_id": "req_7d1e4b9a2c",
    "timestamp": "2026-10-26T09:30:00Z"
  }
}
```


```json 403 Forbidden
{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_PERMISSIONS",
    "message": "You do not have permission to perform this action.",
    "system_message": "Caller lacks the rights this operation needs.",
    "type": "authorization_error",
    "status": 403,
    "details": {},
    "trace_id": "req_7d1e4b9a2c",
    "timestamp": "2026-10-26T09:30:00Z"
  }
}
```


```json 422 Unprocessable Entity
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "The request is not valid.",
    "system_message": "Request validation failed.",
    "type": "validation_error",
    "status": 422,
    "details": {
      "field": "ids"
    },
    "trace_id": "req_7d1e4b9a2c",
    "timestamp": "2026-10-26T09:30:00Z"
  }
}
```

## Related Resources

- [Approve a vocabulary suggestion](/api-reference/vocabulary/approve-a-vocabulary-suggestion) — Approve one, choosing how it is written.
- [Vocabulary API](/api-reference/vocabulary/_index) — Overview of lists, entries and settings.