MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>

Authenticating requests

This API is not authenticated.

Address

Get list of address by customer

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/addresses" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/addresses"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/addresses

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Create new address for customer

requires authentication

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/addresses" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"John Doe\",
    \"email\": \"[email protected]\",
    \"phone\": \"0123456789\",
    \"country\": \"United States or US\",
    \"state\": \"California\",
    \"city\": \"Los Angeles\",
    \"address\": \"123 Main St\",
    \"is_default\": true,
    \"zip_code\": \"90001\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/addresses"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "John Doe",
    "email": "[email protected]",
    "phone": "0123456789",
    "country": "United States or US",
    "state": "California",
    "city": "Los Angeles",
    "address": "123 Main St",
    "is_default": true,
    "zip_code": "90001"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "id": 1,
        "name": "John Doe",
        "phone": "0123456789",
        "email": "[email protected]",
        "country": "United States",
        "state": "California",
        "city": "Los Angeles",
        "address": "123 Main St",
        "zip_code": "90001",
        "is_default": true
    },
    "message": null
}
 

Request      

POST api/v1/ecommerce/addresses

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

The name of the address owner. Example: John Doe

email   string   

The email address. Example: [email protected]

phone   string   

The phone number. Example: 0123456789

country   string  optional  

The country name or country code. Example: United States or US

state   string  optional  

The state/province name. Example: California

city   string  optional  

The city name. Example: Los Angeles

address   string  optional  

The street address. Example: 123 Main St

is_default   boolean  optional  

Set as default address. Example: true

zip_code   string  optional  

The postal/zip code. Example: 90001

Update an address

requires authentication

Example request:
curl --request PUT \
    "https://nest.botble.com/api/v1/ecommerce/addresses/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"John Doe\",
    \"email\": \"[email protected]\",
    \"phone\": \"0123456789\",
    \"country\": \"United States or US\",
    \"state\": \"California\",
    \"city\": \"Los Angeles\",
    \"address\": \"123 Main St\",
    \"is_default\": true,
    \"zip_code\": \"90001\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/addresses/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "John Doe",
    "email": "[email protected]",
    "phone": "0123456789",
    "country": "United States or US",
    "state": "California",
    "city": "Los Angeles",
    "address": "123 Main St",
    "is_default": true,
    "zip_code": "90001"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "id": 1,
        "name": "John Doe",
        "phone": "0123456789",
        "email": "[email protected]",
        "country": "United States",
        "state": "California",
        "city": "Los Angeles",
        "address": "123 Main St",
        "zip_code": "90001",
        "is_default": true
    },
    "message": null
}
 

Request      

PUT api/v1/ecommerce/addresses/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the address. Example: 1

Body Parameters

name   string   

The name of the address owner. Example: John Doe

email   string   

The email address. Example: [email protected]

phone   string   

The phone number. Example: 0123456789

country   string  optional  

The country name or country code. Example: United States or US

state   string   

The state/province name. Example: California

city   string   

The city name. Example: Los Angeles

address   string   

The street address. Example: 123 Main St

is_default   boolean  optional  

Set as default address. Example: true

zip_code   string  optional  

The postal/zip code. Example: 90001

Delete an address

requires authentication

Example request:
curl --request DELETE \
    "https://nest.botble.com/api/v1/ecommerce/addresses/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/addresses/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": null,
    "message": "Address deleted successfully"
}
 

Request      

DELETE api/v1/ecommerce/addresses/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the address. Example: 1

Get list of available countries

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/countries" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/countries"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": [
        {
            "name": "Vietnam",
            "code": "VN"
        }
    ],
    "message": null
}
 

Request      

GET api/v1/ecommerce/countries

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Ads

Get ads

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ads?keys[]=homepage-banner&keys[]=sidebar-banner" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keys\": [
        \"homepage-banner\",
        \"sidebar-banner\"
    ]
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ads"
);

const params = {
    "keys[0]": "homepage-banner",
    "keys[1]": "sidebar-banner",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keys": [
        "homepage-banner",
        "sidebar-banner"
    ]
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": false,
    "data": [],
    "message": null
}
 

Request      

GET api/v1/ads

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

keys   string[]  optional  

Array of ad keys to filter by.

Body Parameters

keys   string[]  optional  

Array of ad keys to filter by.

Authentication

Register

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/register" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"John\",
    \"last_name\": \"Smith\",
    \"name\": \"architecto\",
    \"email\": \"[email protected]\",
    \"password\": \"|]|{+-\",
    \"phone\": \"architecto\",
    \"password_confirmation\": \"architecto\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/register"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "first_name": "John",
    "last_name": "Smith",
    "name": "architecto",
    "email": "[email protected]",
    "password": "|]|{+-",
    "phone": "architecto",
    "password_confirmation": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": null,
    "message": "Registered successfully! We emailed you to verify your account!"
}
 

Example response (422):


{
    "message": "The given data was invalid.",
    "errors": {
        "name": [
            "The name field is required."
        ],
        "email": [
            "The email field is required."
        ],
        "password": [
            "The password field is required."
        ]
    }
}
 

Request      

POST api/v1/register

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

first_name   string  optional  

The first name of the user. This field is required when name is not present. Must not be greater than 120 characters. Must be at least 2 characters. Example: John

last_name   string  optional  

The last name of the user. This field is required when name is not present. Must not be greater than 120 characters. Must be at least 2 characters. Example: Smith

name   string   

The name of the user. Example: architecto

email   string   

The email of the user. Example: [email protected]

password   string   

The password of user to create. Example: |]|{+-

phone   string   

The phone of the user. Example: architecto

password_confirmation   string   

The password confirmation. Example: architecto

Login

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\",
    \"password\": \"|]|{+-\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/login"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "[email protected]",
    "password": "|]|{+-"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "token": "1|aF5s7p3xxx1lVL8hkSrPN72m4wPVpTvTs..."
    },
    "message": null
}
 

Request      

POST api/v1/login

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

email   string   

The email of the user. Example: [email protected]

password   string   

The password of user to create. Example: |]|{+-

Check email existing or not

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/email/check" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/email/check"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "[email protected]"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "exists": true
    },
    "message": null
}
 

Request      

POST api/v1/email/check

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

email   string   

The email of the user. Example: [email protected]

Forgot password

Send a reset link to the given user.

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/password/forgot" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/password/forgot"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "[email protected]"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/password/forgot

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

email   string   

The email of the user. Example: [email protected]

Resend email verification

Resend the email verification notification.

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/resend-verify-account-email" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/resend-verify-account-email"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "[email protected]"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/resend-verify-account-email

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

email   string   

The email of the user. Example: [email protected]

Logout

requires authentication

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/logout" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/logout"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/logout

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Blog

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/search" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"q\": \"architecto\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/search"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "q": "architecto"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "No results found, please try with different keywords."
}
 

