Skip to main content

Core CRUD

Basic job creation, retrieval, update, deletion, and execution operations.

A job's type is a job-driver id (see Drivers & Templates). smart-job is the general-purpose type used by the "New Job" template; the others are mostly system jobs.

GET /api/jobs

Search and filter jobs with pagination.

Authentication: Required

Permissions: Returns jobs owned by or shared with the caller

Query Parameters:

ParameterTypeDefaultDescription
qstring-Full-text search (name, description)
sortstringnameSort field (prefix - for descending)
limitinteger30Results per page
startinteger0Pagination offset

Response:

A paginated HAL collection under _embedded["inf:job"]. The two Auto Cleanup jobs are permanent system jobs created automatically.

Search and page through jobsGET /api/jobs?sort=name&limit=10
A paginated HAL collection under _embedded["inf:job"]. The two Auto Cleanup jobs are permanent system jobs created automatically. q matches name and description.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/jobs?sort=name&limit=10&start=0"
}
},
"start": 0,
"count": 3,
"total": 3,
"_embedded": {
"inf:job": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/jobs/admin%3Aauto-snapshot-cleanup"
},
"inf:job-action-order": {
"href": "https://informer.example.com/api/jobs/admin%3Aauto-snapshot-cleanup/_job-action-order"
}
},
"naturalId": "admin:auto-snapshot-cleanup",
"permissions": {
"assignTags": true,
"write": true,
"edit": true,
"run": true,
"delete": false,
"changeOwner": true,
"rename": true
},
"id": "00000000-0000-4000-8000-000000000001",
"type": "dataset-snapshot-cleanup",
"tenant": "acme",
"slug": "auto-snapshot-cleanup",
"name": "Auto Snapshot Cleanup",
"description": "Permanent Job to automatically delete expired Snapshots in the system and also delete their data on your assigned Search Cluster. This Job cannot be deleted.",
"nextRunAt": "2026-01-15T16:20:00.000Z",
"lockedAt": null,
"enabled": true,
"data": {},
"interval": "59 23 */1 * *",
"startOn": "2026-01-15T16:20:00.000Z",
"intervalType": "Daily",
"endOn": null,
"notes": "This is a permanent Job for automatically deleting expired Snapshots in the system and also deleting their data on your assigned Search Cluster. This Job cannot be deleted, so it will always exist and will automatically be created if it does not. By default it will run daily at 11:59pm in the default timezone configured on the server. This Job only checks your assigned Search Cluster.",
"source": "i5",
"sourceId": null,
"timezone": "America/New_York",
"heartbeat": null,
"chatId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"ownerId": "admin",
"folderId": null,
"datasetId": null,
"reportId": null,
"queryId": null,
"datasourceId": null,
"editingId": null
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/jobs/admin%3Aauto-system-cleanup"
},
"inf:job-action-order": {
"href": "https://informer.example.com/api/jobs/admin%3Aauto-system-cleanup/_job-action-order"
}
},
"naturalId": "admin:auto-system-cleanup",
"permissions": {
"assignTags": true,
"write": true,
"edit": true,
"run": true,
"delete": false,
"changeOwner": true,
"rename": true
},
"id": "00000000-0000-4000-8000-000000000002",
"type": "dataset-vacuum",
"tenant": "acme",
"slug": "auto-system-cleanup",
"name": "Auto System Cleanup",
"description": "Permanent Job to automatically delete indexed data on your assigned Search Cluster from orphaned and expired Datasets or Queries. This Job cannot be deleted.",
"nextRunAt": "2026-01-15T16:20:00.000Z",
"lockedAt": null,
"enabled": true,
"data": {},
"interval": "59 23 */1 * *",
"startOn": "2026-01-15T16:20:00.000Z",
"intervalType": "Daily",
"endOn": null,
"notes": "This is a permanent Job for automatically deleting indexed data on your assigned Search Cluster from orphaned and expired Datasets or Queries. This Job cannot be deleted, so it will always exist and will automatically be created if it does not. By default it will run daily at 11:59pm in the default timezone configured on the server. This Job only checks your assigned Search Cluster.",
"source": "i5",
"sourceId": null,
"timezone": "America/New_York",
"heartbeat": null,
"chatId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"ownerId": "admin",
"folderId": null,
"datasetId": null,
"reportId": null,
"queryId": null,
"datasourceId": null,
"editingId": null
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report"
},
"inf:job-action-order": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report/_job-action-order"
}
},
"naturalId": "admin:daily-sales-report",
"permissions": {
"assignTags": true,
"write": true,
"edit": true,
"run": true,
"delete": true,
"changeOwner": true,
"rename": true
},
"id": "00000000-0000-4000-8000-000000000003",
"type": "smart-job",
"tenant": "acme",
"slug": "daily-sales-report",
"name": "Daily Sales Report",
"description": null,
"nextRunAt": null,
"lockedAt": null,
"enabled": false,
"data": {},
"interval": null,
"startOn": "2026-01-15T16:20:00.000Z",
"intervalType": null,
"endOn": null,
"notes": null,
"source": null,
"sourceId": null,
"timezone": "America/New_York",
"heartbeat": null,
"chatId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"ownerId": "admin",
"folderId": null,
"datasetId": null,
"reportId": null,
"queryId": null,
"datasourceId": null,
"editingId": null
}
]
}
}
Captured from the API examples test suite; ids and timestamps are normalized.

