Sorting and Filtering APIs

Instead of making a GET call to retrieve a single object based on a known identifier, filters or combinations of filters can be used to create a search query instead. As a collection of results will be returned, sorting can also be applied to the query to organize the data in the response. 

The exact filtering method varies depending on the type of API. The Fulfillment APIs (shipments and packages) have very different syntax from the Non-Fulfillment APIs (customers, locations, returns, and orders), and the Non-Fulfillment APIs support specific parameters as the available filters. All of these syntax guidelines and value options are described in this guide under the appropriate section.

Sorting and Filtering Fulfillment APIs

The Shipments and Packages APIs support pagination, the ability to sort results in ascending or descending order based on the search term, and filtering by attributes. They use a different syntax than all other Kibo Composable Commerce Platform APIs (such as Order, Customer, Returns, etc.). 

The basic template for this syntax is:

.../?page={page}&pageSize={pageSize}&sort={field}&filter={filter}

The attributes that can be used to customize this query are listed below.

  • page: Accepts a numeric value (starting from 0) indicating which page of results to begin on. There is no set maximum value - the number of available pages depends on how many total results are returned from the query.
  • pageSize: Accepts a numeric value greater than 0 to determine how many results are returned per page. Though there is no maximum value, it is suggested to not return more than 200 results per page. The default value is 10.
  • fields: Filtering API fields based on Squiggly syntax, such as ?fields=id,reporter[firstName]. See the Squiggly documentation for more information.
  • sort: Use sort=field to arrange results in ascending order. Use sort=-field to arrange results in descending order.
  • filter: Supports filtering by API parameters based on any of a number of logical operators. See below for the full list of operators and examples. While there is no limit to the number of filters that can be applied, it is Kibo's recommended best practice to use as few as possible. Using a large number of filters may result in a slow query.
  • quickSearch: Accepts any alphanumeric value to search by external order ID, order number (exact match), shipment number (exact match), recipient name, first line of the receiving address, email address, item product code, or item name. There is no maximum length for this value.
  • isLate: Accepts a true/false Boolean value. If true, it will query for shipments created at least one day ago.

Filter Operators

Filtering is based on comparisons and logical operators to find results relative to the API parameters being searched on. Note that a semicolon (;) can be used instead of AND, and a comma (,) can be used instead of OR.

Operator Name
Syntax
Equal =eq= or ==
Not Equal =ne= or !=
Greater Than =gt= or >
Greater Than Or Equal =ge= or >=
Less Than =lt= or <
Less Than Or Equal =le= or <=
In =in=
Not In =out=
Starts With =sw=
Contains =cont=
Between =between=
Regex =re=
Exists =ex=
And and*
Or or**

Filtering Examples

This query searches for late shipments and filters the results based on a combination of the fulfillment location AND shipment status, to return the late shipments for a particular location.

.../shipments/?isLate=true&filter=fulfillmentLocationCode==Example_Location;shipmentStatus==READY

In this query, a regex filter is used to get shipments where the sender’s email address ends with “@kibocommerce.com”:

..../shipments/?filter=originContact.email=re=".*@kibocommerce.com"

Sorting and Filtering Non-Fulfillment APIs

All other APIs (such as Customer, Returns, Orders, Products, and so forth) all use the same syntax for filtering and sorting. However, the exact parameters that may be filtered on vary based on the API. 

The general sorting and filtering syntax and operators are defined below, followed by individual lists of filterable parameters by API.

Sorting

Sorting is achieved by using the sortBy field and setting it to an API parameter followed by either ascending or descending.

  • asc: Sort in ascending order based on a given parameter (e.g. …/?sortBy=id+asc)
  • desc: Sort in descending order based on a given parameter (e.g. …/?sortBy=createDate+desc)

If you omit the direction symbol, the default sort direction is "ascending."

You can sort by as many parameters as you want. Sort multiple parameters by using a comma to separate the parameters and ascending/descending preferences:

.../api/commerce/orders/?sortBy=order.acceptedDate+asc,order.amountRemainingForPayment+desc

The product variations service has a special parametrized sort that other API services do not support. The property Attribute Value Internal in the ProductVariations API allows sorting by the Attribute Id. Unlike other services, Attribute Value Internal is a dynamically calculated value for ProductVariations.

Filtering

The full list of logical operators for filtering is:

