---
title: "Perform multiple operations with item-link-types"
method: POST
path: "/api/link-types/bulk"
tags: ["CRUD", "Items:Links:Types"]
---

# Perform multiple operations with item-link-types

`POST /api/link-types/bulk`

## Request

- Base URL: `https://app.airfocus.com`
- URL: `https://app.airfocus.com/api/link-types/bulk`
- Auth: HTTP bearer

Accepts a list of create/update/patch/delete operations (see the request model for more details).<br/>
Each operation can target a single or multiple item-link-types.<br/>
Returns a list of results for each input operation including errors.<br/>
Guarantees that the size and order of the returned results matches the order of input operations.<br/><strong>Note:</strong> The following item-link-type IDs are reserved as read-only and will be present on all teams:<br/>- 11111111-1111-1111-1111-111111111111<br/>- 22222222-2222-2222-2222-222222222222<br/>- 33333333-3333-3333-3333-333333333333<br/>Requirements:<br/>- auth-client scopes: "team"<br/>- user role: "admin"<br/>- user permission: "write" or higher

## Request body

- ItemLinkTypeBulkAction[]
  - union
    - ItemLinkTypeBulkCreate
      - `resource` CreateItemLinkTypeRequest, required: Custom item link type that defines how items can be related in both directions
        - `backwardsName` string, required: The name of the link type used in the backward direction ("{to} {backwards_name} {from}"), e.g., "is blocked by" in "B-34 is blocked by A-12". Must contain at least one letter or digit.
        - `name` string, required: The name of the link type used in the forward direction ("{from} {name} {to}"), e.g., "blocks" in "A-12 blocks B-34". Must contain at least one letter or digit.
      - `type` 'create', required
    - ItemLinkTypeBulkDelete
      - `id` string, uuid, required
      - `type` 'delete', required
    - ItemLinkTypeBulkPatch
      - `id` string, uuid, required
      - `transform` JsonPatchOperation[], required: A JSON Patch document. See https://jsonpatch.com/ for more information.
        - union
          - JsonPatchAdd
            - `op` 'add', required
            - `path` string, required
            - `value` unknown, required
          - JsonPatchCopy
            - `from` string, required
            - `op` 'copy', required
            - `path` string, required
          - JsonPatchMove
            - `from` string, required
            - `op` 'move', required
            - `path` string, required
          - JsonPatchRemove
            - `old` unknown
            - `op` 'remove', required
            - `path` string, required
          - JsonPatchReplace
            - `old` unknown
            - `op` 'replace', required
            - `path` string, required
            - `value` unknown, required
          - JsonPatchTest
            - `op` 'test', required
            - `path` string, required
            - `value` unknown, required
      - `type` 'patch', required
    - ItemLinkTypeBulkUpdate
      - `id` string, uuid, required
      - `resource` UpdateItemLinkTypeRequest, required: Custom item link type that defines how items can be related in both directions
        - `backwardsName` string, required: The name of the link type used in the backward direction ("{to} {backwards_name} {from}"), e.g., "is blocked by" in "B-34 is blocked by A-12". Must contain at least one letter or digit.
        - `name` string, required: The name of the link type used in the forward direction ("{from} {name} {to}"), e.g., "blocks" in "A-12 blocks B-34". Must contain at least one letter or digit.
      - `type` 'update', required

## Response `200`

- ItemLinkTypeRecordWithItemLinkTypeRecordEmbed[]
  - `_embedded` ItemLinkTypeRecordEmbed, required
  - `backwardsName` string, required: The name of the link type used in the backward direction ("{to} {backwards_name} {from}"), e.g., "is blocked by" in "B-34 is blocked by A-12". Must contain at least one letter or digit.
  - `id` string, uuid, required
  - `name` string, required: The name of the link type used in the forward direction ("{from} {name} {to}"), e.g., "blocks" in "A-12 blocks B-34". Must contain at least one letter or digit.
  - `teamId` string, uuid, required

## Other responses

- `400`: If payload is invalid.
- `401`: If missing authentication token.
- `403`: If user does not have the required permission, or user does not match the required role, or authenticated client does not have the required access scopes.
- `default`: If any other error happens.

---

[API](https://skmtc.dev/airfocus/apis/airfocus-api.md) · [All operations](https://skmtc.dev/airfocus/apis/airfocus-api/llms.txt) · [OpenAPI document](https://skmtc.dev/airfocus/apis/airfocus-api/revisions/fc9ccaa2ec6d?raw)
