Box Developer Documentation

Box Doc Gen jobs

Box Doc Gen jobs

A Box Doc Gen job runs when you make a request to generate a document. The document_generation_data parameter in the POST request is an array of entries that represent Box Doc Gen jobs run to generate a document.

cURL
curl -L 'https://api.box.com/2.0/docgen_batches' \
     -H 'box-version: 2025.0' \
     -H 'Authorization: Bearer <ACCESS_TOKEN>' \
     -D '{
        "file": {
            "id": "12345678",
            "type": "file"
        },
        "input_source": "api",
        "destination_folder": {
            "id": "12345678",
            "type": "folder"
        },
        "output_type": "docx",
        "document_generation_data": [
            {
                "generated_file_name": "Image test",
                "user_input": {
                    "order": {
                        "id": "12305",
                        "date": "18-08-2023",
                        "country": "US",
                        "expiryDate": "18-08-2024",
                        "currency": "$",
                        "amount": 5060.5,
                        "taxRate": 10,
                        "requester": "John",
                        "approver": "Smith",
                        "department": "Procurement",
                        "paymentTerms": "30 days",
                        "deliveryTerms": "30 days",
                        "deliveryDate": "18-09-2023",
                        "vendor": {
                            "company": "Example company",
                            "address": {
                                "street": "Example street",
                                "city": "Example city",
                                "zip": "EX-456"
                            }
                        },
                        "products": [
                            {
                                "id": 1,
                                "name": "A4 Papers",
                                "type": "non-fragile",
                                "quantity": 100,
                                "price": 29,
                                "amount": 2900
                            },
                            {
                                "id": 2,
                                "name": "Ink  Cartridge",
                                "type": "non-fragile",
                                "quantity": 40,
                                "price": 39,
                                "amount": 1560
                            },
                            {
                                "id": 3,
                                "name": "Adhesive tape",
                                "type": "non-fragile",
                                "quantity": 20,
                                "price": 30,
                                "amount": 600.5
                            }
                        ]
                    }
                }
            }
        ]`
TypeScript Gen
await client.docgen.createDocgenBatchV2025R0({
  file: new FileReferenceV2025R0({ id: uploadedFile.id }),
  inputSource: 'api',
  destinationFolder: new DocGenBatchCreateRequestV2025R0DestinationFolderField({
    id: folder.id,
  }),
  outputType: 'pdf',
  documentGenerationData: [
    {
      generatedFileName: 'test',
      userInput: { ['abc']: 'xyz' },
    } satisfies DocGenDocumentGenerationDataV2025R0,
  ],
} satisfies DocGenBatchCreateRequestV2025R0);
Python Gen
client.docgen.create_docgen_batch_v2025_r0(
    FileReferenceV2025R0(id=uploaded_file.id),
    "api",
    CreateDocgenBatchV2025R0DestinationFolder(id=folder.id),
    "pdf",
    [
        DocGenDocumentGenerationDataV2025R0(
            generated_file_name="test", user_input={"abc": "xyz"}
        )
    ],
)
.NET Gen
await client.Docgen.CreateDocgenBatchV2025R0Async(requestBody: new DocGenBatchCreateRequestV2025R0(file: new FileReferenceV2025R0(id: uploadedFile.Id), inputSource: "api", destinationFolder: new DocGenBatchCreateRequestV2025R0DestinationFolderField(id: folder.Id), outputType: "pdf", documentGenerationData: Array.AsReadOnly(new [] {new DocGenDocumentGenerationDataV2025R0(generatedFileName: "test", userInput: new Dictionary<string, object>() { { "abc", "xyz" } })})));

Box Doc Gen API allows you to get information about the Box Doc Gen jobs.

Prerequisites

Before you start using Box Doc Gen API, follow the steps listed in the get started with Box Doc Gen guide to create a custom app and a Box Doc Gen template.

List all Box Doc Gen jobs

To get a list of all Box Doc Gen jobs that were run, use the GET /2.0/docgen_jobs endpoint. You don't have to provide any additional parameters.

cURL
curl -i -X GET "https://api.box.com/2.0/docgen_jobs" \
     -H 'box-version: 2025.0' \
     -H "authorization: Bearer <ACCESS_TOKEN>"
TypeScript Gen
await client.docgen.getDocgenJobsV2025R0();
Python Gen
client.docgen.get_docgen_jobs_v2025_r0()
.NET Gen
await client.Docgen.GetDocgenJobsV2025R0Async();

Get a Box Doc Gen job by ID

To get a specific Box Doc Gen job, use the GET /2.0/docgen_jobs_id endpoint and provide the job_id.

cURL
curl -i -X GET "https://api.box.com/2.0/docgen_jobs/12345" \
     -H 'box-version: 2025.0' \
     -H "authorization: Bearer <ACCESS_TOKEN>"
TypeScript Gen
await client.docgen.getDocgenJobByIdV2025R0(docgenJobs.entries![0].id);
Python Gen
client.docgen.get_docgen_job_by_id_v2025_r0(docgen_jobs.entries[0].id)
.NET Gen
await client.Docgen.GetDocgenJobByIdV2025R0Async(jobId: NullableUtils.Unwrap(docgenJobs.Entries)[0].Id);

Get Box Doc Gen jobs in batch with a specific ID

A single request can generate several documents. In such a case, a separate generation job is run for each document and all these jobs are included in one "batch" meaning a request. To get all jobs performed within one request, use the GET /2.0/docgen_batch_jobs_id endpoint and provide the batch_id.

cURL
curl -i -X GET "https://api.box.com/2.0/docgen_jobs/12345" \
     -H 'box-version: 2025.0' \
     -H "authorization: Bearer <ACCESS_TOKEN>"
TypeScript Gen
await client.docgen.getDocgenJobByIdV2025R0(docgenJobs.entries![0].id);
Python Gen
client.docgen.get_docgen_job_by_id_v2025_r0(docgen_jobs.entries[0].id)
.NET Gen
await client.Docgen.GetDocgenJobByIdV2025R0Async(jobId: NullableUtils.Unwrap(docgenJobs.Entries)[0].Id);