Operator Name
Syntax
Example
Equals eq /?filter=id eq 2
Not Equals ne /?filter=createBy ne Dave
Greater Than gt /?filter=discountTotal gt 50
Greater Than Or Equal ge /?filter=createDate ge 2015-01-01T12:00:00z
Less Than lt /?filter=submittedDate lt 2015-01-01T12:00:00z
Less Than Or Equal le /?filter=taxTotal le 10
And and /?filter=size eq 11 and product.productPrice.catalogListPrice eq 100
Or or /?filter=size eq 11 or size eq 11.5
Group ( ) /?filter=(size eq 11 or name sw shoe) or (size eq 13)
Starts With sw /?filter=name sw bro
Contains cont /?filter=name cont nike
In in[N…N+1] /?filter=property in[1,2,3]
Between between[N1,N2] /?filter=property between[0,100]

Note that any special characters in the filters must be escaped by inserting a caret before the character in order for the filter to work (for example, filter=content.productName+cont+women^’s). These special characters are ^ / “ ‘ , { } ( )

Filtering Examples

The following query retrieves orders that were created on or after January 1st, 2020 and have a discount total of more than $50:

 .../api/commerce/orders/?filter=createdDate+ge+2015-01-01T12:00:00z+and+discountTotal+gt+50

The group filter is used to configure multiple logic operators and parameter combinations, such as querying for a specific shoe size and name OR alternatively, only a different size:

.../api/commerce/orders/?filter=(size+eq+11+or+name+sw+shoe)+or+(size eq 13)

The “in” operator searches for results that include any of the given set of values. (In contrast, the “between” operators only accepts two numeric operators as the beginning and end of the chronological set.) To retrieve orders with a property value of 1, 2, or 3:

> .../api/commerce/orders/?filter=property+in[1,2,3]

Regardless of what filtering is applied, sortBy can always be added to sort the results.

.../api/commerce/orders/?filter=discount.content.name+cont+test&sortBy=discount.content.name+asc,createdate+desc

Customer Accounts API Filters

The following API parameter and filter combinations are supported for searching customer accounts (.../commerce/customer/accounts). Not all fields are applicable to sorting based on ascending or descending order, so the sortable parameters are also noted in the table.

Field Operators
Possible Values Sort By?
acceptsMarketing Equals (eq) A Boolean value, specified as true or false. Yes
account.updateDate Equals (eq)
Less Than (lt)
Less Than or Equal To (le)
Greater Than (gt)
Greater Than or Equal To (ge)
A date/time in UTC format. No
attributes.id Equals (eq)
Does Not Equal (ne)
Less Than (lt)
Less Than or Equal To (le)
Greater Than (gt)
Greater Than or Equal To (ge)
Any integer. No
attributes.name Equals (eq)
Does Not Equal (ne)
This matches the fully qualified name of the customer account attribute. No
attributes.value Equals (eq)
Does Not Equal (ne)
Depend on the data type of the attribute. Supported types are string, date/time, decimal, and Boolean. No
companyOrOrganization Equals (eq) Any alphanumeric string. Yes
commerceSummary.lastOrderDate Equals (eq)
Less Than (lt)
Less Than or Equal To (le)
Greater Than (gt)
Greater Than or Equal To (ge)
A date/time in UTC format. You can specify just the date portion (YYYY-MM-DD) for gt or lt. Yes
commerceSummary.orderCount Equals (eq)
Less Than (lt)
Less Than or Equal To (le)
Greater Than (gt)
Greater Than or Equal To (ge)
Any integer. Yes
commerceSummary.totalOrderAmount Equals (eq)
Less Than (lt)
Less Than or Equal To (le)
Greater Than (gt)
Greater Than or Equal To (ge)
Any integer. Yes
commerceSummary.wishlistCount Equals (eq)
Less Than (lt)
Less Than or Equal To (le)
Greater Than (gt)
Greater Than or Equal To (ge)
Any integer. Yes
contacts.firstName Contains (cont)
Equals (eq)
Starts With (sw)
Any alphanumeric string. No
contacts.lastNameOrSurname Contains (cont)
Equals (eq)
Starts With (sw)
Any alphanumeric string. No
contacts.email Contains (cont)
Equals (eq)
Starts With (sw)
Any alphanumeric string. No
createDate Equals (eq)
Less Than (lt)
Less Than or Equal To (le)
Greater Than (gt)
Greater Than or Equal To (ge)
A date/time in UTC format. Yes
customerSet Equals (eq)
Does Not Equal (ne)
Any alphanumeric string. No
emailAddress Contains (cont)
Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Any alphanumeric string. No
externalId Equals (eq)
Starts With (sw)
Contains (cont)
Any alphanumeric string. Yes
firstName Contains (cont)
Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Any alphanumeric string. No
lastName Contains (cont)
Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Any alphanumeric string. No
migrationRequired Equals (eq)
Does Not Equal (ne)
A Boolean value, specified as true or false. No
segments.id Equals (eq)
Does Not Equal (ne)
Any integer. No
segments.code Equals (eq)
Does Not Equal (ne)
Any alphanumeric string. No
segments.name Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
Any alphanumeric string. No
userId Equals (eq)
Does Not Equal (ne)
Any alphanumeric string (max length 55 characters). Yes
userName Equals (eq)
Does Not Equal (ne)
Any alphanumeric string (max length 55 characters). No

