---
schema_version: "1"
id: 0a433baff16e85be08f60b48a6afbbb2e365781645163382753771dd01c213ac
title: Jobs
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/commerce-cloud/commerce-api/references/generated-api-specs/jobs.md
canonical_url: https://developer.salesforce.com/docs/commerce/commerce-api/references/jobs
source_site: developer.salesforce.com
content_type: documentation
content_hash: ba649cb3bd48f229f670403268b83c11653e003fe930af8ab5569460bc73b37a
products:
  - B2C Commerce API
  - Salesforce APIs
---
Jobs

# Jobs

[Download API specification](https://developer.salesforce.com/static/commercecloud/commerce-api/jobs/jobs-oas-v1-public.yaml)

## API Overview

The Jobs API provides endpoints for managing and monitoring job executions within Salesforce Commerce Cloud.

### Overview

This API allows administrators to search for job executions, trigger new job runs, retrieve execution details, and abort running jobs. Jobs represent scheduled or on-demand tasks that perform operations such as data import/export, indexing, and cleanup.

### Key Features

*   **Job Execution Search**: Use complex queries to search for job executions by various attributes
*   **Job Triggering**: Create new job executions to run jobs on demand
*   **Execution Monitoring**: Retrieve detailed information about job executions including step-level details
*   **Job Abort**: Delete or abort running job executions

### Searchable Attributes

The following attributes can be used in search queries:

*   `id`: The unique identifier of the job execution (String)
*   `jobId`: The identifier of the job (String)
*   `status`: The execution status (String)
*   `startTime`: The start time of the execution (DateTime)
*   `endTime`: The end time of the execution (DateTime)

### Sortable Attributes

Search results can be sorted by:

*   `id`: Sort by execution identifier
*   `jobId`: Sort by job identifier
*   `status`: Sort by execution status
*   `startTime`: Sort by start time
*   `endTime`: Sort by end time

### Use Cases

*   **Monitoring**: Track job execution status and progress
*   **Troubleshooting**: Investigate failed job executions and review step details
*   **Automation**: Trigger job executions programmatically
*   **Reporting**: Generate reports on job execution history and performance

### Authentication

This API requires OAuth 2.0 authentication with the appropriate scopes:

*   `sfcc.jobs` - Read access to job resources
*   `sfcc.jobs.rw` - Read and write access to job resources

### Best Practices

1.  Use specific search queries to find job executions efficiently
2.  Monitor long-running jobs by polling the get execution endpoint
3.  Use pagination for large result sets when searching executions
4.  Check execution status before attempting to abort a job
5.  Review step execution details for debugging failed jobs

**Version:** 1.0.0

## Servers

*   `https://{shortCode}.api.commercecloud.salesforce.com/operation/jobs/v1`
    *   `shortCode (default 123456gf)`

## Security

*   `AmOAuth2` (oauth2) OAuth 2.0 security scheme for Admin API access using Account Manager. Requires appropriate scopes for job management operations.
    *   OAuth flow clientCredentials (tokenUrl: https://account.demandware.com/dw/oauth2/access\_token)
    *   Scope sfcc.jobs: Read access to job resources
    *   Scope sfcc.jobs.rw: Read and write access to job resources

## Operations

### POST Search Job Executions

`POST /organizations/{organizationId}/job-execution-search`

Operation ID: `searchJobExecutions`. Security: AmOAuth2 (sfcc.jobs, sfcc.jobs.rw).

Searches for job executions.

The query attribute specifies a complex query that can be used to narrow down the search. This is the list of searchable attributes:

*   id - String
*   jobId - String
*   status - String
*   startTime - DateTime
*   endTime - DateTime

The output of the query can also be sorted. These are the list of sortable attributes:

*   id - String
*   jobId - String
*   status - String
*   startTime - DateTime
*   endTime - DateTime

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the organization the request is being made by
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    

#### Request body (required)

The search request document for job executions

Media type: `application/json`. Schema: `JobExecutionSearchRequest`.

_Example: SearchByJobId_ Search job executions by job ID

Example of searching for job executions by their job ID using a term query

```
{
  "query": {
    "termQuery": {
      "fields": [
        "jobId"
      ],
      "operator": "is",
      "values": [
        "my-custom-job"
      ]
    }
  },
  "limit": 10,
  "offset": 0
}
```

_Example: SearchByStatus_ Search job executions by status

Example of searching for job executions by their execution status

```
{
  "query": {
    "termQuery": {
      "fields": [
        "status"
      ],
      "operator": "is",
      "values": [
        "running"
      ]
    }
  },
  "limit": 25,
  "offset": 0,
  "sorts": [
    {
      "field": "startTime",
      "sortOrder": "desc"
    }
  ]
}
```

_Example: SearchByStartTime_ Search job executions by start time range

Example of searching for job executions within a specific start time range using a bool query

```
{
  "query": {
    "boolQuery": {
      "must": [
        {
          "termQuery": {
            "fields": [
              "status"
            ],
            "operator": "is",
            "values": [
              "finished"
            ]
          }
        },
        {
          "textQuery": {
            "fields": [
              "jobId"
            ],
            "searchPhrase": "export"
          }
        }
      ]
    }
  },
  "limit": 20,
  "offset": 0,
  "sorts": [
    {
      "field": "startTime",
      "sortOrder": "desc"
    }
  ]
}
```

#### Responses

*   **200** Returns job execution search results
    
    Media type: `application/json`. Schema: `JobExecutionSearchResult`.
    
    _Example: JobExecutionSearchResultSuccess_ Successful job execution search result
    
    Example of a successful job execution search returning multiple results
    
    ```
    {
      "limit": 2,
      "offset": 0,
      "total": 2,
      "query": {
        "textQuery": {
          "fields": [
            "jobId"
          ],
          "searchPhrase": "JobExecutionTestJob1"
        }
      },
      "hits": [
        {
          "id": "1",
          "jobId": "JobExecutionTestJob1",
          "jobDescription": "Test job for WAPI",
          "clientId": "scapi",
          "status": "OK",
          "executionStatus": "finished",
          "startTime": "2026-02-24T13:47:23.249Z",
          "endTime": "2026-02-24T13:47:23.420Z",
          "creationDate": "2026-02-24T13:47:23.000Z",
          "duration": 171,
          "effectiveDuration": 92,
          "modificationTime": "2026-02-24T13:47:23.433Z",
          "executedServerId": "192.168.1.2-0",
          "executionScopes": [
            "Organization",
            "TestWapi-Customization"
          ],
          "exitStatus": {
            "code": "OK",
            "status": "ok"
          },
          "statusMetadata": {
            "clientId": "scapi",
            "reason": "Completed successfully",
            "userLogin": "admin"
          },
          "isLogFileExisting": true,
          "isRestart": false,
          "logFilePath": "/Sites/LOGS/jobs/JobExecutionTestJob1/Job-JobExecutionTestJob1-02c585c2a242c8eee74bd1ba51.log",
          "parameters": [
            {
              "name": "SiteScope",
              "value": "{\"all_storefront_sites\":true}"
            }
          ],
          "stepExecutions": [
            {
              "id": "4",
              "stepId": "Step1",
              "stepDescription": "A step that executes a pipeline that can be configured via a parameter",
              "stepTypeId": "ExecutePipeline",
              "stepTypeInfo": "TestWAPIJobPipeline-StartEnd",
              "executionScope": "Organization",
              "executionStatus": "finished",
              "status": "OK",
              "startTime": "2026-02-24T13:47:23.311Z",
              "endTime": "2026-02-24T13:47:23.332Z",
              "duration": 21,
              "modificationTime": "2026-02-24T13:47:23.332Z",
              "isChunkOriented": false,
              "exitStatus": {
                "code": "OK",
                "message": "",
                "status": "ok"
              }
            },
            {
              "id": "5",
              "stepId": "Step2",
              "stepDescription": "A step that executes a script module function that can be configured via a parameter",
              "stepTypeId": "ExecuteScriptModule",
              "stepTypeInfo": "test_bc_wapi/cartridge/scripts/test/schedulejob/testScriptModuleStep.ds#execute",
              "executionScope": "Organization",
              "executionStatus": "finished",
              "status": "OK",
              "startTime": "2026-02-24T13:47:23.337Z",
              "endTime": "2026-02-24T13:47:23.359Z",
              "duration": 22,
              "modificationTime": "2026-02-24T13:47:23.359Z",
              "isChunkOriented": false,
              "exitStatus": {
                "code": "OK",
                "message": "",
                "status": "ok"
              }
            }
          ]
        },
        {
          "id": "0",
          "jobId": "JobExecutionTestJob1",
          "jobDescription": "Test job for WAPI",
          "clientId": "scapi",
          "status": "ERROR",
          "executionStatus": "finished",
          "startTime": "2026-02-24T13:46:24.316Z",
          "endTime": "2026-02-24T13:46:25.084Z",
          "creationDate": "2026-02-24T13:46:24.000Z",
          "duration": 768,
          "effectiveDuration": 143,
          "modificationTime": "2026-02-24T13:46:25.101Z",
          "executedServerId": "192.168.1.2-0",
          "executionScopes": [
            "Organization"
          ],
          "exitStatus": {
            "code": "ERROR",
            "message": "Job failed due to an import error.",
            "status": "error"
          },
          "isLogFileExisting": true,
          "isRestart": false,
          "logFilePath": "/Sites/LOGS/jobs/JobExecutionTestJob1/Job-JobExecutionTestJob1-21a391164b090c6c12957a292e.log",
          "retryInformation": {
            "currentRetryAttempt": 1,
            "maxRetries": 3
          },
          "stepExecutions": [
            {
              "id": "0",
              "stepId": "Step1",
              "stepDescription": "A step that executes a pipeline that can be configured via a parameter",
              "stepTypeId": "ExecutePipeline",
              "stepTypeInfo": "TestWAPIJobPipeline-StartEnd",
              "executionScope": "Organization",
              "executionStatus": "finished",
              "status": "ERROR",
              "startTime": "2026-02-24T13:46:24.920Z",
              "endTime": "2026-02-24T13:46:25.084Z",
              "duration": 164,
              "modificationTime": "2026-02-24T13:46:25.084Z",
              "isChunkOriented": true,
              "chunkSize": 100,
              "itemWriteCount": 42,
              "itemFilterCount": 3,
              "totalItemCount": 500,
              "statusMetadata": {
                "clientId": "scapi",
                "reason": "Import file not found",
                "userLogin": "admin"
              },
              "exitStatus": {
                "code": "ERROR",
                "message": "Import file not found",
                "status": "error"
              }
            }
          ]
        }
      ]
    }
    ```
    
*   **400** Bad Request - Malformed search query or invalid parameters
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: MalformedSearchParameter_ Malformed search query
    
    Example of an error when the search query is malformed or invalid
    
    ```
    {
      "title": "Malformed Search Parameter",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/malformed-search-parameter",
      "detail": "The search query contains invalid syntax. Please check the query structure and try again."
    }
    ```
    
    _Example: UnqueryableField_ Unqueryable Field
    
    Example of an error when an invalid field name is used in the search query
    
    ```
    {
      "title": "Unqueryable Field",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/unqueryable-field",
      "detail": "The field 'invalid_field' is not a searchable attribute for job executions. Valid fields are: id, jobId, status, startTime, endTime."
    }
    ```
    
*   **401** Your access token is invalid or expired and can’t be used to identify a user.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: UnauthorizedExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/unauthorized",
      "title": "Unauthorized",
      "detail": "Your access token is invalid or expired and can’t be used to identify a user."
    }
    ```
    
*   **403** Forbidden. Your access token is valid, but you don’t have the required permissions to access the resource.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: ForbiddenExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/forbidden",
      "title": "Forbidden",
      "detail": "Your access token is valid, but you don’t have the required permissions to access the resource."
    }
    ```
    

### POST Create Job Execution

`POST /organizations/{organizationId}/jobs/{jobId}/executions`

Operation ID: `createJobExecution`. Security: AmOAuth2 (sfcc.jobs.rw).

Creates a new execution for the specified job. This effectively triggers the job to run. The response contains the details of the newly created job execution.

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the organization the request is being made by
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `jobId` (path, string, required) The identifier of the job.  
    Minimum length: 1. Maximum length: 256. Example: `my-custom-job`.

#### Request body

Optional request body to provide execution parameters

Media type: `application/json`. Schema: `JobExecutionRequest`.

_Example: CreateJobExecution_ Create a job execution with parameters

Example of creating a new job execution with custom parameters

```
{
  "parameters": [
    {
      "name": "exportFormat",
      "value": "XML"
    },
    {
      "name": "targetFolder",
      "value": "/export/catalog"
    }
  ]
}
```

#### Responses

*   **200** The job execution was successfully created
    
    Media type: `application/json`. Schema: `JobExecution`.
    
    _Example: JobExecutionCreated_ Newly created job execution
    
    Example of a successfully created job execution (response from POST)
    
    ```
    {
      "id": "3",
      "jobId": "ScapiParamTest",
      "jobDescription": "SCAPI parameter test job",
      "clientId": "scapi",
      "status": "pending",
      "executionStatus": "pending",
      "isLogFileExisting": false,
      "isRestart": false,
      "duration": 0,
      "modificationTime": "2026-02-24T14:04:45.081Z",
      "startTime": "2026-02-24T14:04:45.081Z",
      "parameters": [
        {
          "name": "GlobalParam1",
          "value": "OverriddenValue1"
        }
      ]
    }
    ```
    
*   **400** Bad Request - Invalid job execution request
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: InvalidJobExecutionRequest_ Invalid job execution request
    
    Example of an error when the job execution request is invalid
    
    ```
    {
      "title": "Invalid Request",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-request",
      "detail": "The job execution request is invalid. Please check the request body and try again."
    }
    ```
    
*   **401** Your access token is invalid or expired and can’t be used to identify a user.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example UnauthorizedExample: same as POST /organizations/{organizationId}/job-execution-search 401 response._
    
*   **403** Forbidden. Your access token is valid, but you don’t have the required permissions to access the resource.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example ForbiddenExample: same as POST /organizations/{organizationId}/job-execution-search 403 response._
    
*   **404** Job not found
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: JobNotFound_ Job not found
    
    Example of an error when the specified job does not exist
    
    ```
    {
      "title": "Not Found",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/not-found",
      "detail": "The job with ID 'nonexistent-job' was not found."
    }
    ```
    

### GET Get Job Execution

`GET /organizations/{organizationId}/jobs/{jobId}/executions/{executionId}`

Operation ID: `getJobExecution`. Security: AmOAuth2 (sfcc.jobs, sfcc.jobs.rw).

Retrieves the details of a specific job execution identified by its execution ID.

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the organization the request is being made by
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `jobId` (path, string, required) The identifier of the job.  
    Minimum length: 1. Maximum length: 256. Example: `my-custom-job`.
*   `executionId` (path, string, required) The identifier of the job execution.  
    Minimum length: 1. Maximum length: 256. Example: `exec-001`.

#### Responses

*   **200** Returns the job execution details
    
    Media type: `application/json`. Schema: `JobExecution`.
    
    _Example: JobExecutionDetails_ Job execution with step details
    
    Example of a completed job execution with step execution details (response from GET)
    
    ```
    {
      "id": "1",
      "jobId": "JobExecutionTestJob1",
      "jobDescription": "Test job for WAPI",
      "clientId": "scapi",
      "status": "OK",
      "executionStatus": "finished",
      "startTime": "2026-02-24T13:47:23.249Z",
      "endTime": "2026-02-24T13:47:23.420Z",
      "creationDate": "2026-02-24T13:47:23.000Z",
      "duration": 171,
      "effectiveDuration": 92,
      "modificationTime": "2026-02-24T13:47:23.433Z",
      "executedServerId": "192.168.1.2-0",
      "executionScopes": [
        "Organization",
        "TestWapi-Customization"
      ],
      "exitStatus": {
        "code": "OK",
        "status": "ok"
      },
      "isLogFileExisting": true,
      "isRestart": false,
      "logFilePath": "/Sites/LOGS/jobs/JobExecutionTestJob1/Job-JobExecutionTestJob1-02c585c2a242c8eee74bd1ba51.log",
      "parameters": [
        {
          "name": "SiteScope",
          "value": "{\"all_storefront_sites\":true}"
        }
      ],
      "stepExecutions": [
        {
          "id": "4",
          "stepId": "Step1",
          "stepDescription": "A step that executes a pipeline that can be configured via a parameter",
          "stepTypeId": "ExecutePipeline",
          "stepTypeInfo": "TestWAPIJobPipeline-StartEnd",
          "executionScope": "Organization",
          "executionStatus": "finished",
          "status": "OK",
          "startTime": "2026-02-24T13:47:23.311Z",
          "endTime": "2026-02-24T13:47:23.332Z",
          "duration": 21,
          "modificationTime": "2026-02-24T13:47:23.332Z",
          "isChunkOriented": false,
          "exitStatus": {
            "code": "OK",
            "message": "",
            "status": "ok"
          }
        },
        {
          "id": "5",
          "stepId": "Step2",
          "stepDescription": "A step that executes a script module function that can be configured via a parameter",
          "stepTypeId": "ExecuteScriptModule",
          "stepTypeInfo": "test_bc_wapi/cartridge/scripts/test/schedulejob/testScriptModuleStep.ds#execute",
          "executionScope": "Organization",
          "executionStatus": "finished",
          "status": "OK",
          "startTime": "2026-02-24T13:47:23.337Z",
          "endTime": "2026-02-24T13:47:23.359Z",
          "duration": 22,
          "modificationTime": "2026-02-24T13:47:23.359Z",
          "isChunkOriented": false,
          "exitStatus": {
            "code": "OK",
            "message": "",
            "status": "ok"
          }
        },
        {
          "id": "6",
          "stepId": "Step3 - Step1",
          "stepDescription": "A step that executes a pipeline that can be configured via a parameter",
          "stepTypeId": "ExecutePipeline",
          "stepTypeInfo": "TestWAPIJobPipeline-StartEnd",
          "executionScope": "TestWapi-Customization",
          "executionStatus": "finished",
          "status": "OK",
          "startTime": "2026-02-24T13:47:23.364Z",
          "endTime": "2026-02-24T13:47:23.387Z",
          "duration": 23,
          "modificationTime": "2026-02-24T13:47:23.387Z",
          "isChunkOriented": false,
          "includeStepsFromJobId": "JobExecutionTestJob2",
          "exitStatus": {
            "code": "OK",
            "message": "",
            "status": "ok"
          }
        },
        {
          "id": "7",
          "stepId": "Step3 - Step2",
          "stepDescription": "",
          "stepTypeId": "ExecuteScriptModule",
          "stepTypeInfo": "test_bc_wapi/cartridge/scripts/test/schedulejob/testScriptModuleStep.ds#testReturnStatusOkWithCodeAndMessage",
          "executionScope": "TestWapi-Customization",
          "executionStatus": "finished",
          "status": "SUCCESS",
          "startTime": "2026-02-24T13:47:23.392Z",
          "endTime": "2026-02-24T13:47:23.418Z",
          "duration": 26,
          "modificationTime": "2026-02-24T13:47:23.418Z",
          "isChunkOriented": false,
          "includeStepsFromJobId": "JobExecutionTestJob2",
          "exitStatus": {
            "code": "SUCCESS",
            "message": "Step was successful!",
            "status": "ok"
          }
        }
      ]
    }
    ```
    
*   **401** Your access token is invalid or expired and can’t be used to identify a user.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example UnauthorizedExample: same as POST /organizations/{organizationId}/job-execution-search 401 response._
    
*   **403** Forbidden. Your access token is valid, but you don’t have the required permissions to access the resource.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example ForbiddenExample: same as POST /organizations/{organizationId}/job-execution-search 403 response._
    
*   **404** Job execution not found
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: JobExecutionNotFound_ Job execution not found
    
    Example of an error when the specified job execution does not exist
    
    ```
    {
      "title": "Not Found",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/not-found",
      "detail": "The job execution with ID 'nonexistent-exec' for job 'my-custom-job' was not found."
    }
    ```
    

### DELETE Delete Job Execution

`DELETE /organizations/{organizationId}/jobs/{jobId}/executions/{executionId}`

Operation ID: `deleteJobExecution`. Security: AmOAuth2 (sfcc.jobs.rw).

Aborts and deletes a specific job execution. This operation can only be performed on executions that are currently in a running or pending state.

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the organization the request is being made by
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `jobId` (path, string, required) The identifier of the job.  
    Minimum length: 1. Maximum length: 256. Example: `my-custom-job`.
*   `executionId` (path, string, required) The identifier of the job execution.  
    Minimum length: 1. Maximum length: 256. Example: `exec-001`.

#### Responses

*   **204** The job execution was successfully deleted
*   **401** Your access token is invalid or expired and can’t be used to identify a user.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example UnauthorizedExample: same as POST /organizations/{organizationId}/job-execution-search 401 response._
    
*   **403** Forbidden. Your access token is valid, but you don’t have the required permissions to access the resource.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example ForbiddenExample: same as POST /organizations/{organizationId}/job-execution-search 403 response._
    
*   **404** Job execution not found
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example JobExecutionNotFound: same as GET /organizations/{organizationId}/jobs/{jobId}/executions/{executionId} 404 response._ Job execution not found
    
    Example of an error when the specified job execution does not exist
    
    _Example: JobExecutionNotFound_ Job execution not found
    
    Example of an error when the specified job execution does not exist
    

## Schemas

### OrganizationId

An identifier for the organization the request is being made by

Type: `string`.

Minimum length: 1. Maximum length: 32. Example: `f_ecom_zzxy_prd`.

### JobExecutionSearchRequest

Document representing a search request for retrieving job executions. The query is a potentially complex set of expressions.

Searchable attributes:

*   id - String
*   jobId - String
*   status - String
*   startTime - DateTime
*   endTime - DateTime

Sortable attributes:

*   id - String
*   jobId - String
*   status - String
*   startTime - DateTime
*   endTime - DateTime

Includes all fields of `SearchRequest`.

### JobExecutionSearchResult

Document representing a job execution search result. This includes the query, hits (array of JobExecution objects), and pagination information.

Includes all fields of `PaginatedSearchResult`.

*   `hits` (_array of JobExecution_, required) The sorted array of search hits (JobExecution objects). Can be empty.

### ErrorResponse

*   `title` (_string_, required) A short, human-readable summary of the problem type. It will not change from occurrence to occurrence of the problem, except for purposes of localization  
    Maximum length: 256. Example: `You do not have enough credit`.
*   `type` (_string_, required) A URI reference \[RFC3986\] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML \[W3C.REC-html5-20141028\]). When this member is not present, its value is assumed to be "about:blank". It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
    Maximum length: 2048. Example: `NotEnoughMoney`.
