REST API · preview · bearer keys · 1 credit per operation

The same engine,
over HTTPS.

Convert Office documents, e-books and web pages to PDF, turn PDFs into Word, Excel or PowerPoint, and run merge, split, watermark and more — from any backend, with one request.

Processed in memoryNothing stored60 requests / minute
curl -X POST https://www.shifttopdf.com/api/v1/convert \
  -H "Authorization: Bearer stp_live_…" \
  -F "file=@report.docx" \
  -F "to=pdf" \
  -F 'options={"pageNumbers":true,"margins":56}' \
  -o report.pdf

How this differs from the app. The web app never uploads anything. API requests necessarily send the file to our server, where it is converted in memory and returned in the same response: no queue, no disk, no retention. The product contract records this as server-ephemeral.

API keys

Keys are shown once and stored only as a hash. Revoking a key stops its requests immediately.

Sign in to create keys.

Every account gets 25 API credits a month on the Free plan — enough to try everything.

What each plan includes

Credits come with every plan; buy a pack when you need more without changing plans.

Free25credits / monthFiles up to 25 MB
Pro1,000credits / monthFiles up to 200 MB
Business5,000credits / monthFiles up to 200 MB
API credits$4for 500 creditsOne-time · never expire

Reference

Base URL https://www.shifttopdf.com/api/v1. Authenticate with Authorization: Bearer stp_live_…. Errors are JSON with statusCode and statusMessage.

POST/api/v1/convert

Convert a document

Office, OpenDocument, RTF, EPUB, HTML, Markdown, text, CSV and images to PDF; PDF to Word, Excel or PowerPoint.

file
multipart file — the document to convert
to
pdf · docx · xlsx · pptx
options
JSON: pageSize (a4|letter|legal|a3), orientation, margins (pt), pageNumbers, font (sans|serif|mono), fontScale, fitToWidth, repeatHeader, gridlines, notes, hiddenSlides, monospace; for PDF→Excel: sheets (tables|all-text); headings/lists/tables (booleans)
Returns The converted file. Headers: X-Shift-Pages, X-Shift-Warnings (URL-encoded), X-Shift-Credits-Charged.
POST/api/v1/pdf/{operation}

Transform a PDF

Operations: merge, split, compress, rotate, watermark, page-numbers, crop, extract, remove, organize. Merge accepts several “file” parts; the others take one.

file
multipart file(s)
pages
page range such as 1,3-5 (split, extract, remove, watermark, page-numbers, crop)
angle
90 · 180 · 270 (rotate)
text, fontSize, opacity
watermark text and style
startNumber
page numbers
margin
points trimmed from each edge (crop)
order
JSON array of zero-based page indexes (organize)
Returns A PDF — or a ZIP of PDFs for split.
GET/api/v1/usage

Credits for this key

Included, used and purchased credits for the account that owns the key.

Returns JSON.
GET/api/v1/formats

Supported formats

No authentication. Lists conversion sources, targets, PDF operations and limits.

Returns JSON.
Limits

60 requests per minute per key; files up to 25 MB (Free) or 200 MB (Pro, Business); 1,000 pages per PDF operation; 120-second processing window. Rate-limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After.

Status codes

200 file · 400 bad request · 401 missing or revoked key · 402 no credits left · 413 too large · 415 unsupported format · 422 the document could not be processed · 429 rate limited · 504 timed out.

Not on the API yet

HEIC decoding, PDF → images, OCR, protect/unlock, redaction and the visual editor remain web-app features for now. The OpenAPI description lives at /docs/openapi.yaml in the repository.