apyhub
FILE CONVERSION · FILE MANIPULATION

Convert Word to PDF Job API

Hosted on ApyHub

What it does

Word to PDF Converter turns one or more Word documents into PDF files. Send .docx, .doc, .rtf, or .odt files in a files array, then track each conversion job by job_id as it moves through queued, processing, done, or failed states.

Use it when you need to standardise document output for sharing, archiving, or downstream processing. The main conversion endpoint returns a jobs array with job_id, filename, status, and progress, so you can start several conversions at once and monitor them individually. When a job finishes, fetch the resulting binary PDF from the download endpoint.

If you are running batch document workflows, the status endpoint lets you poll a single job with its job_id, while the overall status endpoint accepts multiple job IDs and returns aggregate status, progress, details, total_files, and completed_files. That makes it straightforward to show conversion progress in a dashboard or coordinate large document queues without guessing which files are still in flight.

Note: Pricing is 1 atom per page + 50.

▣ ENDPOINT 01 / 04
POST
Convert Word files (.docx, .doc, .rtf, .odt) to PDF
http://localhost:8080/flowdocs/generate-word-to-pdf
QUICKSTARTGUIDE

Quickstart

Convert one Word file to PDF by uploading it as multipart form data.

curl -X POST "http://localhost:8080/flowdocs/generate-word-to-pdf" \
  -H "apy-token: $APY_TOKEN" \
  -F "files=@/path/to/report.docx"

What you'll get back

Returns a JSON object with a jobs array. Each item in jobs is an object with job_id string, filename string, status string, and progress integer.

{
  "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 Word files to PDF by accepting uploaded files in the request body and returning a list of conversion jobs. The response contains the job details for each submitted file.

Request Body

ParameterTypeMandatoryDescription
filesString ArrayYesWord files (.docx, .doc, .rtf, .odt) to convert to PDF. Max File Upload limit - 5

Response

Returns a JSON object with a jobs array field. Each item in jobs is an object containing job_id as a string, filename as a string, status as a string, and progress as an integer.

ParameterTypeMandatoryDescription
jobsObject ArrayYesList of conversion jobs returned by the endpoint.
jobs[].job_idStringYesUnique identifier for the job.
jobs[].filenameStringYesOutput filename for the converted PDF.
jobs[].statusStringYesCurrent job status.
jobs[].progressIntegerYesConversion progress value.

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
http://localhost:8080/flowdocs/generate-word-to-pdf/status/:job_id
QUICKSTARTGUIDE

Quickstart

Check the status of a document conversion job by its job_id.

curl -X GET "http://localhost:8080/flowdocs/generate-word-to-pdf/status/:job_id" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with job_id and status string fields, progress as an integer from 0 to 100, and error as a nullable string. status will be one of queued, processing, done, or failed.

{
  "job_id": "job_12345",
  "status": "processing",
  "progress": 60,
  "error": null
}
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 current status of a Word-to-PDF conversion job identified by job_id. The response includes the job identifier, its current status, and progress, with an optional error message when present.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idStringYesIdentifies the job in the /status/:job_id path.

Response

Returns a JSON object with job_id as a string, status as a string enum, progress as an integer, and error as a nullable string. The status value can be queued, processing, done, or failed.

ParameterTypeMandatoryDescription
job_idStringYesIdentifies the job whose status is being returned.
statusENUMYesCurrent job state. Allowed values: queued, processing, done, failed.
progressIntegerYesProgress value from 0 to 100.
errorStringNoError message, if present; nullable.

Notes

Poll this endpoint with the job_id returned by the submit call. The status field cycles through transitional values (queued, processing) before reaching a terminal state (done or failed). The result fields are only populated once status is done; treat them as absent otherwise.

Path parameters

Name
Type
Description
job_idREQUIRED
string
▣ ENDPOINT 03 / 04
GET
Download a finished Word-to-PDF output
http://localhost:8080/flowdocs/generate-word-to-pdf/download/:job_id
QUICKSTARTGUIDE

Quickstart

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

curl -X GET "http://localhost:8080/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
http://localhost:8080/flowdocs/generate-word-to-pdf/overall-status
QUICKSTARTGUIDE

Quickstart

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

curl -X GET "http://localhost:8080/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.