*   `detail` (_string_, required) A human-readable explanation specific to this occurrence of the problem.  
    Example: `Your current balance is 30, but that costs 50`.
*   `instance` (_string_) A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
    Maximum length: 2048. Example: `/account/12345/msgs/abc`.

### JobExecutionRequest

Document representing a request to create a job execution. Optional parameters can be provided to configure the execution.

*   `parameters` (_array of JobParameter_) The parameters for the job execution.

### JobExecution

Document representing a job execution.

*   `id` (_string_, required) The ID of the job execution.  
    Minimum length: 1. Maximum length: 256. Example: `1`.
*   `jobId` (_string_, required) The ID of the job.  
    Minimum length: 1. Maximum length: 256. Example: `JobExecutionTestJob1`.
*   `jobDescription` (_string_) The description of the job.  
    Maximum length: 4000. Example: `Test job for WAPI`.
*   `clientId` (_string_) The client ID that triggered the job execution.  
    Maximum length: 256. Example: `scapi`.
*   `userLogin` (_string_) The login of the user who started the job execution, if started by a registered user.  
    Maximum length: 256. Example: `admin`.
*   `executionStatus` (_object_) The execution lifecycle status of the job.
    
    Includes all fields of `ExecutionStatus`.
    
*   `status` (_string_, required) The exit status of the job execution.  
    Maximum length: 256. Example: `OK`.
