Skip to main content

Documentation Index

Fetch the complete documentation index at: https://alphabet-06152314.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

The scheduler jobs API lets you define, configure, and control background jobs. You can create jobs that run on a cron expression, at a fixed interval, or once at a specific time. All endpoints in this group require authentication.

Create a job

POST /api/v1/scheduler/jobs
Creates and schedules a new job. The job type determines the kind of work performed; the schedule type determines when it runs.

Request body

name
string
required
A unique display name for the job.
description
string
Optional human-readable description of the job’s purpose.
jobType
string
required
The kind of work the job performs. One of: HttpCall, StoredProcedure, CodeExecution, FileOperation.
scheduleType
string
required
When the job should run. One of: Cron, Interval, OneTime.
scheduleExpression
string
A cron expression (e.g. 0 9 * * 1-5). Required when scheduleType is Cron.
intervalSeconds
integer
Repeat interval in seconds. Required when scheduleType is Interval.
runAt
datetime
ISO 8601 timestamp for a one-time run. Required when scheduleType is OneTime.
jobConfiguration
object
Job-type-specific settings (e.g. URL and headers for HttpCall, procedure name and parameters for StoredProcedure).
retryPolicy
object
Controls automatic retries on failure.
timeoutSeconds
integer
Maximum time in seconds the job is allowed to run before being cancelled.
timezone
string
IANA timezone name (e.g. America/New_York). Applies to cron schedule evaluation. Defaults to UTC.
isEnabled
boolean
Whether the job should be active immediately after creation. Defaults to true.
tags
string[]
Free-form labels for filtering and grouping (e.g. ["billing", "nightly"]).
createdBy
string
Identifier of the user or service creating the job. Used for audit purposes.

Response

201 Created — returns the created JobDto.
id
guid
Unique identifier for the job.
name
string
Display name of the job.
jobType
string
The job type: HttpCall, StoredProcedure, CodeExecution, or FileOperation.
scheduleType
string
The schedule type: Cron, Interval, or OneTime.
status
string
Current job status (e.g. Enabled, Paused, Disabled).
nextRunAt
datetime
Timestamp of the next scheduled execution.
createdAt
datetime
Timestamp when the job was created.
400 Bad Request — returns ProblemDetails when validation fails or the job could not be created.

Example — create an HTTP call job on a cron schedule

{
  "name": "Sync inventory feed",
  "description": "Calls the upstream inventory API every weekday morning.",
  "jobType": "HttpCall",
  "scheduleType": "Cron",
  "scheduleExpression": "0 7 * * 1-5",
  "intervalSeconds": null,
  "runAt": null,
  "jobConfiguration": {
    "url": "https://your-service.example.com/api/sync",
    "method": "POST",
    "headers": { "X-Api-Key": "abc123" },
    "body": null
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "delaySeconds": 30
  },
  "timeoutSeconds": 120,
  "timezone": "America/New_York",
  "isEnabled": true,
  "tags": ["inventory", "weekday"],
  "createdBy": "ops-team"
}

List jobs

GET /api/v1/scheduler/jobs
Returns a paged list of jobs. You can filter, search, and sort results using query parameters.

Query parameters

pageNumber
integer
Page number to retrieve (1-based). Defaults to 1.
pageSize
integer
Number of jobs per page. Defaults to 20.
jobType
string
Filter by job type: HttpCall, StoredProcedure, CodeExecution, or FileOperation.
status
string
Filter by job status (e.g. Enabled, Paused).
tag
string
Filter by a single tag label.
Full-text search against job name and description.
sortBy
string
Field to sort by (e.g. name, createdAt, nextRunAt).
sortDirection
string
Sort direction: asc or desc.

Response

200 OK — returns PagedResponseDto<JobDto> containing the matching jobs and pagination metadata.

Get a job

GET /api/v1/scheduler/jobs/{jobId}
Returns the full definition and current state of a single job, including its schedule, retry policy, and configuration.

Path parameters

jobId
guid
required
The unique identifier of the job.

Response

200 OK — returns a JobDto with full schedule, retry policy, and configuration detail. 404 Not Found — returns ProblemDetails when no job with that ID exists.

Update a job

PUT /api/v1/scheduler/jobs/{jobId}
Replaces a job’s definition. Accepts the same fields as the create endpoint. If the schedule or isEnabled state changes, the underlying Hangfire registration is updated atomically.

