Overview
Scheduler API is an API for managing Fess scheduled jobs. You can start/stop crawl jobs, and create/update/delete schedule configurations.
Base URL
Endpoint List
| Method | Path | Description |
|---|---|---|
| GET | /settings | List scheduled jobs |
| GET | /setting/{id} | Get scheduled job |
| POST | /setting | Create scheduled job |
| PUT | /setting | Update scheduled job |
| DELETE | /setting/{id} | Delete scheduled job |
| PUT | /{id}/start | Start job |
| PUT | /{id}/stop | Stop job |
List Scheduled Jobs
Request
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
size | Integer | No | Number of items per page (default: 25; configurable via paging.page.size in fess_config.properties) |
page | Integer | No | Page number (1-based; default: 1) |
Response
Note
The response object always includes version (product version) and status (result code). See Admin API Overview for the common response format. Later examples may omit version for brevity.
Note
In responses, jobLogging / crawler / available are returned as strings ("true" / "false"). running is a boolean, response-only field indicating whether the job is currently running (it cannot be set in requests). total is the total number of jobs matching the query.
Get Scheduled Job
Request
Response
Create Scheduled Job
Request
Request Body
Field Description
| Field | Required | Description |
|---|---|---|
name | Yes | Job name (max 100 characters) |
target | Yes | Execution target (max 100 characters). Specify all or a specific target name |
cronExpression | No | Cron expression (second minute hour day month day-of-week). Max 100 characters, validated as a cron expression. If empty, the job is not scheduled and can only be started manually |
scriptType | Yes | Script type (max 100 characters). Currently only groovy is supported |
scriptData | No | Execution script. The maximum size follows form.admin.max.input.size in fess_config.properties |
jobLogging | No | Enable job logging (string) |
crawler | No | Whether this is a crawler job (string) |
available | No | Enabled/disabled (string) |
sortOrder | Yes | Display order (integer between 0 and 2147483647) |
Note
jobLogging / crawler / available are string fields. In requests, specifying "on" or "true" (case-insensitive) enables them; any other value ("false", empty string, or unset) is treated as disabled. In responses they are returned as "true" / "false".
Note
crudMode is set automatically on the server side and does not need to be specified in requests. Audit fields such as createdBy / createdTime are also set on the server side.
Response
Cron Expression Examples
| Cron Expression | Description |
|---|---|
0 0 2 * * ? | Execute daily at 2 AM |
0 0 0/6 * * ? | Execute every 6 hours |
0 0 2 * * MON | Execute every Monday at 2 AM |
0 0 2 1 * ? | Execute on the 1st of every month at 2 AM |
Update Scheduled Job
Request
Request Body
Note
For updates, id (max 1000 characters) and versionNo are required. versionNo is used for optimistic locking; specify the value returned in the get response. If the value does not match, the update fails. Other required fields (name / target / scriptType / sortOrder) are the same as for creation.
Response
Delete Scheduled Job
Request
Response
Start Job
Execute a scheduled job immediately.
Request
Response
Response Fields
| Field | Description |
|---|---|
jobLogId | Job log ID of the started job. Issued when job logging is enabled. If job logging is disabled, it becomes null. |
Notes
If the job is already running, the start fails and an error is returned (
statusother than0).If the job is disabled (
availableis not enabled), the start likewise fails with an error.jobLogIdis issued only when job logging is enabled (jobLoggingis enabled).
Stop Job
Stop a running job.
Request
Response
Usage Examples
Create and Run a Crawl Job
Check Job Status
Reference
Admin API Overview - Admin API Overview
JobLog API - Job Log API
Scheduler - Scheduler Management Guide