*   `startTime` (_string (date-time)_) The timestamp when the job execution started.  
    Example: `2024-10-14T10:00:00.000Z`.
*   `endTime` (_string (date-time)_) The timestamp when the job execution ended.  
    Example: `2024-10-14T10:10:00.000Z`.
*   `creationDate` (_string (date-time)_) The timestamp when the job execution was created.  
    Example: `2024-10-14T10:00:00.000Z`.
*   `duration` (_integer (int64)_) The duration of the job execution in milliseconds.  
    Example: `171`.
*   `effectiveDuration` (_integer (int64)_) The effective duration of the job execution in milliseconds, excluding any paused time.  
    Example: `92`.
*   `modificationTime` (_string (date-time)_) The timestamp when the job execution was last modified.  
    Example: `2024-10-14T10:10:00.000Z`.
*   `lastModified` (_string (date-time)_) The timestamp when the job execution was last modified (alias).  
    Example: `2024-10-14T10:10:00.000Z`.
*   `executedServerId` (_string_) The ID of the server that executed the job.  
    Maximum length: 256. Example: `192.168.1.2-0`.
*   `exitStatus` (_object_) The exit status of the job execution.
    
    Includes all fields of `ExitStatus`.
    
*   `statusMetadata` (_object_) Metadata associated with the current status of the job execution.
    
    Includes all fields of `StatusMetadata`.
    
