apyhub
FILE CONVERSION

Advanced Convert PDF to Excel API

What it does

PDF to Excel Converter turns PDF files into .xlsx spreadsheets and lets you track each conversion job by ID. Send one or more PDF files in the files array, then receive a jobs array with job_id, filename, status, and progress for each queued conversion.

Use the job status endpoint to check a single conversion by job_id. It returns the current status and progress, with an optional error field when something goes wrong. When a job finishes, download the resulting Excel file from /download/:job_id as a binary response.

If you are processing batches, the aggregate status endpoint helps you monitor multiple jobs at once. Pass job_ids as a query parameter and get back overall status, progress, total_files, completed_files, and per-job details. That makes it easier to build document workflows for invoice tables, exported reports, or any PDF data that needs to land in spreadsheet form.

▣ ENDPOINT 01 / 04
POST
Convert PDF files to Excel (.xlsx)
http://localhost:8080/pankajretestflows/convert-pdf-to-excel

QUICKSTART

GUIDE

Quickstart

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

curl -X POST "http://localhost:8080/pankajretestflows/convert-pdf-to-excel" \
  -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 fields describing the conversion job.

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

About this endpoint

What it does

Converts one or more PDF files into Excel .xlsx output by submitting the files for processing. The response returns a JSON object containing a jobs array with a job entry for each submitted file.

Request Body

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

Response

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

ParameterTypeMandatoryDescription
jobsObject ArrayYesArray of job objects created for the submitted PDF files.
jobs[].job_idStringYesJob identifier.
jobs[].filenameStringYesOriginal filename of the submitted PDF file.
jobs[].statusStringYesJob status.
jobs[].progressIntegerYesJob 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 PDF-to-Excel job
http://localhost:8080/pankajretestflows/convert-pdf-to-excel/status/:job_id

QUICKSTART

GUIDE

Quickstart

Check the status of a PDF-to-Excel conversion job by replacing :job_id in the path.

curl -X GET "http://localhost:8080/pankajretestflows/convert-pdf-to-excel/status/:job_id"

What you'll get back

Returns a JSON object with these top-level fields: job_id as a string, status as a string (queued, processing, done, or failed), progress as an integer from 0 to 100, and error as a nullable 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

Checks the status of a PDF-to-Excel conversion job using its job identifier and returns the job’s current state and progress.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idStringYesIdentifies the job to check.

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 required fields are job_id, status, and progress.

ParameterTypeMandatoryDescription
job_idStringYesThe job identifier.
statusENUMYesJob state. Allowed values: queued, processing, done, failed.
progressIntegerYesProgress value from 0 to 100.
errorStringNoError message, or null when not present.

Notes

This endpoint returns job state information for a previously started PDF-to-Excel conversion job. The status field uses the exact enum values declared in the schema: queued, processing, done, and failed.

Path parameters

Name
Type
Description
job_idREQUIRED
string
▣ ENDPOINT 03 / 04
GET
Download a finished PDF-to-Excel output
http://localhost:8080/pankajretestflows/convert-pdf-to-excel/download/:job_id

QUICKSTART

GUIDE

Quickstart

Download the converted Excel file for a completed job by replacing job_id in the path.

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

What you'll get back

Returns a binary file response (string with format: binary), so the endpoint sends the downloaded Excel content directly rather than a JSON object.

(binary Excel file)
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-Excel file for a completed conversion job. The request uses the job identifier in the path and returns the generated file as binary content.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idStringYesThe job identifier used to locate the finished conversion output.

Response

Returns a binary file response containing the downloaded PDF-to-Excel output for the requested job.

AttributeTypeMandatoryDescription
Binary response bodyStringYesThe response body is binary file content.

Path parameters

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

QUICKSTART

GUIDE

Quickstart

Check the overall status for one or more PDF-to-Excel jobs by passing their job_ids as a query parameter.

curl -X GET "http://localhost:8080/pankajretestflows/convert-pdf-to-excel/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 showing overall completion.
{
  "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-Excel jobs and returns overall status information. The request takes a job_ids query parameter and the response includes summary progress plus per-job details.

Query Parameter(s)

AttributeTypeMandatoryDescription
job_idsStringYesOne or more job identifiers to include in the aggregate status check.

Response

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

ParameterTypeMandatoryDescription
statusENUMYesAggregate status of the jobs. Allowed values: unknown, queued, processing, done, failed.
progressIntegerYesOverall progress percentage, from 0 to 100.
detailsObject ArrayNoPer-job status details. Each item may include:<br>details[].job_id — String job identifier.<br>details[].status — String status for that job.<br>details[].progress — Integer progress for that job.
total_filesIntegerNoTotal number of files covered by the aggregate status check.
completed_filesIntegerNoNumber of files that have completed.

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.