GET /api/jobs-list

Get a lightweight flat list of readable jobs.

Authentication: Required

Response:

A flat array with each job's last-run status, schedule, tags, sharing, and permissions.

List jobsGET /api/jobs-list
A flat array of readable jobs with per-job last-run status, tags, sharing, and permissions.
Response · 200
[
{
"tenant": "acme",
"id": "00000000-0000-4000-8000-000000000001",
"slug": "auto-snapshot-cleanup",
"name": "Auto Snapshot Cleanup",
"description": "Permanent Job to automatically delete expired Snapshots in the system and also delete their data on your assigned Search Cluster. This Job cannot be deleted.",
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"nextRunAt": "2026-01-15T16:20:00.000Z",
"folderId": null,
"lockedAt": null,
"enabled": true,
"type": "drivers:job.snapshot_cleanup.name",
"ownerId": "admin",
"interval": "59 23 */1 * *",
"intervalType": "Daily",
"timezone": "America/New_York",
"heartbeat": null,
"username": "admin",
"datasetId": null,
"datasourceId": null,
"queryId": null,
"reportId": null,
"lastJobHistoryId": null,
"success": null,
"duration": null,
"runBy": null,
"finishedAt": null,
"progress": null,
"warnings": null,
"jobsEnabled": true,
"favorite": false,
"naturalId": "admin:auto-snapshot-cleanup",
"permissions": {
"assignTags": true,
"write": true,
"edit": true,
"run": true,
"delete": false,
"changeOwner": true,
"rename": true
},
"ownerName": "acme Administrator",
"driver": "dataset-snapshot-cleanup",
"itemName": null,
"lastRunStatus": "never",
"nextRunStatus": "scheduled",
"tags": []
},
{
"tenant": "acme",
"id": "00000000-0000-4000-8000-000000000002",
"slug": "auto-system-cleanup",
"name": "Auto System Cleanup",
"description": "Permanent Job to automatically delete indexed data on your assigned Search Cluster from orphaned and expired Datasets or Queries. This Job cannot be deleted.",
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"nextRunAt": "2026-01-15T16:20:00.000Z",
"folderId": null,
"lockedAt": null,
"enabled": true,
"type": "drivers:job.dataset_vacuum.name",
"ownerId": "admin",
"interval": "59 23 */1 * *",
"intervalType": "Daily",
"timezone": "America/New_York",
"heartbeat": null,
"username": "admin",
"datasetId": null,
"datasourceId": null,
"queryId": null,
"reportId": null,
"lastJobHistoryId": null,
"success": null,
"duration": null,
"runBy": null,
"finishedAt": null,
"progress": null,
"warnings": null,
"jobsEnabled": true,
"favorite": false,
"naturalId": "admin:auto-system-cleanup",
"permissions": {
"assignTags": true,
"write": true,
"edit": true,
"run": true,
"delete": false,
"changeOwner": true,
"rename": true
},
"ownerName": "acme Administrator",
"driver": "dataset-vacuum",
"itemName": null,
"lastRunStatus": "never",
"nextRunStatus": "scheduled",
"tags": []
},
{
"tenant": "acme",
"id": "00000000-0000-4000-8000-000000000003",
"slug": "daily-sales-report",
"name": "Daily Sales Report",
"description": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"nextRunAt": null,
"folderId": null,
"lockedAt": null,
"enabled": false,
"type": "drivers:job.smart_job.name",
"ownerId": "admin",
"interval": null,
"intervalType": null,
"timezone": "America/New_York",
"heartbeat": null,
"username": "admin",
"datasetId": null,
"datasourceId": null,
"queryId": null,
"reportId": null,
"lastJobHistoryId": null,
"success": null,
"duration": null,
"runBy": null,
"finishedAt": null,
"progress": null,
"warnings": null,
"jobsEnabled": true,
"favorite": false,
"naturalId": "admin:daily-sales-report",
"permissions": {
"assignTags": true,
"write": true,
"edit": true,
"run": true,
"delete": true,
"changeOwner": true,
"rename": true
},
"ownerName": "acme Administrator",
"driver": "smart-job",
"itemName": null,
"lastRunStatus": "never",
"nextRunStatus": "disabled",
"tags": []
},
"… 2 more items (5 total) — omitted from docs"
]
Captured from the API examples test suite; ids and timestamps are normalized.

