Search products
curl --request POST \
--url https://sg.sandbox.api.reap.global/agentic/products/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Reap-Version: <reap-version>' \
--data '
{
"query": "<string>",
"context": {
"country": "<string>",
"currency": "<string>"
},
"filters": {
"price": {
"min": "<string>",
"max": "<string>"
},
"availability": "AVAILABLE_ONLY"
},
"pagination": {
"cursor": "<string>",
"limit": 25
}
}
'const options = {
method: 'POST',
headers: {
'Reap-Version': '<reap-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
query: '<string>',
context: {country: '<string>', currency: '<string>'},
filters: {price: {min: '<string>', max: '<string>'}, availability: 'AVAILABLE_ONLY'},
pagination: {cursor: '<string>', limit: 25}
})
};
fetch('https://sg.sandbox.api.reap.global/agentic/products/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sg.sandbox.api.reap.global/agentic/products/search"
payload = {
"query": "<string>",
"context": {
"country": "<string>",
"currency": "<string>"
},
"filters": {
"price": {
"min": "<string>",
"max": "<string>"
},
"availability": "AVAILABLE_ONLY"
},
"pagination": {
"cursor": "<string>",
"limit": 25
}
}
headers = {
"Reap-Version": "<reap-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "<string>",
"products": [
{
"id": "<string>",
"merchant": {
"name": "<string>"
},
"name": "<string>",
"priceRange": {
"min": {
"amount": 123,
"currency": "<string>"
},
"max": {
"amount": 123,
"currency": "<string>"
}
},
"imageUrl": "<string>",
"available": true,
"previewVariant": {
"id": "<string>",
"price": {
"amount": 123,
"currency": "<string>"
},
"name": "<string>",
"available": true
}
}
],
"pagination": {
"nextCursor": "<string>",
"hasNextPage": true,
"returnedCount": 0
},
"warnings": [
"<string>"
]
}{
"error": {
"code": "AGENTIC_REQUEST_REJECTED",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "AGENTIC_PAYMENTS_NOT_ENABLED",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "AGENTIC_RESOURCE_NOT_FOUND",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "AGENTIC_SERVICE_UNAVAILABLE",
"message": "<string>",
"detail": {}
}
}Agentic
Search products
Searches merchant catalogs for products matching a free-text query, with optional merchant preference and result filters. Use POST /agentic/products/details on a result to resolve its purchasable variants.
POST
/
agentic
/
products
/
search
Search products
curl --request POST \
--url https://sg.sandbox.api.reap.global/agentic/products/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Reap-Version: <reap-version>' \
--data '
{
"query": "<string>",
"context": {
"country": "<string>",
"currency": "<string>"
},
"filters": {
"price": {
"min": "<string>",
"max": "<string>"
},
"availability": "AVAILABLE_ONLY"
},
"pagination": {
"cursor": "<string>",
"limit": 25
}
}
'const options = {
method: 'POST',
headers: {
'Reap-Version': '<reap-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
query: '<string>',
context: {country: '<string>', currency: '<string>'},
filters: {price: {min: '<string>', max: '<string>'}, availability: 'AVAILABLE_ONLY'},
pagination: {cursor: '<string>', limit: 25}
})
};
fetch('https://sg.sandbox.api.reap.global/agentic/products/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sg.sandbox.api.reap.global/agentic/products/search"
payload = {
"query": "<string>",
"context": {
"country": "<string>",
"currency": "<string>"
},
"filters": {
"price": {
"min": "<string>",
"max": "<string>"
},
"availability": "AVAILABLE_ONLY"
},
"pagination": {
"cursor": "<string>",
"limit": 25
}
}
headers = {
"Reap-Version": "<reap-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "<string>",
"products": [
{
"id": "<string>",
"merchant": {
"name": "<string>"
},
"name": "<string>",
"priceRange": {
"min": {
"amount": 123,
"currency": "<string>"
},
"max": {
"amount": 123,
"currency": "<string>"
}
},
"imageUrl": "<string>",
"available": true,
"previewVariant": {
"id": "<string>",
"price": {
"amount": 123,
"currency": "<string>"
},
"name": "<string>",
"available": true
}
}
],
"pagination": {
"nextCursor": "<string>",
"hasNextPage": true,
"returnedCount": 0
},
"warnings": [
"<string>"
]
}{
"error": {
"code": "AGENTIC_REQUEST_REJECTED",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "AGENTIC_PAYMENTS_NOT_ENABLED",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "AGENTIC_RESOURCE_NOT_FOUND",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "AGENTIC_SERVICE_UNAVAILABLE",
"message": "<string>",
"detail": {}
}
}Authorizations
API key as Bearer token
Headers
API version (YYYY-MM-DD)
Available options:
2025-02-14 Example:
"2025-02-14"
Body
application/jsonapplication/x-www-form-urlencodedmultipart/form-data