List posts

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/posts" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/posts"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [
        {
            "id": 1,
            "name": "4 Expert Tips On How To Choose The Right Men’s Wallet",
            "slug": "4-expert-tips-on-how-to-choose-the-right-mens-wallet",
            "description": "You should pay more attention when you choose your wallets. There are a lot of them on the market with the different designs and styles. When you choose carefully, you would be able to buy a wallet that is catered to your needs. Not to mention that it will help to enhance your style significantly.",
            "image": "https://nest.botble.com/storage/news/1.png",
            "categories": [
                {
                    "id": 1,
                    "name": "Ecommerce",
                    "slug": "ecommerce",
                    "url": "https://nest.botble.com/blog/ecommerce",
                    "description": "Aut eveniet dolorem nulla non minima sit autem rerum. Nam eveniet qui molestiae voluptas. Aut omnis et sunt accusantium debitis accusamus laborum."
                },
                {
                    "id": 3,
                    "name": "Electronic",
                    "slug": "electronic",
                    "url": "https://nest.botble.com/blog/electronic",
                    "description": "Quis pariatur ipsa non ipsa dolorem voluptatem. Aut sunt dicta maiores debitis et. Est ad modi autem alias sint vitae."
                }
            ],
            "tags": [
                {
                    "id": 1,
                    "name": "General",
                    "slug": "general",
                    "description": null
                },
                {
                    "id": 2,
                    "name": "Design",
                    "slug": "design",
                    "description": null
                },
                {
                    "id": 3,
                    "name": "Fashion",
                    "slug": "fashion",
                    "description": null
                },
                {
                    "id": 4,
                    "name": "Branding",
                    "slug": "branding",
                    "description": null
                },
                {
                    "id": 5,
                    "name": "Modern",
                    "slug": "modern",
                    "description": null
                }
            ],
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 2,
            "name": "Sexy Clutches: How to Buy & Wear a Designer Clutch Bag",
            "slug": "sexy-clutches-how-to-buy-wear-a-designer-clutch-bag",
            "description": "You should pay more attention when you choose your wallets. There are a lot of them on the market with the different designs and styles. When you choose carefully, you would be able to buy a wallet that is catered to your needs. Not to mention that it will help to enhance your style significantly.",
            "image": "https://nest.botble.com/storage/news/2.png",
            "categories": [
                {
                    "id": 2,
                    "name": "Fashion",
                    "slug": "fashion",
                    "url": "https://nest.botble.com/blog/fashion",
                    "description": "Qui autem amet et rerum. Ullam voluptas consequuntur corporis quod molestiae placeat sunt a. Minus quia est animi ut eum ullam molestias officiis."
                },
                {
                    "id": 3,
                    "name": "Electronic",
                    "slug": "electronic",
                    "url": "https://nest.botble.com/blog/electronic",
                    "description": "Quis pariatur ipsa non ipsa dolorem voluptatem. Aut sunt dicta maiores debitis et. Est ad modi autem alias sint vitae."
                }
            ],
            "tags": [
                {
                    "id": 1,
                    "name": "General",
                    "slug": "general",
                    "description": null
                },
                {
                    "id": 2,
                    "name": "Design",
                    "slug": "design",
                    "description": null
                },
                {
                    "id": 3,
                    "name": "Fashion",
                    "slug": "fashion",
                    "description": null
                },
                {
                    "id": 4,
                    "name": "Branding",
                    "slug": "branding",
                    "description": null
                },
                {
                    "id": 5,
                    "name": "Modern",
                    "slug": "modern",
                    "description": null
                }
            ],
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 3,
            "name": "The Top 2020 Handbag Trends to Know",
            "slug": "the-top-2020-handbag-trends-to-know",
            "description": "You should pay more attention when you choose your wallets. There are a lot of them on the market with the different designs and styles. When you choose carefully, you would be able to buy a wallet that is catered to your needs. Not to mention that it will help to enhance your style significantly.",
            "image": "https://nest.botble.com/storage/news/3.png",
            "categories": [
                {
                    "id": 2,
                    "name": "Fashion",
                    "slug": "fashion",
                    "url": "https://nest.botble.com/blog/fashion",
                    "description": "Qui autem amet et rerum. Ullam voluptas consequuntur corporis quod molestiae placeat sunt a. Minus quia est animi ut eum ullam molestias officiis."
                },
                {
                    "id": 3,
                    "name": "Electronic",
                    "slug": "electronic",
                    "url": "https://nest.botble.com/blog/electronic",
                    "description": "Quis pariatur ipsa non ipsa dolorem voluptatem. Aut sunt dicta maiores debitis et. Est ad modi autem alias sint vitae."
                }
            ],
            "tags": [
                {
                    "id": 1,
                    "name": "General",
                    "slug": "general",
                    "description": null
                },
                {
                    "id": 2,
                    "name": "Design",
                    "slug": "design",
                    "description": null
                },
                {
                    "id": 3,
                    "name": "Fashion",
                    "slug": "fashion",
                    "description": null
                },
                {
                    "id": 4,
                    "name": "Branding",
                    "slug": "branding",
                    "description": null
                },
                {
                    "id": 5,
                    "name": "Modern",
                    "slug": "modern",
                    "description": null
                }
            ],
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 4,
            "name": "How to Match the Color of Your Handbag With an Outfit",
            "slug": "how-to-match-the-color-of-your-handbag-with-an-outfit",
            "description": "You should pay more attention when you choose your wallets. There are a lot of them on the market with the different designs and styles. When you choose carefully, you would be able to buy a wallet that is catered to your needs. Not to mention that it will help to enhance your style significantly.",
            "image": "https://nest.botble.com/storage/news/4.png",
            "categories": [
                {
                    "id": 1,
                    "name": "Ecommerce",
                    "slug": "ecommerce",
                    "url": "https://nest.botble.com/blog/ecommerce",
                    "description": "Aut eveniet dolorem nulla non minima sit autem rerum. Nam eveniet qui molestiae voluptas. Aut omnis et sunt accusantium debitis accusamus laborum."
                },
                {
                    "id": 4,
                    "name": "Commercial",
                    "slug": "commercial",
                    "url": "https://nest.botble.com/blog/commercial",
                    "description": "Ipsa sit commodi iste sunt. Accusantium minima rerum vel et eum nostrum. Iure aut expedita perspiciatis voluptas. Et omnis autem a sit qui sunt qui."
                }
            ],
            "tags": [
                {
                    "id": 1,
                    "name": "General",
                    "slug": "general",
                    "description": null
                },
                {
                    "id": 2,
                    "name": "Design",
                    "slug": "design",
                    "description": null
                },
                {
                    "id": 3,
                    "name": "Fashion",
                    "slug": "fashion",
                    "description": null
                },
                {
                    "id": 4,
                    "name": "Branding",
                    "slug": "branding",
                    "description": null
                },
                {
                    "id": 5,
                    "name": "Modern",
                    "slug": "modern",
                    "description": null
                }
            ],
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 5,
            "name": "How to Care for Leather Bags",
            "slug": "how-to-care-for-leather-bags",
            "description": "You should pay more attention when you choose your wallets. There are a lot of them on the market with the different designs and styles. When you choose carefully, you would be able to buy a wallet that is catered to your needs. Not to mention that it will help to enhance your style significantly.",
            "image": "https://nest.botble.com/storage/news/5.png",
            "categories": [
                {
                    "id": 1,
                    "name": "Ecommerce",
                    "slug": "ecommerce",
                    "url": "https://nest.botble.com/blog/ecommerce",
                    "description": "Aut eveniet dolorem nulla non minima sit autem rerum. Nam eveniet qui molestiae voluptas. Aut omnis et sunt accusantium debitis accusamus laborum."
                },
                {
                    "id": 3,
                    "name": "Electronic",
                    "slug": "electronic",
                    "url": "https://nest.botble.com/blog/electronic",
                    "description": "Quis pariatur ipsa non ipsa dolorem voluptatem. Aut sunt dicta maiores debitis et. Est ad modi autem alias sint vitae."
                }
            ],
            "tags": [
                {
                    "id": 1,
                    "name": "General",
                    "slug": "general",
                    "description": null
                },
                {
                    "id": 2,
                    "name": "Design",
                    "slug": "design",
                    "description": null
                },
                {
                    "id": 3,
                    "name": "Fashion",
                    "slug": "fashion",
                    "description": null
                },
                {
                    "id": 4,
                    "name": "Branding",
                    "slug": "branding",
                    "description": null
                },
                {
                    "id": 5,
                    "name": "Modern",
                    "slug": "modern",
                    "description": null
                }
            ],
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 6,
            "name": "We're Crushing Hard on Summer's 10 Biggest Bag Trends",
            "slug": "were-crushing-hard-on-summers-10-biggest-bag-trends",
            "description": "You should pay more attention when you choose your wallets. There are a lot of them on the market with the different designs and styles. When you choose carefully, you would be able to buy a wallet that is catered to your needs. Not to mention that it will help to enhance your style significantly.",
            "image": "https://nest.botble.com/storage/news/6.png",
            "categories": [
                {
                    "id": 1,
                    "name": "Ecommerce",
                    "slug": "ecommerce",
                    "url": "https://nest.botble.com/blog/ecommerce",
                    "description": "Aut eveniet dolorem nulla non minima sit autem rerum. Nam eveniet qui molestiae voluptas. Aut omnis et sunt accusantium debitis accusamus laborum."
                },
                {
                    "id": 4,
                    "name": "Commercial",
                    "slug": "commercial",
                    "url": "https://nest.botble.com/blog/commercial",
                    "description": "Ipsa sit commodi iste sunt. Accusantium minima rerum vel et eum nostrum. Iure aut expedita perspiciatis voluptas. Et omnis autem a sit qui sunt qui."
                }
            ],
            "tags": [
                {
                    "id": 1,
                    "name": "General",
                    "slug": "general",
                    "description": null
                },
                {
                    "id": 2,
                    "name": "Design",
                    "slug": "design",
                    "description": null
                },
                {
                    "id": 3,
                    "name": "Fashion",
                    "slug": "fashion",
                    "description": null
                },
                {
                    "id": 4,
                    "name": "Branding",
                    "slug": "branding",
                    "description": null
                },
                {
                    "id": 5,
                    "name": "Modern",
                    "slug": "modern",
                    "description": null
                }
            ],
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 7,
            "name": "Essential Qualities of Highly Successful Music",
            "slug": "essential-qualities-of-highly-successful-music",
            "description": "You should pay more attention when you choose your wallets. There are a lot of them on the market with the different designs and styles. When you choose carefully, you would be able to buy a wallet that is catered to your needs. Not to mention that it will help to enhance your style significantly.",
            "image": "https://nest.botble.com/storage/news/7.png",
            "categories": [
                {
                    "id": 2,
                    "name": "Fashion",
                    "slug": "fashion",
                    "url": "https://nest.botble.com/blog/fashion",
                    "description": "Qui autem amet et rerum. Ullam voluptas consequuntur corporis quod molestiae placeat sunt a. Minus quia est animi ut eum ullam molestias officiis."
                },
                {
                    "id": 3,
                    "name": "Electronic",
                    "slug": "electronic",
                    "url": "https://nest.botble.com/blog/electronic",
                    "description": "Quis pariatur ipsa non ipsa dolorem voluptatem. Aut sunt dicta maiores debitis et. Est ad modi autem alias sint vitae."
                }
            ],
            "tags": [
                {
                    "id": 1,
                    "name": "General",
                    "slug": "general",
                    "description": null
                },
                {
                    "id": 2,
                    "name": "Design",
                    "slug": "design",
                    "description": null
                },
                {
                    "id": 3,
                    "name": "Fashion",
                    "slug": "fashion",
                    "description": null
                },
                {
                    "id": 4,
                    "name": "Branding",
                    "slug": "branding",
                    "description": null
                },
                {
                    "id": 5,
                    "name": "Modern",
                    "slug": "modern",
                    "description": null
                }
            ],
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 8,
            "name": "9 Things I Love About Shaving My Head",
            "slug": "9-things-i-love-about-shaving-my-head",
            "description": "You should pay more attention when you choose your wallets. There are a lot of them on the market with the different designs and styles. When you choose carefully, you would be able to buy a wallet that is catered to your needs. Not to mention that it will help to enhance your style significantly.",
            "image": "https://nest.botble.com/storage/news/8.png",
            "categories": [
                {
                    "id": 1,
                    "name": "Ecommerce",
                    "slug": "ecommerce",
                    "url": "https://nest.botble.com/blog/ecommerce",
                    "description": "Aut eveniet dolorem nulla non minima sit autem rerum. Nam eveniet qui molestiae voluptas. Aut omnis et sunt accusantium debitis accusamus laborum."
                },
                {
                    "id": 3,
                    "name": "Electronic",
                    "slug": "electronic",
                    "url": "https://nest.botble.com/blog/electronic",
                    "description": "Quis pariatur ipsa non ipsa dolorem voluptatem. Aut sunt dicta maiores debitis et. Est ad modi autem alias sint vitae."
                }
            ],
            "tags": [
                {
                    "id": 1,
                    "name": "General",
                    "slug": "general",
                    "description": null
                },
                {
                    "id": 2,
                    "name": "Design",
                    "slug": "design",
                    "description": null
                },
                {
                    "id": 3,
                    "name": "Fashion",
                    "slug": "fashion",
                    "description": null
                },
                {
                    "id": 4,
                    "name": "Branding",
                    "slug": "branding",
                    "description": null
                },
                {
                    "id": 5,
                    "name": "Modern",
                    "slug": "modern",
                    "description": null
                }
            ],
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 9,
            "name": "Why Teamwork Really Makes The Dream Work",
            "slug": "why-teamwork-really-makes-the-dream-work",
            "description": "You should pay more attention when you choose your wallets. There are a lot of them on the market with the different designs and styles. When you choose carefully, you would be able to buy a wallet that is catered to your needs. Not to mention that it will help to enhance your style significantly.",
            "image": "https://nest.botble.com/storage/news/9.png",
            "categories": [
                {
                    "id": 1,
                    "name": "Ecommerce",
                    "slug": "ecommerce",
                    "url": "https://nest.botble.com/blog/ecommerce",
                    "description": "Aut eveniet dolorem nulla non minima sit autem rerum. Nam eveniet qui molestiae voluptas. Aut omnis et sunt accusantium debitis accusamus laborum."
                },
                {
                    "id": 4,
                    "name": "Commercial",
                    "slug": "commercial",
                    "url": "https://nest.botble.com/blog/commercial",
                    "description": "Ipsa sit commodi iste sunt. Accusantium minima rerum vel et eum nostrum. Iure aut expedita perspiciatis voluptas. Et omnis autem a sit qui sunt qui."
                }
            ],
            "tags": [
                {
                    "id": 1,
                    "name": "General",
                    "slug": "general",
                    "description": null
                },
                {
                    "id": 2,
                    "name": "Design",
                    "slug": "design",
                    "description": null
                },
                {
                    "id": 3,
                    "name": "Fashion",
                    "slug": "fashion",
                    "description": null
                },
                {
                    "id": 4,
                    "name": "Branding",
                    "slug": "branding",
                    "description": null
                },
                {
                    "id": 5,
                    "name": "Modern",
                    "slug": "modern",
                    "description": null
                }
            ],
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 10,
            "name": "The World Caters to Average People",
            "slug": "the-world-caters-to-average-people",
            "description": "You should pay more attention when you choose your wallets. There are a lot of them on the market with the different designs and styles. When you choose carefully, you would be able to buy a wallet that is catered to your needs. Not to mention that it will help to enhance your style significantly.",
            "image": "https://nest.botble.com/storage/news/10.png",
            "categories": [
                {
                    "id": 1,
                    "name": "Ecommerce",
                    "slug": "ecommerce",
                    "url": "https://nest.botble.com/blog/ecommerce",
                    "description": "Aut eveniet dolorem nulla non minima sit autem rerum. Nam eveniet qui molestiae voluptas. Aut omnis et sunt accusantium debitis accusamus laborum."
                },
                {
                    "id": 3,
                    "name": "Electronic",
                    "slug": "electronic",
                    "url": "https://nest.botble.com/blog/electronic",
                    "description": "Quis pariatur ipsa non ipsa dolorem voluptatem. Aut sunt dicta maiores debitis et. Est ad modi autem alias sint vitae."
                }
            ],
            "tags": [
                {
                    "id": 1,
                    "name": "General",
                    "slug": "general",
                    "description": null
                },
                {
                    "id": 2,
                    "name": "Design",
                    "slug": "design",
                    "description": null
                },
                {
                    "id": 3,
                    "name": "Fashion",
                    "slug": "fashion",
                    "description": null
                },
                {
                    "id": 4,
                    "name": "Branding",
                    "slug": "branding",
                    "description": null
                },
                {
                    "id": 5,
                    "name": "Modern",
                    "slug": "modern",
                    "description": null
                }
            ],
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        }
    ],
    "links": {
        "first": "https://nest.botble.com/api/v1/posts?page=1",
        "last": "https://nest.botble.com/api/v1/posts?page=2",
        "prev": null,
        "next": "https://nest.botble.com/api/v1/posts?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 2,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https://nest.botble.com/api/v1/posts?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": "https://nest.botble.com/api/v1/posts?page=2",
                "label": "2",
                "active": false
            },
            {
                "url": "https://nest.botble.com/api/v1/posts?page=2",
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https://nest.botble.com/api/v1/posts",
        "per_page": 10,
        "to": 10,
        "total": 11
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/posts

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

List categories

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/categories" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/categories"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [
        {
            "id": 1,
            "name": "Ecommerce",
            "slug": "ecommerce",
            "description": "Aut eveniet dolorem nulla non minima sit autem rerum. Nam eveniet qui molestiae voluptas. Aut omnis et sunt accusantium debitis accusamus laborum.",
            "children": [],
            "parent": {
                "id": null,
                "name": null,
                "slug": "",
                "url": "https://nest.botble.com",
                "description": null
            }
        },
        {
            "id": 2,
            "name": "Fashion",
            "slug": "fashion",
            "description": "Qui autem amet et rerum. Ullam voluptas consequuntur corporis quod molestiae placeat sunt a. Minus quia est animi ut eum ullam molestias officiis.",
            "children": [],
            "parent": {
                "id": null,
                "name": null,
                "slug": "",
                "url": "https://nest.botble.com",
                "description": null
            }
        },
        {
            "id": 3,
            "name": "Electronic",
            "slug": "electronic",
            "description": "Quis pariatur ipsa non ipsa dolorem voluptatem. Aut sunt dicta maiores debitis et. Est ad modi autem alias sint vitae.",
            "children": [],
            "parent": {
                "id": null,
                "name": null,
                "slug": "",
                "url": "https://nest.botble.com",
                "description": null
            }
        },
        {
            "id": 4,
            "name": "Commercial",
            "slug": "commercial",
            "description": "Ipsa sit commodi iste sunt. Accusantium minima rerum vel et eum nostrum. Iure aut expedita perspiciatis voluptas. Et omnis autem a sit qui sunt qui.",
            "children": [],
            "parent": {
                "id": null,
                "name": null,
                "slug": "",
                "url": "https://nest.botble.com",
                "description": null
            }
        }
    ],
    "links": {
        "first": "https://nest.botble.com/api/v1/categories?page=1",
        "last": "https://nest.botble.com/api/v1/categories?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https://nest.botble.com/api/v1/categories?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https://nest.botble.com/api/v1/categories",
        "per_page": 10,
        "to": 4,
        "total": 4
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/categories

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

List tags

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/tags" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/tags"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [
        {
            "id": 1,
            "name": "General",
            "slug": "general",
            "description": null
        },
        {
            "id": 2,
            "name": "Design",
            "slug": "design",
            "description": null
        },
        {
            "id": 3,
            "name": "Fashion",
            "slug": "fashion",
            "description": null
        },
        {
            "id": 4,
            "name": "Branding",
            "slug": "branding",
            "description": null
        },
        {
            "id": 5,
            "name": "Modern",
            "slug": "modern",
            "description": null
        }
    ],
    "links": {
        "first": "https://nest.botble.com/api/v1/tags?page=1",
        "last": "https://nest.botble.com/api/v1/tags?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https://nest.botble.com/api/v1/tags?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https://nest.botble.com/api/v1/tags",
        "per_page": 10,
        "to": 5,
        "total": 5
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/tags

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Filters posts

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/posts/filters?page=16&per_page=16&search=architecto&after=architecto&author=architecto&author_exclude=architecto&before=architecto&exclude=architecto&include=architecto&order=architecto&order_by=architecto&categories=architecto&categories_exclude=architecto&tags=architecto&tags_exclude=architecto&featured=architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/posts/filters"
);

const params = {
    "page": "16",
    "per_page": "16",
    "search": "architecto",
    "after": "architecto",
    "author": "architecto",
    "author_exclude": "architecto",
    "before": "architecto",
    "exclude": "architecto",
    "include": "architecto",
    "order": "architecto",
    "order_by": "architecto",
    "categories": "architecto",
    "categories_exclude": "architecto",
    "tags": "architecto",
    "tags_exclude": "architecto",
    "featured": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [],
    "links": {
        "first": "https://nest.botble.com/api/v1/posts/filters?page=1",
        "last": "https://nest.botble.com/api/v1/posts/filters?page=1",
        "prev": "https://nest.botble.com/api/v1/posts/filters?page=15",
        "next": null
    },
    "meta": {
        "current_page": 16,
        "from": null,
        "last_page": 1,
        "links": [
            {
                "url": "https://nest.botble.com/api/v1/posts/filters?page=15",
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https://nest.botble.com/api/v1/posts/filters?page=1",
                "label": "1",
                "active": false
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https://nest.botble.com/api/v1/posts/filters",
        "per_page": 16,
        "to": null,
        "total": 0
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/posts/filters

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

Current page of the collection. Default: 1 Example: 16

per_page   integer  optional  

Maximum number of items to be returned in result set.Default: 10 Example: 16

search   string  optional  

Limit results to those matching a string. Example: architecto

after   string  optional  

Limit response to posts published after a given ISO8601 compliant date. Example: architecto

author   string  optional  

Limit result set to posts assigned to specific authors. Example: architecto

author_exclude   string  optional  

Ensure result set excludes posts assigned to specific authors. Example: architecto

before   string  optional  

Limit response to posts published before a given ISO8601 compliant date. Example: architecto

exclude   string  optional  

Ensure result set excludes specific IDs. Example: architecto

include   string  optional  

Limit result set to specific IDs. Example: architecto

order   string  optional  

Order sort attribute ascending or descending. Default: desc .One of: asc, desc Example: architecto

order_by   string  optional  

Sort collection by object attribute. Default: updated_at. One of: author, created_at, updated_at, id, slug, title Example: architecto

categories   string  optional  

Limit result set to all items that have the specified term assigned in the categories taxonomy. Example: architecto

categories_exclude   string  optional  

Limit result set to all items except those that have the specified term assigned in the categories taxonomy. Example: architecto

tags   string  optional  

Limit result set to all items that have the specified term assigned in the tags taxonomy. Example: architecto

tags_exclude   string  optional  

Limit result set to all items except those that have the specified term assigned in the tags taxonomy. Example: architecto

featured   string  optional  

Limit result set to items that are sticky. Example: architecto

Get post by slug

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/posts/architecto?slug=architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/posts/architecto"
);

const params = {
    "slug": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Not found"
}
 

Request      

GET api/v1/posts/{slug}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

slug   string   

The slug of the post. Example: architecto

Query Parameters

slug   string  optional  

Find by slug of post. Example: architecto

Filters categories

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/categories/filters" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/categories/filters"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [
        {
            "id": 2,
            "name": "Fashion",
            "slug": "fashion",
            "url": "https://nest.botble.com/blog/fashion",
            "description": "Qui autem amet et rerum. Ullam voluptas consequuntur corporis quod molestiae placeat sunt a. Minus quia est animi ut eum ullam molestias officiis."
        },
        {
            "id": 3,
            "name": "Electronic",
            "slug": "electronic",
            "url": "https://nest.botble.com/blog/electronic",
            "description": "Quis pariatur ipsa non ipsa dolorem voluptatem. Aut sunt dicta maiores debitis et. Est ad modi autem alias sint vitae."
        },
        {
            "id": 1,
            "name": "Ecommerce",
            "slug": "ecommerce",
            "url": "https://nest.botble.com/blog/ecommerce",
            "description": "Aut eveniet dolorem nulla non minima sit autem rerum. Nam eveniet qui molestiae voluptas. Aut omnis et sunt accusantium debitis accusamus laborum."
        },
        {
            "id": 4,
            "name": "Commercial",
            "slug": "commercial",
            "url": "https://nest.botble.com/blog/commercial",
            "description": "Ipsa sit commodi iste sunt. Accusantium minima rerum vel et eum nostrum. Iure aut expedita perspiciatis voluptas. Et omnis autem a sit qui sunt qui."
        }
    ],
    "links": {
        "first": "https://nest.botble.com/api/v1/categories/filters?page=1",
        "last": "https://nest.botble.com/api/v1/categories/filters?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https://nest.botble.com/api/v1/categories/filters?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https://nest.botble.com/api/v1/categories/filters",
        "per_page": 10,
        "to": 4,
        "total": 4
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/categories/filters

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Get category by slug

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/categories/architecto?slug=architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/categories/architecto"
);

const params = {
    "slug": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Not found"
}
 

Request      

GET api/v1/categories/{slug}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

slug   string   

The slug of the category. Example: architecto

Query Parameters

slug   string  optional  

Find by slug of category. Example: architecto

Brands

Get list of brands

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/brands?brands=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"is_featured\": false
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/brands"
);

const params = {
    "brands": "",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "is_featured": false
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [],
    "links": {
        "first": "https://nest.botble.com/api/v1/ecommerce/brands?page=1",
        "last": "https://nest.botble.com/api/v1/ecommerce/brands?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https://nest.botble.com/api/v1/ecommerce/brands?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https://nest.botble.com/api/v1/ecommerce/brands",
        "per_page": 16,
        "to": null,
        "total": 0
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/ecommerce/brands

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

brands   string[]  optional  

List of brand IDs if you need filter by brands.

page   integer  optional  

Page number. Default: 1.

per_page   integer  optional  

Number of items per page. Default: 16.

Body Parameters

brands   string[]  optional  

The id of an existing record in the ec_product_brands table.

is_featured   boolean  optional  

Filter by featured status. Example: false

Get brand details by slug

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/brands/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/brands/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": ""
}
 

Request      

GET api/v1/ecommerce/brands/{slug}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

slug   string   

The slug of the brand. Example: architecto

Get products by brand

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/brands/1/products" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/brands/1/products"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [
        {
            "id": 1,
            "slug": "seeds-of-change-organic-quinoe",
            "url": "https://nest.botble.com/products/seeds-of-change-organic-quinoe",
            "name": "Seeds of Change Organic Quinoe",
            "sku": "NQ-122",
            "description": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline.</p>\n<p><img src=\"/storage/general/clock.png\" alt=\"icon\" style=\"height:15px;\">  1 Year AL Jazeera Brand Warranty\n</p>\n<p><img src=\"/storage/general/paper-plane.png\" alt=\"icon\" style=\"height:15px;\">   30 Day Return Policy</p>\n<p><img src=\"/storage/general/credit-card.png\" alt=\"icon\" style=\"height:15px;\">  Cash on Delivery available\n</p>\n",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in\n    cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic\n    silhouette and utilitarian design details.</p>\n<p>- Casual unisex fit</p>\n\n<p>- 64% polyester, 36% polyurethane</p>\n\n<p>- Water column pressure: 4000 mm</p>\n\n<p>- Model is 187cm tall and wearing a size S / M</p>\n\n<p>- Unisex fit</p>\n\n<p>- Drawstring hood with built-in cap</p>\n\n<p>- Front placket with snap buttons</p>\n\n<p>- Ventilation under armpit</p>\n\n<p>- Adjustable cuffs</p>\n\n<p>- Double welted front pockets</p>\n\n<p>- Adjustable elastic string at hempen</p>\n\n<p>- Ultrasonically welded seams</p>\n\n<p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing\n    information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean\n    and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising\n    from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody-\n    but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy\n    days, issuing an invitation to explore even in the most mercurial weather.</p>\n",
            "quantity": 12,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 704,
            "price_formatted": "$704.00",
            "original_price": 902,
            "original_price_formatted": "$902.00",
            "reviews_avg": 2.7777777777777777,
            "reviews_count": 9,
            "images": [
                "https://nest.botble.com/storage/products/1.jpg",
                "https://nest.botble.com/storage/products/1-1.jpg"
            ],
            "images_thumb": [
                "https://nest.botble.com/storage/products/1-150x150.jpg",
                "https://nest.botble.com/storage/products/1-1-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://nest.botble.com/storage/products/1.jpg",
                    "https://nest.botble.com/storage/products/1-1.jpg"
                ],
                "thumb": [
                    "https://nest.botble.com/storage/products/1-150x150.jpg",
                    "https://nest.botble.com/storage/products/1-1-150x150.jpg"
                ],
                "medium": [
                    "https://nest.botble.com/storage/products/1-800x800.jpg",
                    "https://nest.botble.com/storage/products/1-1-800x800.jpg"
                ],
                "product-thumb": [
                    "https://nest.botble.com/storage/products/1-400x400.jpg",
                    "https://nest.botble.com/storage/products/1-1-400x400.jpg"
                ]
            },
            "weight": 851,
            "height": 10,
            "wide": 16,
            "length": 13,
            "image_url": "https://nest.botble.com/storage/products/1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 1,
                "slug": "gopro",
                "name": "GoPro"
            }
        },
        {
            "id": 2,
            "slug": "all-natural-italian-style-chicken-meatballs",
            "url": "https://nest.botble.com/products/all-natural-italian-style-chicken-meatballs",
            "name": "All Natural Italian-Style Chicken Meatballs",
            "sku": "LP-104-A1",
            "description": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline.</p>\n<p><img src=\"/storage/general/clock.png\" alt=\"icon\" style=\"height:15px;\">  1 Year AL Jazeera Brand Warranty\n</p>\n<p><img src=\"/storage/general/paper-plane.png\" alt=\"icon\" style=\"height:15px;\">   30 Day Return Policy</p>\n<p><img src=\"/storage/general/credit-card.png\" alt=\"icon\" style=\"height:15px;\">  Cash on Delivery available\n</p>\n",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in\n    cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic\n    silhouette and utilitarian design details.</p>\n<p>- Casual unisex fit</p>\n\n<p>- 64% polyester, 36% polyurethane</p>\n\n<p>- Water column pressure: 4000 mm</p>\n\n<p>- Model is 187cm tall and wearing a size S / M</p>\n\n<p>- Unisex fit</p>\n\n<p>- Drawstring hood with built-in cap</p>\n\n<p>- Front placket with snap buttons</p>\n\n<p>- Ventilation under armpit</p>\n\n<p>- Adjustable cuffs</p>\n\n<p>- Double welted front pockets</p>\n\n<p>- Adjustable elastic string at hempen</p>\n\n<p>- Ultrasonically welded seams</p>\n\n<p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing\n    information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean\n    and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising\n    from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody-\n    but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy\n    days, issuing an invitation to explore even in the most mercurial weather.</p>\n",
            "quantity": 18,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 488,
            "price_formatted": "$488.00",
            "original_price": 488,
            "original_price_formatted": "$488.00",
            "reviews_avg": 3.1,
            "reviews_count": 10,
            "images": [
                "https://nest.botble.com/storage/products/2.jpg",
                "https://nest.botble.com/storage/products/2-1.jpg"
            ],
            "images_thumb": [
                "https://nest.botble.com/storage/products/2-150x150.jpg",
                "https://nest.botble.com/storage/products/2-1-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://nest.botble.com/storage/products/2.jpg",
                    "https://nest.botble.com/storage/products/2-1.jpg"
                ],
                "thumb": [
                    "https://nest.botble.com/storage/products/2-150x150.jpg",
                    "https://nest.botble.com/storage/products/2-1-150x150.jpg"
                ],
                "medium": [
                    "https://nest.botble.com/storage/products/2-800x800.jpg",
                    "https://nest.botble.com/storage/products/2-1-800x800.jpg"
                ],
                "product-thumb": [
                    "https://nest.botble.com/storage/products/2-400x400.jpg",
                    "https://nest.botble.com/storage/products/2-1-400x400.jpg"
                ]
            },
            "weight": 745,
            "height": 19,
            "wide": 17,
            "length": 17,
            "image_url": "https://nest.botble.com/storage/products/2-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 4,
                "slug": "global-store",
                "name": "Global Store"
            }
        },
        {
            "id": 3,
            "slug": "angies-boomchickapop-sweet-salty-kettle-corn",
            "url": "https://nest.botble.com/products/angies-boomchickapop-sweet-salty-kettle-corn",
            "name": "Angie’s Boomchickapop Sweet & Salty Kettle Corn",
            "sku": "SJ-172",
            "description": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline.</p>\n<p><img src=\"/storage/general/clock.png\" alt=\"icon\" style=\"height:15px;\">  1 Year AL Jazeera Brand Warranty\n</p>\n<p><img src=\"/storage/general/paper-plane.png\" alt=\"icon\" style=\"height:15px;\">   30 Day Return Policy</p>\n<p><img src=\"/storage/general/credit-card.png\" alt=\"icon\" style=\"height:15px;\">  Cash on Delivery available\n</p>\n",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in\n    cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic\n    silhouette and utilitarian design details.</p>\n<p>- Casual unisex fit</p>\n\n<p>- 64% polyester, 36% polyurethane</p>\n\n<p>- Water column pressure: 4000 mm</p>\n\n<p>- Model is 187cm tall and wearing a size S / M</p>\n\n<p>- Unisex fit</p>\n\n<p>- Drawstring hood with built-in cap</p>\n\n<p>- Front placket with snap buttons</p>\n\n<p>- Ventilation under armpit</p>\n\n<p>- Adjustable cuffs</p>\n\n<p>- Double welted front pockets</p>\n\n<p>- Adjustable elastic string at hempen</p>\n\n<p>- Ultrasonically welded seams</p>\n\n<p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing\n    information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean\n    and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising\n    from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody-\n    but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy\n    days, issuing an invitation to explore even in the most mercurial weather.</p>\n",
            "quantity": 10,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 529,
            "price_formatted": "$529.00",
            "original_price": 802,
            "original_price_formatted": "$802.00",
            "reviews_avg": 2.4,
            "reviews_count": 10,
            "images": [
                "https://nest.botble.com/storage/products/3.jpg",
                "https://nest.botble.com/storage/products/3-1.jpg"
            ],
            "images_thumb": [
                "https://nest.botble.com/storage/products/3-150x150.jpg",
                "https://nest.botble.com/storage/products/3-1-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://nest.botble.com/storage/products/3.jpg",
                    "https://nest.botble.com/storage/products/3-1.jpg"
                ],
                "thumb": [
                    "https://nest.botble.com/storage/products/3-150x150.jpg",
                    "https://nest.botble.com/storage/products/3-1-150x150.jpg"
                ],
                "medium": [
                    "https://nest.botble.com/storage/products/3-800x800.jpg",
                    "https://nest.botble.com/storage/products/3-1-800x800.jpg"
                ],
                "product-thumb": [
                    "https://nest.botble.com/storage/products/3-400x400.jpg",
                    "https://nest.botble.com/storage/products/3-1-400x400.jpg"
                ]
            },
            "weight": 591,
            "height": 11,
            "wide": 20,
            "length": 19,
            "image_url": "https://nest.botble.com/storage/products/3-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 3,
                "slug": "young-shop",
                "name": "Young Shop"
            }
        },
        {
            "id": 4,
            "slug": "foster-farms-takeout-crispy-classic-digital",
            "url": "https://nest.botble.com/products/foster-farms-takeout-crispy-classic-digital",
            "name": "Foster Farms Takeout Crispy Classic (Digital)",
            "sku": "HK-164",
            "description": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline.</p>\n<p><img src=\"/storage/general/clock.png\" alt=\"icon\" style=\"height:15px;\">  1 Year AL Jazeera Brand Warranty\n</p>\n<p><img src=\"/storage/general/paper-plane.png\" alt=\"icon\" style=\"height:15px;\">   30 Day Return Policy</p>\n<p><img src=\"/storage/general/credit-card.png\" alt=\"icon\" style=\"height:15px;\">  Cash on Delivery available\n</p>\n",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in\n    cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic\n    silhouette and utilitarian design details.</p>\n<p>- Casual unisex fit</p>\n\n<p>- 64% polyester, 36% polyurethane</p>\n\n<p>- Water column pressure: 4000 mm</p>\n\n<p>- Model is 187cm tall and wearing a size S / M</p>\n\n<p>- Unisex fit</p>\n\n<p>- Drawstring hood with built-in cap</p>\n\n<p>- Front placket with snap buttons</p>\n\n<p>- Ventilation under armpit</p>\n\n<p>- Adjustable cuffs</p>\n\n<p>- Double welted front pockets</p>\n\n<p>- Adjustable elastic string at hempen</p>\n\n<p>- Ultrasonically welded seams</p>\n\n<p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing\n    information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean\n    and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising\n    from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody-\n    but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy\n    days, issuing an invitation to explore even in the most mercurial weather.</p>\n",
            "quantity": 17,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 86,
            "price_formatted": "$86.00",
            "original_price": 1860,
            "original_price_formatted": "$1,860.00",
            "reviews_avg": 3.1,
            "reviews_count": 10,
            "images": [
                "https://nest.botble.com/storage/products/4.jpg",
                "https://nest.botble.com/storage/products/4-1.jpg"
            ],
            "images_thumb": [
                "https://nest.botble.com/storage/products/4-150x150.jpg",
                "https://nest.botble.com/storage/products/4-1-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://nest.botble.com/storage/products/4.jpg",
                    "https://nest.botble.com/storage/products/4-1.jpg"
                ],
                "thumb": [
                    "https://nest.botble.com/storage/products/4-150x150.jpg",
                    "https://nest.botble.com/storage/products/4-1-150x150.jpg"
                ],
                "medium": [
                    "https://nest.botble.com/storage/products/4-800x800.jpg",
                    "https://nest.botble.com/storage/products/4-1-800x800.jpg"
                ],
                "product-thumb": [
                    "https://nest.botble.com/storage/products/4-400x400.jpg",
                    "https://nest.botble.com/storage/products/4-1-400x400.jpg"
                ]
            },
            "weight": 592,
            "height": 10,
            "wide": 11,
            "length": 10,
            "image_url": "https://nest.botble.com/storage/products/4-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 1,
                "slug": "gopro",
                "name": "GoPro"
            }
        },
        {
            "id": 5,
            "slug": "blue-diamond-almonds-lightly",
            "url": "https://nest.botble.com/products/blue-diamond-almonds-lightly",
            "name": "Blue Diamond Almonds Lightly",
            "sku": "MS-100",
            "description": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline.</p>\n<p><img src=\"/storage/general/clock.png\" alt=\"icon\" style=\"height:15px;\">  1 Year AL Jazeera Brand Warranty\n</p>\n<p><img src=\"/storage/general/paper-plane.png\" alt=\"icon\" style=\"height:15px;\">   30 Day Return Policy</p>\n<p><img src=\"/storage/general/credit-card.png\" alt=\"icon\" style=\"height:15px;\">  Cash on Delivery available\n</p>\n",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in\n    cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic\n    silhouette and utilitarian design details.</p>\n<p>- Casual unisex fit</p>\n\n<p>- 64% polyester, 36% polyurethane</p>\n\n<p>- Water column pressure: 4000 mm</p>\n\n<p>- Model is 187cm tall and wearing a size S / M</p>\n\n<p>- Unisex fit</p>\n\n<p>- Drawstring hood with built-in cap</p>\n\n<p>- Front placket with snap buttons</p>\n\n<p>- Ventilation under armpit</p>\n\n<p>- Adjustable cuffs</p>\n\n<p>- Double welted front pockets</p>\n\n<p>- Adjustable elastic string at hempen</p>\n\n<p>- Ultrasonically welded seams</p>\n\n<p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing\n    information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean\n    and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising\n    from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody-\n    but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy\n    days, issuing an invitation to explore even in the most mercurial weather.</p>\n",
            "quantity": 15,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 462,
            "price_formatted": "$462.00",
            "original_price": 535,
            "original_price_formatted": "$535.00",
            "reviews_avg": 2.9,
            "reviews_count": 10,
            "images": [
                "https://nest.botble.com/storage/products/5.jpg",
                "https://nest.botble.com/storage/products/5-1.jpg"
            ],
            "images_thumb": [
                "https://nest.botble.com/storage/products/5-150x150.jpg",
                "https://nest.botble.com/storage/products/5-1-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://nest.botble.com/storage/products/5.jpg",
                    "https://nest.botble.com/storage/products/5-1.jpg"
                ],
                "thumb": [
                    "https://nest.botble.com/storage/products/5-150x150.jpg",
                    "https://nest.botble.com/storage/products/5-1-150x150.jpg"
                ],
                "medium": [
                    "https://nest.botble.com/storage/products/5-800x800.jpg",
                    "https://nest.botble.com/storage/products/5-1-800x800.jpg"
                ],
                "product-thumb": [
                    "https://nest.botble.com/storage/products/5-400x400.jpg",
                    "https://nest.botble.com/storage/products/5-1-400x400.jpg"
                ]
            },
            "weight": 551,
            "height": 17,
            "wide": 18,
            "length": 17,
            "image_url": "https://nest.botble.com/storage/products/5-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 6,
                "slug": "stouffer",
                "name": "Stouffer"
            }
        },
        {
            "id": 6,
            "slug": "chobani-complete-vanilla-greek",
            "url": "https://nest.botble.com/products/chobani-complete-vanilla-greek",
            "name": "Chobani Complete Vanilla Greek",
            "sku": "S7-186-A1",
            "description": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline.</p>\n<p><img src=\"/storage/general/clock.png\" alt=\"icon\" style=\"height:15px;\">  1 Year AL Jazeera Brand Warranty\n</p>\n<p><img src=\"/storage/general/paper-plane.png\" alt=\"icon\" style=\"height:15px;\">   30 Day Return Policy</p>\n<p><img src=\"/storage/general/credit-card.png\" alt=\"icon\" style=\"height:15px;\">  Cash on Delivery available\n</p>\n",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in\n    cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic\n    silhouette and utilitarian design details.</p>\n<p>- Casual unisex fit</p>\n\n<p>- 64% polyester, 36% polyurethane</p>\n\n<p>- Water column pressure: 4000 mm</p>\n\n<p>- Model is 187cm tall and wearing a size S / M</p>\n\n<p>- Unisex fit</p>\n\n<p>- Drawstring hood with built-in cap</p>\n\n<p>- Front placket with snap buttons</p>\n\n<p>- Ventilation under armpit</p>\n\n<p>- Adjustable cuffs</p>\n\n<p>- Double welted front pockets</p>\n\n<p>- Adjustable elastic string at hempen</p>\n\n<p>- Ultrasonically welded seams</p>\n\n<p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing\n    information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean\n    and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising\n    from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody-\n    but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy\n    days, issuing an invitation to explore even in the most mercurial weather.</p>\n",
            "quantity": 16,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 1484,
            "price_formatted": "$1,484.00",
            "original_price": 1484,
            "original_price_formatted": "$1,484.00",
            "reviews_avg": 3.4,
            "reviews_count": 10,
            "images": [
                "https://nest.botble.com/storage/products/6.jpg",
                "https://nest.botble.com/storage/products/6-1.jpg"
            ],
            "images_thumb": [
                "https://nest.botble.com/storage/products/6-150x150.jpg",
                "https://nest.botble.com/storage/products/6-1-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://nest.botble.com/storage/products/6.jpg",
                    "https://nest.botble.com/storage/products/6-1.jpg"
                ],
                "thumb": [
                    "https://nest.botble.com/storage/products/6-150x150.jpg",
                    "https://nest.botble.com/storage/products/6-1-150x150.jpg"
                ],
                "medium": [
                    "https://nest.botble.com/storage/products/6-800x800.jpg",
                    "https://nest.botble.com/storage/products/6-1-800x800.jpg"
                ],
                "product-thumb": [
                    "https://nest.botble.com/storage/products/6-400x400.jpg",
                    "https://nest.botble.com/storage/products/6-1-400x400.jpg"
                ]
            },
            "weight": 811,
            "height": 18,
            "wide": 16,
            "length": 17,
            "image_url": "https://nest.botble.com/storage/products/6-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 6,
                "slug": "stouffer",
                "name": "Stouffer"
            }
        },
        {
            "id": 7,
            "slug": "canada-dry-ginger-ale-2-l-bottle",
            "url": "https://nest.botble.com/products/canada-dry-ginger-ale-2-l-bottle",
            "name": "Canada Dry Ginger Ale – 2 L Bottle",
            "sku": "UE-122",
            "description": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline.</p>\n<p><img src=\"/storage/general/clock.png\" alt=\"icon\" style=\"height:15px;\">  1 Year AL Jazeera Brand Warranty\n</p>\n<p><img src=\"/storage/general/paper-plane.png\" alt=\"icon\" style=\"height:15px;\">   30 Day Return Policy</p>\n<p><img src=\"/storage/general/credit-card.png\" alt=\"icon\" style=\"height:15px;\">  Cash on Delivery available\n</p>\n",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in\n    cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic\n    silhouette and utilitarian design details.</p>\n<p>- Casual unisex fit</p>\n\n<p>- 64% polyester, 36% polyurethane</p>\n\n<p>- Water column pressure: 4000 mm</p>\n\n<p>- Model is 187cm tall and wearing a size S / M</p>\n\n<p>- Unisex fit</p>\n\n<p>- Drawstring hood with built-in cap</p>\n\n<p>- Front placket with snap buttons</p>\n\n<p>- Ventilation under armpit</p>\n\n<p>- Adjustable cuffs</p>\n\n<p>- Double welted front pockets</p>\n\n<p>- Adjustable elastic string at hempen</p>\n\n<p>- Ultrasonically welded seams</p>\n\n<p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing\n    information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean\n    and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising\n    from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody-\n    but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy\n    days, issuing an invitation to explore even in the most mercurial weather.</p>\n",
            "quantity": 20,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 764,
            "price_formatted": "$764.00",
            "original_price": 1025,
            "original_price_formatted": "$1,025.00",
            "reviews_avg": 3.7,
            "reviews_count": 10,
            "images": [
                "https://nest.botble.com/storage/products/7.jpg",
                "https://nest.botble.com/storage/products/7-1.jpg"
            ],
            "images_thumb": [
                "https://nest.botble.com/storage/products/7-150x150.jpg",
                "https://nest.botble.com/storage/products/7-1-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://nest.botble.com/storage/products/7.jpg",
                    "https://nest.botble.com/storage/products/7-1.jpg"
                ],
                "thumb": [
                    "https://nest.botble.com/storage/products/7-150x150.jpg",
                    "https://nest.botble.com/storage/products/7-1-150x150.jpg"
                ],
                "medium": [
                    "https://nest.botble.com/storage/products/7-800x800.jpg",
                    "https://nest.botble.com/storage/products/7-1-800x800.jpg"
                ],
                "product-thumb": [
                    "https://nest.botble.com/storage/products/7-400x400.jpg",
                    "https://nest.botble.com/storage/products/7-1-400x400.jpg"
                ]
            },
            "weight": 738,
            "height": 18,
            "wide": 16,
            "length": 16,
            "image_url": "https://nest.botble.com/storage/products/7-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 3,
                "slug": "young-shop",
                "name": "Young Shop"
            }
        },
        {
            "id": 8,
            "slug": "encore-seafoods-stuffed-alaskan-digital",
            "url": "https://nest.botble.com/products/encore-seafoods-stuffed-alaskan-digital",
            "name": "Encore Seafoods Stuffed Alaskan (Digital)",
            "sku": "GM-146-A1",
            "description": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline.</p>\n<p><img src=\"/storage/general/clock.png\" alt=\"icon\" style=\"height:15px;\">  1 Year AL Jazeera Brand Warranty\n</p>\n<p><img src=\"/storage/general/paper-plane.png\" alt=\"icon\" style=\"height:15px;\">   30 Day Return Policy</p>\n<p><img src=\"/storage/general/credit-card.png\" alt=\"icon\" style=\"height:15px;\">  Cash on Delivery available\n</p>\n",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in\n    cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic\n    silhouette and utilitarian design details.</p>\n<p>- Casual unisex fit</p>\n\n<p>- 64% polyester, 36% polyurethane</p>\n\n<p>- Water column pressure: 4000 mm</p>\n\n<p>- Model is 187cm tall and wearing a size S / M</p>\n\n<p>- Unisex fit</p>\n\n<p>- Drawstring hood with built-in cap</p>\n\n<p>- Front placket with snap buttons</p>\n\n<p>- Ventilation under armpit</p>\n\n<p>- Adjustable cuffs</p>\n\n<p>- Double welted front pockets</p>\n\n<p>- Adjustable elastic string at hempen</p>\n\n<p>- Ultrasonically welded seams</p>\n\n<p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing\n    information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean\n    and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising\n    from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody-\n    but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy\n    days, issuing an invitation to explore even in the most mercurial weather.</p>\n",
            "quantity": 16,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 1672.8,
            "price_formatted": "$1,672.80",
            "original_price": 2091,
            "original_price_formatted": "$2,091.00",
            "reviews_avg": 2.6,
            "reviews_count": 10,
            "images": [
                "https://nest.botble.com/storage/products/8.jpg",
                "https://nest.botble.com/storage/products/8-1.jpg"
            ],
            "images_thumb": [
                "https://nest.botble.com/storage/products/8-150x150.jpg",
                "https://nest.botble.com/storage/products/8-1-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://nest.botble.com/storage/products/8.jpg",
                    "https://nest.botble.com/storage/products/8-1.jpg"
                ],
                "thumb": [
                    "https://nest.botble.com/storage/products/8-150x150.jpg",
                    "https://nest.botble.com/storage/products/8-1-150x150.jpg"
                ],
                "medium": [
                    "https://nest.botble.com/storage/products/8-800x800.jpg",
                    "https://nest.botble.com/storage/products/8-1-800x800.jpg"
                ],
                "product-thumb": [
                    "https://nest.botble.com/storage/products/8-400x400.jpg",
                    "https://nest.botble.com/storage/products/8-1-400x400.jpg"
                ]
            },
            "weight": 591,
            "height": 15,
            "wide": 11,
            "length": 16,
            "image_url": "https://nest.botble.com/storage/products/8-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 4,
                "slug": "global-store",
                "name": "Global Store"
            }
        },
        {
            "id": 9,
            "slug": "gortons-beer-battered-fish-fillets",
            "url": "https://nest.botble.com/products/gortons-beer-battered-fish-fillets",
            "name": "Gorton’s Beer Battered Fish Fillets",
            "sku": "86-175-A1",
            "description": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline.</p>\n<p><img src=\"/storage/general/clock.png\" alt=\"icon\" style=\"height:15px;\">  1 Year AL Jazeera Brand Warranty\n</p>\n<p><img src=\"/storage/general/paper-plane.png\" alt=\"icon\" style=\"height:15px;\">   30 Day Return Policy</p>\n<p><img src=\"/storage/general/credit-card.png\" alt=\"icon\" style=\"height:15px;\">  Cash on Delivery available\n</p>\n",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in\n    cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic\n    silhouette and utilitarian design details.</p>\n<p>- Casual unisex fit</p>\n\n<p>- 64% polyester, 36% polyurethane</p>\n\n<p>- Water column pressure: 4000 mm</p>\n\n<p>- Model is 187cm tall and wearing a size S / M</p>\n\n<p>- Unisex fit</p>\n\n<p>- Drawstring hood with built-in cap</p>\n\n<p>- Front placket with snap buttons</p>\n\n<p>- Ventilation under armpit</p>\n\n<p>- Adjustable cuffs</p>\n\n<p>- Double welted front pockets</p>\n\n<p>- Adjustable elastic string at hempen</p>\n\n<p>- Ultrasonically welded seams</p>\n\n<p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing\n    information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean\n    and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising\n    from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody-\n    but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy\n    days, issuing an invitation to explore even in the most mercurial weather.</p>\n",
            "quantity": 11,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 1217,
            "price_formatted": "$1,217.00",
            "original_price": 1217,
            "original_price_formatted": "$1,217.00",
            "reviews_avg": 2.9,
            "reviews_count": 10,
            "images": [
                "https://nest.botble.com/storage/products/9.jpg",
                "https://nest.botble.com/storage/products/9-1.jpg"
            ],
            "images_thumb": [
                "https://nest.botble.com/storage/products/9-150x150.jpg",
                "https://nest.botble.com/storage/products/9-1-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://nest.botble.com/storage/products/9.jpg",
                    "https://nest.botble.com/storage/products/9-1.jpg"
                ],
                "thumb": [
                    "https://nest.botble.com/storage/products/9-150x150.jpg",
                    "https://nest.botble.com/storage/products/9-1-150x150.jpg"
                ],
                "medium": [
                    "https://nest.botble.com/storage/products/9-800x800.jpg",
                    "https://nest.botble.com/storage/products/9-1-800x800.jpg"
                ],
                "product-thumb": [
                    "https://nest.botble.com/storage/products/9-400x400.jpg",
                    "https://nest.botble.com/storage/products/9-1-400x400.jpg"
                ]
            },
            "weight": 548,
            "height": 12,
            "wide": 18,
            "length": 17,
            "image_url": "https://nest.botble.com/storage/products/9-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 6,
                "slug": "stouffer",
                "name": "Stouffer"
            }
        },
        {
            "id": 10,
            "slug": "haagen-dazs-caramel-cone-ice-cream",
            "url": "https://nest.botble.com/products/haagen-dazs-caramel-cone-ice-cream",
            "name": "Haagen-Dazs Caramel Cone Ice Cream",
            "sku": "H5-114-A1",
            "description": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline.</p>\n<p><img src=\"/storage/general/clock.png\" alt=\"icon\" style=\"height:15px;\">  1 Year AL Jazeera Brand Warranty\n</p>\n<p><img src=\"/storage/general/paper-plane.png\" alt=\"icon\" style=\"height:15px;\">   30 Day Return Policy</p>\n<p><img src=\"/storage/general/credit-card.png\" alt=\"icon\" style=\"height:15px;\">  Cash on Delivery available\n</p>\n",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in\n    cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic\n    silhouette and utilitarian design details.</p>\n<p>- Casual unisex fit</p>\n\n<p>- 64% polyester, 36% polyurethane</p>\n\n<p>- Water column pressure: 4000 mm</p>\n\n<p>- Model is 187cm tall and wearing a size S / M</p>\n\n<p>- Unisex fit</p>\n\n<p>- Drawstring hood with built-in cap</p>\n\n<p>- Front placket with snap buttons</p>\n\n<p>- Ventilation under armpit</p>\n\n<p>- Adjustable cuffs</p>\n\n<p>- Double welted front pockets</p>\n\n<p>- Adjustable elastic string at hempen</p>\n\n<p>- Ultrasonically welded seams</p>\n\n<p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing\n    information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean\n    and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising\n    from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody-\n    but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy\n    days, issuing an invitation to explore even in the most mercurial weather.</p>\n",
            "quantity": 14,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 1787,
            "price_formatted": "$1,787.00",
            "original_price": 1787,
            "original_price_formatted": "$1,787.00",
            "reviews_avg": 3.7,
            "reviews_count": 10,
            "images": [
                "https://nest.botble.com/storage/products/10.jpg",
                "https://nest.botble.com/storage/products/10-1.jpg"
            ],
            "images_thumb": [
                "https://nest.botble.com/storage/products/10-150x150.jpg",
                "https://nest.botble.com/storage/products/10-1-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://nest.botble.com/storage/products/10.jpg",
                    "https://nest.botble.com/storage/products/10-1.jpg"
                ],
                "thumb": [
                    "https://nest.botble.com/storage/products/10-150x150.jpg",
                    "https://nest.botble.com/storage/products/10-1-150x150.jpg"
                ],
                "medium": [
                    "https://nest.botble.com/storage/products/10-800x800.jpg",
                    "https://nest.botble.com/storage/products/10-1-800x800.jpg"
                ],
                "product-thumb": [
                    "https://nest.botble.com/storage/products/10-400x400.jpg",
                    "https://nest.botble.com/storage/products/10-1-400x400.jpg"
                ]
            },
            "weight": 773,
            "height": 15,
            "wide": 17,
            "length": 13,
            "image_url": "https://nest.botble.com/storage/products/10-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 1,
                "slug": "gopro",
                "name": "GoPro"
            }
        },
        {
            "id": 11,
            "slug": "nestle-original-coffee-mate-coffee-creamer",
            "url": "https://nest.botble.com/products/nestle-original-coffee-mate-coffee-creamer",
            "name": "Nestle Original Coffee-Mate Coffee Creamer",
            "sku": "2K-110-A1",
            "description": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline.</p>\n<p><img src=\"/storage/general/clock.png\" alt=\"icon\" style=\"height:15px;\">  1 Year AL Jazeera Brand Warranty\n</p>\n<p><img src=\"/storage/general/paper-plane.png\" alt=\"icon\" style=\"height:15px;\">   30 Day Return Policy</p>\n<p><img src=\"/storage/general/credit-card.png\" alt=\"icon\" style=\"height:15px;\">  Cash on Delivery available\n</p>\n",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in\n    cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic\n    silhouette and utilitarian design details.</p>\n<p>- Casual unisex fit</p>\n\n<p>- 64% polyester, 36% polyurethane</p>\n\n<p>- Water column pressure: 4000 mm</p>\n\n<p>- Model is 187cm tall and wearing a size S / M</p>\n\n<p>- Unisex fit</p>\n\n<p>- Drawstring hood with built-in cap</p>\n\n<p>- Front placket with snap buttons</p>\n\n<p>- Ventilation under armpit</p>\n\n<p>- Adjustable cuffs</p>\n\n<p>- Double welted front pockets</p>\n\n<p>- Adjustable elastic string at hempen</p>\n\n<p>- Ultrasonically welded seams</p>\n\n<p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing\n    information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean\n    and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising\n    from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody-\n    but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy\n    days, issuing an invitation to explore even in the most mercurial weather.</p>\n",
            "quantity": 12,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 1639,
            "price_formatted": "$1,639.00",
            "original_price": 1639,
            "original_price_formatted": "$1,639.00",
            "reviews_avg": 3.2,
            "reviews_count": 10,
            "images": [
                "https://nest.botble.com/storage/products/11.jpg",
                "https://nest.botble.com/storage/products/11-1.jpg"
            ],
            "images_thumb": [
                "https://nest.botble.com/storage/products/11-150x150.jpg",
                "https://nest.botble.com/storage/products/11-1-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://nest.botble.com/storage/products/11.jpg",
                    "https://nest.botble.com/storage/products/11-1.jpg"
                ],
                "thumb": [
                    "https://nest.botble.com/storage/products/11-150x150.jpg",
                    "https://nest.botble.com/storage/products/11-1-150x150.jpg"
                ],
                "medium": [
                    "https://nest.botble.com/storage/products/11-800x800.jpg",
                    "https://nest.botble.com/storage/products/11-1-800x800.jpg"
                ],
                "product-thumb": [
                    "https://nest.botble.com/storage/products/11-400x400.jpg",
                    "https://nest.botble.com/storage/products/11-1-400x400.jpg"
                ]
            },
            "weight": 848,
            "height": 14,
            "wide": 20,
            "length": 11,
            "image_url": "https://nest.botble.com/storage/products/11-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 5,
                "slug": "roberts-store",
                "name": "Robert’s Store"
            }
        },
        {
            "id": 12,
            "slug": "naturally-flavored-cinnamon-vanilla-light-roast-coffee-digital",
            "url": "https://nest.botble.com/products/naturally-flavored-cinnamon-vanilla-light-roast-coffee-digital",
            "name": "Naturally Flavored Cinnamon Vanilla Light Roast Coffee (Digital)",
            "sku": "QQ-132",
            "description": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline.</p>\n<p><img src=\"/storage/general/clock.png\" alt=\"icon\" style=\"height:15px;\">  1 Year AL Jazeera Brand Warranty\n</p>\n<p><img src=\"/storage/general/paper-plane.png\" alt=\"icon\" style=\"height:15px;\">   30 Day Return Policy</p>\n<p><img src=\"/storage/general/credit-card.png\" alt=\"icon\" style=\"height:15px;\">  Cash on Delivery available\n</p>\n",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string\n    detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in\n    cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic\n    silhouette and utilitarian design details.</p>\n<p>- Casual unisex fit</p>\n\n<p>- 64% polyester, 36% polyurethane</p>\n\n<p>- Water column pressure: 4000 mm</p>\n\n<p>- Model is 187cm tall and wearing a size S / M</p>\n\n<p>- Unisex fit</p>\n\n<p>- Drawstring hood with built-in cap</p>\n\n<p>- Front placket with snap buttons</p>\n\n<p>- Ventilation under armpit</p>\n\n<p>- Adjustable cuffs</p>\n\n<p>- Double welted front pockets</p>\n\n<p>- Adjustable elastic string at hempen</p>\n\n<p>- Ultrasonically welded seams</p>\n\n<p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing\n    information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean\n    and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising\n    from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody-\n    but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy\n    days, issuing an invitation to explore even in the most mercurial weather.</p>\n",
            "quantity": 10,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 174,
            "price_formatted": "$174.00",
            "original_price": 847,
            "original_price_formatted": "$847.00",
            "reviews_avg": 3.3,
            "reviews_count": 10,
            "images": [
                "https://nest.botble.com/storage/products/12.jpg",
                "https://nest.botble.com/storage/products/12-1.jpg"
            ],
            "images_thumb": [
                "https://nest.botble.com/storage/products/12-150x150.jpg",
                "https://nest.botble.com/storage/products/12-1-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://nest.botble.com/storage/products/12.jpg",
                    "https://nest.botble.com/storage/products/12-1.jpg"
                ],
                "thumb": [
                    "https://nest.botble.com/storage/products/12-150x150.jpg",
                    "https://nest.botble.com/storage/products/12-1-150x150.jpg"
                ],
                "medium": [
                    "https://nest.botble.com/storage/products/12-800x800.jpg",
                    "https://nest.botble.com/storage/products/12-1-800x800.jpg"
                ],
                "product-thumb": [
                    "https://nest.botble.com/storage/products/12-400x400.jpg",
                    "https://nest.botble.com/storage/products/12-1-400x400.jpg"
                ]
            },
            "weight": 831,
            "height": 15,
            "wide": 11,
            "length": 17,
            "image_url": "https://nest.botble.com/storage/products/12-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 5,
                "slug": "roberts-store",
                "name": "Robert’s Store"
            }
        }
    ],
    "links": {
        "first": "https://nest.botble.com/api/v1/ecommerce/brands/1/products?page=1",
        "last": "https://nest.botble.com/api/v1/ecommerce/brands/1/products?page=2",
        "prev": null,
        "next": "https://nest.botble.com/api/v1/ecommerce/brands/1/products?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 2,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https://nest.botble.com/api/v1/ecommerce/brands/1/products?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": "https://nest.botble.com/api/v1/ecommerce/brands/1/products?page=2",
                "label": "2",
                "active": false
            },
            {
                "url": "https://nest.botble.com/api/v1/ecommerce/brands/1/products?page=2",
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https://nest.botble.com/api/v1/ecommerce/brands/1/products",
        "per_page": 12,
        "to": 12,
        "total": 24
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/ecommerce/brands/{id}/products

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the brand. Example: 1

Cart

Add product to cart

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/cart" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1,
    \"qty\": 1
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/cart"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1,
    "qty": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/cart

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

product_id   integer   

ID of the product. Example: 1

qty   integer   

Quantity of the product. Default: 1. Example: 1

Add product to cart

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/cart/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1,
    \"qty\": 1
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/cart/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1,
    "qty": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/cart/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the cart. Example: architecto

Body Parameters

product_id   integer   

ID of the product. Example: 1

qty   integer   

Quantity of the product. Default: 1. Example: 1

Update quantity of a product in cart

Example request:
curl --request PUT \
    "https://nest.botble.com/api/v1/ecommerce/cart/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1,
    \"qty\": 1
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/cart/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1,
    "qty": 1
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/v1/ecommerce/cart/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the cart. Example: architecto

Body Parameters

product_id   integer   

ID of the product. Example: 1

qty   integer   

Quantity of the product. Example: 1

Remove a cart item by its ID.

Example request:
curl --request DELETE \
    "https://nest.botble.com/api/v1/ecommerce/cart/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/cart/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

DELETE api/v1/ecommerce/cart/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the cart. Example: architecto

Body Parameters

product_id   string   

The ID of the product to remove from the cart. The id of an existing record in the ec_products table. Example: 1

Get a cart item by id.

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/cart/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"customer_id\": 1,
    \"id\": \"e70c6c88dae8344b03e39bb147eba66a\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/cart/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "customer_id": 1,
    "id": "e70c6c88dae8344b03e39bb147eba66a"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "id": "architecto",
    "cart_items": [],
    "count": 0,
    "raw_total": 0,
    "raw_total_formatted": "$0.00",
    "sub_total": 0,
    "sub_total_formatted": "$0.00",
    "tax_amount": 0,
    "tax_amount_formatted": "$0.00",
    "promotion_discount_amount": 0,
    "promotion_discount_amount_formatted": "$0.00",
    "coupon_discount_amount": 0,
    "coupon_discount_amount_formatted": "$0.00",
    "applied_coupon_code": null,
    "order_total": 0,
    "order_total_formatted": "$0.00"
}
 

