لوكلاء AI: ملف markdown لهذه الصفحة — /docs-content-en/entities/documents/pdf.md فهرس التوثيق — /llms.txt
مقالات التوثيق متاحة حاليًا باللغة الإنجليزية فقط.
Download document PDF
GET /v1/documents/:id/pdf
Downloads the PDF file of a generated document through Vibecode: the platform adds Bitrix24 authorization to the request itself. A CRM record document downloads the same way through its own route.
| Document | Route | Scope |
|---|---|---|
| DocumentApp document | RouteGET /v1/documents/:id/pdf |
Scopedocumentgenerator |
| DocumentCRM record document | RouteGET /v1/crm-documents/:id/pdf |
Scopecrm |
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
Parameterid (path) |
Typenumber | Requiredyes | DescriptionDocument ID, a positive integer. App documents: GET /v1/documents, CRM record documents: GET /v1/crm-documents |
No request body is sent. The examples below are for an app document. For a CRM record document, replace documents with crm-documents in the URL.
Examples
curl — personal key
curl --fail-with-body "https://vibecode.bitrix24.com/v1/documents/2001/pdf" \
-H "X-Api-Key: YOUR_API_KEY" \
-o document-2001.pdf
curl — OAuth application
curl --fail-with-body "https://vibecode.bitrix24.com/v1/documents/2001/pdf" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-o document-2001.pdf
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/documents/2001/pdf', {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
if (!res.ok) {
const body = await res.json()
throw new Error(body.error?.code ?? String(res.status))
}
const blob = await res.blob()
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/documents/2001/pdf', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
if (!res.ok) {
const body = await res.json()
throw new Error(body.error?.code ?? String(res.status))
}
const blob = await res.blob()
Response fields
On success, the response is HTTP status 200 OK and the body is the bytes of the PDF file. File details come in the headers.
| Header | Example value | Description |
|---|---|---|
HeaderContent-Type |
Example valueapplication/pdf |
DescriptionContent type that Bitrix24 returned for the document file |
HeaderContent-Disposition |
Example valueattachment; filename="document-2001.pdf" |
DescriptionFile name for saving, in the form document-<id>.pdf. The document title is not part of it |
Response example
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: attachment; filename="document-2001.pdf"
Content-Length: 11733
<binary .pdf content, 11733 bytes, starts with %PDF>
Error response example
404 — document not found:
{
"success": false,
"error": {
"code": "ENTITY_NOT_FOUND",
"message": "Document not found."
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeINVALID_PARAMS |
Descriptionid is not a positive integer. Message: Document ID must be a positive integer. |
| HTTP404 | CodeENTITY_NOT_FOUND |
DescriptionNo document with this id. Message: Document not found. |
| HTTP409 | CodeDOCUMENT_NOT_READY |
DescriptionThe document file has not been generated yet. Retry the request in a few seconds |
| HTTP502 | CodeDOWNLOAD_FAILED |
DescriptionBitrix24 did not return the file: it responded with an error code, sent JSON instead of the file, pointed to an address outside the Bitrix24 account, or the response could not be read in full. For an app document, also when the file is larger than 10 MiB |
| HTTP422 | CodeBITRIX_ERROR |
DescriptionBitrix24 rejected the request. The reason text is in error.message |
| HTTP403 | CodeBITRIX_ACCESS_DENIED |
DescriptionBitrix24 denied access to the document. For a CRM record document, also when the record it is attached to does not exist |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe key lacks the route's scope: documentgenerator for an app document, crm for a CRM record document |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header is missing |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionNo tokens are mapped to the key — an OAuth application key was called without a user session |
Full list of common API errors — Errors.
Known specifics
A read-only key works. Downloading does not count as a write, so a key without write permission gets the file the same way as a full-access key.
The PDF is generated after the document is created or updated. For the first few seconds after that, the route responds with 409 DOCUMENT_NOT_READY, while the DOCX is already downloadable.
A PDF hash is not a reliable way to compare documents. Until the PDF of a CRM record document is regenerated, a repeated download returns the same file byte for byte. When Bitrix24 regenerates the PDF, the file gets a new creation date, new conversion dates in its metadata and a new file identifier, while the pages and text stay the same. Compare content using the DOCX file from GET /v1/crm-documents/:id/download: regenerating the PDF does not change it.
The pdfUrlMachine field points to this route. In GET /v1/documents/:id and GET /v1/crm-documents/:id responses, the field contains this route's address for the same document. API responses contain no Bitrix24 access secrets.