# entries.tags.set

Add, remove or dismiss project tags on up to 100 entries at once with entryIds, add, remove and dismiss (tag ids) and idempotencyKey; pass the same operationId with every batch of one bulk change. Adding a tag Oatmilk suggested accepts it; dismissing a suggestion stops it being suggested for that entry. Tags added through the API or MCP are recorded as such and don't confirm rules; finance's dashboard choices do. A rule tags open transactions by itself only for a tag with start and end dates, after two confirmations from separate actions and no rejection, from the day it qualified. Contributors can tag only their own receipts until finance reviews them. Tags don't change amounts, categories or tax.

`POST /api/v1/accounting/entries.tags.set`

Permissions: `accounting:read`, `accounting:write` · Roles: admin, finance, contributor · Idempotency key required

MCP tool: `accounting_entries_tags_set`

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `entryIds` | array of strings (ID) | Yes | IDs of accounting entries, from entries.list or attention.mine. 1–100 items. |
| `add` | array of strings (ID) |  | at most 20 items. Default `[]`. |
| `remove` | array of strings (ID) |  | at most 20 items. Default `[]`. |
| `dismiss` | array of strings (ID) |  | at most 20 items. Default `[]`. |
| `operationId` | string |  | 8–200 characters. |
| `idempotencyKey` | string | Yes | Any unique text you generate once per intended change, so a retried request only happens once. Send it as the Idempotency-Key header instead if you prefer; if you send both they must match. 8–200 characters. |

## Example request

```bash
curl https://app.getoatmilk.com/api/v1/accounting/entries.tags.set \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "entryIds": [
    "7f0f6c1e-1c1f-4b5e-9c8d-2f5e8e3c1a10"
  ],
  "add": [
    "7f0f6c1e-1c1f-4b5e-9c8d-2f5e8e3c1a10"
  ]
}'
```

Reference page: https://app.getoatmilk.com/docs/api/entries.tags.set