Request      

GET api/v1/ecommerce/cart/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the cart. Example: architecto

Body Parameters

customer_id   integer  optional  

is ID of the customer. Example: 1

id   string   

ID of the cart item. Example: e70c6c88dae8344b03e39bb147eba66a

Refresh cart items

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/cart/refresh" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"products\": [
        \"architecto\"
    ]
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/cart/refresh"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "products": [
        "architecto"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/cart/refresh

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

products   string[]   

List of products with product_id and quantity.

product_id   integer   

The ID of the product. The id of an existing record in the ec_products table. Example: 1

quantity   integer   

The quantity of the product. Must be at least 1. Example: 2

*   object  optional  
product_id   integer   

ID of the product. Example: 1

quantity   integer   

Quantity of the product. Example: 1

Calculate tax for products in cart

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/checkout/taxes/calculate" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"products\": [
        \"architecto\"
    ],
    \"country\": \"US\",
    \"state\": \"CA\",
    \"city\": \"Los Angeles\",
    \"zip_code\": \"90001\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/checkout/taxes/calculate"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "products": [
        "architecto"
    ],
    "country": "US",
    "state": "CA",
    "city": "Los Angeles",
    "zip_code": "90001"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "items": [
        {
            "product_id": 1,
            "price": 100,
            "price_formatted": "$100.00",
            "quantity": 2,
            "tax_rate": 10,
            "tax_amount": 20,
            "tax_amount_formatted": "$20.00",
            "subtotal": 200,
            "subtotal_formatted": "$200.00",
            "total": 220,
            "total_formatted": "$220.00"
        }
    ],
    "totals": {
        "sub_total": 200,
        "sub_total_formatted": "$200.00",
        "tax_amount": 20,
        "tax_amount_formatted": "$20.00",
        "total": 220,
        "total_formatted": "$220.00"
    }
}
 