GET /api/jobs/{id}

Get a single job.

Authentication: Required

Path Parameters:

ParameterTypeDescription
idstringJob id or {ownerId}:{slug} natural id

Response:

The job with HAL links to its history, actions, datasets, driver, owner, and favorite.

Get a single jobGET /api/jobs/admin:daily-sales-report
The job with HAL links to its history, actions, datasets, driver, owner, and favorite.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report"
},
"inf:job-action-order": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report/_job-action-order"
},
"inf:comments": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report/comments"
},
"inf:job-history": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report/history"
},
"inf:job-driver": {
"href": "https://informer.example.com/api/job-drivers/smart-job"
},
"inf:job-datasets": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report/datasets"
},
"inf:job-actions": {
"href": "https://informer.example.com/api/jobs/00000000-0000-4000-8000-000000000001/actions"
},
"inf:owner": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report/owner"
},
"inf:favorite": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report/favorite"
}
},
"naturalId": "admin:daily-sales-report",
"permissions": {
"assignTags": true,
"write": true,
"edit": true,
"run": true,
"delete": true,
"changeOwner": true,
"rename": true
},
"id": "00000000-0000-4000-8000-000000000001",
"type": "smart-job",
"tenant": "acme",
"slug": "daily-sales-report",
"name": "Daily Sales Report",
"description": null,
"nextRunAt": null,
"lockedAt": null,
"enabled": false,
"data": {},
"interval": null,
"startOn": "2026-01-15T16:20:00.000Z",
"intervalType": null,
"endOn": null,
"notes": null,
"source": null,
"sourceId": null,
"timezone": "America/New_York",
"heartbeat": null,
"chatId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"ownerId": "admin",
"folderId": null,
"datasetId": null,
"reportId": null,
"queryId": null,
"datasourceId": null,
"editingId": null,
"dataset": null,
"datasource": null,
"query": null,
"report": null,
"editing": null
}
Captured from the API examples test suite; ids and timestamps are normalized.

POST /api/jobs

Create a new job.

Authentication: Required

Permissions: Requires permission.jobs.create

Request Body:

FieldTypeRequiredDescription
namestringNoJob name
typestringYesJob-driver id (e.g. smart-job)
dataobjectNoDriver-specific configuration
enabledbooleanNoEnable immediately
datasetsobjectNoDataset associations (keys are aliases; values are a dataset/query id or { datasetId, snapshots })

