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

List warehouses

GET /v1/warehouses

Returns the list of warehouses in the Bitrix24 account. Paginated output is controlled by the limit and offset parameters.

Parameters

Parameter Type Default Description
limit number 50 Number of records (up to 5000). When limit > 50, the response is automatically assembled from several Bitrix24 pages. When limit ≤ 50, extra records are trimmed on the Vibecode side (Bitrix24 returns a page of up to 50 records regardless of the value)
offset number 0 Offset from the start of the result set, row-exact: offset=1 starts at the second record. When offset ≥ 2500, keep limit ≤ 500

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/warehouses" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl "https://vibecode.bitrix24.com/v1/warehouses" \
  -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/warehouses', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { success, data, meta } = await res.json()
console.log(`Warehouses: ${meta.total}`)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/warehouses', {
  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 warehouses — fields of a single warehouse below
meta.total number Total number of warehouses in the Bitrix24 account
meta.hasMore boolean Whether there are records beyond the current page (offset + data.length < total). When true, raise limit (up to 5000) or move offset

Warehouse fields

Field Type Description
id number Warehouse identifier
title string Warehouse name
address string Warehouse address
active string Active flag: "Y" / "N"
issuingCenter string Order pickup point flag: "Y" / "N"
description string | null Warehouse description. null if not set
phone string | null Contact phone. null if not set
email string | null Contact email. null if not set
schedule string | null Working hours. null if not set
sort number Sort order
code string | null Symbolic code. null if not set
xmlId string | null External identifier. null if not set
gpsN number | null Geographic latitude. null if not set
gpsS number | null Geographic longitude. null if not set
imageId object | null Warehouse image: { "id", "url" } or null
userId number | null Responsible employee. null for system warehouses, populated when created via the API
modifiedBy number | null Identifier of the user who last modified the warehouse. null for system warehouses, populated when created via the API
dateCreate datetime | null Creation date. null for some system warehouses (for example, marketplaces)
dateModify datetime Last modification date

Response example

JSON
{
  "success": true,
  "data": [
    {
      "id": 1,
      "title": "Main warehouse",
      "address": "1 Harbour Street, Amsterdam",
      "active": "Y",
      "issuingCenter": "N",
      "description": null,
      "phone": null,
      "email": null,
      "schedule": null,
      "sort": 100,
      "code": null,
      "xmlId": null,
      "gpsN": null,
      "gpsS": null,
      "imageId": null,
      "userId": 1,
      "modifiedBy": 1,
      "dateCreate": "2024-01-15T09:00:00+00:00",
      "dateModify": "2024-06-20T14:30:00+00:00"
    },
    {
      "id": 2,
      "title": "North pickup point",
      "address": "8 Station Road, Rotterdam",
      "active": "Y",
      "issuingCenter": "Y",
      "description": null,
      "phone": "+12025550123",
      "email": null,
      "schedule": "Mon–Fri 10:00–20:00",
      "sort": 200,
      "code": "pickup-north",
      "xmlId": null,
      "gpsN": 51.924420,
      "gpsS": 4.477733,
      "imageId": null,
      "userId": 1,
      "modifiedBy": 1,
      "dateCreate": "2024-03-10T11:00:00+00:00",
      "dateModify": "2024-03-10T11:00:00+00:00"
    }
  ],
  "meta": {
    "total": 2,
    "hasMore": false
  }
}

Error response example

400 — invalid limit value:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "limit must be a positive integer in canonical form — digits only, no leading zero, sign, fraction or exponent"
  }
}

Errors

HTTP Code Description
400 INVALID_PARAMS limit is not a canonical positive integer (10.5, 10abc, 1e2, 007 are rejected) or offset is negative
400 UNSUPPORTED_FILTER a filter[] parameter was passed — this endpoint does not support it and does not forward it to Bitrix24
401 TOKEN_MISSING The API key has no configured tokens
403 SCOPE_DENIED The API key does not have the catalog scope
502 BITRIX_UNAVAILABLE Bitrix24 is unavailable

The full list of common API errors — Errors.

Known specifics

Paginated output only. The list accepts only limit and offset. Filtering, sorting, and selecting individual fields (filter, sort, select) are not supported on this endpoint — all warehouses in the Bitrix24 account are returned. Pick the warehouse you need on the client side using a field from the response.

Fetch all warehouses in one request. In a Bitrix24 account with more than 50 warehouses, set limit above the actual number (for example ?limit=5000) — the response is assembled from several Bitrix24 pages and returns everything at once. An incomplete response is indicated by meta.hasMore: true (the default limit=50 response returns it too when there are more than 50 warehouses). You no longer need to compare data.length against meta.total by hand.

offset is row-exact. Bitrix24 returns warehouses in pages of 50 and only moves the selection by a whole page, so Vibecode fetches the page covering the requested window and trims the extra rows off the head. You see an ordinary row-exact offset: offset=1&limit=3 returns the second, third, and fourth records.

An empty data with hasMore: true means stop paging. This happens when the requested window is not covered by a single Bitrix24 page: meta.warnings then carries OFFSET_BEYOND_FETCHED_PAGE. Raise limit so the window fits into the selection.

See also