FileMorf Docs

Public API v1

Public API
Getting Started

Uploads and Artifacts

Uploads happen directly to presigned storage URLs. Completed outputs become retained artifacts with refreshable download links.

Base route

https://api.filemorf.com/api/public

Auth

Bearer API key created from the workspace.

Delivery model

Signed uploads, queued jobs, retained artifacts, refreshable URLs.

Lifecycle

Uploads happen directly to signed storage URLs

FileMorf returns presigned upload URLs instead of accepting large binary uploads through the job endpoint itself. That keeps the public API stable while allowing larger server-side processing.

  • POST /jobs returns one uploadUrl for single-input jobs.
  • POST /merge returns one uploadUrl per input file and a single merge jobId.
  • Upload with HTTP PUT and the content type used during job creation.
  • Only call POST /jobs/:id/start after every required upload succeeds.

Retention

Outputs become retained artifacts

Completed results remain in retained storage for the configured retention window. Signed download URLs are time-limited and refreshable.

BehaviorWhat to expect
Result URLsSigned download links expire and can be refreshed with POST /jobs/:id/refresh-url once the job is completed.
Artifact retentionCompleted server outputs are retained and can be reused as inputs for recipe runs during the retention window.
Multi-output jobsJobs like pdf-split return result.files[] and also create retained output artifacts per file.

Local testing

Keep upload handling explicit in your client

Your client should store the returned jobId and uploadUrl immediately, then promote the job to 'ready to start' only after the binary PUT succeeds.

Direct upload
curl -X PUT "$UPLOAD_URL" \
  -H "Content-Type: application/pdf" \
  --upload-file ./contract.pdf

Next steps

Build against the live API, not the idea of it.

Create or rotate keys in the workspace, test against the base route, and use the same lifecycle documented here in production and local environments.