Example:

{ "name": "Daily Sales Report", "type": "smart-job", "enabled": false }

Response:

Responds 201 Created with the job and a Location header.

Create a jobPOST /api/jobs
type is a job-driver id (smart-job is the general-purpose type; see the drivers list). datasets is optional; values are a dataset/query id or an object with snapshot settings. Responds 201 with a Location header.
Request body
{
"name": "Daily Sales Report",
"type": "smart-job",
"enabled": false
}
Response · 201
{
"_links": {
"self": {
"href": "https://informer.example.com/api/jobs/00000000-0000-4000-8000-000000000001"
},
"inf:job-action-order": {
"href": "https://informer.example.com/api/jobs/00000000-0000-4000-8000-000000000001/_job-action-order"
}
},
"naturalId": "admin:daily-sales-report",
"permissions": {
"assignTags": true,
"write": true,
"edit": true,
"run": true,
"delete": true,
"changeOwner": true,
"rename": true
},
"id": "00000000-0000-4000-8000-000000000001",
"type": "smart-job",
"tenant": "acme",
"slug": "daily-sales-report",
"name": "Daily Sales Report",
"description": null,
"nextRunAt": null,
"lockedAt": null,
"enabled": false,
"data": {},
"interval": null,
"startOn": "2026-01-15T16:20:00.000Z",
"intervalType": null,
"endOn": null,
"notes": null,
"source": null,
"sourceId": null,
"timezone": "America/New_York",
"heartbeat": null,
"chatId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"ownerId": "admin",
"folderId": null,
"datasetId": null,
"reportId": null,
"queryId": null,
"datasourceId": null,
"editingId": null,
"actions": []
}
Captured from the API examples test suite; ids and timestamps are normalized.

PUT /api/jobs/{id}

Update a job's configuration and schedule.

Authentication: Required

Permissions: Requires job:edit

Path Parameters:

ParameterTypeDescription
idstringJob id or natural id

Request Body:

FieldTypeDescription
intervalstringCron expression or simple interval
intervalTypestringe.g. cron, Daily
startOn / endOndateSchedule window
enabledbooleanEnable/disable
name / description / notesstringMetadata
timezonestringTimezone
dataobjectDriver-specific data
folderIdstringContaining folder

Example:

{ "interval": "0 8 * * *", "intervalType": "cron", "enabled": true }

Response:

Responds 200 with the updated job (the server recomputes nextRunAt).

Update a jobPUT /api/jobs/admin:daily-sales-report
Set the schedule (interval + intervalType), enable/disable, and metadata. The server recomputes nextRunAt.
Request body
{
"description": "Send the daily sales summary",
"interval": "0 8 * * *",
"intervalType": "cron"
}
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report"
},
"inf:job-action-order": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report/_job-action-order"
}
},
"naturalId": "admin:daily-sales-report",
"permissions": {
"assignTags": true,
"write": true,
"edit": true,
"run": true,
"delete": true,
"changeOwner": true,
"rename": true
},
"id": "00000000-0000-4000-8000-000000000001",
"type": "smart-job",
"tenant": "acme",
"slug": "daily-sales-report",
"name": "Daily Sales Report",
"description": "Send the daily sales summary",
"nextRunAt": "2026-01-15T16:20:00.000Z",
"lockedAt": null,
"enabled": false,
"data": {},
"interval": "0 8 * * *",
"startOn": "2026-01-15T16:20:00.000Z",
"intervalType": "cron",
"endOn": null,
"notes": null,
"source": null,
"sourceId": null,
"timezone": "America/New_York",
"heartbeat": null,
"chatId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"ownerId": "admin",
"folderId": null,
"datasetId": null,
"reportId": null,
"queryId": null,
"datasourceId": null,
"editingId": null,
"actions": []
}
Captured from the API examples test suite; ids and timestamps are normalized.

DELETE /api/jobs/{id}

Delete a job.

Authentication: Required

Permissions: Requires job:delete (strict: owner only). Permanent system jobs cannot be deleted.

Path Parameters:

