Create quote
curl --request POST \
--url https://sg.sandbox.api.reap.global/agentic/quotes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'Reap-Version: <reap-version>' \
--data '
{
"items": [
{
"variantId": "<string>",
"quantity": 123
}
],
"email": "<string>"
}
'const options = {
method: 'POST',
headers: {
'Reap-Version': '<reap-version>',
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({items: [{variantId: '<string>', quantity: 123}], email: '<string>'})
};
fetch('https://sg.sandbox.api.reap.global/agentic/quotes', 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/quotes"
payload = {
"items": [
{
"variantId": "<string>",
"quantity": 123
}
],
"email": "<string>"
}
headers = {
"Reap-Version": "<reap-version>",
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "<string>",
"shippingOptions": [
{
"id": "<string>",
"name": "<string>",
"selected": true,
"price": {
"amount": 123,
"currency": "<string>"
},
"details": [
{
"key": "<string>",
"value": "<string>"
}
]
}
],
"amountBreakdown": {
"itemsSubtotal": {
"amount": 123,
"currency": "<string>"
},
"discounts": [
{
"name": "<string>",
"amount": {
"amount": 123,
"currency": "<string>"
}
}
],
"additionalCharges": [
{
"name": "<string>",
"amount": {
"amount": 123,
"currency": "<string>"
}
}
],
"finalAmount": {
"amount": 123,
"currency": "<string>"
},
"shipping": {
"amount": 123,
"currency": "<string>"
},
"tax": {
"amount": {
"amount": 123,
"currency": "<string>"
},
"includedInPrices": true
}
},
"expiresAt": "<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
Create quote
Opens and prices a merchant checkout for the chosen product variants; prices always come from the merchant. The response itemizes the total and lists the available shipping options. Quotes are short-lived: create the checkout before expiresAt passes, or open a fresh quote. shippingAddress is required when any item requires shipping.
POST
/
agentic
/
quotes
Create quote
curl --request POST \
--url https://sg.sandbox.api.reap.global/agentic/quotes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'Reap-Version: <reap-version>' \
--data '
{
"items": [
{
"variantId": "<string>",
"quantity": 123
}
],
"email": "<string>"
}
'const options = {
method: 'POST',
headers: {
'Reap-Version': '<reap-version>',
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({items: [{variantId: '<string>', quantity: 123}], email: '<string>'})
};
fetch('https://sg.sandbox.api.reap.global/agentic/quotes', 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/quotes"
payload = {
"items": [
{
"variantId": "<string>",
"quantity": 123
}
],
"email": "<string>"
}
headers = {
"Reap-Version": "<reap-version>",
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "<string>",
"shippingOptions": [
{
"id": "<string>",
"name": "<string>",
"selected": true,
"price": {
"amount": 123,
"currency": "<string>"
},
"details": [
{
"key": "<string>",
"value": "<string>"
}
]
}
],
"amountBreakdown": {
"itemsSubtotal": {
"amount": 123,
"currency": "<string>"
},
"discounts": [
{
"name": "<string>",
"amount": {
"amount": 123,
"currency": "<string>"
}
}
],
"additionalCharges": [
{
"name": "<string>",
"amount": {
"amount": 123,
"currency": "<string>"
}
}
],
"finalAmount": {
"amount": 123,
"currency": "<string>"
},
"shipping": {
"amount": 123,
"currency": "<string>"
},
"tax": {
"amount": {
"amount": 123,
"currency": "<string>"
},
"includedInPrices": true
}
},
"expiresAt": "<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"
Unique key for safely retrying this request. Up to 255 characters; we recommend a UUIDv4. The first request executes and its response is cached; subsequent requests with the same key replay the cached response (24h retention).
Required string length:
1 - 255Body
application/jsonapplication/x-www-form-urlencodedmultipart/form-data
Response
Response for status 200
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$