Filtering Examples

commerce/customer/accounts?pageSize=20&filter=segments.id ne 1 and attributes.id eq 4

Locations API Filters

The following API parameter and filter combinations are supported for searching locations. Not all fields are applicable to sorting based on ascending or descending order, so the sortable parameters are also noted in the table.

Field Operators
Possible Values Sort By?
code Equals (eq) Any valid location code. Yes
countryCode Equals (eq) Any valid two-letter ISO country code. No
fulfillmentType.Code Equals (eq)
Does Not Equal (ne)
Any valid location type code. No
geo Near (near) Comma-separated geographical coordinates and distance value in meters. No
isDisabled Equals (eq)
Does Not Equal (ne)
A Boolean value, specified as true or false. No
locationType.Code Equals (eq)
Does Not Equal (ne)
Any valid location type code. No
name Contains (cont)
Starts With (sw)
Any alphanumeric string. Yes
postalOrZipCode Equals (eq) Any valid zip or postal code. No
state Equals (eq) Any valid state code. No
supportsInventory Equals (eq)
Does Not Equal (ne)
A Boolean value, specified as true or false. Yes

Orders API Filters

When searching for a collection of orders using the q parameter in the request URL, you can enter a search term that will search across the following fields:

  • Order number
  • Shopper name, email, or company

When you perform a keyword search for orders based on the shopper information, the system searches for orders with the shopper name defined in the order billing information. If a different shopper's name appears in the billing information, the system will not return the order in the search results.

As the Orders API supports more filters than the others listed above, the filters will be provided in two tables. The first table describes the contact parameters that are supported for filtering. These all apply to billingInfo.billingContact, fulfillmentInfo.fulfillmentContact, and shippingInfo.shippingContact. When using any of these filters, prepend one of those three contact types to the parameter name to specify the data being referenced. For instance, a billing contact’s name and a fulfillment contact’s name are differentiated in the following query:

…/?filter=billingInfo.billingContact+eq+NAME+and+fulfillmentInfo.fulfillmentContact.name+eq+NAME
Field Operators Possible Values
Sort By
.address Contains (cont)
Equal (eq)
Not Equal (ne)
Starts With (sw)
Any alphanumeric string No
.address.cityOrTown Contains (cont)
Equal (eq)
Not Equal (ne)
Starts With (sw)
Any alphanumeric string No
.address.countryCode Contains (cont)
Equal (eq)
Not Equal (ne)
Starts With (sw)
Any valid ISO country code No
.address.postalOrZipCode Contains (cont)
Equal (eq)
Not Equal (ne)
Starts With (sw)
Any valid ZIP or postal code No
.address.stateOrProvince Contains (cont)
Equal (eq)
Not Equal (ne)
Starts With (sw)
Any alphanumeric string No
.address.companyOrOrganization Contains (cont)
Equal (eq)
Not Equal (ne)
Starts With (sw)
Any alphanumeric string No
.address.email Contains (cont)
Equal (eq)
Not Equal (ne)
Starts With (sw)
Any alphanumeric string No
.firstName Contains (cont)
Equal (eq)
Not Equal (ne)
Starts With (sw)
Any alphanumeric string Yes
.lastNameOrSurname Contains (cont)
Equal (eq)
Not Equal (ne)
Starts With (sw)
Any alphanumeric string Yes
.phoneNumber Equal (eq) Any numeric string Yes

