REST API docs

Fiscor PDF API Documentation

Start here if you want to call PDF Tools from your backend. The API works in one simple flow: create an API key, upload a file, get a job id, poll until the job is completed, then download the result.

Quick start

1

Create API access

Sign in and create an API key from the developer portal. Free access includes 150 API jobs per month.

2

Send the key

For API calls use X-API-Key: fiscor_api_.... Keep this key only on your server.

3

Create a job

Post files to /jobs/{operation}. The response gives you a jobId.

4

Poll and download

Poll /jobs/{jobId} until status is Completed, then download.

Use JWT bearer tokens only inside the signed-in workspace for account actions like creating or revoking API keys. Use API keys for server-to-server document processing.

What you can automate

PDF to WordPDF to ExcelPDF OCRPage NumbersWord to PDFMerge PDFSplit PDFCompress PDFProtect PDFUnlock PDFSign PDFImage to PDFPDF to imageBase64 tools

Minimal integration

  • Store the API key in backend configuration.
  • Call /api/v1/operations only if you need dynamic tool discovery.
  • Use multipart form upload for files.
  • Persist the returned jobId in your system.
  • Retry polling with a short delay; do not block a request thread forever.

Good to know

  • Free website-tool usage and API-key usage are tracked separately.
  • Every signed-in user can create API keys. Paid API plans only increase monthly limits.
  • Operation-specific request data may vary for advanced tools like signing and watermarking.
  • Downloads are ownership-protected and require the same API key or signed-in user context.

Authentication and key management

These endpoints are for the web workspace. They require Authorization: Bearer YOUR_WORKSPACE_TOKEN, not an API key.

MethodPathPurpose
GET/api/v1/auth/meRead the current signed-in account, plan, and API-access state from the workspace.
GET/api/v1/auth/me/api-keysList API keys created under the current user.
POST/api/v1/auth/me/api-keysCreate a new API key. Free accounts can use 150 API jobs per month.
DELETE/api/v1/auth/me/api-keys/{id}Revoke an existing API key.

Create API key

curl -X POST "https://pdf.fiscor.am/api/v1/auth/me/api-keys" \
  -H "Authorization: Bearer YOUR_WORKSPACE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production API"
  }'

Create key response

{
  "id": "019f...",
  "name": "Production API",
  "keyPrefix": "fiscor_api_1234",
  "plainTextKey": "fiscor_api_1234567890abcdef...",
  "createdAtUtc": "2026-06-15T10:20:00Z"
}

Core API endpoints

MethodPathPurpose
GET/api/v1/operationsReturn available operation slugs and metadata.
POST/api/v1/jobs/{operation}Create a new async processing job for the selected operation.
GET/api/v1/jobs/{jobId}Poll current job status, failure reason, result file size, and timing.
GET/api/v1/jobs/{jobId}/downloadDownload the processed result when the job is completed.
GET/api/v1/me/historyReturn the signed-in user's recent jobs for history and developer portal views.
POST/api/v1/billing/api/startStart an API-plan payment session for the current user.

Machine-readable API schema: https://pdf.fiscor.am/openapi.json

Discover operations

curl "https://pdf.fiscor.am/api/v1/operations" \
  -H "X-API-Key: fiscor_api_your_key_here"

Sample operation slugs

  • pdf-to-word
  • pdf-to-excel
  • pdf-ocr
  • page-numbers
  • word-to-pdf
  • merge-pdf
  • split-pdf
  • compress-pdf
  • scan-to-pdf
  • compress-image

Create a job

curl -X POST "https://pdf.fiscor.am/api/v1/jobs/pdf-to-word" \
  -H "X-API-Key: fiscor_api_your_key_here" \
  -F "file=@/absolute/path/document.pdf"

Create job response

{
  "jobId": "019ec-example-job-id"
}

HTTP status is 202 Accepted. Save this id and use it for polling.

Poll job status

curl "https://pdf.fiscor.am/api/v1/jobs/019ec-example-job-id" \
  -H "X-API-Key: fiscor_api_your_key_here"

Completed job response

{
  "id": "019ec-example-job-id",
  "operationType": "PdfToWord",
  "status": 2,
  "processingTimeMs": 1450,
  "failureReason": null,
  "canDownload": true,
  "resultFileName": "pdf-to-word-20260615.docx",
  "originalSizeBytes": 248431,
  "resultFileSizeBytes": 132775
}

Job statuses

ValueNameWhat your integration should do
0PendingJob is queued. Poll again after a short delay.
1ProcessingConversion is running. Keep polling with backoff.
2CompletedIf canDownload is true, call the download endpoint.
3FailedShow or log failureReason. Do not retry blindly unless the error is transient.

Download result

curl -L "https://pdf.fiscor.am/api/v1/jobs/019ec-example-job-id/download" \
  -H "X-API-Key: fiscor_api_your_key_here" \
  -o result.docx

History endpoint

curl "https://pdf.fiscor.am/api/v1/me/history" \
  -H "Authorization: Bearer YOUR_WORKSPACE_TOKEN"

History is a workspace endpoint. It uses the logged-in user JWT.

API plans

Plan codeTypical useNotes
api_starterLow-volume integrations and prototypes.Entry-level paid API access stored under the current user.
api_growthGrowing product integrations with higher throughput.Higher monthly quota and larger file handling profile.
api_businessHeavier production usage and business workflows.Business-oriented limits and support profile.

Start API payment

curl -X POST "https://pdf.fiscor.am/api/v1/billing/api/start" \
  -H "Authorization: Bearer YOUR_WORKSPACE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "planCode": "api_starter"
  }'

Billing response

{
  "paymentUrl": "https://....",
  "planCode": "api_starter",
  "amountUsd": 5,
  "estimatedAmd": 1850
}

Request notes for advanced tools

Production warning: never expose fiscor_api_... keys in browser JavaScript, mobile apps, or public repositories. Put the key in your backend and call PDF Tools from there.

Documentation FAQ

Is the live API using API keys or JWT tokens?

Document processing endpoints support API keys. Workspace/account endpoints use JWT tokens from the signed-in user session.

How do I know which operations are supported?

Call /api/v1/operations. It returns the supported public operation slugs so your integration does not need to hardcode the full list.

Can I keep API access separate from normal website usage?

Yes. Paid API access is stored under the user account and tracked separately from the public free website-tool counters.

Do I need to wait for processing synchronously?

No. Jobs are async. Create the job, poll its status, and download the result when canDownload becomes true.

Where should I manage my API access?

Use the developer section inside your signed-in workspace at /history#developer-api. That is where API keys, free usage, paid upgrades, and developer-facing account information are surfaced today.

Ready to integrate?

Open the developer portal, sign in, create a free API key, and start wiring the live REST endpoints into your application.