ParameterTypeDescription
idstringJob id or natural id

Response:

Responds 200 with an empty body.

Delete a jobDELETE /api/jobs/00000000-0000-4000-8000-000000000001
Owner-only (deleteStrict). Responds 200 with an empty body.
Response · 200 · no body
Captured from the API examples test suite; ids and timestamps are normalized.

POST /api/jobs/{id}

Run a job immediately (manual trigger).

Authentication: Required

Permissions: Requires job:run

Path Parameters:

ParameterTypeDescription
idstringJob id or natural id

Response:

Responds 200 with the run-history record: duration is a [start, stop] pair and progress lists each step.

Run a job nowPOST /api/jobs/admin:daily-sales-report
Triggers an immediate run and responds with the run-history record (duration is a [start, stop] pair; progress lists each step). The socket timeout is disabled for runs.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report"
}
},
"id": "00000000-0000-4000-8000-000000000001",
"tenant": "acme",
"jobId": "00000000-0000-4000-8000-000000000002",
"data": {},
"ownerId": "admin",
"duration": [
"2026-01-15T16:20:00.000Z",
"2026-01-15T16:20:00.000Z"
],
"progress": [
{
"task": {
"key": "job:progress.invoking_job"
},
"result": {
"key": "job:status.running",
"success": null
}
}
],
"updatedAt": "2026-01-15T16:20:00.000Z",
"createdAt": "2026-01-15T16:20:00.000Z",
"warnings": false,
"success": true,
"_altid": null
}
Captured from the API examples test suite; ids and timestamps are normalized.
Long-running

This may take minutes or hours depending on the job. The socket timeout is disabled for runs.


POST /api/jobs/{id}/_edit

Create a draft copy of a job for safe editing.

Authentication: Required

Path Parameters:

ParameterTypeDescription
idstringJob id or natural id

Response:

Responds 200 with the draft (the caller's existing draft is returned if one exists). The draft links to inf:commit and carries editingId pointing at the original.

Create a draft for editingPOST /api/jobs/admin:daily-sales-report/_edit
Creates (or returns the caller’s existing) draft copy for safe editing, linked to the original via editingId. Responds 200 with the draft and an inf:commit link.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report/_edit"
},
"inf:job-action-order": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report/_edit/_job-action-order"
},
"inf:commit": {
"href": "https://informer.example.com/api/jobs/00000000-0000-4000-8000-000000000001/_commit"
}
},
"naturalId": "admin:daily-sales-report-1",
"permissions": {
"assignTags": true,
"write": true,
"edit": true,
"run": true,
"delete": true,
"changeOwner": true,
"rename": true
},
"id": "00000000-0000-4000-8000-000000000001",
"type": "smart-job",
"tenant": "acme",
"name": "Daily Sales Report",
"description": "Send the daily sales summary",
"nextRunAt": "2026-01-15T16:20:00.000Z",
"enabled": false,
"data": {},
"interval": "0 8 * * *",
"startOn": "2026-01-15T16:20:00.000Z",
"intervalType": "cron",
"endOn": null,
"notes": null,
"source": null,
"sourceId": null,
"timezone": "America/New_York",
"chatId": null,
"ownerId": "admin",
"folderId": null,
"datasetId": null,
"reportId": null,
"queryId": null,
"datasourceId": null,
"editingId": "00000000-0000-4000-8000-000000000002",
"updatedAt": "2026-01-15T16:20:00.000Z",
"createdAt": "2026-01-15T16:20:00.000Z",
"slug": "daily-sales-report-1",
"lockedAt": null,
"_altid": null,
"heartbeat": null
}
Captured from the API examples test suite; ids and timestamps are normalized.

POST /api/jobs/{id}/_commit

Commit a draft back onto the original job. Call this with the draft's id.

Authentication: Required

Path Parameters:

ParameterTypeDescription
idstringDraft job id

Response:

Responds 200 with the committed job.