Note that filtering by phone number will not necessarily look for an exact match, but will instead look for results that end with the filtered value. For example, if you have the phone number 1-512-333-4444, then searching for 15123334444, 5123334444, or 3334444 will all return that phone number.

The second table describes all other filterable parameters for the Orders API.

Field Operators Possible Values
Sort By?
cardNumber Contains (cont)
Equal (eq)
Not Equal (ne)
In (in)
 Starts With (sw)
Any integer with a maximum of four digits Yes
cancelledDate

Note: this only applies to cancelled orders.
Equal (eq)
Not Equal (ne)
Greater Than (gt)
Less Than (gt)
Any string in date-time format (can exclude the time) Yes
channelCode Equal (eq)
Not Equal (ne)
Starts With (sw)
Any alphanumeric string Yes
closedDate

Note: this only applies to closed orders.
Equal (eq)
Not Equal (ne)
Greater Than (gt)
Less Than (lt)
Any string in date-time format (can exclude the time) Yes
currencyCode Equal (eq)
Not Equal (ne)
Any valid ISO currency code No
customerInteractionType Equal (eq)
Not Equal (ne)
Starts with (sw)
Any valid interaction type (e.g. website, store) Yes
discountTotal Equal (eq)
Not Equal (ne)
Greater Than (gt)
Greater Than Or Equal To (ge)
Less Than Or Equal To (le)
Any decimal No
dutyTotal Equal (eq)
Not Equal (ne)
Greater Than (gt)
Greater Than Or Equal To (ge)
Less Than Or Equal To (le)
Any decimal Yes
email Contains (cont)
Equal(eq)
Not Equal (ne)
Starts With (sw)
Any alphanumeric string No
externalId Contains (cont)
Equal(eq)
Not Equal (ne)
Starts With (sw)
Any valid external order identifier Yes
fulfillmentStatus Contains (cont)
Equal(eq)
Not Equal (ne)
In (in)
 Starts With (sw)
