apyhub
Back
▣ FILE CONVERSION · FILE MANIPULATION

Convert PDF to Word Job API

Hosted on ApyHub

What it does

PDF to Word Converter turns one or more PDF files into .docx documents. Send PDF binaries in the files array, then use the returned batch_id and per-file jobs to track conversion progress.

Each submit response includes a parent batch_id plus a job entry for every file, with job_id, filename, status, and progress. That makes it easy to handle multi-file uploads and keep your own job queue in sync with the conversion state.

Use GET /status/:job_id when you want the current state of a single job or batch. The status response can include overall progress, file counts, and a jobs list with child job progress. If you only need a high-level view across multiple jobs, GET /overall-status accepts job_ids and returns aggregate status, progress, and file totals.

When a job finishes, GET /download/:job_id returns the converted Word file as binary output. That fits document workflows such as editing uploaded reports, converting scanned PDFs into shareable Office documents, or automating batch document migration.

Note: Pricing depends on page count and detected PDF type: native PDFs cost 2 atoms per page + 100, while scanned PDFs cost 5 atoms per page + 100.

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

QUICKSTART

GUIDE

Quickstart

Upload one or more PDF files to convert them to Word documents.

curl -X POST "https://api.eu.apyhub.com/flowdocs/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 batch_id string and a jobs array. Each item in jobs is an object with job_id, filename, status, and progress fields; batch_id is the parent batch id for the submit.

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

About this endpoint

What it does

Converts one or more PDF files into Word (.docx) files. You send the PDF files in the request body, and the response returns a batch identifier plus a list of per-file job records.

Request Body

ParameterTypeDescription
filesBinary ArrayPDF files to convert to Word.

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).

ParameterTypeDescription
batch_idStringParent id for this submit; also returned as X-Apy-Job-Id.
jobsObject ArrayList of child job records created for the submitted files.
jobs[].job_idStringJob identifier for the individual file conversion.
jobs[].filenameStringOriginal filename for the submitted PDF file.
jobs[].statusStringCurrent job status.
jobs[].progressIntegerProgress value for the job.
jobs[].batch_idStringParent batch id this child belongs to.

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 PDF-to-Word job
https://api.eu.apyhub.com/flowdocs/convert-pdf-to-word/status/:job_id

QUICKSTART

GUIDE

Quickstart

Check the status of a conversion job by passing its job_id in the URL path.

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

What you'll get back

Returns a JSON object matching one of three status shapes. The response always includes job_id, status, and progress; it may also include error, and depending on the job type it can include batch with total_files, completed_files, and jobs, or batch_id.

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

Returns the current status for a PDF-to-Word job, using the job_id path parameter. The response shape varies by whether the job is a batch or a single job, but always includes the job identifier, status, and progress.

Path Parameter(s)

AttributeTypeDescription
job_idStringIdentifies the job to check.

Response

Returns a JSON object describing job status. The top-level fields depend on the job type: batch responses include job_id, batch, status, progress, total_files, completed_files, jobs, and optionally error; non-batch responses include job_id, status, progress, and optionally batch_id and error. In all cases, status is one of queued, processing, done, or failed, and progress is an integer from 0 to 100.

ParameterTypeDescription
job_idStringThe job identifier returned by the service.
batchBooleantrue for batch status responses.
statusENUMCurrent job state: queued, processing, done, or failed.
progressIntegerProgress percentage from 0 to 100.
total_filesIntegerTotal number of files in the batch.
completed_filesIntegerNumber of files completed in the batch.
jobsObject ArrayPer-job status entries for the batch. Each item may include job_id, status, and progress.
jobs[].job_idStringIdentifier of an individual job in the batch.
jobs[].statusStringStatus of an individual job in the batch.
jobs[].progressIntegerProgress for an individual job in the batch.
batch_idStringParent batch identifier. Billing happens at the parent batch, not here.
errorStringError message when present; nullable in the schema.
▣ ENDPOINT 03 / 04
GET
Download a finished PDF-to-Word output
https://api.eu.apyhub.com/flowdocs/convert-pdf-to-word/download/:job_id

QUICKSTART

GUIDE

Quickstart

Download the converted Word file for a finished job by replacing job_id in the path.

curl -X GET "https://api.eu.apyhub.com/flowdocs/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) containing the downloaded document.

...file contents...
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 converted Word file for a completed PDF-to-Word job. The request identifies the job by job_id in the path, and the response is a binary file.

Path Parameter(s)

AttributeTypeDescription
job_idStringIdentifies the finished conversion job.

Response

Returns a binary response containing the downloaded Word output file. The output schema is a single string with binary format, so the successful response is the file content itself.

AttributeTypeDescription
binaryStringThe downloaded file content as a binary payload.
▣ ENDPOINT 04 / 04
GET
Aggregate progress across PDF-to-Word jobs
https://api.eu.apyhub.com/flowdocs/convert-pdf-to-word/overall-status

QUICKSTART

GUIDE

Quickstart

Check the overall status for one or more conversion jobs by passing their IDs as a query parameter.

curl -X GET "https://api.eu.apyhub.com/flowdocs/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 required status and progress fields, plus optional details, total_files, and completed_files.

  • status is a string enum: 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

Aggregates the progress of one or more PDF-to-Word jobs and returns a combined status summary. The response includes overall status and progress, with optional per-job details plus file counts.

Query Parameter(s)

AttributeTypeDescription
job_idsStringJob identifier(s) to aggregate.

Response

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

AttributeTypeDescription
statusENUMOverall job state. Allowed values: unknown, queued, processing, done, failed.
progressIntegerAggregate progress percentage. Minimum 0, maximum 100.
detailsObject ArrayPer-job status entries. Each item may include job_id, status, and progress.
details[].job_idStringJob identifier for the individual job.
details[].statusStringStatus for the individual job.
details[].progressIntegerProgress value for the individual job.
total_filesIntegerTotal number of files included in the aggregate.
completed_filesIntegerNumber of files completed so far.
▣ 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.