For the complete documentation index, see llms.txt. This page is also available as Markdown.

Jobs

Search available job filters

post

Returns the available filter values (aggregations) for job searches.

Only administrators and service accounts receive facet values. Any other caller receives an empty object (data: {}) instead of a 403 Forbidden.

Request body (all fields optional):

  • filters (optional, object) – Current filter criteria, used to compute the aggregation scope.

  • must (optional, object) – Mandatory conditions combined with AND.

For admin and service callers, the response lists the distinct values and counts the caller can still select for each facet given the current search context. When both filters and must are omitted, the endpoint returns the available values without additional narrowing.

The exact set of facets returned depends on the search implementation and on the caller's permission scope over the underlying sources.

Body
Other propertiesanyOptional
Responses
200

Job filter search response

application/json
post/api/job_filters/search
POST /api/job_filters/search HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 74

{
  "filters": {
    "status": [
      "PENDING"
    ]
  },
  "must": {
    "source.external_id": "src-crm"
  }
}
{
  "data": {
    "status": {
      "buckets": [
        {
          "count": 5,
          "key": "PENDING"
        },
        {
          "count": 3,
          "key": "COMPLETED"
        }
      ],
      "values": [
        "PENDING",
        "COMPLETED"
      ]
    },
    "type": {
      "buckets": [
        {
          "count": 4,
          "key": "profile"
        }
      ],
      "values": [
        "profile"
      ]
    }
  }
}

Search jobs

post

Searches jobs against the jobs Elasticsearch index using the request body.

Requires administrative priveleges (administrator or service account)

Request body:

  • query (optional, string) – Full-text search across job fields.

  • page (optional, integer, default 0) – Page number.

  • size (optional, integer, default 50, maximum 100) – Page size.

  • must (optional, object) – Mandatory filters combined with AND.

  • filters (optional, object) – Exact-match criteria.

Response: Includes an x-total-count header with the total number of matching jobs. For non-admin/service callers, data is an empty array and x-total-count is 0.

The maximum page size is enforced by the schema, not by the controller. The listing is capped at the value supplied in size per page; there is no additional limit inside the search module.

Body
pageinteger · nullableOptional

Page number (0-indexed). If omitted, the default is 0.

Default: 0
querystring · nullableOptional

Search query text

sizeinteger · min: 1 · max: 100 · nullableOptional

Number of jobs per page. If omitted, the default is 50; the maximum is 100.

Default: 50
Other propertiesanyOptional
Responses
200

Job search response

application/json
post/api/jobs/search
POST /api/jobs/search HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 78

{
  "must": {
    "source.external_id": "src-crm"
  },
  "page": 0,
  "query": "job-001",
  "size": 50
}
{
  "data": [
    {
      "_embedded": {
        "source": {
          "external_id": "src-crm",
          "id": 1,
          "type": "salesforce"
        }
      },
      "external_id": "job-001",
      "id": 1,
      "inserted_at": "2026-05-12T10:00:00Z",
      "source_id": 1,
      "start_date": "2026-05-12T10:00:00Z",
      "status": "COMPLETED",
      "type": "profile"
    }
  ]
}

Reindex all jobs

get

Starts a background job to reindex all jobs in the search index. The endpoint returns 202 Accepted immediately after the task is queued.

Requires administrative privileges (administrator or service account).

Jobs become searchable as the background job completes. Search results may be temporarily incomplete while the index is being rebuilt.

Responses
202

Accepted

No content

get/api/jobs/search/reindex_all
GET /api/jobs/search/reindex_all HTTP/1.1
Accept: */*

No content

Get a job by external ID

get

Fetches a single job by its external ID, including its source and available events.

Requires the 'Execute structure profiling' permission. The check is global: the caller must hold the permission in at least one domain. Administrators and service accounts are always allowed.

Path parameters
external_idstringRequired

Job external ID

Responses
200

Job

application/json
get/api/jobs/{external_id}
GET /api/jobs/{external_id} HTTP/1.1
Accept: */*
{
  "data": {
    "_embedded": {
      "source": {
        "active": true,
        "external_id": "src-crm",
        "id": 1,
        "type": "salesforce"
      }
    },
    "external_id": "job-001",
    "id": 1,
    "inserted_at": "2026-05-12T10:00:00Z",
    "source": {
      "external_id": "src-crm",
      "type": "salesforce"
    },
    "source_id": 1,
    "start_date": "2026-05-12T10:00:00Z",
    "status": "COMPLETED",
    "type": "profile"
  }
}

List jobs for a source

get

Returns all jobs associated with a source. The query is run against the jobs search index and is scoped to the specified source's external ID. If the source has no jobs, the response contains an empty list.

Requires administrative privileges (administrator or service account).

The underlying search is capped at 10,000 results. No pagination is offered through this endpoint; use the general job search for paginated listing.

Path parameters
source_external_idstringRequired

Source external ID

Responses
200

Jobs

application/json
get/api/sources/{source_external_id}/jobs
GET /api/sources/{source_external_id}/jobs HTTP/1.1
Accept: */*
{
  "data": [
    {
      "external_id": "job-001",
      "id": 1,
      "inserted_at": "2026-05-12T10:00:00Z",
      "source_id": 1,
      "start_date": "2026-05-12T10:00:00Z",
      "status": "COMPLETED",
      "type": "profile"
    }
  ]
}

Create a job for a source

post

Creates a job for a source.

Requires the 'Execute structure profiling' permission. The check is global: the caller must hold the permission in at least one domain. Administrators and service accounts are always allowed.

Request body:

  • job (required) – Object containing:

    • type (required, string) – Job type.

    • parameters (optional, object) – Job-specific parameters.

Path parameters
source_external_idstringRequired

Source external ID

Body
Responses
201

Created

application/json
post/api/sources/{source_external_id}/jobs
POST /api/sources/{source_external_id}/jobs HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 53

{
  "job": {
    "parameters": {
      "full": true
    },
    "type": "profile"
  }
}
{
  "data": {
    "_embedded": {
      "source": {
        "active": true,
        "external_id": "src-crm",
        "id": 1,
        "type": "salesforce"
      }
    },
    "external_id": "job-001",
    "id": 1,
    "inserted_at": "2026-05-12T10:00:00Z",
    "source": {
      "external_id": "src-crm",
      "type": "salesforce"
    },
    "source_id": 1,
    "start_date": "2026-05-12T10:00:00Z",
    "status": "COMPLETED",
    "type": "profile"
  }
}

Last updated