Any valid fulfillment status Yes
id Equal (eq)
Not Equal (ne)
Any valid internal order identifier Yes
ipAddress Equal (eq)
Not Equal (ne)
Any valid IP address No
items.fulfillmentLocationCode Equal (eq)
Not Equal (ne)
Starts With (sw)
Any alphanumeric string No
items.mfgPartNumber* Equal (eq)
Not Equal (ne)
Starts With (sw
Any alphanumeric string No
items.upc* Equal (eq)
Not Equal (ne)
Starts With (sw
Any alphanumeric string No
orderNumber Equal (eq)
Not Equal (ne)
Greater Than (gt)
Greater Than Or Equal To (gt)
Less Than Or Equal To (gt)
Any valid order number Yes
originalCartId Equal (eq)
Not Equal (ne)
Any valid cart identifier Yes
paymentStatus Contains (cont)
Equal (eq)
Not Equal (ne)
In (in)
Starts With (sw)
Any valid payment status Yes
returnStatus Equal Any valid return status No
siteId Equal (eq)
Not Equal (ne)
Any valid site identifier No
subtotal Equals (eq)
Does Not Equal (ne)
Greater than (gt)
Greater Than or Equal To (ge)
Less than (lt)
Less Than or Equal To (le)
Any decimal Yes
taxTotal Equals (eq)
Does Not Equal (ne)
Greater than (gt)
Greater Than or Equal To (ge)
Less than (lt)
Less Than or Equal To (le)
Any decimal No
type Contains (cont)
Equal (eq)
Not Equal (ne)
Starts With (sw)
Online, Offline Yes
userId Equal (eq)
 Not Equal (ne)
Any valid user identifier No
visitId Equal (eq)
Not Equal (ne)
Starts With (sw)
Any alphanumeric string No
webSessionId Equal (eq)
Not Equal (ne)
Starts With (sw)
Any alphanumeric string Yes
total

Equals (eq)

Does Not Equal (ne)  

Greater than (gt)

Greater Than or Equal To (ge)

Less than (lt)

Less Than or Equal To (le)

Any decimal
Yes
Attributes.Name

Equals (eq)

Does Not Equal (ne)

This matches the fully qualified name of the customer account attribute.
No
Attributes.Id
Equals (eq)
Does Not Equal (ne)
Less Than (lt)
Less Than or Equal To (le)
Greater Than (gt)
Greater Than or Equal To (ge)
Any integer.
No
Attributes.AttributeDefinitionId
Equals (eq)
Does Not Equal (ne)
Less Than (lt)
Less Than or Equal To (le)
Greater Than (gt)
Greater Than or Equal To (ge)
Any integer.
No
Attributes.Value

Equals (eq)

Does Not Equal (ne)

Depend on the data type of the attribute. Supported types are string, date/time, decimal, and Boolean.
No

*These parameters correspond to the parameter of the same name under the product object of the item data block. In other words, filtering on items.mfgPartNumber will be interpreted as a filter referencing items.product.mfgPartNumber.

Checkouts API Filters

The following API parameter and filter combinations are supported for checkout API filters (https://t{tenantId}-s{siteId}.{env}.mozu.com/api/commerce/checkouts ). Not all parameters are applicable to sorting based on ascending or descending order, so the sortable parameters are also noted in the table.

The table describes all other filterable parameters for the Checkout APIs.

Field Operators Possible Values
Sort By?

startIndex

Contains (cont)

Equal (eq)

Not Equal (ne)

In (in)

Starts With (sw)

Any integer with a maximum of two digits

(The default value is 0. Optional.)

Yes

pageSize

Equal (eq)

Not Equal (ne)

Greater Than (gt)

Less Than (lt)

Any integer with a maximum of three digits

(The default value is 20 and the maximum value is 200. Optional.)

Yes

sortBy

Equal (eq)

Not Equal (ne)

Starts With (sw)

Any alphanumeric string

Yes

filter

Equal (eq)

Not Equal (ne)

Greater Than (gt)

Less Than (lt)

Any alphanumeric string

Yes

q

Equal (eq)

Not Equal (ne)

Any alphanumeric string

No

qLimit

Equal (eq)

Not Equal (ne)

Starts with (sw)

Any integer

(Text to perform a search on)

Yes

responseFields

Equal (eq)

Not Equal (ne)

 Greater Than (gt)

Greater Than Or Equal To (gt)

Less Than Or Equal To (lt)

Any alphanumeric string

No

Product Attributes API Filters

The following API parameter and filter combinations are supported for searching product attributes (.../commerce/catalog/admin/attributeDefinition/attributes). Not all fields are applicable to sorting based on ascending or descending order, so the sortable parameters are also noted in the table.

Field Operators Possible Values
attributeCode Contains (cont)
Equals(eq)
Does Not Equal (ne)
Starts With (sw)
Any alphanumeric string.
adminName Contains (cont)
Equals(eq)
Does Not Equal (ne)
Starts With (sw)
Any alphanumeric string.
namespace Contains (cont)
Equals(eq)
Does Not Equal (ne)
Starts With (sw)
Any alphanumeric string.
inputType Contains (cont)
Equals(eq)
Does Not Equal (ne)
Starts With (sw)
YesNo
Date
DateTime
List
TextBox
TextArea
valueType Contains (cont)
Equals(eq)
Does Not Equal (ne)
Starts With (sw)
Predefined
AdminEntered
ShopperEntered
dataType Contains (cont)
Equals(eq)
Does Not Equal (ne)
Starts With (sw)
String
Number
Bool
Product
content.name Contains (cont)
Equals(eq)
Does Not Equal (ne)
Starts With (sw)
Any alphanumeric string.
createDate Equals(eq)
Does Not Equal (ne)
Greater Than (gt)
Less Than (lt)
A date/time in UTC format. You can specify just the date portion (YYYY-MM-DD) for gt or lt.
updateDate Equals(eq)
Does Not Equal (ne)
Greater Than (gt)
Less Than (lt)
A date/time in UTC format. You can specify just the date portion (YYYY-MM-DD) for gt or lt.

Products API Filters

The following API parameter and filter combinations are supported for searching products (commerce/catalog/admin/products).

If filtering on a custom attribute name, you must specify the Fully Qualified Name (FQN) of the attribute. For example, if there is a custom attribute called "color" then use the filter "tenant~color eq Red" to retrieve only the Red products.

Field Operators Possible Values
productCode Contains (cont)
Equals (eq)
Starts With (sw)
Any alphanumeric string.
productInCatalogs.catalogid In (in) A list of integers.

This is specifically supported for the Get Products API call, and allows you to search for products across multiple catalogs. Applying a filter such as ?filter=productInCatalogs.catalogid IN [1,2,3] will return all products that are in at least one of those catalogs.
content.productName Contains (cont)
Equals (eq)
Starts With (sw)
Any alphanumeric string.
categoryId Equals (eq)
Does Not Equal (ne)
Any integer.
productTypeId Equals (eq) Any integer.
isValidForProductType Equals (eq) A Boolean value specified as true or false.
hasConfigurable Options Equals (eq) A Boolean value specified as true or false.
isVariation Equals (eq) A Boolean value specified as true or false.
manageStock Equals (eq) A Boolean value specified as true or false.
mapIsProductDetailsOnly Equals (eq) A Boolean value specified as true or false.
This is specifically supported for the Get Products API call, and allows you to ignore the isProductDetailsOnly field when set to true. This means that the call will return all properties associated with the product, where otherwise this particular API endpoint may exclude some.
isRecurring Equals (eq) A Boolean value specified as true or false.
isTaxable Equals (eq) A Boolean value specified as true or false.
price.price Equals (eq)
Greater Than (gt)
Greater Than or Equal To (ge)
Less Than (lt)
Less Than or Equal To (le)
Any decimal.
productSequence Equals (eq)
Greater Than (gt)
Greater Than or Equal To (ge)
Less Than (lt)
Less Than or Equal To (le)
Any integer.
Sale Price Equals (eq)
Greater Than (gt)
Greater Than or Equal To (ge)
Less Than (lt)
Less Than or Equal To (le)
Any decimal.
createDate Equals (eq)
Greater Than (gt)
Greater Than or Equal To (ge)
Less Than (lt)
Less Than or Equal To (le)
A date/time in UTC format. You can specify just the date portion (YYYY-MM-DD) for gt or lt.
updateDate Equals (eq)
Greater Than (gt)
Greater Than or Equal To (ge)
Less Than (lt)
Less Than or Equal To (le)
A date/time in UTC format. You can specify just the date portion (YYYY-MM-DD) for gt or lt.
createBy Equals (eq) Any valid user ID.
updateBy Equals (eq) Any valid user ID.

Product Storefront Location Filter

Additionally, you can filter the storefront Product Search API by locations.

Field Operators Possible Values
locationsInStock Equals (eq)
In (in)
Any location code (eq) or array of location codes (in).

Product Type API Filters

The following API parameter and filter combinations are supported for searching product types (commerce/catalog/admin/attributedefinition/producttypes.

Field Operators Possible Values
name Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Any alphanumeric string.
id Equals (eq)
Does Not Equal (ne)
Greater Than (gt)
Less Than (lt)
Any integer.
isBaseProductType Equals (eq)
Does Not Equal (ne)
A Boolean value specified as true or false.

Returns API Filters

The following API parameter and filter combinations are supported for searching returns. Not all fields are applicable to sorting based on ascending or descending order, so the sortable parameters are also noted in the table.

Field
Operators
Possible Values Sort By?
id Equal Any valid return identifier No
returnNumber Equal (eq)
Not Equal(ne)
Any valid return number No
status Equal, Not Equal Any valid return status No
createDate Equals (eq)
Greater Than (gt)
Greater Than or Equal To (ge)
Less Than (lt)
Less Than or Equal To (le)
A date/time in UTC format. You can specify just the date portion (YYYY-MM-DD) for gt or lt. Yes
updateDate Equals (eq)
Greater Than (gt)
Greater Than or Equal To (ge)
Less Than (lt)
Less Than or Equal To (le)
A date/time in UTC format. You can specify just the date portion (YYYY-MM-DD) for gt or lt. Yes
createBy Equals (eq) Any valid user ID. No
updateBy Equals (eq) Any valid user ID. No

Subscription API Filters

The following API parameter and filter combinations are supported for searching subscription. Not all fields are applicable to sorting based on ascending or descending order, so the sortable parameters are also noted in the table.

Field Operators
Possible Values Sort By?
subscriptionId Equals (eq)
Does Not Equal (ne)
String No
Number Equals (eq)
Does Not Equal (ne)
Greater than (gt)
Greater Than or Equal To (ge)
Less than (lt)
Less Than or Equal To (le)
Integer Yes
id Equals (eq)
Does Not Equal (ne)
String No
externalId Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
String No
parentOrderId Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
siteId Equals (eq)
Does Not Equal (ne)
Integer No
tenantId Equals (eq)
Does Not Equal (ne)
Integer No
status Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String Yes
status.in Equals (eq)
Does Not Equal (ne)
Comma separated statues No
ipaddress Equals (eq)
Does Not Equal (ne)
String No
currencycode Equals (eq)
Does Not Equal (ne)
Any valid ISO currency code No
onetimeproduct Does Not Equal (ne) String No
onetimeshippingmethod.shippingmethodcode Equals (eq)
Does Not Equal (ne)
String No
websessionid Equals (eq)
Does Not Equal (ne)
Starts With (sw)
String No
channelcode Equals (eq)
Does Not Equal (ne)
Starts With (sw)
String No
visitid Equals (eq)
Does Not Equal (ne)
Starts With (sw)
String No
customerinteractiontype Equals (eq)
Does Not Equal (ne)
Starts With (sw)
String No
Email Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
billinginfo.billingcontact.firstname Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
billinginfo.billingcontact.lastnameorsurname Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
billinginfo.billingcontact.companyororganization Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
billinginfo.billingcontact.email Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
billinginfo.billingcontact.address Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
billinginfo.billingcontact.address.cityortown Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
billinginfo.billingcontact.address.countrycode Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
billinginfo.billingcontact.address.stateorprovince Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
billinginfo.billingcontact.address.postalorzipcode Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
String No
cardnumber Contains (cont)
In (in)
String No
FulfillmentInfo.FulfillmentContact.FirstName Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
FulfillmentInfo.FulfillmentContact.LastNameOrSurname Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
fulfillmentinfo.fulfillmentcontact.companyororganization Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
FulfillmentInfo.FulfillmentContact.Email Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
FulfillmentInfo.FulfillmentContact.Address.CityOrTown Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
FulfillmentInfo.FulfillmentContact.Address.CountryCode Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
FulfillmentInfo.FulfillmentContact.Address.StateOrProvince Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains Filter (cont)
In (in)
String No
fulfillmentinfo.fulfillmentcontact.address.postalorzipcode Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No

Createby

auditinfo.createby
Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains (cont)
In (in)
String No
createdate Equals (eq)
Does Not Equal (ne)
Greater than (gt)
Less than (lt)
Datetime Yes

Updateby

auditinfo.updateby
Equals (eq)
Does Not Equal (ne)
Starts With (sw)
Contains Filter (cont)
In Filter (in)
String No
updatedate Equals (eq)
Does Not Equal (ne)
Greater than (gt)
Greater Than or Equal To (ge)
Less than (lt)
Less Than or Equal To (le)
Datetime No
items.mfgpartno Equals (eq)
Does Not Equal (ne)
Start With (sw)
String No
Items.UPC Equals (eq)
Does Not Equal (ne)
Start With (SW)
String No
UserId Equals (eq)
Does Not Equal (ne)
String No
total Equals (eq)
Does Not Equal (ne)
Greater than (gt)
Greater Than or Equal To (ge)
Less than (lt)
Less Than or Equal To (le)
Any decimal
Yes
Submitteddate Equals (eq)
Does Not Equal (ne)
Greater than (gt)
Less than (lt)
Datetime Yes
CustomerAccountId Equals (eq)
Does Not Equal (ne)
In Filter (in
Integer No
Frequency.Unit Equals (eq)
Does Not Equal (ne)
String No
Frequency.Value Equals (eq)
Does Not Equal (ne)
Greater than (gt)
Greater Than or Equal To (ge)
Less than (lt)
Less Than or Equal To (le)
Integer No
NextOrderDate Equals (eq)
Does Not Equal (ne)
Greater than (gt)
Greater Than or Equal To (ge)
Less than (lt)
Less Than or Equal To (le)
Datetime Yes
Subtotal Equal (eq)
Not Equal (ne)
Greater Than (gt)
Greater Than Or Equal To (ge)
Less Than Or Equal (lt)
Any decimal Yes
Attributes.Name

 Equals (eq)

Does Not Equal (ne)

This matches the fully qualified name of the customer account attribute. No
Attributes.Id Equals (eq)
Does Not Equal (ne)
Less Than (It)
Less Than or Equal To (le)
Greater Than (gt)
Greater Than or Equal To (ge)
Any integer  No
Attributes.AttributeDefinitionId Equals (eq)
Does Not Equal (ne)
Less Than (It)
Less Than or Equal To (le)
Greater Than (gt)
Greater Than or Equal To (ge)
Any integer  No
Attributes.Value Equals (eq)
Does Not Equal (ne) 
Depend on the data type of the attribute. Supported types are string, date/time, decimal, and Boolean. No