apyhub
FILE CONVERSION · FILE MANIPULATION

Convert Word to PDF Job API

Hosted on ApyHub

What it does

Word to PDF converts Word documents into PDF files and tracks each conversion as a job. Send one or more .docx, .doc, .rtf, or .odt files in the request body, and you get back a batch_id plus a jobs array with each job's job_id, filename, status, and progress.

Use it when you need to preserve document formatting for sharing, archiving, or downstream processing. A batch-oriented response makes it easy to submit multiple files at once and follow each conversion separately.

Poll GET /status/:job_id to check a single job or batch. The status response can include overall progress, counts for total_files and completed_files, and per-job progress details. When a file is ready, download the finished PDF with GET /download/:job_id.

If you're managing many conversions at once, GET /overall-status lets you pass multiple job IDs and retrieve aggregate status, progress, and file counts in one response.

Note: Pricing is 1 atom per page + 50.

▣ ENDPOINT 01 / 04
POST
Convert Word files (.docx, .doc, .rtf, .odt) to PDF
https://api.eu.apyhub.com/flowdocs/generate-word-to-pdf

QUICKSTART

GUIDE

Quickstart

Upload one or more Word files to convert them into a PDF batch.

curl -X POST "https://api.eu.apyhub.com/flowdocs/generate-word-to-pdf" \
  -H "apy-token: $APY_TOKEN" \
  -F "files=@/path/to/file.docx"

What you'll get back

Returns a JSON object with a batch_id string and a jobs array. Each job in jobs is an object with job_id, filename, status, and progress, and may also include batch_id for the parent batch.

{
  "batch_id": "a1b2c3d4e5f6a7b8",
  "jobs": [
    {
      "job_id": "a1b2c3d4",
      "filename": "report.pdf",
      "status": "queued",
      "progress": 0
    }
  ]
}
TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.
body*
files*
Word files (.docx, .doc, .rtf, .odt) to convert to PDF. Maximum 5 files.

About this endpoint

What it does

Converts one or more uploaded Word files (.docx, .doc, .rtf, .odt) to PDF. The request uploads the files in the body, and the response returns a batch identifier plus per-file job records for the conversion run.

Request Body

ParameterTypeMandatoryDescription
filesString ArrayYesWord files (.docx, .doc, .rtf, .odt) to convert to PDF.

Response

Returns a JSON object with a batch_id string field and a jobs array field. Each item in jobs is an object containing job_id (String), filename (String), status (String), progress (Integer), and batch_id (String).

ParameterTypeMandatoryDescription
batch_idStringYesParent id for this submit; also returned as X-Apy-Job-Id.
jobsObject ArrayYesArray of child job records for the submitted files.
jobs[].job_idStringYesJob identifier for the individual conversion task.
jobs[].filenameStringYesOutput filename for the converted PDF.
jobs[].statusStringYesStatus of the individual job.
jobs[].progressIntegerYesProgress value for the individual job.
jobs[].batch_idStringNoParent batch id this child belongs to.

Body

Name
Type
Description
bodyREQUIRED
object

Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.

▣ ENDPOINT 02 / 04
GET
Get the status of a Word-to-PDF job
https://api.eu.apyhub.com/flowdocs/generate-word-to-pdf/status/:job_id

QUICKSTART

GUIDE

Quickstart

Check the status of a conversion job by its job_id path parameter.

curl -X GET "https://api.eu.apyhub.com/flowdocs/generate-word-to-pdf/status/:job_id" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object matching one of the documented status shapes. The top-level object includes job_id, status, and progress, and may also include error; some responses also include batch, batch_id, total_files, completed_files, or jobs.

{
  "job_id": "job_12345",
  "status": "processing",
  "progress": 60
}
TRY ITLIVE · 1 ATOM
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Checks the status of a Word-to-PDF job identified by job_id in the path. The response shape varies by whether the job is a batch or a single job, but always includes the job identifier, current status, and progress.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idStringYesIdentifies the job to check.