*   `isLogFileExisting` (_boolean_) Indicates whether a log file exists for the job execution.  
    Example: `true`.
*   `isRestart` (_boolean_) Indicates whether the job execution is a restart of a previous execution.  
    Example: `false`.
*   `logFilePath` (_string_) The full WebDAV path of the log file associated with the job execution.  
    Maximum length: 4000. Example: `/Sites/LOGS/jobs/JobExecutionTestJob1/Job-JobExecutionTestJob1-02c585c2a242c8eee74bd1ba51.log`.
*   `parameters` (_array of JobParameter_) The parameters used for the job execution.
*   `executionScopes` (_array of string_) The scopes for which the job was executed.  
    Items: Maximum length: 256. Example: `Organization`.
*   `retryInformation` (_object_) The retry information of this execution if available.
    
    Includes all fields of `JobExecutionRetryInformation`.
    
*   `continueInformation` (_object_) The continuation information of this execution if available.
    
    Includes all fields of `JobExecutionContinueInformation`.
    
*   `stepExecutions` (_array of JobStepExecution_) The step executions that are part of this job execution.

### SearchRequest

Document representing a search request for retrieving items within the Data API. The query is a potentially complex set of expressions. The fields and expands that each query supports are defined within the search resource.

*   `limit` (_integer (int32)_) Maximum records to retrieve per request, not to exceed 200.  
    Minimum: 1. Maximum: 200. Example: `10`.
