---
title: "Create a job"
method: POST
path: "/v1/jobs"
tags: ["Jobs"]
---

# Create a job

`POST /v1/jobs`

Schedule a recurring (cron) or event-driven task.

## Request body

- JobCreate
  - `artifact_id` string, required
  - `title` string
  - `description` string
  - `action` 'email' | 'webhook' | 'slack' | 'discord' | 'http_get' | 'materialize' | 'telegram' | 'enrich_snapshot' | 'query_snapshot' | 'sheets_append', required
  - `trigger_type` 'cron' | 'event'
  - `schedule` string — Required for cron jobs.
  - `event_type` 'artifact.updated' | 'artifact.viewed' | 'comment.added' | 'email.received' — Required for event jobs.
  - `config` object, required — Action-specific configuration.
  - `retry_config` object
    - `maxAttempts` integer
    - `backoffType` 'fixed' | 'linear' | 'exponential'
    - `initialDelay` integer

## Response `200`

Created

- Job
  - `id` string
  - `artifact_id` string
  - `title` string
  - `description` string
  - `action` 'email' | 'webhook' | 'slack' | 'discord' | 'http_get' | 'materialize' | 'telegram' | 'enrich_snapshot' | 'query_snapshot' | 'sheets_append'
  - `trigger_type` 'cron' | 'event'
  - `schedule` string — Cron expression (cron jobs only).
  - `event_type` 'artifact.updated' | 'artifact.viewed' | 'comment.added' | 'email.received'
  - `config` object
  - `enabled` boolean
  - `next_run_at` integer
  - `last_run_at` integer
  - `last_status` string
  - `created_at` integer

## Other responses

- `400` — Invalid request

---

[API](https://skmtc.net/shareout/apis/shareout-rest-api.md) · [All operations](https://skmtc.net/shareout/apis/shareout-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/shareout/shareout-rest-api/revisions/804359ead65a/schema)
