apyhub
FILE CONVERSION · FILE MANIPULATION

Advanced Convert Excel to PDF API

What it does

Excel to PDF converts Excel workbooks into PDF files and tracks each conversion as a job. Send one or more Excel files in the request body, and the service returns a job list with job_id, filename, status, and progress for each conversion.

Use the status endpoint to check a single job by job_id. It returns the current statusqueued, processing, done, or failed — plus progress and an optional error message. When a job finishes, download the generated PDF with the download endpoint using the same job_id.

If you're processing multiple files, the overall status endpoint lets you pass job_ids and get aggregate progress back. The response includes overall status, progress, total_files, completed_files, and per-job details, which makes it easy to show batch conversion progress in your app or dashboard.

Use Excel to PDF when you need to turn reports, invoices, schedules, or spreadsheet exports into shareable PDFs without manual reformatting.

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

QUICKSTART

GUIDE

Quickstart

Upload one or more Excel files to convert them to PDF.

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

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

About this endpoint

What it does

Converts one or more Excel files (.xlsx, .xlsm, .xls) to PDF and returns a JSON object containing job details for each submitted file. Each job entry includes the generated PDF filename, job ID, status, and progress.

Request Body

ParameterTypeMandatoryDescription
filesString ArrayYesExcel files to convert to PDF. 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 (String), filename (String), status (String), and progress (Integer). Success response schema is defined for the returned jobs list.

ParameterTypeMandatoryDescription
jobsObject ArrayYesList of job objects created for the submitted Excel files. Each job includes job_id, filename, status, and progress.
jobs[].job_idStringYesJob identifier.
jobs[].filenameStringYesOutput PDF filename.
jobs[].statusStringYesJob status.
jobs[].progressIntegerYesJob progress value.

Notes

This endpoint kicks off an async job and returns immediately with job details for each uploaded file; the actual work runs in the background. Pair this call with the corresponding job_check endpoint — poll that until the status reaches a terminal state to retrieve the result. Extract the job identifier from jobs[].job_id.

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 an Excel-to-PDF job
http://localhost:8080/pankajretestflows/convert-excel-to-pdf/status/:job_id

QUICKSTART

GUIDE

Quickstart

Check the status of a conversion job by replacing JOB_ID in the path.

curl -X GET "http://localhost:8080/pankajretestflows/convert-excel-to-pdf/status/:job_id/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 when the job fails.

{
  "job_id": "job-123",
  "status": "processing",
  "progress": 45,
  "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 status of an Excel-to-PDF conversion job using the job identifier in the path. The response returns the job ID, current status, progress, and an optional error message.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idStringYesIdentifies the job to check.

Response

Returns a JSON object with job_id and status string fields, a progress integer field, and an optional error string field. The status field is an enum that can be queued, processing, done, or failed; progress is constrained to the range 0 to 100.

AttributeTypeMandatoryDescription
job_idStringYesIdentifies the job being checked.
statusENUMYesCurrent job status. Allowed values: queued, processing, done, failed.
progressIntegerYesJob progress as an integer from 0 to 100.
errorStringNoOptional error message; may be null.

Notes

This is a polling endpoint for an async job. Call it with the job_id from the job submit response, then keep checking until status reaches a terminal value such as done or failed. Read progress while the job is in progress; error is only relevant when the job fails.

Path parameters

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

QUICKSTART

GUIDE

Quickstart

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

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

What you'll get back

Returns the PDF file as binary data (string with format: binary), not a JSON object.

%PDF-1.4
...
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 Excel-to-PDF output for a given job. The request identifies the job by job_id and returns the file as binary content.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idStringYesIdentifies the finished job to download.

Response

Returns a binary payload as a raw string file download. The output schema is a string with format: binary, so the response body is the generated PDF file content.

ParameterTypeMandatoryDescription
responseStringYesBinary file content for the finished Excel-to-PDF output.

Path parameters

Name
Type
Description
job_idREQUIRED
string
▣ ENDPOINT 04 / 04
GET
Aggregate progress across Excel-to-PDF jobs
http://localhost:8080/pankajretestflows/convert-excel-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 "http://localhost:8080/pankajretestflows/convert-excel-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: 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": "done",
      "progress": 100
    }
  ],
  "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 Excel-to-PDF jobs identified by job_ids. The response summarizes the overall status and progress, and may include per-job details.

Query Parameter(s)

AttributeTypeMandatoryDescription
job_idsStringYesJob 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 status field is an enum that reports the overall job state, and progress is an integer from 0 to 100.

AttributeTypeMandatoryDescription
statusENUMYesOverall status. Allowed values: unknown, queued, processing, done, failed.
detailsObject ArrayNoPer-job progress details.<br>Each item may include:<br>job_id (String) — job identifier<br>status (String) — job status<br>progress (Integer) — job progress
progressIntegerYesOverall progress percentage. Minimum 0, maximum 100.
total_filesIntegerNoTotal number of files included in the aggregation.
completed_filesIntegerNoNumber of files completed in the aggregation.

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.