*   `query` (_Query_, required)
*   `sorts` (_array of Sort_) The list of sort clauses configured for the search request. Sort clauses are optional. See the description of the search endpoint for details on the default sorting behavior that is used when explicit sorts are not passed.
*   `offset` (_Offset_)

### PaginatedSearchResult

Document representing a generic search result. Each search resource should extend this to define what is returned in the `hits`.

Includes all fields of `PaginatedResultBase`.

*   `query` (_Query_, required)
*   `sorts` (_array of Sort_) The sorting that was applied to the result.
*   `hits` (_array of object_) The sorted array of search hits. Can be empty.

_Example_

```
{
  "limit": 1,
  "hits": [
    {
      "couponId": "coupon1",
      "creationDate": "2019-10-20T12:00:00Z",
      "description": "This coupon is used to give 10% off stuff.",
      "enabled": false,
      "exportedCodeCount": 0,
      "lastModified": "2019-10-30T04:23:59Z",
      "redemptionCount": 3,
      "redemptionLimits": {
        "limitPerCode": 1,
        "limitPerCustomer": 1,
        "limitPerTimeFrame": {
          "limit": 2,
          "redemptionTimeFrame": 24
        }
      },
      "singleCode": "MyCode",
      "systemCodesConfig": {
        "codePrefix": "SG",
        "numberOfCodes": 500000
      },
      "totalCodesCount": 50,
      "type": "single_code"
    }
  ],
  "query": {
    "textQuery": {
      "fields": [
        "id",
        "description"
      ],
      "searchPhrase": "stuff"
    }
  },
  "sorts": [
    {
      "field": "couponId",
      "sortOrder": "desc"
    }
  ],
  "offset": 2,
  "total": 8
}
```

### JobParameter

Document representing a single job parameter as a name-value pair.

*   `name` (_string_, required) The name of the job parameter.  
    Minimum length: 1. Maximum length: 256. Pattern: \\S|(\\S(.\*)\\S). Example: `param1`.
*   `value` (_string_, required) The value of the job parameter.  
    Minimum length: 0. Maximum length: 1000. Pattern: \\S|(\\S(.\*)\\S). Example: `value1`.

### ExecutionStatus

The execution lifecycle status of a job or step execution.

Type: `string`.

Allowed values: `pending`, `running`, `pausing`, `paused`, `resuming`, `resumed`, `restarting`, `restarted`, `retrying`, `retried`, `aborting`, `aborted`, `finished`, `unknown`. Example: `finished`.

### ExitStatus

Document representing the exit status of a job or step execution.

*   `code` (_string_) The exit status code.  
    Maximum length: 256. Example: `OK`.
*   `message` (_string_) The exit status message providing additional details.  
    Maximum length: 4000. Example: `Job completed successfully`.
*   `status` (_string_) The exit status value.  
    Allowed values: `ok`, `error`. Example: `ok`.

### StatusMetadata

Document representing metadata associated with the status of a job execution.

*   `clientId` (_string_) The client ID responsible for the status.  
    Maximum length: 256. Example: `scapi`.
*   `reason` (_string_) The reason for the status.  
    Maximum length: 4000. Example: `Job aborted by user`.
*   `userLogin` (_string_) The user login responsible for the status.  
    Maximum length: 256. Example: `admin`.

### JobExecutionRetryInformation

Document representing retry information for a previous failed job execution.

*   `currentRetryAttempt` (_integer (int32)_) The current attempt to retry the previous failed job execution.  
    Example: `1`.