Request      

POST api/v1/ecommerce/checkout/taxes/calculate

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

products   string[]   

List of products with id and quantity.

id   string   

The ID of the product. The id of an existing record in the ec_products table. Example: 1

quantity   integer   

The quantity of the product. Must be at least 1. Example: 2

*   object  optional  
id   integer   

Product ID. Example: 1

quantity   integer   

Product quantity. Example: 2

country   string  optional  

Country code. Example: US

state   string  optional  

State code. Example: CA

city   string  optional  

City name. Example: Los Angeles

zip_code   string  optional  

ZIP code. Example: 90001

Checkout

Process Checkout Process the checkout for a specific cart ID. This endpoint restores the cart, generates an order token, and redirects the user to the checkout page.

requires authentication

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/checkout/cart/12345" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/checkout/cart/12345"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (302):


{}
 

Example response (302):

Show headers
cache-control: no-cache, private
location: https://nest.botble.com/checkout/cf90a0c1836f86641fc16cd7490e96ad
content-type: text/html; charset=utf-8
access-control-allow-origin: *
set-cookie: botble_session=eyJpdiI6IkV2ZEhXZXA0UkRJcnpWVXA1ckhHMEE9PSIsInZhbHVlIjoiSWNIaTVlZVhUMXcyZ3dtL1NHc0RYSlNHVFFsZFNGVW5tQXA1SFNrL3dueUZCRy9YT3oxZVZCM0JhZ1hqcHVxNXdJbGZQZjV5VmJPY25BcDB1WGFhSzFrby9oYVF5R01MTlBmbnNLQUZxNUptSU5NWmtJdENDY2hRNTJMbzZWb2YiLCJtYWMiOiI4MDEwYzEwMTdhZDg4MGRiNjI5ZWJlNDI0NTZlYzFkZDM5NTFmZDM5ZTdlNTRiOTA4NzRmODQzNjFhNTVlY2YxIiwidGFnIjoiIn0%3D; expires=Thu, 03 Jul 2025 10:30:12 GMT; Max-Age=7200; path=/; secure; httponly; samesite=lax; botble_footprints_cookie=eyJpdiI6IjYySjVSM3FReWNWdVoyTGJnUFFYTHc9PSIsInZhbHVlIjoiYm9zMno3NU8xeUNtYUdqR1ZrdHpwVEUxeXFrRFBDZXlac0c1WmI5K21GWU1qMC9LOWhkOTU0QWVHeitUSjJsNHZ5U2FlMGs3cDg0TGlScnZzMWhBSzYveTNYbG1VMGE3MFQ0eUVBUzFWL0pFSVlDR0VyTG1EOWQwcWE0dHZXWWciLCJtYWMiOiJkMjUzYzQzNTE2NjVlYzA2MmE2NzRlZThiODkzNzlkMWEyYTczZDA1ODhlODMxMTg3M2Q3OWRlMjdlMThjNmEzIiwidGFnIjoiIn0%3D; expires=Thu, 27 Aug 2026 08:30:07 GMT; Max-Age=36287995; path=/; secure; httponly; samesite=lax; botble_footprints_cookie_data=eyJpdiI6IjI4Z3JZUVJiMi9XWk5wK0UzTFUzcmc9PSIsInZhbHVlIjoiTTFUSVloK21ZT2N2RlNnSkl1ZmpwWkV2NU9kcGlKUEt1b0lUZnFWUFkzc3VTUGRSRVd3Y2w3QVpVKzAzZEFKQXh1UmV4OE15d01KUjc0dmxPMTlKbVMvaGEwandEQ1RrTktTVmRDYWkxbU9CT1R4NGtmVTY3dk41L01DTEVpME9hb2IrQmhFRlZwZVlIbmVLekpvclpFYzRNbk9mdmplM2YwRy81WHhHMkFJVWFEMGRiYnZIcE1oL2tGSEZRZzVkSFZuTjl2Y0xzRndjMnd2VitQSVlVZHl6SlVnZmtrenFLMU94Tk1qMmpGYVlFY1R3RzFaTmRSZEVRSjRiNGwvRTZlUjdsMk1HVWY2Q0t1L09Uc3N0RnY2ZmQxbWg1c01DWit4dGNYSU9KZ3lXV05CNkd1bTgyUEZLWk9jTWgraWw3V2tkRHhRMENLeW5lVUdEVlpTWnBGQWhUSlptZWx2eW1VaXpxaWQ2bDZjbWhwci9CSG9jS2VydGNYbXVvYmRUYVhhQ0VvWU1DTkdpcHp5UGN0cHIzTnBtOVFJVHhBd1cwaHV2TWxoRVNsK3g4MkJRZEdYQjEvNURnb0ZqUklmM2NyemhybVNSKzdQVzQzUndXdTM3UXp2c2pHT04zVW81QlpBdUNraS8xRmtmR0d4ZjhkdHZpaDBjbFRhYm5MdjV4MnJIT0ZVU0VWVjIvYjFublM3dU9nQUYwMHp5TFFrTHl5YWp0WEo3TFBVPSIsIm1hYyI6IjdkMmI3Y2Q3MTJjN2ZiZTliZGNjMDBjODM0ZGViNTE2YTIzMWUwYTQxZTUyNzhkNjcxMDhiODBmOTViMDBiMzYiLCJ0YWciOiIifQ%3D%3D; expires=Thu, 27 Aug 2026 08:30:07 GMT; Max-Age=36287995; path=/; secure; httponly; samesite=lax
 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="refresh" content="0;url='https://nest.botble.com/checkout/cf90a0c1836f86641fc16cd7490e96ad'" />

        <title>Redirecting to https://nest.botble.com/checkout/cf90a0c1836f86641fc16cd7490e96ad</title>
    </head>
    <body>
        Redirecting to <a href="https://nest.botble.com/checkout/cf90a0c1836f86641fc16cd7490e96ad">https://nest.botble.com/checkout/cf90a0c1836f86641fc16cd7490e96ad</a>.
    </body>
