{% note tip "" %}
If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the MCP server so that the assistant can utilize the official REST documentation.
{% endnote %}
Scope:
noteWho can execute the method: a user with access to the Knowledge base module and "View" permissions for the document's knowledge base
{% note info "" %}
This method belongs to REST 3.0. The call specifics and response format of the new API version are described in the REST 3.0 overview.
{% endnote %}
The note.file.get method returns file metadata and a ready-to-use Markdown block to insert the attachment into a document.
{% include Note on required parameters %}
#|
|| Name
type | Description ||
|| id*
integer | File identifier.
The file identifier can be obtained in the response of the note.file.add method. ||
|| documentId*
integer | Document identifier to which the file is attached.
Use the same document identifier that you passed to the note.file.add method. || |#
{% include Note on examples %}
{% note info "" %}
The new API call differs by adding the /api/ segment to the request URL:
https://{installation_address}/rest/api/{user_id}/{webhook_token}/note.file.get
{% endnote %}
{% list tabs %}
-
cURL (Webhook)
curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"id":5001,"documentId":77}' \ https://**put_your_bitrix24_address**/rest/api/**put_your_user_id_here**/**put_your_webhook_here**/note.file.get
-
cURL (OAuth)
curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"id":5001,"documentId":77,"auth":"**put_access_token_here**"}' \ https://**put_your_bitrix24_address**/rest/api/note.file.get
-
JS (TS)
import { Text } from '@bitrix24/b24jssdk' import type { B24Frame } from '@bitrix24/b24jssdk' declare const $b24: B24Frame type FileGetResult = { item: { id: number documentId: number name: string size: number mimeType: string assetType: string assetMarkdown: string } } try { const response = await $b24.actions.v3.call.make<FileGetResult>({ method: 'note.file.get', params: { id: 5001, documentId: 77, }, requestId: Text.getUuidRfc4122() }) if (!response.isSuccess) { console.error(response.getErrorMessages().join('; ')) } else { const result = response.getData()!.result console.info('File info:', result.item.assetMarkdown) } } catch (error) { console.error(error) }
-
JS (UMD)
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script> <script> async function getFile() { try { const $b24 = await B24Js.initializeB24Frame() const response = await $b24.actions.v3.call.make({ method: 'note.file.get', params: { id: 5001, documentId: 77, }, requestId: B24Js.Text.getUuidRfc4122() }) if (!response.isSuccess) { console.error(response.getErrorMessages().join('; ')) return } const result = response.getData().result console.info('File info:', result.item.assetMarkdown) } catch (error) { console.error(error) } } document.addEventListener('DOMContentLoaded', getFile) </script>
-
PHP
SDKs do not yet support the
/rest/api/address in calls. Use direct HTTP requests, for example, viacurlorfetch.try { $response = $b24Service ->core ->call( 'note.file.get', [ 'id' => 5001, 'documentId' => 77, ] ); $result = $response ->getResponseData() ->getResult(); echo 'Success: ' . print_r($result, true); } catch (Throwable $e) { error_log($e->getMessage()); echo 'Error getting file info: ' . $e->getMessage(); }
-
BX24.js
SDKs do not yet support the
/rest/api/address in calls. Use direct HTTP requests, for example, viacurlorfetch.BX24.callMethod( 'note.file.get', { id: 5001, documentId: 77 }, function(result){ console.info(result.data()); console.log(result); } );
-
PHP CRest
SDKs do not yet support the
/rest/api/address in calls. Use direct HTTP requests, for example, viacurlorfetch.require_once('crest.php'); $result = CRest::call( 'note.file.get', [ 'id' => 5001, 'documentId' => 77 ] ); echo '<PRE>'; print_r($result); echo '</PRE>';
-
Go
// client and ctx are already created — see the Go SDK section res, err := client.Core().Call(ctx, "note.file.get", b24.Params{ "id": 5001, "documentId": 77, }, b24.WithIdempotent()) if err != nil { return fmt.Errorf("note.file.get: %w", err) } // The method wraps the response in an object with the "item" key. raw, ok := b24.Unwrap(res.Result, "item") if !ok { return fmt.Errorf("no item key in the response") } var item struct { ID b24.ID `json:"id"` DocumentID b24.ID `json:"documentId"` Name string `json:"name"` Size int `json:"size"` MimeType string `json:"mimeType"` AssetType string `json:"assetType"` } if err := json.Unmarshal(raw, &item); err != nil { return fmt.Errorf("parse response: %w", err) } fmt.Println(item.ID, item.DocumentID)
{% endlist %}
HTTP status: 200
{
"result": {
"item": {
"id": 5001,
"documentId": 77,
"name": "diagram.png",
"size": 6321,
"mimeType": "image/png",
"assetType": "image",
"assetMarkdown": "[[image fileId=5001]]"
}
},
"time": {
"start": 1780392300,
"finish": 1780392300.194822,
"duration": 0.19482207298278809,
"processing": 0.15441107749938965,
"date_start": "2026-06-16T12:25:00+03:00",
"date_finish": "2026-06-16T12:25:00+03:00",
"operating_reset_at": 1780392900,
"operating": 0
}
}#|
|| Name
type | Description ||
|| result
object | Object containing the result of the file data retrieval. ||
|| item
object | Object containing file metadata. ||
|| id
integer | Identifier of the file ||
|| documentId
integer | Document identifier to which the file is attached.
This is the same document identifier that you passed to the note.file.add method. ||
|| name
string | File name. ||
|| size
integer | File size in bytes ||
|| mimeType
string | File MIME type. ||
|| assetType
string | Attachment type for Markdown.
Possible values:
image— imagevideo— videofile— regular file || || assetMarkdownstring| Ready-to-use Markdown block for insertion into a document in[[<assetType> fileId=<id>]]format.
To make the attachment appear in the document, pass this block to markdown via note.document.update.
Before inserting an image or video, you can extend the block with scale and alignment parameters. For details, see the markdown field description in note.document.update. ||
|| time
time | Information about the request execution time ||
|#
HTTP status: 400
{
"error": {
"code": "BITRIX_REST_V3_EXCEPTION_VALIDATION_REQUESTVALIDATIONEXCEPTION",
"message": "Error validating request object",
"validation": [
{
"message": "Mandatory field `id` is missing",
"field": "id"
}
]
}
}{% include notitle Error handling %}
Error Code: BITRIX_REST_V3_EXCEPTION_VALIDATION_REQUESTVALIDATIONEXCEPTION
#|
|| Field | Error description | How to Fix ||
|| id
documentId | Required field #FIELD# is not specified. | Add the specified field to the request body ||
|| id
documentId | Field #FIELD# requires data type #TYPE# for such a request. | Ensure the provided value is of the correct type ||
|#
Error Code: BITRIX_REST_V3_EXCEPTION_ENTITYNOTFOUNDEXCEPTION
#|
|| Field | Error description | How to Fix ||
|| documentId | Document not found. | Please check that the document exists, is not archived, is not in the trash, and is accessible to the user. ||
|| id | File not found. | Please check that the file exists and is attached to the specified document. ||
|#
{% include System errors %}