Skip to content
Toolseta
Business plan

API

Every file tool is available over a simple REST API. Jobs run asynchronously on the priority queue: create a run, poll it, download the results.

Authentication

Create an API key in your account and send it as a bearer token. Keys are shown once; we only store a hash.

Authorization: Bearer tsk_…

1. Create a run

POST https://toolseta.com/api/v1/tools/{tool}/runs with multipart/form-data: one or more files[] and optional options[...].

curl -X POST https://toolseta.com/api/v1/tools/invoice-to-excel/runs \
  -H "Authorization: Bearer $TOOLSETA_KEY" \
  -H "Accept: application/json" \
  -F "files[]=@invoice-1.pdf" \
  -F "files[]=@invoice-2.pdf"

Response 202 Accepted:

{"data": {"id": "9f0c…", "status": "pending", "progress": 0, "files": []}}

2. Poll the run

GET https://toolseta.com/api/v1/runs/{id} until status is completed or failed. Completed runs list result files with signed, expiring download URLs.

{"data": {"id": "9f0c…", "status": "completed", "progress": 100,
  "files": [{"name": "invoices-2026-09-27.xlsx", "size": 18230, "url": "https://toolseta.com/files/…/download?expires=…&signature=…"}]}}

Errors & limits

  • 401 invalid key · 403 plan without API access · 422 validation error (details in errors) · 429 rate or daily limit reached.
  • 120 requests per minute per key. Daily processing limits are the same as your plan.

Tools

ToolAcceptsOptions
pdf-compressor pdf (multiple)
options[level] strong | recommended | light
merge-pdf pdf (multiple) —
split-pdf pdf
options[mode] ranges | every
options[ranges] text
pdf-to-images pdf
options[format] png | jpg
options[dpi] 72 | 150 | 300
images-to-pdf jpg, jpeg, png, webp (multiple)
options[page_size] a4 | letter | fit
options[margin] none | small | large
pdf-to-text pdf (multiple)
options[layout] checkbox
pdf-to-csv pdf (multiple)
options[delimiter] comma | semicolon | tab
pdf-to-excel pdf (multiple) —
invoice-to-excel pdf, jpg, jpeg, png (multiple) —
ocr pdf, jpg, jpeg, png (multiple)
options[language] eng | pol | deu | spa | eng+pol+deu+spa
image-compressor jpg, jpeg, png, webp (multiple)
options[quality] number
image-resizer jpg, jpeg, png, webp (multiple)
options[width] number
options[height] number
options[fit] contain | cover | stretch
jpg-to-png jpg, jpeg (multiple) —
png-to-jpg png (multiple)
options[quality] number
options[background] ffffff | 000000