*   `maxRetries` (_integer (int32)_) The maximum number of retries.  
    Example: `3`.

### JobExecutionContinueInformation

Document representing continuation information for a job execution.

*   `isPending` (_boolean_) True if the continuation of this job execution is pending and will be started soon, false otherwise.  
    Example: `true`.
*   `continueStatus` (_string_) The status this job execution will get on continuation if continuation is pending.  
    Maximum length: 256. Example: `OK`.

### JobStepExecution

Document representing a step execution within a job execution.

*   `id` (_string_) The ID of the step execution.  
    Minimum length: 1. Maximum length: 256. Example: `4`.
*   `stepId` (_string_) The ID of the step.  
    Minimum length: 1. Maximum length: 256. Example: `Step1`.
*   `stepDescription` (_string_) The description of the step.  
    Maximum length: 4000. Example: `A step that executes a pipeline that can be configured via a parameter`.
*   `stepTypeId` (_string_) The type identifier of the step.  
    Maximum length: 256. Example: `ExecutePipeline`.
*   `stepTypeInfo` (_string_) Additional type information about the step.  
    Maximum length: 4000. Example: `TestWAPIJobPipeline-StartEnd`.
*   `executionScope` (_string_) The execution scope of the step.  
    Maximum length: 256. Example: `Organization`.
*   `executionStatus` (_object_) The execution lifecycle status of the step.
    
    Includes all fields of `ExecutionStatus`.
    
*   `status` (_string_) The exit status of the step execution.  
    Maximum length: 256. Example: `OK`.
*   `startTime` (_string (date-time)_) The timestamp when the step execution started.  
    Example: `2024-10-14T10:00:00.000Z`.
*   `endTime` (_string (date-time)_) The timestamp when the step execution ended.  
    Example: `2024-10-14T10:05:00.000Z`.
*   `duration` (_integer (int64)_) The duration of the step execution in milliseconds.  
    Example: `21`.
*   `modificationTime` (_string (date-time)_) The timestamp when the step execution was last modified.  
    Example: `2024-10-14T10:05:00.000Z`.
*   `statusMetadata` (_object_) Metadata associated with the current status of the step execution.
    
    Includes all fields of `StatusMetadata`.
    
*   `exitStatus` (_object_) The exit status of the step execution.
    
    Includes all fields of `ExitStatus`.
    
*   `includeStepsFromJobId` (_string_) The ID of the job whose steps are included in this step execution.  
    Maximum length: 256. Example: `JobExecutionTestJob2`.
*   `isChunkOriented` (_boolean_) Indicates whether the step execution is chunk-oriented.  
    Example: `false`.
*   `chunkSize` (_integer (int32)_) The chunk size used during step execution.  
    Example: `100`.
*   `itemFilterCount` (_integer (int32)_) The number of items filtered during step execution.  
    Example: `0`.
*   `itemWriteCount` (_integer (int32)_) The number of items written during step execution.  
    Example: `500`.
*   `totalItemCount` (_integer (int64)_) The total number of items to process during step execution.  
    Example: `500`.

### Query

A set of objects that define criteria used to select records. A query can contain one of the following:

*   `MatchAllQuery`

*   Matches all documents.

*   `TermQuery`

*   Matches one or more documents against one or more document fields.

*   `TextQuery`

*   Matches text against one or more fields.

*   `BoolQuery`

*   Allows construction of a logical expression of multiple queries.

*   `FilteredQuery`

*   Allows a filter to be applied to a query.

*   `NestedQuery`

*   Allows you to query on nested documents.
*   _Only supported by some Commerce APIs. For more details, see the endpoint descriptions in the API documentation._

Minimum properties: 1. Maximum properties: 1.

*   `boolQuery` (_BoolQuery_)
*   `filteredQuery` (_FilteredQuery_)
*   `matchAllQuery` (_MatchAllQuery_)
*   `nestedQuery` (_NestedQuery_)
*   `termQuery` (_TermQuery_)
*   `textQuery` (_TextQuery_)

_Example_

```
{
  "filteredQuery": {
    "query": {
      "textQuery": {
        "fields": [
          "couponId"
        ],
        "searchPhrase": "disabled"
      }
    },
    "filter": {
      "termFilter": {
        "field": "enabled",
        "operator": "is",
        "values": [
          false
        ]
      }
    }
  }
}
```

### Sort

Document representing a sort request. Each API has a different default sort configuration that can be modified in the request.

*   `field` (_string_, required) The name of the field to sort on.  
    Maximum length: 256. Example: `couponId`.
*   `sortOrder` (_string_) The sort order to be applied when sorting. When omitted, the default sort order (asc) is used.  
    Allowed values: `asc`, `desc`. Default: `asc`. Example: `asc`.

_Example_

```
{
  "field": "couponId",
  "sortOrder": "desc"
}
```

### Offset

The zero-based index of the first hit/data to include in the result.

Type: `integer (int32)`.

Default: `0`. Minimum: 0. Example: `0`.

### PaginatedResultBase

Schema defining generic pageable result. Each response schema of a resource requiring pagination should extend this schema. If you use this extend this schema directly, it needs to be defined what data is returned. Allowed names for the data field is `data`.

Includes all fields of `ResultBase`.

*   `offset` (_Offset_, required)

### BoolQuery

A boolean query allows construction of full logical expression trees that are composed of other queries (usually term queries and text queries). A boolean query has three sets of clauses:

*   `must`, which combines as an `AND` operator.
*   `should`, which combines as an `OR` operator.
*   `must_not`, which combines as a `NOT` operator.

If `must`, `mustNot`, or `should` appear in the same boolean query, they are combined logically using the `AND` operator. For example:

```
(must-1 AND must-1 AND ...)
  AND (should-1 OR should-2 OR ...)
  AND NOT (must_not-1 OR must_not-2 OR ...)
```

*   `must` (_array of Query_) List of queries to be evaluated as an `AND` operator.
*   `mustNot` (_array of Query_) List of queries to be evaluated as a `NOT` operator.
*   `should` (_array of Query_) List of queries to be evaluated as an `OR` operator.

_Example_

