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

List posts

GET /v1/posts

Returns Bitrix24 Feed posts accessible to the current API key, in a normalized form: keys in camelCase, flags as booleans, numeric fields as numbers.

Parameters

Parameter Type Required Default Description
Parameterlimit (query) Typenumber Requiredno Default50 DescriptionNumber of posts in the response. Allowed range: 1 to 200. The Bitrix24 Feed page is fixed at 50 records — for a limit above 50 the platform stitches up to four pages into one response. A value greater than 200 returns 400 INVALID_LIMIT
Parameteroffset (query) Typenumber Requiredno Default0 DescriptionOffset for pagination. A non-negative integer

Pagination. One request returns up to 200 posts. To fetch the next batch, pass the meta.nextOffset value from the previous response into offset. The meta.nextOffset field is present only when there is a next page. If it is absent, there are no more posts.

The generic filter parameter is not applied by this endpoint. By default, the API preserves the previous HTTP 200 response and data, adds Warning: 299 - "filter is not supported on this endpoint and was ignored", and records unsupported-filter use in the server log.

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/posts?limit=3" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl "https://vibecode.bitrix24.com/v1/posts?limit=3" \
  -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/posts?limit=3', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data, meta } = await res.json()
console.log(`Posts: ${data.length} of ${meta.total}`)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/posts?limit=3', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})
const { data, meta } = await res.json()

Response fields

Field Type Description
Fieldsuccess Typeboolean DescriptionAlways true on success
Fielddata Typearray DescriptionArray of posts
Fielddata[].id Typenumber DescriptionPost ID. Used in the PATCH /v1/posts/:id path and in the post URL
Fielddata[].blogId Typenumber DescriptionID of the blog the post belongs to
Fielddata[].publishStatus Typestring DescriptionPublish status (P — published)
Fielddata[].title Typestring DescriptionPost title
Fielddata[].detailText Typestring DescriptionPost text
Fielddata[].authorId Typenumber DescriptionAuthor ID. List: GET /v1/users
Fielddata[].enableComments Typeboolean DescriptionWhether comments on the post are allowed
Fielddata[].numComments Typestring DescriptionNumber of comments as a string (e.g. "2")
Fielddata[].code Typestring | null DescriptionSymbolic code of the post
Fielddata[].micro Typeboolean DescriptionMicro-post (without a title)
Fielddata[].datePublish Typestring DescriptionPublish date (ISO 8601 with timezone)
Fielddata[].categoryId Typenumber[] DescriptionPost category/tag IDs. Always an array: [] — no categories, [11] — one, [5, 7, 9] — several
Fielddata[].hasSocnetAll Typeboolean DescriptionPost is addressed to all employees
Fielddata[].hasTags Typeboolean | null DescriptionThe post has tags
Fielddata[].hasImages Typeboolean | null DescriptionThe post has images
Fielddata[].hasProps Typeboolean | null DescriptionThe post has properties
Fieldmeta.total Typenumber DescriptionTotal number of posts accessible to the key
Fieldmeta.pageSize Typenumber DescriptionBitrix24 page size — always 50
Fieldmeta.returned Typenumber DescriptionActual number of posts in the response
Fieldmeta.requestedLimit Typenumber DescriptionValue of the passed limit. Present only if the parameter was passed
Fieldmeta.nextOffset Typenumber DescriptionOffset of the next page. Present only if there is a next page — pass it into offset of the next request

Response example

The response contains only the fields listed above — Bitrix24 internal and custom fields (UF_*, FILES, etc.) are not returned.

JSON
{
  "success": true,
  "data": [
    {
      "id": 293,
      "blogId": 1,
      "publishStatus": "P",
      "title": "Announcement",
      "detailText": "Announcement text for employees",
      "authorId": 1,
      "enableComments": true,
      "numComments": "0",
      "code": null,
      "micro": true,
      "datePublish": "2026-05-29T11:47:37+00:00",
      "categoryId": [],
      "hasSocnetAll": false,
      "hasTags": false,
      "hasImages": false,
      "hasProps": false
    },
    {
      "id": 215,
      "blogId": 1,
      "publishStatus": "P",
      "title": "Survey",
      "detailText": "Survey text",
      "authorId": 1,
      "enableComments": true,
      "numComments": "3",
      "code": null,
      "micro": true,
      "datePublish": "2025-08-13T10:46:10+00:00",
      "categoryId": [5, 7, 9],
      "hasSocnetAll": true,
      "hasTags": true,
      "hasImages": false,
      "hasProps": true
    }
  ],
  "meta": {
    "total": 89,
    "pageSize": 50,
    "returned": 3,
    "requestedLimit": 3,
    "nextOffset": 50
  }
}

Error response example

400 — limit outside the range of 1 to 200:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_LIMIT",
    "message": "`limit` must be between 1 and 200. The feed is fetched in fixed pages of 50 from Bitrix24; up to 200 records are stitched per request — paginate further via the returned `meta.nextOffset`."
  }
}

Errors

HTTP Code Description
HTTP200 CodeWarning: 299 DescriptionThe filter is ignored by default; previous data is preserved and the warning is sent in the Warning header.
HTTP400 (strict mode only) CodeUNSUPPORTED_FILTER DescriptionThe server mode is disabled by default; until it is enabled, the endpoint preserves HTTP 200 and the previous data.
HTTP400 CodeINVALID_LIMIT Descriptionlimit is not a positive integer or is greater than 200
HTTP400 CodeINVALID_OFFSET Descriptionoffset is negative or not an integer
HTTP401 CodeTOKEN_MISSING DescriptionThe API key has no access tokens configured
HTTP403 CodeSCOPE_DENIED DescriptionThe API key lacks the log scope
HTTP422 CodeBITRIX_ERROR DescriptionBitrix24 returned an error while fetching posts
HTTP502 CodeBITRIX_UNAVAILABLE DescriptionBitrix24 is unavailable

The full list of common API errors — Errors.

Known specifics

  • numComments comes as a string. The number of comments is represented as a string ("2"), not a number — cast it to a number on the client side if you need to do calculations.
  • categoryId is always an array of numbers. The field holds the list of the post's category/tag IDs: [] when there are none, [11] for one, [5, 7, 9] for several. The type is uniform regardless of how many categories a post has (never a bare number or string).
  • hasProps can be null, not only true or false. For a post created via the API that has no properties, hasProps comes back null. A client that checks for properties with a strict comparison against true or false must also account for the null value. The hasTags and hasImages fields return true or false on the posts checked.

See also