---
title: "Search jobs"
method: GET
path: "/jobs"
tags: ["Jobs"]
---

# Search jobs

`GET /jobs`

Returns only jobs that user has permission to view. Results are sorted by last updated timestamp in descending order.

**Permissions**
- **Required:** `DATA_QUALITY` and `DATA_QUALITY_JOB_VIEW`
- **Global bypass:**
  - `DATA_QUALITY` and `VIEW_PERMISSIONS_VIEW_ALL`
  - `DATA_QUALITY` and `RESOURCE_MANAGE_ALL`

## Query parameters

- `jobName` string
- `edgeSiteName` string
- `edgeConnectionName` string
- `dataSourceName` string
- `schemaName` string
- `tableName` string
- `jobType` string — Execution mode for Data Quality job. Pullup jobs are available only when the Pullup preview feature is enabled. Allowed values: "PUSHDOWN", "PULLUP".
- `limit` integer
- `offset` integer

## Response `200`

Successfully retrieved jobs

- JobDefinitionPaginated — Paged list of jobs
  - `results` JobDefinition[]
    - `jobName` string — Job name. Allowed characters by default: letters, digits, `_`, `.`, `-`. **Configurable** via the server env variable `VALIDATION_PATTERN_JOB_NAME`. Default pattern: `^[a-zA-Z0-9_.-]+$`.
    - `jobType` string — Execution mode for Data Quality job. Pullup jobs are available only when the Pullup preview feature is enabled. Allowed values: "PUSHDOWN", "PULLUP".
    - `sourceQuery` string, nullable — Source SQL for the job. - If you want to limit the data slice by date/time, **do not hard-code literal dates** in the SQL. Always use the placeholders `${rd}` (start) and `${rdEnd}` (exclusive end), and pass the actual values via the `runDate` / `runDateEnd` fields of the request. Example pattern: `WHERE "trade_date" >= '${rd}' AND "trade_date" < '${rdEnd}'` - The engine will substitute `${rd}` / `${rdEnd}` based on your chosen `dateFormat` (DATE or TIMESTAMP). - Keep the placeholders inside single quotes in SQL (e.g. `'${rd}'`). - If you do not include a date predicate, the job will scan the full table (or whatever the query returns). - If omitted, the platform will generate a default(vendor compatible) `SELECT * FROM "<schema>"."<table>"`
    - `runDate` union — Start of the time slice used only when the `sourceQuery` contains the `${rd}` placeholder. The engine substitutes `${rd}` using `jobSettings.dateFormat`: - DATE → `yyyy-MM-dd` - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` If `sourceQuery` omits `${rd}`, this value does **not** restrict the data scan and only affects the **run’s date** (e.g., run metadata/labeling, scheduling context).
      - DateOnly — Calendar date, format yyyy-MM-dd.
        - `kind` string, required
        - `value` string, date, required
      - Rfc3339DateTime — RFC 3339 timestamp with timezone offset. The server normalizes all inputs to UTC and responses are returned in UTC (trailing 'Z'), seconds precision.
        - `kind` string, required
        - `value` string, date-time, required
    - `runDateEnd` union — **Exclusive end** of the time slice, used only when the `sourceQuery` contains the `${rdEnd}` placeholder. Must be **greater than** `runDate` when both are provided. Formatted per `jobSettings.dateFormat`: - DATE → `yyyy-MM-dd` - TIMESTAMP → RFC 3339 `yyyy-MM-dd'T'HH:mm:ss'Z'` If `sourceQuery` omits `${rdEnd}`, this value does **not** restrict the data scan and is ignored for run timing.
      - DateOnly — Calendar date, format yyyy-MM-dd.
        - `kind` string, required
        - `value` string, date, required
      - Rfc3339DateTime — RFC 3339 timestamp with timezone offset. The server normalizes all inputs to UTC and responses are returned in UTC (trailing 'Z'), seconds precision.
        - `kind` string, required
        - `value` string, date-time, required
    - `dataLocation` DataLocation — Identifies where the job reads data from. Combines the platform connection and the specific catalog/schema/table location inside that connection.
      - `edgeSiteName` string, required — Edge site name
      - `edgeConnectionName` string, required — Edge connection name
      - `dataSourceName` string, required — Data source (database/catalog) name
      - `databaseProductName` string — The database vendor associated with the connection. Current possible values include: * `ATHENA` * `BIGQUERY` * `DATABRICKS` * `DB2` * `MYSQL` * `POSTGRES` * `REDSHIFT` * `SAP` * `SNOWFLAKE` * `SQLSERVER` * `TRINO` Additional values will be introduced in the future.
      - `schemaName` string, required — Schema name
      - `tableName` string, required — Table name
    - `jobSettings` JobSettings — Job-level execution settings, including date format and pushdown/pullup tuning. Pullup jobs are available only when the Pullup preview feature is enabled.
      - `dateFormat` 'DATE' | 'TIMESTAMP' — Date format used for `runDate` / `runDateEnd`. Supported values: - DATE -> yyyy-MM-dd - TIMESTAMP -> RFC 3339 timestamp, example - 2025-10-23T13:50:02Z
      - `pushdownSettings` PushdownSettings, nullable — Settings for pushdown execution. Controls concurrency used by the source system connection. Provide this object only when the job's jobType is PUSHDOWN. Omit or set to null for non-pushdown jobs.
        - `connections` integer — Number of concurrent source connections
        - `threads` integer — Worker threads per connection for pushdown queries
      - `pullupSettings` PullupSettings, nullable — Settings for pullup execution. Controls partitioning and Spark sizing. Provide this object only when the job's jobType is PULLUP. Omit or set to null for non-pullup jobs. Pullup functionality is available only when the Pullup preview feature is enabled.
        - `loadOptions` LoadOptions, nullable — Data loading options applied when reading from the source
          - `numPartitions` integer — Number of Spark input partitions
          - `parallelJdbcOptions` union — Options for parallel JDBC partitioning. Choose a `mode`, which determines which fields are required: - `AUTO` – system selects column & partitions - `AUTO_COLUMN` – system selects column; you provide `partitionNumber` - `MANUAL` – you provide `partitionColumn` and `partitionNumber`
            - ParallelJdbcOptionsAuto — Automatic column & partition selection.
              - …
            - ParallelJdbcOptionsAutoColumn — Automatic column selection; you specify the number of partitions.
              - …
            - ParallelJdbcOptionsManual — You specify both the partition column and number of partitions.
              - …
        - `sparkJobSizing` SparkJobSizing, nullable — Optional manual sizing for Spark resources. If this object is **omitted or null**, the platform automatically selects Spark resources based on the source query.
          - `numExecutors` integer — Number of executors to use (upper bound).
          - `driverCores` integer — Number of driver CPU cores.
          - `numExecutorCores` integer — Number of CPU cores per executor.
          - `executorMemoryGb` integer — Maximum memory per executor in GB.
          - `driverMemoryGb` integer — Driver memory in GB.
          - `memoryOverheadGb` integer, nullable — Additional off-heap memory per executor in GB.
        - `sparkSqlProperties` object, nullable — Arbitrary Spark SQL session properties as key/value pairs
    - `monitoringSettings` JobMonitoringSettings — Monitoring configuration for the job. This structure is designed for future extensibility to include additional monitor types.
      - `adaptiveMonitors` AdaptiveMonitors — Feature toggles for adaptive monitors computed during profiling. All data quality jobs always run profiling with data type detection and schema-change checks enabled.
        - `descriptiveStatistics` boolean — Show descriptive statistics in profiling results (e.g., count, min, mean, max). Note: may expose sensitive values such as minimum/maximum. If disabled, all column values are masked in the profiling results.
        - `emptyFields` boolean — Detect changes in the number of empty values in numeric columns.
        - `executionTime` boolean — Track changes in total execution time of the data job.
        - `max` boolean — Detect changes in the highest value across numeric columns.
        - `mean` boolean — Detect changes in the average (mean) value across numeric columns.
        - `min` boolean — Detect changes in the lowest value across numeric columns.
        - `nullValues` boolean — Detect changes in the number of NULL values across all columns.
        - `rowCount` boolean — Track changes in the total number of rows.
        - `uniqueness` boolean — Track changes in the number of distinct values across all columns.
        - `settings` AdaptiveMonitorSettings — Optional learning/tuning parameters applied to the above monitors.
          - `dataLookBack` integer — Number of historical runs to consider when detecting changes (0 = no look back).
          - `learningPhase` integer — Number of initial runs used to learn a baseline before signaling changes (0 = no learning phase).
      - `customMonitors` CustomMonitors[]
        - `monitorName` string, required — Unique monitor name.
        - `customQuery` string, required — The SQL query.
        - `filterQuery` string — Optional SQL filter clause applied to the monitor.
        - `primaryColumn` string — Column the monitor is scoped to.
        - `description` string — Human-readable description of the monitor.
        - `dimensions` string[] — DQ dimensions this monitor measures.
        - `notifications` CustomMonitorNotification[] — Alert notification configurations.
          - `notificationType` string, required — Determines when a notification is triggered. The current available values: * 'PASSING' — monitor transitions to a passing state * 'BREAKING' — monitor fails * 'EXCEPTION' — monitor encounters an execution error
          - `enabled` boolean, required — Whether this notification is active.
          - `message` string, required — Custom notification message.
          - `channels` NotificationChannel[] — Channels to send out notifications.
            - `channel` string — Delivery channel type. Current value: * `EMAIL` Additional values MAY be added in future versions.
            - `recipients` string[] — Platform usernames to receive email notifications when `channel = EMAIL` (e.g., `jsmith`, `adoe`).
          - `name` string, required — Unique identifier for this notification entry.
        - `tolerance` integer — Number as a percentage of tolerated failures before flagging the monitor as breaking.
        - `isActive` boolean — Whether the monitor is active.
        - `isSuppressed` boolean — Whether the monitor is suppressed.
    - `notifications` JobNotifications — Controls which events trigger a notification, which channels deliver them, and what message is sent. This schema is **channel-extensible**: it starts with EMAIL and will be updated in future versions to support additional channels (e.g., Slack) without breaking existing clients.
      - `notificationOptions` NotificationOption[], required — Per-event settings. Add one item per event to monitor.
        - `notificationType` string, required — The event that triggers this notification. Current possible values include: * `JOB_FAILED` – sent when a job run fails. * `JOB_COMPLETED` – sent when a job run finishes successfully. * `ROWS_LESS_THAN_LIMIT` – sent when produced row count is below a limit. * `RUNS_WITHOUT_DATA` – sent after N consecutive runs produced no data. * `DAYS_WITHOUT_DATA` – sent when no data was produced for N days. * `SCORE_LESS_THAN_LIMIT` – sent when quality score is below a limit. * `RUN_TIME_MORE_THEN_LIMIT` – sent when runtime exceeds a limit (in minutes). Additional notification types may be introduced in the future.
        - `enabled` boolean, required — Whether this notification is active.
        - `message` string — Custom message for this notification. Used when `useIndividualMessages` is `true`. If omitted or blank, the service falls back to `globalMessage`, if that is also blank, a system default template is used.
        - `quantity` integer, nullable — Threshold used **only** for specific types: - `ROWS_LESS_THAN_LIMIT` – minimum expected row count. - `RUNS_WITHOUT_DATA` – number of consecutive empty runs (N). - `DAYS_WITHOUT_DATA` – number of days with no data (N). - `SCORE_LESS_THAN_LIMIT` – minimum acceptable score. - `RUN_TIME_MORE_THEN_LIMIT` – maximum allowed runtime in minutes. Ignored for other types.
      - `globalMessage` string — Default message template when `useIndividualMessages` is false.
      - `useIndividualMessages` boolean — If true, use each option's `message`; otherwise use `globalMessage`.
      - `channels` NotificationChannel[], required — Delivery channels and their destinations
        - `channel` string — Delivery channel type. Current value: * `EMAIL` Additional values MAY be added in future versions.
        - `recipients` string[] — Platform usernames to receive email notifications when `channel = EMAIL` (e.g., `jsmith`, `adoe`).
    - `schedulingSettings` union — Controls when a scheduled job runs and how `runDate` is adjusted. Exactly **one** schedule mode is allowed. **Optional** If omitted or null, the job will not be scheduled.
      - SchedulingHourly — Hourly schedule configuration. If scheduleRunTime is set "14:30:00", the job runs at 14:30, 15:30, 16:30, etc.
        - `isActive` boolean, required — Enable/disable the schedule (disabled schedules do not trigger runs).
        - `scheduledRunTime` string, required — Time of day in **UTC**, format `HH:mm:ss`. (24 hours) Example: `14:10:00` means the job starts at 14:10:00 UTC.
        - `schedulerMode` string, required — Schedule type. For this schema, the value MUST be `HOURLY`.
        - `hourly` object, required — Hourly schedule rules.
          - `hourlyOffset` string, required — Run-date offset in hours relative to the scheduled time. Current possible values include: * `SCHEDULED` – use the scheduled date/time. * `ONE_HOUR` – run date is 1 hour before the scheduled time. * `TWO_HOURS` – run date is 2 hours before the scheduled time. Additional values MAY be added in future versions.
      - SchedulingDaily
        - `isActive` boolean, required — Enable/disable the schedule (disabled schedules do not trigger runs).
        - `scheduledRunTime` string, required — Time of day in **UTC**, format `HH:mm:ss`. (24 hours) Example: `14:10:00` means the job starts at 14:10:00 UTC.
        - `schedulerMode` string, required — Schedule type. For this schema, the value MUST be `DAILY`.
        - `daily` object, required — Daily schedule rules.
          - `dailyOffset` string, required — Run-date offset in days relative to the scheduled day. Current possible values include: * `SCHEDULED` * `ONE_DAY` * `TWO_DAYS` * `THREE_DAYS` * `FOUR_DAYS` * `FIVE_DAYS` * `SIX_DAYS` * `SEVEN_DAYS` Additional values MAY be added in future versions.
          - `daysOfWeek` string[], required — Days of week to run.
      - SchedulingMonthly
        - `isActive` boolean, required — Enable/disable the schedule (disabled schedules do not trigger runs).
        - `scheduledRunTime` string, required — Time of day in **UTC**, format `HH:mm:ss`. (24 hours) Example: `14:10:00` means the job starts at 14:10:00 UTC.
        - `schedulerMode` string, required — Schedule type. For this schema, the value MUST be `MONTHLY`.
        - `monthly` object, required — Monthly schedule rules.
          - `monthlyRepeat` string, required — Which day of the month to run the job on. Current possible values: * `FIRST` – first day of the month * `LAST` – last day of the month * `DAY` – specific calendar day (requires `dayNumber` in 1–31 range) Additional values MAY be added in future versions.
          - `monthlyOffset` string, required — Run-date offset applied to the scheduled monthly day. Current possible values include: * `SCHEDULED` - use the scheduled date * `FIRST_OF_CURRENT_MONTH` - first day of the current month * `LAST_OF_CURRENT_MONTH` - last day of the current month * `FIRST_OF_PRIOR_MONTH` - first day of the prior month * `LAST_OF_PRIOR_MONTH` - last day of the prior month Additional values may be added in future versions.
          - `dayNumber` integer, nullable — Required when `monthlyRepeat = DAY`.
  - `total` integer — Total number of matching items.
  - `offset` integer — Current offset.
  - `limit` integer — Page size.

## Other responses

- `401` — Unauthorized — authentication is required or the provided credentials are invalid.
- `403` — Forbidden — insufficient permissions.
- `500` — Internal Server Error

---

[API](https://skmtc.net/collibra/apis/collibra-data-governance-center-core-api.md) · [All operations](https://skmtc.net/collibra/apis/collibra-data-governance-center-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/collibra/collibra-data-governance-center-core-api/revisions/6d091bc86a33/schema)