Path parameters

jobId
guid
required
The unique identifier of the job to update.

Request body

Same fields as create a job. All fields are optional in the update body; omitted fields retain their current values.

Response

200 OK — returns the updated JobDto. 400 Bad Request — returns ProblemDetails when validation fails or the update could not be applied.

Delete a job

DELETE /api/v1/scheduler/jobs/{jobId}?hardDelete=false
Removes a job from the scheduler. By default this is a soft delete — the record is marked inactive and execution history is preserved. Set hardDelete=true to permanently remove the record.
A hard delete cannot be undone. All associated execution history is lost.

Path parameters

jobId
guid
required
The unique identifier of the job to delete.

Query parameters

hardDelete
boolean
Set to true to permanently delete the job record. Defaults to false.

Response

204 No Content — the job was deleted successfully. 400 Bad Request — returns ProblemDetails when the delete could not be completed.

Reschedule a job

PATCH /api/v1/scheduler/jobs/{jobId}/reschedule
Changes the schedule timing for an existing job without modifying any other configuration. The new schedule is applied immediately in Hangfire.

Path parameters

jobId
guid
required
The unique identifier of the job to reschedule.

Request body

scheduleType
string
required
New schedule type: Cron, Interval, or OneTime.
scheduleExpression
string
Cron expression. Required when scheduleType is Cron.
intervalSeconds
integer
Interval in seconds. Required when scheduleType is Interval.
runAt
datetime
Target timestamp. Required when scheduleType is OneTime.
effectiveFrom
datetime
Optional. Timestamp from which the new schedule takes effect. Defaults to immediately.

Response

200 OK — returns the updated JobDto. 400 Bad Request — returns ProblemDetails if the reschedule could not be applied.

Pause a job

POST /api/v1/scheduler/jobs/{jobId}/pause
Stops future scheduled runs for the job without removing its definition or execution history. You can resume the job at any time.

Path parameters

jobId
guid
required
The unique identifier of the job to pause.

Response

200 OK — the job was paused successfully. 400 Bad Request — returns ProblemDetails if the pause could not be applied (e.g. job is already paused or does not exist).

Resume a job

POST /api/v1/scheduler/jobs/{jobId}/resume
Restores a paused job and re-registers its schedule in Hangfire so future runs proceed as configured.

Path parameters

jobId
guid
required
The unique identifier of the job to resume.

Response

200 OK — the job was resumed successfully. 400 Bad Request — returns ProblemDetails if the resume could not be applied.

Trigger a job immediately

POST /api/v1/scheduler/jobs/{jobId}/trigger
Queues the job for immediate execution regardless of its schedule. The response contains an execution ID you can use to track the run via the executions endpoints.

Path parameters

jobId
guid
required
The unique identifier of the job to trigger.

Response

202 Accepted — returns the new execution ID (guid) in the response body. The Location header points to /api/v1/scheduler/executions/{executionId}. 400 Bad Request — returns ProblemDetails if the job could not be queued.

Add exclusion rules

POST /api/v1/scheduler/jobs/{jobId}/exclusions
Defines dates, days of the week, or time windows during which the job must not run. Exclusions are applied on top of the existing schedule.

Path parameters

jobId
guid
required
The unique identifier of the job.

Request body

excludedDates
string[]
Specific calendar dates to skip, in YYYY-MM-DD format (e.g. ["2025-12-25", "2026-01-01"]).
excludedDaysOfWeek
string[]
Days of the week to skip (e.g. ["Saturday", "Sunday"]).
timeRange
object
A time window during which the job must not start.

Response

200 OK — exclusions were saved successfully. 400 Bad Request — returns ProblemDetails if the exclusions could not be applied.

Add dependency rules

POST /api/v1/scheduler/jobs/{jobId}/dependencies
Declares prerequisite jobs that must complete before this job can execute. The condition field controls how the prerequisite outcomes are evaluated.

Path parameters

jobId
guid
required
The unique identifier of the dependent job.

Request body

dependsOnJobIds
guid[]
required
IDs of the jobs that must run first.
condition
string
required
How prerequisite outcomes are evaluated. One of: AllSucceeded, AnySucceeded.

Response

200 OK — dependencies were saved successfully. 400 Bad Request — returns ProblemDetails if the dependencies could not be applied.
To create a full multi-step workflow with branching dependency rules, use the POST /api/v1/scheduler/workflows endpoint instead.