</html>
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Example response (404):


{
    "message": "Cart not found."
}
 

Request      

GET api/v1/ecommerce/checkout/cart/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the cart to process. Example: 12345

Compare

Add product to compare

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/compare" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/compare"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/compare

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

product_id   integer   

ID of the product. Example: 1

Add product to compare

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/compare/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/compare/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/compare/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the compare. Example: architecto

Body Parameters

product_id   integer   

ID of the product. Example: 1

Remove a product from compare list

Example request:
curl --request DELETE \
    "https://nest.botble.com/api/v1/ecommerce/compare/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/compare/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

DELETE api/v1/ecommerce/compare/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the compare. Example: architecto

Body Parameters

product_id   string   

The ID of the product to remove from the compare list. The id of an existing record in the ec_products table. Example: 1

Get compare items

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/compare/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": \"e70c6c88dae8344b03e39bb147eba66a\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/compare/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "e70c6c88dae8344b03e39bb147eba66a"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "id": "architecto",
    "data": {
        "count": 0,
        "items": []
    }
}
 

Request      

GET api/v1/ecommerce/compare/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the compare. Example: architecto

Body Parameters

id   string   

ID of the compare list. Example: e70c6c88dae8344b03e39bb147eba66a

Coupons

Get all available coupons

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/coupons?coupon_ids=1%2C2%2C3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/coupons"
);