```
{
  "value": {
    "must": [
      {
        "textQuery": {
          "fields": [
            "couponId"
          ],
          "searchPhrase": "DEAL"
        }
      },
      {
        "textQuery": {
          "fields": [
            "description"
          ],
          "searchPhrase": "Big bargain deal"
        }
      }
    ],
    "mustNot": [
      {
        "termQuery": {
          "fields": [
            "enabled"
          ],
          "operator": "is",
          "values": [
            false
          ]
        }
      }
    ]
  }
}
```

### FilteredQuery

Allows to filter the result of a possibly complex query using a possibly complex filter.

*   `filter` (_Filter_, required)
*   `query` (_Query_, required)

_Example_

```
{
  "query": {
    "textQuery": {
      "fields": [
        "couponId"
      ],
      "searchPhrase": "disabled"
    }
  },
  "filter": {
    "termFilter": {
      "field": "enabled",
      "operator": "is",
      "values": [
        false
      ]
    }
  }
}
```

### MatchAllQuery

Matches all documents (namespace and document type). This query comes in handy if you just want to filter a search result or really do not have any constraints.

### NestedQuery

Allows you to query nested documents that are part of a larger document. Say, for example, that you have a main product with variations in one big document, and you want to constrain a search to main products that have variations that match multiple constraints.

A `NestedQuery` is only supported by some Commerce APIs. For more details, see the endpoint descriptions in the API documentation.

*   `path` (_string_, required) The path to the nested document.  
    Maximum length: 2048. Example: `order.shippingAddresses`.
*   `query` (_Query_, required)
*   `scoreMode` (_string_) Indicates how scores for matching child objects affect the root parent document’s relevance score.  
    Allowed values: `avg`, `total`, `max`, `none`. Example: `avg`.

_Example_

```
{
  "path": "order.shippingAddresses",
  "query": {
    "boolQuery": {
      "must": [
        {
          "boolQuery": {
            "must": [
              {
                "termQuery": {
                  "fields": [
                    "order.shippingAddresses.firstName"
                  ],
                  "operator": "is",
                  "values": [
                    "John"
                  ]
                }
              }
            ]
          }
        },
        {
          "boolQuery": {
            "must": [
              {
                "termQuery": {
                  "fields": [
                    "order.shippingAddresses.lastName"
                  ],
                  "operator": "is",
                  "values": [
                    "Doe"
                  ]
                }
              }
            ]
          }
        }
      ]
    }
  },
  "scoreMode": "avg"
}
```

### TermQuery

A term query matches one or more values against one or more document fields. A document is considered a hit if one of the values matches exactly with at least one of the given fields. The operator `is` can only take one value, while `one_of` can take multiple values. If multiple fields are specified, they are combined using a logical `OR` operator.

**Limitations:**

*   The `greater` and `less` operators are not supported under certain conditions. Both operators are permitted unless the API documentation states otherwise.
*   A subset of Commerce APIs handle queries with multiple fields differently. If the query has multiple fields, the query is internally handled as a logical `OR` of `DisjointMaxQueries` (with the dismax matching a value against all fields). The dismax makes sure that a document carrying a single term in multiple fields does not get higher scores than a document matching multiple terms in multiple fields.

*   `fields` (_array of Field_, required) The document fields that the values are matched against, combined with the operator.  
    Minimum items: 1.
*   `operator` (_string_, required) Returns the operator to use for the term query.  
    Allowed values: `is`, `one_of`, `is_null`, `is_not_null`, `less`, `greater`, `not_in`, `neq`. Example: `is`.
*   `values` (_array of string | number | boolean | integer_) The values that the fields are compared against, combined with the operator.  
    Items: Example: `myCouponId`.

### TextQuery

A text query is used to match some text (for example, a search phrase possibly consisting of multiple terms) against one or more fields. When multiple fields are provided, the phrase conceptually forms a logical `OR` over the fields. In this case, the terms of the phrase basically have to match within the text, that would result in concatenating all given fields.

*   `fields` (_array of Field_, required) The document fields that the search phrase matches against.  
    Minimum items: 1.
*   `searchPhrase` (_string_, required) A search phrase, which can include multiple terms separated by spaces.  
    Example: `campaign summer`.

_Example_

```
{
  "fields": [
    "couponId"
  ],
  "searchPhrase": "limit"
}
```

### ResultBase

Schema defining generic list result. Each response schema of a resource requiring a list response should extend this schema. Additionally it needs to be defined what data is returned.

*   `limit` (_integer (int32)_, required) Maximum records to retrieve per request. The limit with its constraints (minimum, maximum, default) is defined by the request parameter `limit` of the endpoint returning this schema.  
    Example: `10`.
*   `total` (_Total_, required)

### Filter

Contains a set of objects that define criteria used to select records. A filter can contain one of the following:

*   `TermFilter`

*   Matches records where a field (or fields) exactly matches some simple value (including `null`).

*   `RangeFilter`

*   Matches records where a field value lies within a specified range.

*   `Range2Filter`

*   Matches records in a specified range across fields.

*   `QueryFilter`

*   Matches records based on a query.

*   `BoolFilter`

*   Provides filtering of records using a set of filters combined using a logical operator.

Minimum properties: 1. Maximum properties: 1.

*   `boolFilter` (_BoolFilter_)
*   `queryFilter` (_QueryFilter_)
*   `range2Filter` (_Range2Filter_)
*   `rangeFilter` (_RangeFilter_)
*   `termFilter` (_TermFilter_)

### Field

Name of the field. Might be a custom field name prefixed with c\_.

Type: `string`.

Maximum length: 260. Example: `couponId`.

### Total

The total number of hits that match the search's criteria. This can be greater than the number of results returned as search results are pagenated.

Type: `integer (int32)`.

Default: `0`. Minimum: 0. Example: `10`.

### BoolFilter

Allows you to combine other filters into (possibly recursive) logical expression trees. A boolean filter is composed of a logical operator (`AND`, `OR`, `NOT`) and a list of filters that the operator relates to. Multiple filters can be negated with a single `NOT` operator, even when the filters are combined with the `AND` operator.

*   `filters` (_array of Filter_) A list of filters that are logically combined by an operator.
*   `operator` (_string_, required) The logical operator that is used to combine the filters.  
    Allowed values: `and`, `or`, `not`. Example: `and`.

