apyhub
FILE CONVERSION · FILE MANIPULATION

Advanced Convert PDF to Word API

What it does

PDF to Word Converter turns one or more PDF files into downloadable Word documents. Send PDF files in the request body, then track each conversion job by job ID until the output is ready.

The create endpoint returns a jobs array with a job_id, filename, status, and progress for each file you submit. Use the status endpoint to check a single job and read its status, progress, and any error message. For batches, the overall-status endpoint summarizes multiple job IDs with aggregate progress, total_files, completed_files, and per-job details.

When a job finishes, use the download endpoint with the job_id to retrieve the converted .docx file as binary output. That makes this service a fit for document workflows where you need editable Word versions of uploaded PDFs, such as contract review, report editing, or intake pipelines that move files from storage into a human-readable format.

PDF to Word Converter keeps the flow simple: upload PDF files, monitor conversion progress, then download the finished document.

▣ ENDPOINT 01 / 04
POST
Convert PDF files to Word (.docx)
http://localhost:8080/pankajretestflows/convert-pdf-to-word

QUICKSTART

GUIDE

Quickstart

Upload one or more PDF files to start a PDF-to-Word conversion job.

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

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*
PDF files to convert to Word.

About this endpoint

What it does

Converts one or more PDF files into Word .docx files. The request uploads PDF files, and the response returns a JSON object containing a jobs array with one job object per file.

Request Body

ParameterTypeMandatoryDescription
filesString ArrayYesPDF files to convert to Word. Each item is a binary file.

Response

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

ParameterTypeMandatoryDescription
jobsObject ArrayYesArray of job objects for the submitted PDF files.
jobs[].job_idStringYesJob identifier for the conversion task.
jobs[].filenameStringYesOriginal filename of the PDF file.
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
Download a finished PDF-to-Word output
http://localhost:8080/pankajretestflows/convert-pdf-to-word/download/:job_id

QUICKSTART

GUIDE

Quickstart

Download the converted Word file for a completed job by replacing :job_id with your job ID in the URL.

curl -X GET "http://localhost:8080/pankajretestflows/convert-pdf-to-word/download/:job_id" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a binary file (string with format: binary), not JSON. Save the response to a .docx file when calling it from your terminal.

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

Downloads the finished PDF-to-Word output for a completed conversion job. The job identifier is supplied in the path, and the response is a binary file stream.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idStringYesIdentifies the finished conversion job.

Response

Returns a binary file response — the downloaded PDF-to-Word document for the specified job. The success response body is a single binary payload, with no JSON wrapper or top-level fields.

Path parameters

Name
Type
Description
job_idREQUIRED
string
▣ ENDPOINT 03 / 04
GET
Get the status of a PDF-to-Word job
http://localhost:8080/pankajretestflows/convert-pdf-to-word/status/:job_id

QUICKSTART

GUIDE

Quickstart

Check the status of a PDF-to-Word conversion job by providing its job_id in the path.

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

What you'll get back

Returns a JSON object with job_id as a string, status as a string (queued, processing, done, or failed), progress as an integer from 0 to 100, and an optional error string.

{
  "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

Retrieves the current status of a PDF-to-Word conversion job using its job ID, and returns the job identifier, current status, progress, and an optional error message.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idStringYesIdentifies the conversion 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 from 0 to 100, and error as a nullable string. The status field indicates the current job state.

ParameterTypeMandatoryDescription
job_idStringYesThe job identifier.
statusENUMYesJob state. Allowed values: queued, processing, done, failed.
progressIntegerYesProgress percentage, from 0 to 100.
errorStringNoAn error message if the job failed; nullable.

Path parameters

Name
Type
Description
job_idREQUIRED
string
▣ ENDPOINT 04 / 04
GET
Aggregate progress across PDF-to-Word jobs
http://localhost:8080/pankajretestflows/convert-pdf-to-word/overall-status

QUICKSTART

GUIDE

Quickstart

Check the overall status for one or more conversion jobs by passing the required job_ids query parameter.

curl -X GET "http://localhost:8080/pankajretestflows/convert-pdf-to-word/overall-status?job_ids=job-123,job-456" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with status and progress required, and optional details, total_files, and completed_files fields. status is one of unknown, queued, processing, done, or failed, and progress is an integer from 0 to 100.

{
  "status": "processing",
  "progress": 50,
  "details": [
    {
      "job_id": "job-123",
      "status": "processing",
      "progress": 50
    }
  ],
  "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 across one or more PDF-to-Word jobs identified by job_ids. The response reports overall status and progress, and may include per-job details plus file counts.

Query Parameter(s)

AttributeTypeMandatoryDescription
job_idsStringYesJob identifier(s) to check.

Response

Returns a JSON object with required status and progress fields, plus optional details, total_files, and completed_files fields. status is a string enum, progress is an integer from 0 to 100, and the additional fields provide per-job and aggregate file progress information.

AttributeTypeMandatoryDescription
statusStringYesOverall status. Allowed values: unknown, queued, processing, done, failed.
detailsObject ArrayNoPer-job progress entries. Each item may include:<br>- job_id (String)<br>- status (String)<br>- progress (Integer)
progressIntegerYesOverall progress as a percentage from 0 to 100.
total_filesIntegerNoTotal number of files across the jobs.
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.