For developers Developer preview

Every OmniKitly tool, programmable.

Build document and media processing directly into your apps. One job model, every tool, async by design.

The API does not exist yet. This page describes the design that will be built on the shared tool registry.

Concept

Submit a job. Get a result.

Every operation — a single tool, a bulk batch or a saved workflow — is a job. You upload to a signed URL, post the job with the tool slug and settings, then poll or receive a webhook. Results come back as signed download URLs that expire.

POST /v1/jobs
# Developer preview — endpoints are a design, not yet live
curl -X POST https://api.omnikitly.example/v1/jobs \
  -H "Authorization: Bearer $OMNIKITLY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "compress-pdf",
    "input": { "upload_id": "up_8f2a4c" },
    "settings": { "mode": "target", "target_kb": 500 },
    "webhook": "https://example.com/hooks/omnikitly"
  }'

Architecture

Three stages, the same for a single file or ten thousand.

1 · Import

Signed uploads

Request a signed upload URL, PUT the bytes straight to private storage. Your file never transits our API servers.

POST /v1/uploads
2 · Process

Async jobs

Create a job naming a tool or workflow. It queues, runs on an isolated worker, and reports progress you can poll or subscribe to.

POST /v1/jobs
3 · Export

Signed downloads

Fetch the result via an expiring signed URL, or let a webhook deliver it. Delete early with a single call.

GET /v1/jobs/{id}/result

What the API will include

Draft reference Draft

The job object. Field names are provisional until the OpenAPI document is published.

FieldTypeDescription

Build on the same engine as the site

Register interest now and be first into the developer preview when jobs go live.