Response

Returns a JSON object describing the current state of the job, or a batch summary for batch jobs. The top-level fields vary by response variant, but each response includes job_id, status, and progress; batch responses also include batch, total_files, completed_files, and jobs.

ParameterTypeMandatoryDescription
job_idStringYesJob identifier. In the batch variant, this is the batch id.
batchBooleanYesPresent only in the batch variant; true.
statusENUMYesJob state. Allowed values: queued, processing, done, failed.
progressIntegerYesProgress percentage from 0 to 100.
total_filesIntegerYes (batch variant)Total number of files in the batch.
completed_filesIntegerYes (batch variant)Number of files completed in the batch.
jobsObject ArrayYes (batch variant)List of jobs in the batch. Each item may include job_id, status, and progress.
batch_idStringYes (single-batch variant)Parent batch id. Billing happens at the parent, not here.
errorStringNoError message, if present. Nullable in the schema.

Notes

The response is a union of three object shapes, so clients should branch on the presence of batch or batch_id rather than assuming a single fixed set of fields. Batch responses use the job_id field for the batch id, while the per-job variant includes batch_id as the parent batch id.

Path parameters

Name
Type
Description
job_idREQUIRED
string
▣ ENDPOINT 03 / 04
GET
Download a finished Word-to-PDF output
https://api.eu.apyhub.com/flowdocs/generate-word-to-pdf/download/:job_id

QUICKSTART

GUIDE

Quickstart

Download the PDF for a completed Word-to-PDF conversion job by passing its job_id in the path.

curl -X GET "https://api.eu.apyhub.com/flowdocs/generate-word-to-pdf/download/:job_id" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a binary file stream (string with format: binary), which is the generated PDF content.

(binary PDF content)
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Downloads the finished Word-to-PDF output for a completed job. The request requires the job identifier in the path and returns a binary file response.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idStringYesIdentifies the finished conversion job.

Response

Returns a binary response containing the generated Word-to-PDF file.

Path parameters

Name
Type
Description
job_idREQUIRED
string
▣ ENDPOINT 04 / 04
GET
Aggregate progress across Word-to-PDF jobs
https://api.eu.apyhub.com/flowdocs/generate-word-to-pdf/overall-status

QUICKSTART

GUIDE

Quickstart

Check the overall status for one or more job IDs by passing them as a query parameter.

curl -X GET "https://api.eu.apyhub.com/flowdocs/generate-word-to-pdf/overall-status?job_ids=job-123,job-456" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with required status and progress fields, plus optional details, total_files, and completed_files.

  • status is a string: one of unknown, queued, processing, done, or failed.
  • progress is an integer from 0 to 100.
{
  "status": "processing",
  "progress": 60,
  "details": [
    {
      "job_id": "job-123",
      "status": "processing",
      "progress": 60
    }
  ],
  "total_files": 2,
  "completed_files": 1
}
TRY ITLIVE · 1 ATOM
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns the aggregate progress for one or more Word-to-PDF jobs, based on the job_ids query parameter. The response includes the overall status and progress, plus optional summary fields and per-job details.

Query Parameter(s)

AttributeTypeMandatoryDescription
job_idsStringYesOne or more job identifiers to aggregate progress across.

Response

Returns a JSON object with required status and progress fields, plus optional details, total_files, and completed_files fields. The status field is a string enum indicating the aggregate state, and progress is an integer from 0 to 100.

ParameterTypeMandatoryDescription
statusENUMYesAggregate job status. Allowed values: unknown, queued, processing, done, failed.
progressIntegerYesOverall progress percentage. Minimum 0, maximum 100.
detailsObject ArrayNoPer-job progress details. Each item contains:<br>job_id (String)<br>status (String)<br>progress (Integer)
total_filesIntegerNoTotal number of files included in the aggregate calculation.
completed_filesIntegerNoNumber of files completed so far.

Query parameters

Name
Type
Description
job_idsREQUIRED
string
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.