For AI agents: markdown of this page — /docs-content-en/entities/requisite-links/list.md documentation index — /llms.txt

List requisite links

GET /v1/requisite-links

Returns a list of requisite links with filtering and auto-pagination support. Each link connects a requisite and a bank detail to a specific owner — a deal, an invoice, a quote, or a smart process item.

Parameters

Parameter Type Default Description
limit number 50 Number of records, up to 5000
offset number 0 Skip N records. When offset > 0, limit ≤ 500 is recommended
filter object Filtering by fields. Allowed keys: entityTypeId, entityId, requisiteId, bankDetailId, mcRequisiteId, mcBankDetailId. Comparison operators ($gt/$gte/$lt/$lte and the >=/> prefixes) and set operators ($in/$nin) are supported. Logical $or/$and are not supported.
Filtering syntax. Example: ?filter[entityTypeId]=2&filter[entityId]=3773
sort string Sort field — one of the filter keys. Direction is set in order
order string | object asc Direction for sort (asc/desc), or the order[field]=asc|desc form

Pagination: when limit > 50, all records arrive in a single response. The maximum is 5000 records per call.

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/requisite-links?filter[entityTypeId]=2&filter[entityId]=3773" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth app

Terminal
curl "https://vibecode.bitrix24.com/v1/requisite-links?filter[entityTypeId]=2&filter[entityId]=3773" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const res = await fetch(
  'https://vibecode.bitrix24.com/v1/requisite-links?filter[entityTypeId]=2&filter[entityId]=3773',
  { headers: { 'X-Api-Key': 'YOUR_API_KEY' } },
)

const { success, data, meta } = await res.json()
console.log('Links found:', meta.total)

JavaScript — OAuth app

javascript
const res = await fetch(
  'https://vibecode.bitrix24.com/v1/requisite-links?filter[entityTypeId]=2&filter[entityId]=3773',
  {
    headers: {
      'X-Api-Key': 'YOUR_APP_KEY',
      'Authorization': 'Bearer USER_SESSION_TOKEN',
    },
  },
)

const { success, data, meta } = await res.json()

Response fields

Field Type Description
success boolean Always true on success
data array Array of links
data[].entityTypeId number Owner type. Values — Link fields
data[].entityId number Owner ID
data[].requisiteId number Client requisite ID, 0 — not linked. Source: GET /v1/requisites
data[].bankDetailId number Client bank detail ID, 0 — not linked. Source: GET /v1/bank-details
data[].mcRequisiteId number Your company's requisite ID, 0 — not linked
data[].mcBankDetailId number Your company's bank detail ID, 0 — not linked
meta.total number Total number of records matching the filter
meta.hasMore boolean Whether more records exist beyond limit

The meta fields sit next to data, not inside it. Page through the results using meta.hasMore: a data length equal to limit does not rule out the last page.

Response example

JSON
{
  "success": true,
  "data": [
    {
      "entityTypeId": 2,
      "entityId": 3773,
      "requisiteId": 45,
      "bankDetailId": 0,
      "mcRequisiteId": 0,
      "mcBankDetailId": 0
    },
    {
      "entityTypeId": 2,
      "entityId": 3825,
      "requisiteId": 0,
      "bankDetailId": 0,
      "mcRequisiteId": 0,
      "mcBankDetailId": 0
    }
  ],
  "meta": {
    "total": 68,
    "hasMore": true
  }
}

Error response example

400 — filtering by entityId without entityTypeId:

JSON
{
  "success": false,
  "error": {
    "code": "MISSING_ENTITY_TYPE_ID",
    "message": "Filtering by entityId requires entityTypeId too — B24 scopes requisite-link access by owner type. Add entityTypeId (e.g. 4 company, 3 contact) to the filter."
  }
}

Errors

HTTP Code Description
400 MISSING_ENTITY_TYPE_ID Filtering by entityId without entityTypeId
400 UNKNOWN_FILTER_FIELD Unknown filter field; the message lists the allowed ones
400 UNKNOWN_SORT_FIELD Unknown sort field; the message lists the allowed ones
400 INVALID_FILTER_OPERATOR Top-level logical operator $or or $and
403 SCOPE_DENIED API key lacks the crm scope
401 TOKEN_MISSING API key has no configured tokens

Full list of common API errors — Errors.

Known specifics

A link has no separate numeric id. Each link is identified by the owner value pair — entityTypeId and entityId; these are the values you pass to get and delete a record.

A link in the list does not mean an attachment exists. A row where all four identifiers equal 0 is a registered link with no attachment at all. To select only real attachments, add a condition such as ?filter[>requisiteId]=0.

See also