const params = {
    "coupon_ids": "1,2,3",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [
        {
            "id": 2,
            "title": "Discount 2",
            "code": "ZVSN8VWSDPMU",
            "description": null,
            "value": 881,
            "type_option": "shipping",
            "target": "all-orders",
            "min_order_price": null,
            "min_order_price_formatted": "$0.00",
            "start_date": "2025-05-16T08:45:15.000000Z",
            "end_date": null,
            "quantity": null,
            "total_used": 0,
            "left_quantity": 0,
            "can_use_with_promotion": false,
            "can_use_with_flash_sale": false,
            "apply_via_url": false,
            "display_at_checkout": true,
            "is_expired": false
        },
        {
            "id": 3,
            "title": "Discount 3",
            "code": "VWQTOJVTWITN",
            "description": null,
            "value": 988,
            "type_option": "amount",
            "target": "all-orders",
            "min_order_price": null,
            "min_order_price_formatted": "$0.00",
            "start_date": "2025-05-16T08:45:15.000000Z",
            "end_date": null,
            "quantity": null,
            "total_used": 0,
            "left_quantity": 0,
            "can_use_with_promotion": false,
            "can_use_with_flash_sale": false,
            "apply_via_url": false,
            "display_at_checkout": true,
            "is_expired": false
        }
    ],
    "error": false,
    "message": null
}
 

Request      

GET api/v1/ecommerce/coupons

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

coupon_ids   string  optional  

Optional comma-separated list of coupon IDs to filter by. Example: 1,2,3

Apply coupon code

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/coupon/apply" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"coupon_code\": \"DISCOUNT20\",
    \"cart_id\": \"e70c6c88dae8344b03e39bb147eba66a\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/coupon/apply"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "coupon_code": "DISCOUNT20",
    "cart_id": "e70c6c88dae8344b03e39bb147eba66a"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/coupon/apply

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

coupon_code   string   

The coupon code. Example: DISCOUNT20

cart_id   string   

ID of the cart to apply coupon to. Example: e70c6c88dae8344b03e39bb147eba66a

Remove coupon code

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/coupon/remove" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"cart_id\": \"e70c6c88dae8344b03e39bb147eba66a\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/coupon/remove"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "cart_id": "e70c6c88dae8344b03e39bb147eba66a"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/coupon/remove

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

cart_id   string  optional  

ID of the cart to remove coupon from. Example: e70c6c88dae8344b03e39bb147eba66a

Currencies

Get list of available currencies

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/currencies" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/currencies"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": [
        {
            "id": 1,
            "title": "USD",
            "symbol": "$",
            "is_prefix_symbol": true,
            "decimals": 2,
            "order": 0,
            "is_default": true,
            "exchange_rate": 1
        },
        {
            "id": 2,
            "title": "EUR",
            "symbol": "€",
            "is_prefix_symbol": false,
            "decimals": 2,
            "order": 1,
            "is_default": false,
            "exchange_rate": 0.91
        }
    ],
    "message": null
}
 

Request      

GET api/v1/ecommerce/currencies

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Get current currency

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/currencies/current" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/currencies/current"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "id": 1,
        "title": "USD",
        "symbol": "$",
        "is_prefix_symbol": true,
        "decimals": 2,
        "order": 0,
        "is_default": true,
        "exchange_rate": 1
    },
    "message": null
}
 

Request      

GET api/v1/ecommerce/currencies/current

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Device Tokens

Register or update device token

Register a new device token or update an existing one for push notifications.

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/device-tokens" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"token\": \"architecto\",
    \"platform\": \"architecto\",
    \"app_version\": \"architecto\",
    \"device_id\": \"architecto\",
    \"user_type\": \"architecto\",
    \"user_id\": 16
}"
const url = new URL(
    "https://nest.botble.com/api/v1/device-tokens"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "token": "architecto",
    "platform": "architecto",
    "app_version": "architecto",
    "device_id": "architecto",
    "user_type": "architecto",
    "user_id": 16
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/device-tokens

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

token   string   

The FCM device token. Example: architecto

platform   string  optional  

The device platform (android, ios). Example: architecto

app_version   string  optional  

The app version. Example: architecto

device_id   string  optional  

The unique device identifier. Example: architecto

user_type   string  optional  

The user type (customer, admin). Example: architecto

user_id   integer  optional  

The user ID. Example: 16

Get user's device tokens

Retrieve all device tokens for the authenticated user.

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/device-tokens" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/device-tokens"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/device-tokens

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Update device token

Update an existing device token.

Example request:
curl --request PUT \
    "https://nest.botble.com/api/v1/device-tokens/564" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"platform\": \"architecto\",
    \"app_version\": \"architecto\",
    \"device_id\": \"architecto\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/device-tokens/564"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "platform": "architecto",
    "app_version": "architecto",
    "device_id": "architecto"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/v1/device-tokens/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the device token. Example: 564

Body Parameters

platform   string  optional  

The device platform (android, ios). Example: architecto

app_version   string  optional  

The app version. Example: architecto

device_id   string  optional  

The unique device identifier. Example: architecto

Delete device token by token value

Delete a device token using the token value.

Example request:
curl --request DELETE \
    "https://nest.botble.com/api/v1/device-tokens/by-token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"token\": \"architecto\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/device-tokens/by-token"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "token": "architecto"
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

DELETE api/v1/device-tokens/by-token

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

token   string   

The FCM device token to delete. Example: architecto

Delete device token

Delete a device token to stop receiving push notifications.

Example request:
curl --request DELETE \
    "https://nest.botble.com/api/v1/device-tokens/564" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/device-tokens/564"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/v1/device-tokens/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the device token. Example: 564

Deactivate device token

Deactivate a device token without deleting it.

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/device-tokens/564/deactivate" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/device-tokens/564/deactivate"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/device-tokens/{id}/deactivate

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the device token. Example: 564

Downloads

Get list of digital products available for download

requires authentication

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/downloads" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/downloads"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/downloads

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Download a digital product

requires authentication

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/downloads/564" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/downloads/564"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/downloads/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the download. Example: 564

Endpoints

Download a file using a token

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/download/architecto/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/download/architecto/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": ""
}
 

Request      

GET api/v1/ecommerce/download/{token}/{order_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

token   string   

Example: architecto

order_id   string   

The ID of the order. Example: architecto

Download a proof file using a token

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/orders/download-proof/architecto/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/orders/download-proof/architecto/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "No query results for model [Botble\\Ecommerce\\Models\\Order] architecto"
}
 

Request      

