SextantDocs
v2.4latest
v2.4latestv1.9legacy

Switching keeps you on the same page when it exists in the other version.

Schedule jobs. See every run.

Sextant is an open-source CLI and HTTP API for background jobs: cron and delayed schedules, retries you can reason about, and a record of every attempt. These are its docs.

curl -fsSL https://get.sextant.example | sh
0153045607590

Start here

Three short paths. Each ends with a job you can watch run.

Popular guides

What people read after the quickstart.

One job, four ways to create it

The SDKs are thin wrappers over the REST API, so what you learn in one carries to the others. Your language choice is remembered across every example in these docs.

  • Typed clients for Node, Python and Go, generated from the same API description.
  • Idempotency keys on every create, so a retried request never makes a second job.
  • Every code sample in the API reference is generated from src/data/api.json.
NodeTypeScript
import { Sextant } from '@sextant/node';

const sextant = new Sextant({ token: process.env.SEXTANT_TOKEN });

await sextant.jobs.create({
  queue: 'emails',
  handler: 'send-receipt',
  payload: { orderId: 'ord_4412' },
  runAt: '2026-10-20T09:15:00Z',
});
PythonPython
import os
from sextant import Sextant

client = Sextant(token=os.environ["SEXTANT_TOKEN"])

client.jobs.create(
    queue="emails",
    handler="send-receipt",
    payload={"order_id": "ord_4412"},
    run_at="2026-10-20T09:15:00Z",
)
GoGo
client := sextant.NewClient(os.Getenv("SEXTANT_TOKEN"))

_, err := client.Jobs.Create(ctx, &sextant.JobCreateParams{
	Queue:   "emails",
	Handler: "send-receipt",
	Payload: map[string]any{"order_id": "ord_4412"},
	RunAt:   "2026-10-20T09:15:00Z",
})
cURLShell
curl -X POST https://api.sextant.example/v2/jobs \
  -H "Authorization: Bearer $SEXTANT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"queue":"emails","handler":"send-receipt","payload":{"order_id":"ord_4412"}}'

What is new

Latest releases. Full changelog