_Example_

```
{
  "value": {
    "operator": "and",
    "filters": [
      {
        "termFilter": {
          "field": "id",
          "operator": "is",
          "values": [
            "myId"
          ]
        }
      },
      {
        "termFilter": {
          "field": "couponId",
          "operator": "is",
          "values": [
            "couponOne"
          ]
        }
      }
    ]
  }
}
```

### QueryFilter

Wraps any query and allows it to be used as a filter.

*   `query` (_Query_, required)

### Range2Filter

Allows you to restrict a search result to hits where a range defined by specified attributes has a certain relationship to a specified range.

The first range (R1) is defined by a pair of attributes (`fromField` and `toField`) that specify the extent of a range, such as attributes `validFrom` and `validTo`.

The second range (R2) is defined by `fromValue` and `toValue`.

The filter mode specifies the method used to compare the two ranges:

*   `overlap`: R1 overlaps fully or partially with R2.
*   `containing`: R1 contains R2.
*   `contained`: R1 is contained in R2.

The range filter supports several value types, and relies on the natural sorting of the value type for range interpretation. Value ranges can be open-ended, but only at one end of the range. You can configure whether the lower bounds and upper bounds are inclusive or exclusive.

A range 2 filter is useful for general restrictions that can be shared between searches (like a static date range) because the filter result is cached in memory. Range filters are not appropriate if the range is expected to be different for every query (for example, if the user controls the date range down to the hour via a UI control). Range filters are inclusive by default.

*   `filterMode` (_string_) Compare mode: overlap, containing, or contained.  
    Allowed values: `overlap`, `containing`, `contained`. Default: `overlap`. Example: `overlap`.
*   `fromField` (_object_, required) The field name of the field that starts the first range.  
    Example: `validFrom`.
    
    Includes all fields of `Field`.
    
    Example: `validFrom`.
    
*   `fromInclusive` (_boolean_) A flag indicating if the lower bound of the second range is inclusive. To make the lower bound exclusive, set to `false`.  
    Default: `true`. Example: `true`.
*   `fromValue` (_any_) The lower bound of the second range. If not specified, the range is open-ended with respect to the lower bound. You can't leave both the lower and upper bounds open-ended.  
    Example: `2007-01-01T00:00:00.000Z`.
*   `toField` (_object_, required) The field name of the field that ends the first range.  
    Example: `validTo`.
    
    Includes all fields of `Field`.
    
    Example: `validTo`.
    
*   `toInclusive` (_boolean_) A flag indicating if the upper bound of the second range is inclusive. To make the lower bound exclusive, set to `false`.  
    Default: `true`. Example: `true`.
*   `toValue` (_any_) The upper bound of the second range. If not specified, the range is open-ended with respect to the upper bound. You can't leave both the upper and lower bounds open-ended.  
    Example: `2017-01-01T00:00:00.000Z`.

_Example_

```
{
  "fromField": "validFrom",
  "toField": "validTo",
  "filterMode": "overlap",
  "fromValue": "2007-01-01T00:00:00.000Z",
  "toValue": "2017-01-01T00:00:00.000Z"
}
```

### RangeFilter

Allows you to restrict a search result to hits that have values for a given attribute that fall within a given value range. The range filter supports several value types and relies on the natural sorting of the value type for range interpretation. Value ranges can be open-ended, but only at one end of the range. You can configure whether the lower bounds and upper bounds are inclusive or exclusive.

A range filter is useful for general restrictions that can be shared between searches (like a static date range) because the filter result is cached in memory. Range filters are not appropriate if the range is expected to be different for every query (for example, if the user controls the date range down to the hour via a UI control). Range filters are inclusive by default.

*   `field` (_object_, required) The search field.  
    Example: `validFrom`.
    
    Includes all fields of `Field`.
    
    Example: `validFrom`.
    
*   `from` (_string (date-time) | integer | number_) The lower bound of the filter range. If not specified, the range is open-ended with respect to the lower bound. You can't leave both the lower and upper bounds open-ended.
    
    One of: `string (date-time)`, `integer`, `number`.
    
    *   _string (date-time)_
        
        Type: `string (date-time)`.
        
        Example: `2007-01-01T00:00:00.000Z`.
        
    *   _integer_
        
        Type: `integer`.
        
        Example: `1`.
        
    *   _number_
        
        Type: `number`.
        
        Example: `1`.
        
*   `fromInclusive` (_boolean_) A flag indicating if the lower bound of the range is inclusive. To make the lower bound exclusive, set to `false`.  
    Default: `true`. Example: `true`.
*   `to` (_string (date-time) | integer | number_) The upper bound of the filter range. If not specified, the range is open-ended with respect to the upper bound. You can't leave both the upper and lower bounds open-ended.
    
    One of: `string (date-time)`, `integer`, `number`.
    
    *   _string (date-time)_
        
        Type: `string (date-time)`.
        
        Example: `2007-01-02T00:00:00.000Z`.
        
    *   _integer_
        
        Type: `integer`.
        
        Example: `2`.
        
    *   _number_
        
        Type: `number`.
        
        Example: `2`.
        
*   `toInclusive` (_boolean_) A flag indicating if the upper bound of the range is inclusive. To make the upper bound exclusive, set to `false`.  
    Default: `true`. Example: `true`.

### TermFilter

Allows you to restrict a search result to hits that match exactly one of the values configured for the filter. A term filter is useful for general restrictions that can be shared between searches. Use term filters whenever the criteria you filter on is a shared property of multiple searches (for example, like filtering by an order status). Use term filters for fields that have a discrete and small set of values only.

*   `field` (_object_, required) The filter field.
    
    Includes all fields of `Field`.
    
*   `operator` (_string_, required) The operator used to compare the field's values with the given values.  
    Allowed values: `is`, `one_of`, `is_null`, `is_not_null`, `less`, `greater`, `not_in`, `neq`. Example: `is`.
*   `values` (_array of string_) The filter values.  
    Items: Example: `myId`.

_Example_

```
{
  "field": "id",
  "operator": "is",
  "values": [
    "myId"
  ]
}
```