Find request
The Find API is in phase and is not yet available to users. You can contact the Product-Live team at contact@product-live.com if you want more details and get an early access.
Introduction
To facilite the search of entities with the Product-Live APIs, the Find APIs enable you to get a list of entities matching one or multiple criteria. You can apply the same filtering logic on multiple endpoints:
Find query body
Depending on the number of filters you want to apply, you need to write the query body as below. When you want to apply multiple criterias, you can define if you want all of the criteria to be matched (AND
), or one or the other set of criterias (OR
).
json
{
"type": "search",
"caseSensitive": true,
"field": "name",
"value": "RETAIL"
}
1
2
3
4
5
6
2
3
4
5
6
json
{
"type": "and",
"queries": [
{
"type": "search",
"caseSensitive": true,
"field": "name",
"value": "RETAIL"
},
{
"type": "greaterOrEqual",
"caseSensitive": true,
"field": "createdAt",
"value": "2021-12-30T10:17:29.000Z"
}
]
}
```json[Multiple criterias (or)]
{
"type": "or",
"queries": [
{
"type": "eq",
"caseSensitive": true,
"field": "name",
"value": "RETAILX"
},
{
"type": "eq",
"caseSensitive": true,
"field": "name",
"value": "BRANDX"
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Property | Type | Description |
---|---|---|
type | enumeration | Mandatory if multiples criteria are defined Either and or or |
queries.type | enumeration | Mandatory The search operator See the list of operators here |
queries.caseSensitive | boolean | Is the search is casesenstive or not By default : false |
queries.field | string | Mandatory The field key of the entity to search for See more detail for each entity here |
queries.value | object/string/number | Mandatory Depending on the operator See more details here |
Operators
Operator | Expected field value | Description |
---|---|---|
eq | string/number/boolean | Check if the entity field value is exactly the value |
search | string | Check if the entity field value contains the value |
in | object | Check if the entity field value is one of the value If the list of value is empty, an error is returned |
true | none | Returns all results no matter what |
false | non | Returns no results no mater what |
greater | string/number | Check if the entity field value is exactly greater than the value |
greaterOrEqual | string/number | Check if the entity field value is greater or equal to the value |
lower | string/number | Check if the entity field value is exactly lower than the value |
lowerOrEqual | string/number | Check if the entity field value is exactly lower or equal to the value |
json
{
"type": "eq",
"field": "EAN",
"value": "0193015344471"
}
1
2
3
4
5
2
3
4
5
json
{
"type": "eq",
"field": "PRICE",
"value": "89,99"
}
1
2
3
4
5
2
3
4
5
json
{
"type": "search",
"field": "COMPOSITION",
"value": "WHOOL"
}
1
2
3
4
5
2
3
4
5
json
{
"type": "in",
"field": "COLOR",
"value": ["YELLOW","GOLD"]
}
1
2
3
4
5
2
3
4
5
json
{
"type": "greater",
"field": "HEIGHT",
"value": 100
}
1
2
3
4
5
2
3
4
5
TIP
When searching for an entity on an exact createdAt or updatedAt date, you must use the "caseSensitive": true
parameter.
Accounts
More details on the Content Management Accounts API here.
json
{
"object": "account",
"id": "2490",
"createdAt": "2021-12-30T10:17:29.000Z",
"updatedAt": "2021-12-30T10:17:29.000Z",
"key": "2e729b23-f04b-447d-ba7b-4ecb72d804f9",
"name": "RETAILX"
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Searchable field | Supported operator | Example |
---|---|---|
createdAt | eq/greater/greaterOrEqual/lower/lowerOrEqual | {"type": "eq","field": "createdAt","value": "2021-12-30T10:17:29.000Z"} |
id | eq/search/in | {"type": "eq","field": "id","value": "2490"} {"type": "search","field": "id","value": "2490"} {"type": "in","field": "id","value": ["2490"]} |
key | eq/search/in | {"type": "eq","field": "key","value": "2e729b23-f04b-447d-ba7b-4ecb72d804f9"} {"type": "in","field": "key","value": ["2e729b23-f04b-447d-ba7b-4ecb72d804f9"]} |
name | eq/search/in | {"type": "eq","field": "name","value": "RETAILX"} {"type": "in","field": "name","value": ["RETAILX"]} |
updatedAt | eq/greater/greaterOrEqual/lower/lowerOrEqual | {"type": "eq","field": "updatedAt","value": "2021-12-30T10:17:29.000Z"} |
Comment Threads
More details on the Content Management Comment Threads API here.
json
{
"comments": [
{
"creationDate": "2023-11-27T13:12:29.947Z",
"type": "TEXT",
"id": "656495bdea57cd0db4b0682d",
"accountName": "RETAILX",
"userId": "5443",
"message": "Good morning,\nWould it be possible to clarify the product description?\nTHANKS"
}
],
"type": "DEFAULT",
"object": "comment_thread",
"id": "170",
"createdAt": "2023-11-27T13:12:29.000Z",
"updatedAt": "2023-11-27T13:12:29.000Z",
"accountAssigneesId": [
"2490"
],
"subscribersId": [
"39"
],
"isClosed": false,
"accountId": "2482",
"userId": "5443",
"targetId": "13675",
"targetType": "suggestion"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Searchable field | Supported operator | Example |
---|---|---|
accountId | eq/search/in | {"type": "eq","field": "accountId","value": "2482"} {"type": "search","field": "accountId","value": "2482"} {"type": "in","field": "accountId","value": ["2482"]} |
assigneeId | eq/search/in | {"type": "eq","field": "assigneeId","value": "2490"} {"type": "search","field": "assigneeId","value": "2490"} {"type": "in","field": "assigneeId","value": ["2490"]} |
createdAt | eq/greater/greaterOrEqual/lower/lowerOrEqual | {"type": "eq","field": "createdAt","value": "2021-12-30T10:17:29.000Z"} |
id | eq/search/in | {"type": "eq","field": "id","value": "170"} {"type": "search","field": "id","value": "170"} {"type": "in","field": "id","value": ["170"]} |
isclosed | eq/in | {"type": "eq","field": "isclosed","value": "false"} {"type": "in","field": "isclosed","value": ["false"]} |
subscribersId | eq/search/in | {"type": "eq","field": "subscribersId","value": "39"} {"type": "search","field": "subscribersId","value": "39"} {"type": "in","field": "subscribersId","value": ["39"]} |
targetId (suggestionId) | eq/search/in | {"type": "eq","field": "id","value": "13675"} {"type": "search","field": "id","value": "13675"} {"type": "in","field": "id","value": ["13675"]} |
updatedAt | eq/greater/greaterOrEqual/lower/lowerOrEqual | {"type": "eq","field": "updatedAt","value": "2021-12-30T10:17:29.000Z"} |
userId | eq/search/in | {"type": "eq","field": "userId","value": "5443"} {"type": "search","field": "userId","value": "5443"} {"type": "in","field": "userId","value": ["5443"]} |
Comment Thread Subscribers
More details on the Content Management Comment Thread Subscribers API here.
json
{
"object": "comment_thread_subscriber",
"id": "39",
"updatedAt": "2023-11-27T13:12:29.000Z",
"createdAt": "2023-11-27T13:12:29.000Z",
"accountId": "2482",
"userId": "5443",
"commentThreadId": "170"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Searchable field | Supported operator | Example |
---|---|---|
accountId | eq/search/in | {"type": "eq","field": "accountId","value": "2482"} {"type": "search","field": "accountId","value": "2482"} {"type": "in","field": "accountId","value": ["2482"]} |
commentThreadId | eq/search/in | {"type": "eq","field": "commentThreadId","value": "170"} {"type": "search","field": "commentThreadId","value": "170"} {"type": "in","field": "commentThreadId","value": ["170"]} |
createdAt | eq/greater/greaterOrEqual/lower/lowerOrEqual | {"type": "eq","field": "createdAt","value": "2021-12-30T10:17:29.000Z"} |
id | eq/search/in | {"type": "eq","field": "id","value": "39"} {"type": "search","field": "id","value": "39"} {"type": "in","field": "id","value": ["39"]} |
updatedAt | eq/greater/greaterOrEqual/lower/lowerOrEqual | {"type": "eq","field": "updatedAt","value": "2021-12-30T10:17:29.000Z"} |
userId | eq/search/in | {"type": "eq","field": "userId","value": "5443"} {"type": "search","field": "userId","value": "5443"} {"type": "in","field": "userId","value": ["5443"]} |
Items
More details on the Content Management Items API here.
json
{
"fields": {
"EAN": {
"id": "314719",
"type": "IDENTIFIER",
"value": {
"data": "8710103533825"
}
},
"BRAND_CODE": {
"id": "315359",
"type": "SINGLE_SELECT",
"value": {
"data": "BRANDX"
}
},
"SUPPLIER_CODE": {
"id": "316912",
"type": "SINGLE_SELECT",
"value": {
"data": "SUPPLIERX"
}
}
},
"parent": null,
"children": null,
"object": "item",
"id": "391432",
"createdAt": "2021-01-25T08:57:13.000Z",
"updatedAt": "2021-01-26T15:35:33.000Z",
"itemMetadata": {
"createdAt": "2021-01-25T08:57:13.000Z",
"updatedAt": "2021-01-26T15:35:33.000Z",
"tableId": "154",
"tableKey": "A06_PRODUCTS",
"tableOwnerAccountId": "69",
"levelId": "170",
"levelKey": "PRODUCT",
"partitionId": "280"
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Searchable field | Supported operator | Example |
---|---|---|
id | eq/search/in | {"type": "eq","field": "id","value": "391432"} {"type": "search","field": "id","value": "391432"} {"type": "in","field": "id","value": ["391432"]} |
item.fields | eq/search/in | {"type": "eq","field": {"target": "item.fields","key": "EAN"},"value": "8710103533825"} {"type": "search","field": {"target": "item.fields","key": "EAN"},"value": "8710103533825"} {"type": "in","field": {"target": "item.fields","key": "EAN"},"value": ["8710103533825"]} |
WARNING
You can search for items using fields key and value, but this is limited to the IDENTIFIER
.
Item Links
More details on the Content Management Item Links API here.
json
{
"object": "item_link",
"id": "88",
"updatedAt": "2024-07-17T15:42:11.000Z",
"createdAt": "2024-07-17T15:42:11.000Z",
"fromItemId": "90684",
"toItemId": "90688"
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Searchable field | Supported operator | Example |
---|---|---|
id | eq/search/in | {"type": "eq","field": "id","value": "88"} {"type": "search","field": "id","value": "88"} {"type": "in","field": "id","value": ["88"]} |
fromItemId | eq/search/in | {"type": "eq","field": "fromItemId","value": "90684"} {"type": "search","field": "fromItemId","value": "90684"} {"type": "in","field": "fromItemId","value": ["90684"]} |
toItemId | eq/search/in | {"type": "eq","field": "toItemId","value": "90688"} {"type": "search","field": "toItemId","value": "90688"} {"type": "in","field": "toItemId","value": ["90688"]} |
Job Executions
More details on the Content Management Job Executions API here.
json
{
"object": "list",
"data": [
{
"object": "job_execution",
"jobId": "65819ba43ad5b963658ab35d",
"id": "658445e23ad5b929948ab731",
"pipelineId": "6582b5fb7bcba4a7a1147473",
"createdAt": "2023-12-21T14:04:18.511Z",
"endedAt": "2023-12-21T14:04:34.359Z",
"input": {
"context": {
"jobAccountId": "2629",
"jobId": "65819ba43ad5b963658ab35d",
"userShardId": "2629",
"userAccountId": "2629",
"userId": "5443"
}
},
"startedAt": "2023-12-21T14:04:18.469Z",
"status": "COMPLETED",
"output": {
"subWorkflowId": "0cc9caaa-01f7-44cc-be89-2e34181d248e",
"report": {
"url": "https://app.product-live.com/data-factory/2629/download/98d345609f420b36b4296849498f5692fe655518110e7b174456d921ab32b4e2/report.xml",
"filename": "report.xml"
}
},
"info": {
"title": "Import Schema"
}
}
],
"totalElements": 12
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Searchable field | Supported operator | Example |
---|---|---|
jobId | eq/search/in | {"type": "eq","field": "id","value": "1"} {"type": "in","field": "id","value": ["1", "2"]} |
id | eq/search/in | {"type": "eq","field": "id","value": "658445e23ad5b929948ab731"} {"type": "search","field": "id","value": "1"} {"type": "in","field": "id","value": ["1", "2"]} |
pipelineId | eq/search/in | {"type": "eq","field": "pipelineId","value": "6582b5fb7bcba4a7a1147473"} {"type": "search","field": "pipelineId","value": "1"} {"type": "in","field": "pipelineId","value": ["1", "2"]} |
createdAt | eq/greater/greaterOrEqual/lower/lowerOrEqual | {"type": "greater","field": "createdAt","value": "2024-04-17T00:00:00.000Z"} |
status | eq/search/in | {"type": "eq","field": "status","value": "COMPLETED"} {"type": "in","field": "status","value": ["COMPLETED"]} |
Publications
More details on the Content Management Publications API here.
json
{
"object": "publication",
"id": "38643",
"updatedAt": "2024-05-17T07:39:23.000Z",
"createdAt": "2024-05-17T07:38:54.000Z",
"sentAt": "2024-05-17T07:38:54.000Z",
"fromItemId": "80303",
"toAccountId": "6326",
"tableId": "1353",
"partitionId": "2342",
"screenId": "7421",
"status": "RECEIVED",
"fields": {
"EAN": {
"id": "238",
"type": "IDENTIFIER",
"value": "3610011803438"
},
"TYPOLOGY": {
"id": "241",
"type": "CLASSIFICATION",
"value": "FRIDGE"
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Searchable field | Supported operator | Example |
---|---|---|
createdAt | greater/greaterOrEqual/lower/lowerOrEqual | {"type": "greaterOrEqual","field": "createdAt","value": "2024-05-17T07:39:23.000Z"} |
id | eq/search/in | {"type": "eq","field": "id","value": "38643"} {"type": "search","field": "id","value": "38643"} {"type": "in","field": "id","value": ["38643"]} |
fromItemId | eq/in | {"type": "eq","field": "fromItemId","value": "80303"} {"type": "in","field": "fromItemId","value": ["80303"]} |
partitionId | eq/in | {"type": "eq","field": "partitionId","value": "2342"} {"type": "in","field": "partitionId","value": ["2342"]} |
screenId | eq/in | {"type": "eq","field": "screenId","value": "7421"} {"type": "in","field": "screenId","value": ["7421"]} |
sentAt | greater/greaterOrEqual/lower/lowerOrEqual | {"type": "greaterOrEqual","field": "sentAt","value": "2024-05-17T07:39:23.000Z"} |
status | eq/search/in | {"type": "eq","field": "status","value": "RECEIVED"} {"type": "search","field": "status","value": "RECEIVED"} {"type": "in","field": "status","value": ["SENT","RECEIVED","REJECTED"]} |
tableId | eq/in | {"type": "eq","field": "tableId","value": "1353"} {"type": "in","field": "tableId","value": ["1353"]} |
toAccountId | eq/search/in | {"type": "eq","field": "toAccountId","value": "6326"} {"type": "search","field": "toAccountId","value": "6326"} {"type": "in","field": "toAccountId","value": ["6326"]} |
updatedAt | greater/greaterOrEqual/lower/lowerOrEqual | {"type": "greaterOrEqual","field": "updatedAt","value": "2024-05-17T07:38:54.000Z"} |
TIP
Depending on whether you are the emitter or receiver of publications, you will be able to see publications of specific status.
If you are the sender of publications, you can see "SENT", "RECEIVED" and "REJECTED" publications you have sent. If you are the receiver of publications, you can only see "SENT" publications you have received.
Suggestions
More details on the Content Management Suggestions API here.
json
{
"object": "suggestion",
"id": "2185",
"updatedAt": "2022-05-13T07:54:59.000Z",
"createdAt": "2022-05-13T07:54:55.000Z",
"toItemId": "1958624",
"hasCreatedItem": true,
"isAcknowledged": false,
"fromAccountId": "3568",
"fields": {
"EAN": {
"id": "1526709",
"type": "IDENTIFIER",
"value": "8710103533825"
}
},
"deletedFields": [
{
"id": "1749364",
"type": "DESIGNATION",
"key": "SINGLE-LINE-TEXT"
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Searchable field | Supported operator | Example |
---|---|---|
createdAt | eq/greater/greaterOrEqual/lower/lowerOrEqual | {"type": "eq","field": "createdAt","value": "2021-12-30T10:17:29.000Z"} |
fromAccountId | eq/search/in | {"type": "eq","field": "fromAccountId","value": "3568"} {"type": "search","field": "fromAccountId","value": "3568"} {"type": "in","field": "fromAccountId","value": ["3568"]} |
id | eq/search/in | {"type": "eq","field": "id","value": "2185"} {"type": "search","field": "id","value": "2185"} {"type": "in","field": "id","value": ["2185"]} |
hasCreatedItem | eq | {"type": "eq","field": "hasCreatedItem","value": true} |
isAcknowledged | eq | {"type": "eq","field": "isAcknowledged","value": false} |
toItemId | eq/search/in | {"type": "eq","field": "toItemId","value": "1958624"} {"type": "search","field": "toItemId","value": "1958624"} {"type": "in","field": "toItemId","value": ["1958624"]} |
updatedAt | eq/greater/greaterOrEqual/lower/lowerOrEqual | {"type": "eq","field": "updatedAt","value": "2021-12-30T10:17:29.000Z"} |
Users
More details on the Content Management Users API here.
json
{
"object": "user",
"id": "5443",
"createdAt": "2021-09-15T13:14:41.000Z",
"updatedAt": "2024-02-07T10:54:15.000Z",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@retailx.com",
"status": "ACTIVE",
"role": "EDITOR"
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Searchable field | Supported operator | Example |
---|---|---|
createdAt | eq/greater/greaterOrEqual/lower/lowerOrEqual | {"type": "eq","field": "createdAt","value": "2021-09-15T13:14:41.000Z"} |
id | eq/search/in | {"type": "eq","field": "id","value": "5443"} {"type": "search","field": "id","value": "5443"} {"type": "in","field": "id","value": ["5443"]} |
updatedAt | eq/greater/greaterOrEqual/lower/lowerOrEqual | {"type": "eq","field": "updatedAt","value": "2024-02-07T10:54:15.000Z"} |
status | eq/in | {"type": "eq","field": "status","value": "ACTIVE"} {"type": "in","field": "status","value": ["ACTIVE"]} |
firstName | eq/search/in | {"type": "eq","field": "firstName","value": "John"} {"type": "search","field": "firstName","value": "John"} {"type": "in","field": "firstName","value": ["John"]} |
lastName | eq/search/in | {"type": "eq","field": "lastName","value": "Doe"} {"type": "search","field": "lastName","value": "Doe"} {"type": "in","field": "lastName","value": ["Doe"]} |
eq/search/in | {"type": "eq","field": "email","value": "john.doe@retailx.com"} {"type": "search","field": "email","value": "john.doe@retailx.com"} {"type": "in","field": "email","value": ["john.doe@retailx.com"]} |
Variables
More details on the Data Factory Variables API here.
json
{
"status": "ACTIVE",
"object": "variable",
"id": "<REDACTED>",
"createdAt": "2020-01-01T12:00:00.000Z",
"updatedAt": "2020-01-02T12:00:00.000Z",
"name": "string",
"key": "string",
"value": "<REDACTED>",
"secret": true
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Searchable field | Supported operator | Example |
---|---|---|
status | eq/in | {"type": "eq","field": "status","value": "ACTIVE"} {"type": "in","field": "status","value": ["ACTIVE"]} |
id | eq/search/in | {"type": "eq","field": "id","value": "126"} {"type": "search","field": "id","value": "126"} {"type": "in","field": "id","value": ["126"]} |
createdAt | eq/greater/greaterOrEqual/lower/lowerOrEqual | {"type": "eq","field": "createdAt","value": "2020-01-01T12:00:00.000Z"} |
updatedAt | eq/greater/greaterOrEqual/lower/lowerOrEqual | {"type": "eq","field": "updatedAt","value": "2020-01-01T12:00:00.000Z"} |
name | eq/search/in | {"type": "eq","field": "name","value": "FTP Host"} {"type": "in","field": "name","value": ["FTP Host"]} |
key | eq/search/in | {"type": "eq","field": "key","value": "ftp_host"} {"type": "in","field": "key","value": ["ftp_host"]} |
value | eq/search/in | {"type": "eq","field": "value","value": "my_host.com"} {"type": "in","field": "value","value": ["my_host.com"]} |
secret | eq/in | {"type": "eq","field": "secret","secret": "true"} {"type": "in","field": "secret","value": ["true"]} |