Commit a draftPOST /api/jobs/00000000-0000-4000-8000-000000000001/_commit
Applies the draft back onto the original job. Responds 200 with the committed job.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasets/admin%3Adaily-sales-report"
},
"inf:job-action-order": {
"href": "https://informer.example.com/api/datasets/admin%3Adaily-sales-report/_job-action-order"
}
},
"naturalId": "admin:daily-sales-report",
"permissions": {
"assignTags": true,
"write": true,
"edit": true,
"run": true,
"delete": true,
"changeOwner": true,
"rename": true
},
"id": "00000000-0000-4000-8000-000000000002",
"type": "smart-job",
"tenant": "acme",
"slug": "daily-sales-report",
"name": "Daily Sales Report",
"description": "Send the daily sales summary",
"nextRunAt": "2026-01-15T16:20:00.000Z",
"lockedAt": null,
"enabled": false,
"data": {},
"interval": "0 8 * * *",
"startOn": "2026-01-15T16:20:00.000Z",
"intervalType": "cron",
"endOn": null,
"notes": null,
"source": null,
"sourceId": null,
"timezone": "America/New_York",
"heartbeat": null,
"chatId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"ownerId": "admin",
"folderId": null,
"datasetId": null,
"reportId": null,
"queryId": null,
"datasourceId": null,
"editingId": null,
"datasets": [],
"actions": []
}
Captured from the API examples test suite; ids and timestamps are normalized.

GET /api/jobs/{id}/owner

Get the current owner of a job.

Authentication: Required

Response:

The owning principal (user or team), with the user or team embedded.

Get a job’s ownerGET /api/jobs/admin:daily-sales-report/owner
The owning principal (user or team), with the user or team embedded.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report/owner"
}
},
"id": "admin",
"userId": "admin",
"teamId": null,
"tenant": "acme",
"_embedded": {
"inf:user": {
"_links": {
"self": {
"href": "https://informer.example.com/api/users/admin"
},
"inf:memberships": {
"href": "https://informer.example.com/api/users/admin/memberships"
},
"inf:avatar-upload": {
"href": "https://informer.example.com/api/users/admin/_upload/{uploadId}/avatar-upload",
"templated": true
},
"inf:password": {
"href": "https://informer.example.com/api/users/admin/password"
},
"inf:feed": {
"href": "https://informer.example.com/api/users/admin/feed"
},
"inf:viewed-feed": {
"href": "https://informer.example.com/api/users/admin/_markFeedViewed"
},
"inf:superuser": {
"href": "https://informer.example.com/api/users/admin/superuser"
}
},
"permissions": {
"changeDomain": false,
"changeProfile": true,
"changePassword": true,
"delete": false,
"edit": true,
"reassign": true,
"superuser": true,
"enable": true,
"changeTheme": true,
"lock": true,
"setGlobalPermissions": true,
"manageLogin": true
},
"domain": "local",
"username": "admin",
"displayName": "acme Administrator",
"familyName": "Administrator",
"givenName": "acme",
"middleName": null,
"email": null,
"data": null,
"superuser": true,
"timezone": "America/New_York",
"settings": {
"log": {
"log": false,
"info": false,
"warn": false,
"debug": false,
"error": true,
"remote": false
}
},
"enabled": true,
"source": null,
"sourceId": null,
"lastViewedFeed": null,
"tenant": "acme",
"globalPermissions": {
"ai": false,
"jobCreation": true,
"viewAllTeams": true,
"viewAllUsers": true,
"painlessScriptCreation": true
},
"userFields": {},
"locked": false,
"lockedAt": null,
"loginAttempts": 0,
"passwordSetAt": "2026-01-15T16:20:00.000Z",
"passwordExpiresAt": "2026-01-15T16:20:00.000Z",
"forgotPasswordRequestTime": null,
"mfa": null,
"mfaConfig": {},
"aiMessage": null,
"aiConsent": false,
"hasSharedDatasources": false,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"initials": "NA",
"colorIndex": 4,
"avatarColor": {
"background": "#81C784",
"text": "#1B5E20"
},
"managesPassword": true
}
}
}
Captured from the API examples test suite; ids and timestamps are normalized.

PUT /api/jobs/{id}/owner