GET api/v1/ecommerce/orders/download-proof/{token}/{order_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

token   string   

Example: architecto

order_id   string   

The ID of the order. Example: architecto

POST api/v1/auth/apple

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/auth/apple" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/auth/apple"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/auth/apple

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

POST api/v1/auth/google

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/auth/google" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/auth/google"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/auth/google

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

POST api/v1/auth/facebook

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/auth/facebook" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/auth/facebook"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/auth/facebook

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

POST api/v1/auth/x

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/auth/x" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/auth/x"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/auth/x

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Filters

Get filter data for products

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/filters" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/filters"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": {
        "categories": [
            {
                "id": 1,
                "name": "Milks and Dairies",
                "slug": "milks-and-dairies",
                "url": "product-categories/milks-and-dairies",
                "parent_id": 0
            },
            {
                "id": 2,
                "name": "Clothing & beauty",
                "slug": "clothing-beauty",
                "url": "product-categories/clothing-beauty",
                "parent_id": 0
            },
            {
                "id": 3,
                "name": "Pet Toy",
                "slug": "pet-toy",
                "url": "product-categories/pet-toy",
                "parent_id": 0
            },
            {
                "id": 4,
                "name": "Baking material",
                "slug": "baking-material",
                "url": "product-categories/baking-material",
                "parent_id": 0
            },
            {
                "id": 5,
                "name": "Fresh Fruit",
                "slug": "fresh-fruit",
                "url": "product-categories/fresh-fruit",
                "parent_id": 0
            },
            {
                "id": 6,
                "name": "Wines & Drinks",
                "slug": "wines-drinks",
                "url": "product-categories/wines-drinks",
                "parent_id": 0
            },
            {
                "id": 7,
                "name": "Fresh Seafood",
                "slug": "fresh-seafood",
                "url": "product-categories/fresh-seafood",
                "parent_id": 0
            },
            {
                "id": 8,
                "name": "Fast food",
                "slug": "fast-food",
                "url": "product-categories/fast-food",
                "parent_id": 0
            },
            {
                "id": 9,
                "name": "Vegetables",
                "slug": "vegetables",
                "url": "product-categories/vegetables",
                "parent_id": 0
            },
            {
                "id": 10,
                "name": "Bread and Juice",
                "slug": "bread-and-juice",
                "url": "product-categories/bread-and-juice",
                "parent_id": 0
            },
            {
                "id": 11,
                "name": "Cake & Milk",
                "slug": "cake-milk",
                "url": "product-categories/cake-milk",
                "parent_id": 0
            },
            {
                "id": 12,
                "name": "Coffee & Teas",
                "slug": "coffee-teas",
                "url": "product-categories/coffee-teas",
                "parent_id": 0
            },
            {
                "id": 13,
                "name": "Pet Foods",
                "slug": "pet-foods",
                "url": "product-categories/pet-foods",
                "parent_id": 0
            },
            {
                "id": 14,
                "name": "Diet Foods",
                "slug": "diet-foods",
                "url": "product-categories/diet-foods",
                "parent_id": 0
            }
        ],
        "brands": [
            {
                "id": 1,
                "name": "Perxsion",
                "slug": "perxsion",
                "url": "https://nest.botble.com/products?brands%5B%5D=1",
                "products_count": 9
            },
            {
                "id": 2,
                "name": "Hiching",
                "slug": "hiching",
                "url": "https://nest.botble.com/products?brands%5B%5D=2",
                "products_count": 3
            },
            {
                "id": 3,
                "name": "Kepslo",
                "slug": "kepslo",
                "url": "https://nest.botble.com/products?brands%5B%5D=3",
                "products_count": 2
            },
            {
                "id": 4,
                "name": "Groneba",
                "slug": "groneba",
                "url": "https://nest.botble.com/products?brands%5B%5D=4",
                "products_count": 4
            },
            {
                "id": 5,
                "name": "Babian",
                "slug": "babian",
                "url": "https://nest.botble.com/products?brands%5B%5D=5",
                "products_count": 2
            },
            {
                "id": 6,
                "name": "Valorant",
                "slug": "valorant",
                "url": "https://nest.botble.com/products?brands%5B%5D=6",
                "products_count": 2
            },
            {
                "id": 7,
                "name": "Pure",
                "slug": "pure",
                "url": "https://nest.botble.com/products?brands%5B%5D=7",
                "products_count": 2
            }
        ],
        "tags": [
            {
                "id": 4,
                "name": "Clothes",
                "slug": "clothes",
                "url": "https://nest.botble.com/products?tags%5B%5D=4",
                "products_count": 17
            },
            {
                "id": 2,
                "name": "Bags",
                "slug": "bags",
                "url": "https://nest.botble.com/products?tags%5B%5D=2",
                "products_count": 16
            },
            {
                "id": 5,
                "name": "Hand bag",
                "slug": "hand-bag",
                "url": "https://nest.botble.com/products?tags%5B%5D=5",
                "products_count": 15
            },
            {
                "id": 3,
                "name": "Shoes",
                "slug": "shoes",
                "url": "https://nest.botble.com/products?tags%5B%5D=3",
                "products_count": 14
            },
            {
                "id": 1,
                "name": "Wallet",
                "slug": "wallet",
                "url": "https://nest.botble.com/products?tags%5B%5D=1",
                "products_count": 10
            }
        ],
        "price_ranges": [],
        "max_price": 2488,
        "current_category_id": 0,
        "current_filter_categories": [],
        "attributes": [
            {
                "id": 1,
                "title": "Weight",
                "slug": "weight",
                "display_layout": "text",
                "attributes": [
                    {
                        "id": 1,
                        "title": "1KG",
                        "slug": "1kg",
                        "color": null,
                        "image": null,
                        "is_default": 1,
                        "is_selected": false
                    },
                    {
                        "id": 2,
                        "title": "2KG",
                        "slug": "2kg",
                        "color": null,
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    },
                    {
                        "id": 3,
                        "title": "3KG",
                        "slug": "3kg",
                        "color": null,
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    },
                    {
                        "id": 4,
                        "title": "4KG",
                        "slug": "4kg",
                        "color": null,
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    },
                    {
                        "id": 5,
                        "title": "5KG",
                        "slug": "5kg",
                        "color": null,
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    }
                ]
            },
            {
                "id": 2,
                "title": "Boxes",
                "slug": "boxes",
                "display_layout": "text",
                "attributes": [
                    {
                        "id": 6,
                        "title": "1 Box",
                        "slug": "1-box",
                        "color": null,
                        "image": null,
                        "is_default": 1,
                        "is_selected": false
                    },
                    {
                        "id": 7,
                        "title": "2 Boxes",
                        "slug": "2-boxes",
                        "color": null,
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    },
                    {
                        "id": 8,
                        "title": "3 Boxes",
                        "slug": "3-boxes",
                        "color": null,
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    },
                    {
                        "id": 9,
                        "title": "4 Boxes",
                        "slug": "4-boxes",
                        "color": null,
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    },
                    {
                        "id": 10,
                        "title": "5 Boxes",
                        "slug": "5-boxes",
                        "color": null,
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    }
                ]
            }
        ]
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/ecommerce/filters

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

category   integer  optional  

Category ID to get filter data for a specific category.

Flash Sale

Get flash sales

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/flash-sales?keys=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keys\": null
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/flash-sales"
);

const params = {
    "keys": "",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keys": null
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (422):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "The keys field is required."
}
 

Request      

GET api/v1/ecommerce/flash-sales

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

keys   string[]  optional  

Array of flash sale keys to filter by.

Body Parameters

keys   string[]  optional  

Array of flash sale keys to filter by.

Languages

Get list of available languages

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/languages" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/languages"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": [
        {
            "lang_id": 1,
            "lang_name": "English",
            "lang_locale": "en",
            "lang_code": "en_US",
            "lang_flag": "<svg ...>",
            "lang_is_default": true,
            "lang_is_rtl": false,
            "lang_order": 0
        },
        {
            "lang_id": 2,
            "lang_name": "Vietnamese",
            "lang_locale": "vi",
            "lang_code": "vi",
            "lang_flag": "<svg ...>",
            "lang_is_default": false,
            "lang_is_rtl": false,
            "lang_order": 1
        }
    ],
    "message": null
}
 

Request      

GET api/v1/languages

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Get current language

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/languages/current" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/languages/current"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "lang_id": 1,
        "lang_name": "English",
        "lang_locale": "en",
        "lang_code": "en_US",
        "lang_flag": "us",
        "lang_is_default": true,
        "lang_is_rtl": false,
        "lang_order": 0
    },
    "message": null
}
 

Request      

GET api/v1/languages/current

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Notifications

Get user notifications

Retrieve notifications for the authenticated user.

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/notifications?page=1&per_page=20&unread_only=&type=general" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/notifications"
);

const params = {
    "page": "1",
    "per_page": "20",
    "unread_only": "0",
    "type": "general",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/notifications

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

Page number for pagination. Example: 1

per_page   integer  optional  

Number of notifications per page (max 50). Example: 20

unread_only   boolean  optional  

Filter to show only unread notifications. Example: false

type   string  optional  

Filter by notification type. Example: general

Get notification statistics

Get notification statistics for the authenticated user.

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/notifications/stats" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/notifications/stats"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/notifications/stats

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Mark all notifications as read

Mark all notifications as read for the authenticated user.

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/notifications/mark-all-read" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/notifications/mark-all-read"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/notifications/mark-all-read

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Mark notification as read

Mark a specific notification as read for the authenticated user.

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/notifications/564/read" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/notifications/564/read"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/notifications/{id}/read

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the notification. Example: 564

Mark notification as clicked

Mark a notification as clicked when user taps on it.

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/notifications/564/clicked" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/notifications/564/clicked"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/notifications/{id}/clicked

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the notification. Example: 564

Delete notification

Delete a notification from user's list.

Example request:
curl --request DELETE \
    "https://nest.botble.com/api/v1/notifications/564" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/notifications/564"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/v1/notifications/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the notification. Example: 564

Order Returns

Get list of order return requests for the current user

requires authentication

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/order-returns" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/order-returns"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/order-returns

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Get detail of an order return request

requires authentication

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/order-returns/564" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/order-returns/564"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/order-returns/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the order return. Example: 564

Submit a new order return request

requires authentication

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/order-returns" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"order_id\": 1,
    \"return_items\": [
        \"architecto\"
    ],
    \"reason\": \"DAMAGED_PRODUCT\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/order-returns"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "order_id": 1,
    "return_items": [
        "architecto"
    ],
    "reason": "DAMAGED_PRODUCT"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/order-returns

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

order_id   integer   

The ID of the order to return. Example: 1

return_items   string[]   

The items to return with order_item_id, is_return, and qty.

is_return   string  optional  

Whether this item should be returned. Example: true

order_item_id   number  optional  

The ID of the order item to return. This field is required when return_items.*.is_return or checked is present. The id of an existing record in the ec_order_product table. Example: 1

qty   number  optional  

The quantity to return. Must be at least 1. Example: 2

*   object  optional  
order_item_id   integer   

The ID of the order item. Example: 1

is_return   boolean   

Whether to return this item. Example: true

qty   integer  optional  

The quantity to return (required if partial return is enabled). Example: 1

reason   string  optional  

The reason for returning this item (required if partial return is enabled). Example: DAMAGED_PRODUCT

reason   string   

The reason for the return. Example: DAMAGED_PRODUCT

Get order information for return request

requires authentication

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/orders/564/returns" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/orders/564/returns"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/orders/{order_id}/returns

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

order_id   string   

The ID of the order. Example: 564

Orders

APIs for order tracking

Get list of orders by customer

requires authentication

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/orders?status=completed&shipping_status=delivered&payment_status=completed&per_page=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/orders"
);

const params = {
    "status": "completed",
    "shipping_status": "delivered",
    "payment_status": "completed",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/orders

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

status   string  optional  

Filter orders by status (pending, processing, completed, canceled). Example: completed

shipping_status   string  optional  

Filter orders by shipping status (not_shipped, delivering, delivered, canceled). Example: delivered

payment_status   string  optional  

Filter orders by payment status (pending, completed, refunding, refunded, canceled). Example: completed

per_page   integer  optional  

Number of orders per page. Example: 10

Get order detail

requires authentication

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/orders/564" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/orders/564"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/orders/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the order. Example: 564

Cancel an order

requires authentication

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/orders/564/cancel" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"cancellation_reason\": \"OTHER\",
    \"cancellation_reason_description\": \"I found a better deal elsewhere\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/orders/564/cancel"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "cancellation_reason": "OTHER",
    "cancellation_reason_description": "I found a better deal elsewhere"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/orders/{id}/cancel

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the order. Example: 564

Body Parameters

cancellation_reason   string   

The reason for cancellation. Example: OTHER

cancellation_reason_description   string  optional  

The description of the cancellation reason (required if cancellation_reason is OTHER). Example: I found a better deal elsewhere

Print an order invoice

requires authentication

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/orders/564/invoice?type=download&format=architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/orders/564/invoice"
);

const params = {
    "type": "download",
    "format": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/orders/{id}/invoice

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the order. Example: 564

Query Parameters

type   string  optional  

Type of response (print or download). Example: download

format   string  optional  

Response format (url or pdf). Use 'pdf' for direct PDF content, 'url' for URL response. Default: url Example: architecto

Upload payment proof for an order

requires authentication

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/orders/564/upload-proof" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "file=@/tmp/phpt4k0raf0m9h1cHhWrqt" 
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/orders/564/upload-proof"
);

