Documentation

Build background jobs with JobOrc

Plain-language guides for integrating the platform — not internal engineering specs.

HTTP API overview

Public API lives under /v1. The Node SDK is a thin client over these routes. Prefer the SDK unless you are building a non-Node client.

Base URL & health

  • Local: http://localhost:8080
  • Health: GET /healthz
  • Public catalog: GET /v1/pricing/catalog

Authentication

>_example.http
HTTP
Authorization: Bearer jk_...
  • API key jk_… — machines / SDK / CLI
  • Session jsess_… or cookie — dashboard humans

Jobs

>_example.http
HTTP
POST /v1/projects/{projectId}/jobs
Authorization: Bearer jk_...
Idempotency-Key: charge:ord_123
Content-Type: application/json
{
"jobType": "billing.charge",
"payload": { "orderId": "ord_123" },
"queue": "payments"
}
  • GET .../jobs · GET .../jobs/{id}
  • POST .../jobs/{id}/cancel · POST .../jobs/{id}/replay
  • GET .../jobs/{id}/timeline · GET .../jobs/{id}/logs
  • GET .../dead-letter-jobs

Queues

POST/GET/PATCH /v1/projects/{projectId}/queues — concurrency, visibility, rate limit, pause.

Worker protocol

  • POST .../worker/claim
  • POST .../worker/heartbeat
  • POST .../worker/complete · .../fail
  • GET .../workers

Prefer joborc.worker() instead of calling these by hand.

Schedules

/v1/projects/{projectId}/schedules (+ pause/resume/runs). Requires schedules feature flag on the server.

Errors

Responses use application/problem+json with stable JOBORC-* codes.