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
Parameterlimit Typenumber Default50 DescriptionNumber of records, up to 5000
Parameteroffset Typenumber Default0 DescriptionSkip N records. When offset > 0, limit ≤ 500 is recommended
Parameterfilter Typeobject Default— DescriptionFiltering 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
Parametersort Typestring Default— DescriptionSort field — one of the filter keys. Direction is set in order
Parameterorder Typestring | object Defaultasc DescriptionDirection 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 -g "https://vibecode.bitrix24.com/v1/requisite-links?filter[entityTypeId]=2&filter[entityId]=3773" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl -g "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 application

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
Fieldsuccess Typeboolean DescriptionAlways true on success
Fielddata Typearray DescriptionArray of links
Fielddata[].entityTypeId Typenumber DescriptionOwner type. Values — Link fields
Fielddata[].entityId Typenumber DescriptionOwner ID
Fielddata[].requisiteId Typenumber DescriptionClient requisite ID, 0 — not linked. Source: GET /v1/requisites
Fielddata[].bankDetailId Typenumber DescriptionClient bank detail ID, 0 — not linked. Source: GET /v1/bank-details
Fielddata[].mcRequisiteId Typenumber DescriptionYour company's requisite ID, 0 — not linked
Fielddata[].mcBankDetailId Typenumber DescriptionYour company's bank detail ID, 0 — not linked
Fieldmeta.total Typenumber DescriptionTotal number of records matching the filter
Fieldmeta.hasMore Typeboolean DescriptionWhether more records exist beyond limit

The meta fields sit next to data, not inside it. Page through the results using meta.hasMore: a page whose data length equals limit can still be the last one.

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
HTTP400 CodeMISSING_ENTITY_TYPE_ID DescriptionFiltering by entityId without entityTypeId
HTTP400 CodeUNKNOWN_FILTER_FIELD DescriptionUnknown filter field; the message lists the allowed ones
HTTP400 CodeUNKNOWN_SORT_FIELD DescriptionUnknown sort field; the message lists the allowed ones
HTTP400 CodeINVALID_FILTER_OPERATOR DescriptionTop-level logical operator $or or $and
HTTP403 CodeSCOPE_DENIED DescriptionAPI key lacks the crm scope
HTTP401 CodeTOKEN_MISSING DescriptionAPI 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