const headers = {
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('file', document.querySelector('input[name="file"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());

Request      

POST api/v1/ecommerce/orders/{id}/upload-proof

Headers

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the order. Example: 564

Body Parameters

file   file   

The payment proof file (jpeg, jpg, png, pdf, max 2MB). Example: /tmp/phpt4k0raf0m9h1cHhWrqt

Download payment proof for an order

requires authentication

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/orders/564/download-proof" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/orders/564/download-proof"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/orders/{id}/download-proof

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the order. Example: 564

Confirm delivery of an order

requires authentication

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/orders/564/confirm-delivery" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/orders/564/confirm-delivery"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/ecommerce/orders/{id}/confirm-delivery

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the order. Example: 564

Track an order

Track an order by order code and email/phone

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/orders/tracking" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"code\": \"ORD-12345\",
    \"email\": \"[email protected]\",
    \"phone\": \"+1234567890\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/orders/tracking"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "code": "ORD-12345",
    "email": "[email protected]",
    "phone": "+1234567890"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "message": "Order found successfully",
    "data": {
        "order": {
            "id": 1,
            "code": "ORD-12345",
            "status": "completed",
            "amount": 100,
            "shipping_amount": 10,
            "payment_fee": 5,
            "tax_amount": 5,
            "sub_total": 90,
            "discount_amount": 0,
            "payment_id": 1,
            "user_id": 1,
            "created_at": "2023-08-10T12:34:56.000000Z",
            "updated_at": "2023-08-10T12:34:56.000000Z",
            "address": {
                "id": 1,
                "name": "John Doe",
                "email": "[email protected]",
                "phone": "+1234567890",
                "address": "123 Main St",
                "city": "New York",
                "state": "NY",
                "country": "US",
                "zip_code": "10001"
            },
            "products": [
                {
                    "id": 1,
                    "name": "Product 1",
                    "price": 90,
                    "qty": 1
                }
            ],
            "histories": [
                {
                    "id": 1,
                    "action": "create_order",
                    "description": "Order was created",
                    "created_at": "2023-08-10T12:34:56.000000Z"
                }
            ],
            "shipment": {
                "id": 1,
                "status": "delivered",
                "tracking_id": "SHIP-12345",
                "tracking_link": "https://example.com/tracking/SHIP-12345"
            },
            "payment": {
                "id": 1,
                "status": "completed",
                "payment_channel": "stripe",
                "amount": 100
            }
        }
    }
}
 

Example response (404):


{
    "error": true,
    "message": "Order not found",
    "code": 404
}
 

Request      

POST api/v1/ecommerce/orders/tracking

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

code   string   

The order code. Example: ORD-12345

email   string   

if phone not provided The email associated with the order. Example: [email protected]

phone   string   

if email not provided The phone number associated with the order. Example: +1234567890

Page

List pages

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/pages" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/pages"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [
        {
            "id": 1,
            "name": "Homepage",
            "slug": "homepage",
            "description": null,
            "image": null,
            "template": "homepage",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 2,
            "name": "Homepage 2",
            "slug": "homepage-2",
            "description": null,
            "image": null,
            "template": "homepage",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 3,
            "name": "Homepage 3",
            "slug": "homepage-3",
            "description": null,
            "image": null,
            "template": "homepage",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 4,
            "name": "Homepage 4",
            "slug": "homepage-4",
            "description": null,
            "image": null,
            "template": "homepage",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 5,
            "name": "Blog",
            "slug": "blog",
            "description": null,
            "image": null,
            "template": "blog-grid",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 6,
            "name": "Contact",
            "slug": "contact",
            "description": null,
            "image": null,
            "template": "default",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 7,
            "name": "About us",
            "slug": "about-us",
            "description": null,
            "image": null,
            "template": "right-sidebar",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 8,
            "name": "Cookie Policy",
            "slug": "cookie-policy",
            "description": null,
            "image": null,
            "template": "default",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 9,
            "name": "Terms & Conditions",
            "slug": "terms-conditions",
            "description": null,
            "image": null,
            "template": "default",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        },
        {
            "id": 10,
            "name": "Returns & Exchanges",
            "slug": "returns-exchanges",
            "description": null,
            "image": null,
            "template": "default",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-05-17T08:45:33.000000Z",
            "updated_at": "2025-05-17T08:45:33.000000Z"
        }
    ],
    "links": {
        "first": "https://nest.botble.com/api/v1/pages?page=1",
        "last": "https://nest.botble.com/api/v1/pages?page=2",
        "prev": null,
        "next": "https://nest.botble.com/api/v1/pages?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 2,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https://nest.botble.com/api/v1/pages?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": "https://nest.botble.com/api/v1/pages?page=2",
                "label": "2",
                "active": false
            },
            {
                "url": "https://nest.botble.com/api/v1/pages?page=2",
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https://nest.botble.com/api/v1/pages",
        "per_page": 10,
        "to": 10,
        "total": 19
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/pages

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Get page by ID

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/pages/564?id=16" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/pages/564"
);

const params = {
    "id": "16",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Not found"
}
 

Request      

GET api/v1/pages/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the page. Example: 564

Query Parameters

id   integer  optional  

Find by ID of page. Example: 16

Product Categories

Get list of product categories

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/product-categories" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"is_featured\": false
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/product-categories"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "is_featured": false
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [
        {
            "id": 13,
            "name": "Pet Foods",
            "icon": null,
            "icon_image": "product-categories/icon-13.png",
            "is_featured": 0,
            "parent_id": 0,
            "slug": "pet-foods",
            "image_with_sizes": {
                "origin": "https://nest.botble.com/storage/product-categories/image-13.png",
                "thumb": "https://nest.botble.com/storage/product-categories/image-13-150x150.png",
                "medium": "https://nest.botble.com/storage/product-categories/image-13-800x800.png",
                "product-thumb": "https://nest.botble.com/storage/product-categories/image-13-400x400.png"
            }
        },
        {
            "id": 14,
            "name": "Diet Foods",
            "icon": null,
            "icon_image": "product-categories/icon-14.png",
            "is_featured": 0,
            "parent_id": 0,
            "slug": "diet-foods",
            "image_with_sizes": {
                "origin": "https://nest.botble.com/storage/product-categories/image-14.png",
                "thumb": "https://nest.botble.com/storage/product-categories/image-14-150x150.png",
                "medium": "https://nest.botble.com/storage/product-categories/image-14-800x800.png",
                "product-thumb": "https://nest.botble.com/storage/product-categories/image-14-400x400.png"
            }
        }
    ],
    "error": false,
    "message": null
}
 

Request      

GET api/v1/ecommerce/product-categories

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

categories   string  optional  

nullable array List of category IDs if you need filter by categories, (e.g. [1,2,3]).

page   integer  optional  

Page number. Default: 1.

per_page   integer  optional  

Number of items per page. Default: 16.

Body Parameters

categories   string[]  optional  

The id of an existing record in the ec_product_categories table.

is_featured   boolean  optional  

Filter by featured status. Example: false

Get product category details by slug

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/product-categories/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/product-categories/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": ""
}
 

Request      

GET api/v1/ecommerce/product-categories/{slug}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

slug   string   

The slug of the product category. Example: architecto

Get products by category

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/product-categories/564/products" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/product-categories/564/products"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "No query results for model [Botble\\Ecommerce\\Models\\ProductCategory] 564"
}
 

Request      

GET api/v1/ecommerce/product-categories/{id}/products

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the product category. Example: 564

Products

Get list of products

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/products?sort_by=architecto&price_ranges=%5B%7B%22from%22%3A10%2C%22to%22%3A20%7D%2C%7B%22from%22%3A30%2C%22to%22%3A40%7D%5D&attributes=%5B%7B%22id%22%3A1%2C%22value%22%3A1%7D%2C%7B%22id%22%3A2%2C%22value%22%3A2%7D%5D" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/products"
);

const params = {
    "sort_by": "architecto",
    "price_ranges": "[{"from":10,"to":20},{"from":30,"to":40}]",
    "attributes": "[{"id":1,"value":1},{"id":2,"value":2}]",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [],
    "links": {
        "first": "https://nest.botble.com/api/v1/ecommerce/products?page=1",
        "last": "https://nest.botble.com/api/v1/ecommerce/products?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https://nest.botble.com/api/v1/ecommerce/products?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https://nest.botble.com/api/v1/ecommerce/products",
        "per_page": 12,
        "to": null,
        "total": 0
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/ecommerce/products

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

categories   string[]  optional  

Filter by category IDs.

brands   string[]  optional  

Filter by brand IDs.

collections   string[]  optional  

Filter by collection IDs.

q   string  optional  

Search term.

sort_by   string  optional  

Sort field. Value: default_sorting, date_asc, date_desc, price_asc, price_desc, name_asc, name_desc, rating_asc, rating_desc Example: architecto

page   integer  optional  

The current page.

per_page   integer  optional  

Number of items per page.

discounted_only   boolean  optional  

Filter by discounted only.

min_price   integer  optional  

Minimum price.

max_price   integer  optional  

Maximum price.

price_ranges   string  optional  

Price ranges as JSON string. Example: [{"from":10,"to":20},{"from":30,"to":40}]

attributes   string  optional  

Attributes as JSON string. Example: [{"id":1,"value":1},{"id":2,"value":2}]

Get product details by slug

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/products/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/products/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": ""
}
 

Request      

GET api/v1/ecommerce/products/{slug}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

slug   string   

The slug of the product. Example: architecto

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/products/architecto/related" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/products/architecto/related"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": ""
}
 

Get cross-sale products for a product

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/products/architecto/cross-sale" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/products/architecto/cross-sale"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": ""
}
 

Request      

GET api/v1/ecommerce/products/{slug}/cross-sale

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

slug   string   

The slug of the product. Example: architecto

Get product's reviews

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/products/architecto/reviews" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/products/architecto/reviews"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": ""
}
 

Request      

GET api/v1/ecommerce/products/{slug}/reviews

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

slug   string   

The slug of the product. Example: architecto

Get product variation by attributes

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/product-variation/564?attributes=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reference_product\": \"architecto\",
    \"attributes\": [
        \"architecto\"
    ]
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/product-variation/564"
);

const params = {
    "attributes": "",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reference_product": "architecto",
    "attributes": [
        "architecto"
    ]
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Not available"
}
 

Request      

GET api/v1/ecommerce/product-variation/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the product variation. Example: 564

Query Parameters

attributes   string[]  optional  

Array of attribute IDs.

reference_product   string  optional  

Reference product slug.

Body Parameters

reference_product   string   

Example: architecto

attributes   string[]   

Profile

Get the user profile information.

requires authentication

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/me" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/me"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/me

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Update profile

requires authentication

Example request:
curl --request PUT \
    "https://nest.botble.com/api/v1/me" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"bngz\",
    \"last_name\": \"miyv\",
    \"name\": \"architecto\",
    \"phone\": \"architecto\",
    \"dob\": \"architecto\",
    \"gender\": \"architecto\",
    \"description\": \"Eius et animi quos velit et.\",
    \"email\": \"[email protected]\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/me"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "first_name": "bngz",
    "last_name": "miyv",
    "name": "architecto",
    "phone": "architecto",
    "dob": "architecto",
    "gender": "architecto",
    "description": "Eius et animi quos velit et.",
    "email": "[email protected]"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/v1/me

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

first_name   string  optional  

This field is required when name is not present. Must not be greater than 120 characters. Must be at least 2 characters. Example: bngz

last_name   string  optional  

This field is required when name is not present. Must not be greater than 120 characters. Must be at least 2 characters. Example: miyv

name   string   

Name. Example: architecto

phone   string   

Phone. Example: architecto

dob   date  optional  

nullable Date of birth (format: Y-m-d). Example: architecto

gender   string  optional  

Gender (male, female, other). Example: architecto

description   string  optional  

Description Example: Eius et animi quos velit et.

email   string  optional  

Email. Example: [email protected]

Update Avatar

requires authentication

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/update/avatar" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "avatar=@/tmp/phpr0fjqjoiliat5zCvXT5" 
const url = new URL(
    "https://nest.botble.com/api/v1/update/avatar"
);

const headers = {
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('avatar', document.querySelector('input[name="avatar"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());

Request      

POST api/v1/update/avatar

Headers

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

Body Parameters

avatar   file   

Avatar file. Example: /tmp/phpr0fjqjoiliat5zCvXT5

Update password

requires authentication

Example request:
curl --request PUT \
    "https://nest.botble.com/api/v1/update/password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"password\": \"|]|{+-\",
    \"old_password\": \"architecto\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/update/password"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "password": "|]|{+-",
    "old_password": "architecto"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/v1/update/password

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

password   string   

The new password of user. Example: |]|{+-

old_password   string   

The current password of user. Example: architecto

Get user settings

requires authentication

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/settings

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Update user settings

requires authentication

Example request:
curl --request PUT \
    "https://nest.botble.com/api/v1/settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"biometric_enabled\": false,
    \"notification_enabled\": false,
    \"language\": \"architecto\",
    \"currency\": \"architecto\",
    \"theme\": \"architecto\",
    \"timezone\": \"America\\/Hermosillo\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "biometric_enabled": false,
    "notification_enabled": false,
    "language": "architecto",
    "currency": "architecto",
    "theme": "architecto",
    "timezone": "America\/Hermosillo"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/v1/settings

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

biometric_enabled   boolean  optional  

Enable/disable biometric authentication. Example: false

notification_enabled   boolean  optional  

Enable/disable notifications. Example: false

language   string  optional  

User's preferred language. Example: architecto

currency   string  optional  

User's preferred currency. Example: architecto

theme   string  optional  

User's preferred theme (light, dark, auto). Example: architecto

timezone   string  optional  

User's timezone. Example: America/Hermosillo

Reviews

Get list of reviews for the current user

requires authentication

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/reviews" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/reviews"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/reviews

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Create a new review

requires authentication

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/reviews" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1,
    \"star\": 5,
    \"comment\": \"This is a great product! I highly recommend it.\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/reviews"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1,
    "star": 5,
    "comment": "This is a great product! I highly recommend it."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/reviews

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

product_id   integer   

The ID of the product to review. Example: 1

star   integer   

The rating from 1 to 5 stars. Example: 5

comment   string   

The review comment. Example: This is a great product! I highly recommend it.

images   string[]  optional  

Array of images for the review (optional).

Delete a review

requires authentication

Example request:
curl --request DELETE \
    "https://nest.botble.com/api/v1/ecommerce/reviews/564" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/reviews/564"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/v1/ecommerce/reviews/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the review. Example: 564

Simple Slider

Get sliders

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/simple-sliders?keys[]=home-slider&keys[]=product-slider" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keys\": [
        \"home-slider\",
        \"product-slider\"
    ]
}"
const url = new URL(
    "https://nest.botble.com/api/v1/simple-sliders"
);

const params = {
    "keys[0]": "home-slider",
    "keys[1]": "product-slider",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keys": [
        "home-slider",
        "product-slider"
    ]
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": false,
    "data": [],
    "message": null
}
 

Request      

GET api/v1/simple-sliders

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

keys   string[]  optional  

Array of slider keys to filter by.

Body Parameters

keys   string[]  optional  

Array of slider keys to filter by.

Wishlist

Add product to wishlist

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/wishlist" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/wishlist"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/wishlist

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

product_id   integer   

ID of the product. Example: 1

Add product to wishlist

Example request:
curl --request POST \
    "https://nest.botble.com/api/v1/ecommerce/wishlist/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/wishlist/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/wishlist/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the wishlist. Example: architecto

Body Parameters

product_id   integer   

ID of the product. Example: 1

Remove a product from wishlist

Example request:
curl --request DELETE \
    "https://nest.botble.com/api/v1/ecommerce/wishlist/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/wishlist/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

DELETE api/v1/ecommerce/wishlist/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the wishlist. Example: architecto

Body Parameters

product_id   string   

The ID of the product to remove from the wishlist. The id of an existing record in the ec_products table. Example: 1

Get wishlist items

Example request:
curl --request GET \
    --get "https://nest.botble.com/api/v1/ecommerce/wishlist/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": \"e70c6c88dae8344b03e39bb147eba66a\"
}"
const url = new URL(
    "https://nest.botble.com/api/v1/ecommerce/wishlist/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "e70c6c88dae8344b03e39bb147eba66a"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "id": "architecto",
    "data": {
        "count": 0,
        "items": []
    }
}
 

Request      

GET api/v1/ecommerce/wishlist/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the wishlist. Example: architecto

Body Parameters

id   string   

ID of the wishlist. Example: e70c6c88dae8344b03e39bb147eba66a