Change the owner of a job (and reassign its embedded datasets).

Authentication: Required

Permissions: Requires job:changeOwner

Request Body:

A principal lookup: { "userId": "<username>" } for a user or { "teamId": "<team-id>" } for a team.

{ "userId": "annie.larson" }

Response:

Responds 200 with the reassigned job and a Location header.

Reassign a job’s ownerPUT /api/jobs/admin:daily-sales-report/owner
Body is a principal lookup: { userId } for a user or { teamId } for a team (not ownerId). Reassigns the job and its embedded datasets. Responds 200 with a Location header.
Request body
{
"userId": "admin"
}
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/jobs/00000000-0000-4000-8000-000000000001"
},
"inf:job-action-order": {
"href": "https://informer.example.com/api/jobs/00000000-0000-4000-8000-000000000001/_job-action-order"
}
},
"naturalId": "admin:daily-sales-report",
"permissions": {
"assignTags": true,
"write": true,
"edit": true,
"run": true,
"delete": true,
"changeOwner": true,
"rename": true
},
"id": "00000000-0000-4000-8000-000000000001",
"type": "smart-job",
"tenant": "acme",
"slug": "daily-sales-report",
"name": "Daily Sales Report",
"description": "Send the daily sales summary",
"nextRunAt": "2026-01-15T16:20:00.000Z",
"lockedAt": null,
"enabled": false,
"data": {},
"interval": "0 8 * * *",
"startOn": "2026-01-15T16:20:00.000Z",
"intervalType": "cron",
"endOn": null,
"notes": null,
"source": null,
"sourceId": null,
"timezone": "America/New_York",
"heartbeat": null,
"chatId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"ownerId": "admin",
"folderId": null,
"datasetId": null,
"reportId": null,
"queryId": null,
"datasourceId": null,
"editingId": null,
"dataset": null,
"datasource": null,
"query": null,
"report": null,
"editing": null,
"datasets": [],
"actions": []
}
Captured from the API examples test suite; ids and timestamps are normalized.

GET /api/jobs/{id}/favorite

Check whether the caller has favorited a job.

Authentication: Required

Response:

Returns the favorite record (200) when favorited, or 404 when it is not.

Check whether a job is favoritedGET /api/jobs/admin:daily-sales-report/favorite
Returns the favorite record (200) when favorited, or 404 when it is not.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report/favorite"
}
},
"permissions": {},
"id": "00000000-0000-4000-8000-000000000001",
"principalId": "admin",
"reportId": null,
"datasetId": null,
"queryId": null,
"datasourceId": null,
"jobId": "00000000-0000-4000-8000-000000000002",
"assistantId": null,
"templateId": null,
"libraryId": null,
"appId": null,
"integrationId": null,
"toolkitId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"tenant": "acme"
}
Captured from the API examples test suite; ids and timestamps are normalized.

PUT /api/jobs/{id}/favorite

Add a job to the caller's favorites.

Authentication: Required

Response:

Responds 200 with the favorite record.

Favorite a jobPUT /api/jobs/admin:daily-sales-report/favorite
Adds the job to the caller’s favorites. Responds 200 with the favorite record.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/jobs/admin%3Adaily-sales-report/favorite"
}
},
"permissions": {},
"id": "00000000-0000-4000-8000-000000000001",
"tenant": "acme",
"jobId": "00000000-0000-4000-8000-000000000002",
"principalId": "admin",
"reportId": null,
"datasetId": null,
"queryId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"datasourceId": null,
"templateId": null,
"assistantId": null,
"libraryId": null,
"appId": null,
"integrationId": null,
"toolkitId": null
}
Captured from the API examples test suite; ids and timestamps are normalized.

DELETE /api/jobs/{id}/favorite

Remove a job from the caller's favorites.

Authentication: Required

Response:

Responds 200 with an empty body.

Unfavorite a jobDELETE /api/jobs/admin:daily-sales-report/favorite
Responds 200 with an empty body.
Response · 200 · no body
Captured from the API examples test suite; ids and timestamps are normalized.