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.

Ads

Get ads

Example request:
curl --request GET \
    --get "http://homzen.test/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(
    "http://homzen.test/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 \
    "http://homzen.test/api/v1/register" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"John\",
    \"last_name\": \"Smith\",
    \"name\": \"consequatur\",
    \"email\": \"[email protected]\",
    \"password\": \"O[2UZ5ij-e\\/dl4m{o,\",
    \"phone\": \"consequatur\",
    \"password_confirmation\": \"consequatur\"
}"
const url = new URL(
    "http://homzen.test/api/v1/register"
);

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

let body = {
    "first_name": "John",
    "last_name": "Smith",
    "name": "consequatur",
    "email": "[email protected]",
    "password": "O[2UZ5ij-e\/dl4m{o,",
    "phone": "consequatur",
    "password_confirmation": "consequatur"
};

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: consequatur

email   string   

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

password   string   

The password of user to create. Example: O[2UZ5ij-e/dl4m{o,

phone   string   

The phone of the user. Example: consequatur

password_confirmation   string   

The password confirmation. Example: consequatur

Login

Example request:
curl --request POST \
    "http://homzen.test/api/v1/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\",
    \"password\": \"O[2UZ5ij-e\\/dl4m{o,\"
}"
const url = new URL(
    "http://homzen.test/api/v1/login"
);

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

let body = {
    "email": "[email protected]",
    "password": "O[2UZ5ij-e\/dl4m{o,"
};

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: O[2UZ5ij-e/dl4m{o,

Check email existing or not

Example request:
curl --request POST \
    "http://homzen.test/api/v1/email/check" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\"
}"
const url = new URL(
    "http://homzen.test/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 \
    "http://homzen.test/api/v1/password/forgot" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\"
}"
const url = new URL(
    "http://homzen.test/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 \
    "http://homzen.test/api/v1/resend-verify-account-email" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\"
}"
const url = new URL(
    "http://homzen.test/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 "http://homzen.test/api/v1/logout" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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 "http://homzen.test/api/v1/search" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"q\": \"consequatur\"
}"
const url = new URL(
    "http://homzen.test/api/v1/search"
);

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

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

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 "http://homzen.test/api/v1/posts" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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": "Top 10 Tips for First-time Home Buyers",
            "slug": "top-10-tips-for-first-time-home-buyers",
            "description": "Soup does very well to say but 'It belongs to the baby, and not to be a Caucus-race.' 'What IS the same thing as \"I eat what I say,' the Mock Turtle Soup is made from,' said the Caterpillar.",
            "image": "http://homzen.test/storage/posts/3.jpg",
            "categories": [
                {
                    "id": 2,
                    "name": "Selling a Home",
                    "slug": "selling-a-home",
                    "url": "http://homzen.test/news/selling-a-home",
                    "description": "Molestias fugiat maxime nostrum esse. Exercitationem excepturi molestiae enim eius. Qui corrupti autem minus nostrum."
                },
                {
                    "id": 4,
                    "name": "Home Improvement",
                    "slug": "home-improvement",
                    "url": "http://homzen.test/news/home-improvement",
                    "description": "Non incidunt perspiciatis nisi sunt itaque et possimus. Porro et natus unde voluptas mollitia maxime. Animi nemo et ut repellat dicta. Ea numquam reiciendis architecto quae."
                }
            ],
            "tags": [
                {
                    "id": 2,
                    "name": "Investing",
                    "slug": "investing",
                    "description": null
                },
                {
                    "id": 3,
                    "name": "Market Analysis",
                    "slug": "market-analysis",
                    "description": null
                },
                {
                    "id": 8,
                    "name": "Renovation",
                    "slug": "renovation",
                    "description": null
                }
            ],
            "created_at": "2025-06-29T03:29:47.000000Z",
            "updated_at": "2025-06-29T03:29:47.000000Z"
        },
        {
            "id": 2,
            "name": "How to Stage Your Home for a Quick Sale",
            "slug": "how-to-stage-your-home-for-a-quick-sale",
            "description": "WAS a narrow escape!' said Alice, as the rest of my own. I'm a hatter.' Here the other side. The further off from England the nearer is to find that her idea of the players to be a walrus or.",
            "image": "http://homzen.test/storage/posts/2.jpg",
            "categories": [
                {
                    "id": 6,
                    "name": "Neighborhood Guides",
                    "slug": "neighborhood-guides",
                    "url": "http://homzen.test/news/neighborhood-guides",
                    "description": "Et ut molestiae quos hic molestiae sunt. Facilis quia in perspiciatis perferendis rerum. Pariatur maiores corrupti tenetur similique neque."
                }
            ],
            "tags": [
                {
                    "id": 1,
                    "name": "Tips",
                    "slug": "tips",
                    "description": null
                },
                {
                    "id": 5,
                    "name": "Luxury Homes",
                    "slug": "luxury-homes",
                    "description": null
                },
                {
                    "id": 6,
                    "name": "First-time Buyers",
                    "slug": "first-time-buyers",
                    "description": null
                }
            ],
            "created_at": "2025-06-29T03:29:47.000000Z",
            "updated_at": "2025-06-29T03:29:47.000000Z"
        },
        {
            "id": 3,
            "name": "Understanding the Current Real Estate Market Trends",
            "slug": "understanding-the-current-real-estate-market-trends",
            "description": "Alice, in a tone of delight, and rushed at the March Hare took the hookah into its nest. Alice crouched down among the trees, a little feeble, squeaking voice, ('That's Bill,' thought Alice,) 'Well.",
            "image": "http://homzen.test/storage/posts/9.jpg",
            "categories": [
                {
                    "id": 4,
                    "name": "Home Improvement",
                    "slug": "home-improvement",
                    "url": "http://homzen.test/news/home-improvement",
                    "description": "Non incidunt perspiciatis nisi sunt itaque et possimus. Porro et natus unde voluptas mollitia maxime. Animi nemo et ut repellat dicta. Ea numquam reiciendis architecto quae."
                },
                {
                    "id": 5,
                    "name": "Real Estate Investing",
                    "slug": "real-estate-investing",
                    "url": "http://homzen.test/news/real-estate-investing",
                    "description": "Et explicabo dolor veritatis a consequuntur eveniet ut. Sed suscipit doloremque fugit suscipit. Qui provident earum in aut quae itaque."
                }
            ],
            "tags": [
                {
                    "id": 2,
                    "name": "Investing",
                    "slug": "investing",
                    "description": null
                },
                {
                    "id": 4,
                    "name": "DIY",
                    "slug": "diy",
                    "description": null
                },
                {
                    "id": 8,
                    "name": "Renovation",
                    "slug": "renovation",
                    "description": null
                }
            ],
            "created_at": "2025-06-29T03:29:47.000000Z",
            "updated_at": "2025-06-29T03:29:47.000000Z"
        },
        {
            "id": 4,
            "name": "DIY Home Improvement Projects That Add Value",
            "slug": "diy-home-improvement-projects-that-add-value",
            "description": "Alice. 'Oh, don't bother ME,' said Alice loudly. 'The idea of the country is, you know. Come on!' So they couldn't get them out with his nose, you know?' 'It's the thing yourself, some winter day, I.",
            "image": "http://homzen.test/storage/posts/10.jpg",
            "categories": [
                {
                    "id": 3,
                    "name": "Market Trends",
                    "slug": "market-trends",
                    "url": "http://homzen.test/news/market-trends",
                    "description": "Quo maxime non nostrum totam quia sunt sed. Unde nesciunt error qui. Error quo alias voluptatem dolores iste nobis."
                }
            ],
            "tags": [
                {
                    "id": 1,
                    "name": "Tips",
                    "slug": "tips",
                    "description": null
                },
                {
                    "id": 6,
                    "name": "First-time Buyers",
                    "slug": "first-time-buyers",
                    "description": null
                }
            ],
            "created_at": "2025-06-29T03:29:47.000000Z",
            "updated_at": "2025-06-29T03:29:47.000000Z"
        },
        {
            "id": 5,
            "name": "A Beginner’s Guide to Real Estate Investing",
            "slug": "a-beginners-guide-to-real-estate-investing",
            "description": "Alice timidly. 'Would you like the name: however, it only grinned a little bottle on it, or at any rate, the Dormouse into the roof was thatched with fur. It was so full of soup. 'There's certainly.",
            "image": "http://homzen.test/storage/posts/8.jpg",
            "categories": [
                {
                    "id": 1,
                    "name": "Buying a Home",
                    "slug": "buying-a-home",
                    "url": "http://homzen.test/news/buying-a-home",
                    "description": "Fuga enim quas nobis atque quo accusantium. Et asperiores itaque dolorem qui. Corporis ad voluptas et non numquam. Aliquam ipsa dolor repellendus nihil est enim."
                },
                {
                    "id": 6,
                    "name": "Neighborhood Guides",
                    "slug": "neighborhood-guides",
                    "url": "http://homzen.test/news/neighborhood-guides",
                    "description": "Et ut molestiae quos hic molestiae sunt. Facilis quia in perspiciatis perferendis rerum. Pariatur maiores corrupti tenetur similique neque."
                }
            ],
            "tags": [
                {
                    "id": 2,
                    "name": "Investing",
                    "slug": "investing",
                    "description": null
                },
                {
                    "id": 4,
                    "name": "DIY",
                    "slug": "diy",
                    "description": null
                },
                {
                    "id": 7,
                    "name": "Property Management",
                    "slug": "property-management",
                    "description": null
                }
            ],
            "created_at": "2025-06-29T03:29:47.000000Z",
            "updated_at": "2025-06-29T03:29:47.000000Z"
        },
        {
            "id": 6,
            "name": "How to Choose the Right Neighborhood for Your Family",
            "slug": "how-to-choose-the-right-neighborhood-for-your-family",
            "description": "Cheshire Cat,' said Alice: 'allow me to him: She gave me a pair of white kid gloves while she remembered the number of executions the Queen was in a whisper.) 'That would be four thousand miles.",
            "image": "http://homzen.test/storage/posts/1.jpg",
            "categories": [
                {
                    "id": 5,
                    "name": "Real Estate Investing",
                    "slug": "real-estate-investing",
                    "url": "http://homzen.test/news/real-estate-investing",
                    "description": "Et explicabo dolor veritatis a consequuntur eveniet ut. Sed suscipit doloremque fugit suscipit. Qui provident earum in aut quae itaque."
                }
            ],
            "tags": [
                {
                    "id": 4,
                    "name": "DIY",
                    "slug": "diy",
                    "description": null
                },
                {
                    "id": 7,
                    "name": "Property Management",
                    "slug": "property-management",
                    "description": null
                }
            ],
            "created_at": "2025-06-29T03:29:47.000000Z",
            "updated_at": "2025-06-29T03:29:47.000000Z"
        },
        {
            "id": 7,
            "name": "Luxury Homes: What to Look For",
            "slug": "luxury-homes-what-to-look-for",
            "description": "Queen's voice in the house opened, and a large mushroom growing near her, about the whiting!' 'Oh, as to go on. 'And so these three weeks!' 'I'm very sorry you've been annoyed,' said Alice, a little.",
            "image": "http://homzen.test/storage/posts/8.jpg",
            "categories": [
                {
                    "id": 3,
                    "name": "Market Trends",
                    "slug": "market-trends",
                    "url": "http://homzen.test/news/market-trends",
                    "description": "Quo maxime non nostrum totam quia sunt sed. Unde nesciunt error qui. Error quo alias voluptatem dolores iste nobis."
                },
                {
                    "id": 5,
                    "name": "Real Estate Investing",
                    "slug": "real-estate-investing",
                    "url": "http://homzen.test/news/real-estate-investing",
                    "description": "Et explicabo dolor veritatis a consequuntur eveniet ut. Sed suscipit doloremque fugit suscipit. Qui provident earum in aut quae itaque."
                }
            ],
            "tags": [
                {
                    "id": 2,
                    "name": "Investing",
                    "slug": "investing",
                    "description": null
                },
                {
                    "id": 3,
                    "name": "Market Analysis",
                    "slug": "market-analysis",
                    "description": null
                }
            ],
            "created_at": "2025-06-29T03:29:48.000000Z",
            "updated_at": "2025-06-29T03:29:48.000000Z"
        },
        {
            "id": 8,
            "name": "Property Management: Best Practices for Landlords",
            "slug": "property-management-best-practices-for-landlords",
            "description": "Who ever saw in another moment that it would be worth the trouble of getting up and ran off, thinking while she remembered that she had never been so much surprised, that for two reasons. First.",
            "image": "http://homzen.test/storage/posts/7.jpg",
            "categories": [
                {
                    "id": 3,
                    "name": "Market Trends",
                    "slug": "market-trends",
                    "url": "http://homzen.test/news/market-trends",
                    "description": "Quo maxime non nostrum totam quia sunt sed. Unde nesciunt error qui. Error quo alias voluptatem dolores iste nobis."
                },
                {
                    "id": 4,
                    "name": "Home Improvement",
                    "slug": "home-improvement",
                    "url": "http://homzen.test/news/home-improvement",
                    "description": "Non incidunt perspiciatis nisi sunt itaque et possimus. Porro et natus unde voluptas mollitia maxime. Animi nemo et ut repellat dicta. Ea numquam reiciendis architecto quae."
                }
            ],
            "tags": [
                {
                    "id": 6,
                    "name": "First-time Buyers",
                    "slug": "first-time-buyers",
                    "description": null
                },
                {
                    "id": 7,
                    "name": "Property Management",
                    "slug": "property-management",
                    "description": null
                },
                {
                    "id": 8,
                    "name": "Renovation",
                    "slug": "renovation",
                    "description": null
                }
            ],
            "created_at": "2025-06-29T03:29:48.000000Z",
            "updated_at": "2025-06-29T03:29:48.000000Z"
        },
        {
            "id": 9,
            "name": "Renovation Ideas to Increase Your Home’s Value",
            "slug": "renovation-ideas-to-increase-your-homes-value",
            "description": "There's no pleasing them!' Alice was silent. The Dormouse shook its head impatiently, and walked a little different. But if I'm Mabel, I'll stay down here with me! There are no mice in the wind, and.",
            "image": "http://homzen.test/storage/posts/7.jpg",
            "categories": [
                {
                    "id": 2,
                    "name": "Selling a Home",
                    "slug": "selling-a-home",
                    "url": "http://homzen.test/news/selling-a-home",
                    "description": "Molestias fugiat maxime nostrum esse. Exercitationem excepturi molestiae enim eius. Qui corrupti autem minus nostrum."
                },
                {
                    "id": 5,
                    "name": "Real Estate Investing",
                    "slug": "real-estate-investing",
                    "url": "http://homzen.test/news/real-estate-investing",
                    "description": "Et explicabo dolor veritatis a consequuntur eveniet ut. Sed suscipit doloremque fugit suscipit. Qui provident earum in aut quae itaque."
                }
            ],
            "tags": [
                {
                    "id": 1,
                    "name": "Tips",
                    "slug": "tips",
                    "description": null
                },
                {
                    "id": 5,
                    "name": "Luxury Homes",
                    "slug": "luxury-homes",
                    "description": null
                }
            ],
            "created_at": "2025-06-29T03:29:48.000000Z",
            "updated_at": "2025-06-29T03:29:48.000000Z"
        },
        {
            "id": 10,
            "name": "The Ultimate Guide to Buying a Vacation Home",
            "slug": "the-ultimate-guide-to-buying-a-vacation-home",
            "description": "Dodo, 'the best way to hear his history. I must be collected at once took up the conversation a little. ''Tis so,' said Alice. 'I mean what I say--that's the same tone, exactly as if he thought it.",
            "image": "http://homzen.test/storage/posts/2.jpg",
            "categories": [
                {
                    "id": 1,
                    "name": "Buying a Home",
                    "slug": "buying-a-home",
                    "url": "http://homzen.test/news/buying-a-home",
                    "description": "Fuga enim quas nobis atque quo accusantium. Et asperiores itaque dolorem qui. Corporis ad voluptas et non numquam. Aliquam ipsa dolor repellendus nihil est enim."
                },
                {
                    "id": 3,
                    "name": "Market Trends",
                    "slug": "market-trends",
                    "url": "http://homzen.test/news/market-trends",
                    "description": "Quo maxime non nostrum totam quia sunt sed. Unde nesciunt error qui. Error quo alias voluptatem dolores iste nobis."
                }
            ],
            "tags": [
                {
                    "id": 3,
                    "name": "Market Analysis",
                    "slug": "market-analysis",
                    "description": null
                },
                {
                    "id": 4,
                    "name": "DIY",
                    "slug": "diy",
                    "description": null
                },
                {
                    "id": 6,
                    "name": "First-time Buyers",
                    "slug": "first-time-buyers",
                    "description": null
                }
            ],
            "created_at": "2025-06-29T03:29:48.000000Z",
            "updated_at": "2025-06-29T03:29:48.000000Z"
        }
    ],
    "links": {
        "first": "http://homzen.test/api/v1/posts?page=1",
        "last": "http://homzen.test/api/v1/posts?page=2",
        "prev": null,
        "next": "http://homzen.test/api/v1/posts?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 2,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/posts?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": "http://homzen.test/api/v1/posts?page=2",
                "label": "2",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/posts?page=2",
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "http://homzen.test/api/v1/posts",
        "per_page": 10,
        "to": 10,
        "total": 18
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/posts

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

List tags

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/tags" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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": "Tips",
            "slug": "tips",
            "description": null
        },
        {
            "id": 2,
            "name": "Investing",
            "slug": "investing",
            "description": null
        },
        {
            "id": 3,
            "name": "Market Analysis",
            "slug": "market-analysis",
            "description": null
        },
        {
            "id": 4,
            "name": "DIY",
            "slug": "diy",
            "description": null
        },
        {
            "id": 5,
            "name": "Luxury Homes",
            "slug": "luxury-homes",
            "description": null
        },
        {
            "id": 6,
            "name": "First-time Buyers",
            "slug": "first-time-buyers",
            "description": null
        },
        {
            "id": 7,
            "name": "Property Management",
            "slug": "property-management",
            "description": null
        },
        {
            "id": 8,
            "name": "Renovation",
            "slug": "renovation",
            "description": null
        }
    ],
    "links": {
        "first": "http://homzen.test/api/v1/tags?page=1",
        "last": "http://homzen.test/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": "http://homzen.test/api/v1/tags?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "http://homzen.test/api/v1/tags",
        "per_page": 10,
        "to": 8,
        "total": 8
    },
    "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 "http://homzen.test/api/v1/posts/filters?page=17&per_page=17&search=consequatur&after=consequatur&author=consequatur&author_exclude=consequatur&before=consequatur&exclude=consequatur&include=consequatur&order=consequatur&order_by=consequatur&categories=consequatur&categories_exclude=consequatur&tags=consequatur&tags_exclude=consequatur&featured=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/posts/filters"
);

const params = {
    "page": "17",
    "per_page": "17",
    "search": "consequatur",
    "after": "consequatur",
    "author": "consequatur",
    "author_exclude": "consequatur",
    "before": "consequatur",
    "exclude": "consequatur",
    "include": "consequatur",
    "order": "consequatur",
    "order_by": "consequatur",
    "categories": "consequatur",
    "categories_exclude": "consequatur",
    "tags": "consequatur",
    "tags_exclude": "consequatur",
    "featured": "consequatur",
};
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": "http://homzen.test/api/v1/posts/filters?page=1",
        "last": "http://homzen.test/api/v1/posts/filters?page=1",
        "prev": "http://homzen.test/api/v1/posts/filters?page=16",
        "next": null
    },
    "meta": {
        "current_page": 17,
        "from": null,
        "last_page": 1,
        "links": [
            {
                "url": "http://homzen.test/api/v1/posts/filters?page=16",
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/posts/filters?page=1",
                "label": "1",
                "active": false
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "http://homzen.test/api/v1/posts/filters",
        "per_page": 17,
        "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: 17

per_page   integer  optional  

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

search   string  optional  

Limit results to those matching a string. Example: consequatur

after   string  optional  

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

author   string  optional  

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

author_exclude   string  optional  

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

before   string  optional  

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

exclude   string  optional  

Ensure result set excludes specific IDs. Example: consequatur

include   string  optional  

Limit result set to specific IDs. Example: consequatur

order   string  optional  

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

order_by   string  optional  

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

categories   string  optional  

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

categories_exclude   string  optional  

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

tags   string  optional  

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

tags_exclude   string  optional  

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

featured   string  optional  

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

Get post by slug

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/posts/consequatur?slug=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/posts/consequatur"
);

const params = {
    "slug": "consequatur",
};
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: consequatur

Query Parameters

slug   string  optional  

Find by slug of post. Example: consequatur

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 \
    "http://homzen.test/api/v1/device-tokens" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"token\": \"consequatur\",
    \"platform\": \"consequatur\",
    \"app_version\": \"consequatur\",
    \"device_id\": \"consequatur\",
    \"user_type\": \"consequatur\",
    \"user_id\": 17
}"
const url = new URL(
    "http://homzen.test/api/v1/device-tokens"
);

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

let body = {
    "token": "consequatur",
    "platform": "consequatur",
    "app_version": "consequatur",
    "device_id": "consequatur",
    "user_type": "consequatur",
    "user_id": 17
};

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: consequatur

platform   string  optional  

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

app_version   string  optional  

The app version. Example: consequatur

device_id   string  optional  

The unique device identifier. Example: consequatur

user_type   string  optional  

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

user_id   integer  optional  

The user ID. Example: 17

Get user's device tokens

Retrieve all device tokens for the authenticated user.

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/device-tokens" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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 \
    "http://homzen.test/api/v1/device-tokens/1562" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"platform\": \"consequatur\",
    \"app_version\": \"consequatur\",
    \"device_id\": \"consequatur\"
}"
const url = new URL(
    "http://homzen.test/api/v1/device-tokens/1562"
);

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

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

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: 1562

Body Parameters

platform   string  optional  

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

app_version   string  optional  

The app version. Example: consequatur

device_id   string  optional  

The unique device identifier. Example: consequatur

Delete device token by token value

Delete a device token using the token value.

Example request:
curl --request DELETE \
    "http://homzen.test/api/v1/device-tokens/by-token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"token\": \"consequatur\"
}"
const url = new URL(
    "http://homzen.test/api/v1/device-tokens/by-token"
);

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

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

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: consequatur

Delete device token

Delete a device token to stop receiving push notifications.

Example request:
curl --request DELETE \
    "http://homzen.test/api/v1/device-tokens/1562" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/device-tokens/1562"
);

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: 1562

Deactivate device token

Deactivate a device token without deleting it.

Example request:
curl --request POST \
    "http://homzen.test/api/v1/device-tokens/1562/deactivate" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/device-tokens/1562/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: 1562

Endpoints

POST api/v1/auth/apple

Example request:
curl --request POST \
    "http://homzen.test/api/v1/auth/apple" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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 \
    "http://homzen.test/api/v1/auth/google" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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 \
    "http://homzen.test/api/v1/auth/facebook" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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 \
    "http://homzen.test/api/v1/auth/x" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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

Languages

Get list of available languages

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/languages" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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 "http://homzen.test/api/v1/languages/current" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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 "http://homzen.test/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(
    "http://homzen.test/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 "http://homzen.test/api/v1/notifications/stats" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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 \
    "http://homzen.test/api/v1/notifications/mark-all-read" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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 \
    "http://homzen.test/api/v1/notifications/1562/read" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/notifications/1562/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: 1562

Mark notification as clicked

Mark a notification as clicked when user taps on it.

Example request:
curl --request POST \
    "http://homzen.test/api/v1/notifications/1562/clicked" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/notifications/1562/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: 1562

Delete notification

Delete a notification from user's list.

Example request:
curl --request DELETE \
    "http://homzen.test/api/v1/notifications/1562" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/notifications/1562"
);

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: 1562

Page

List pages

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/pages" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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 1",
            "slug": "homepage-1",
            "description": null,
            "image": null,
            "template": "full-width",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-06-29T03:29:52.000000Z",
            "updated_at": "2025-06-29T03:29:52.000000Z"
        },
        {
            "id": 2,
            "name": "Homepage 2",
            "slug": "homepage-2",
            "description": null,
            "image": null,
            "template": "full-width",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-06-29T03:29:52.000000Z",
            "updated_at": "2025-06-29T03:29:52.000000Z"
        },
        {
            "id": 3,
            "name": "Homepage 3",
            "slug": "homepage-3",
            "description": null,
            "image": null,
            "template": "full-width",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-06-29T03:29:52.000000Z",
            "updated_at": "2025-06-29T03:29:52.000000Z"
        },
        {
            "id": 4,
            "name": "Homepage 4",
            "slug": "homepage-4",
            "description": null,
            "image": null,
            "template": "full-width",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-06-29T03:29:52.000000Z",
            "updated_at": "2025-06-29T03:29:52.000000Z"
        },
        {
            "id": 5,
            "name": "Homepage 5",
            "slug": "homepage-5",
            "description": null,
            "image": null,
            "template": "full-width",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-06-29T03:29:52.000000Z",
            "updated_at": "2025-06-29T03:29:52.000000Z"
        },
        {
            "id": 6,
            "name": "Blog",
            "slug": "blog",
            "description": null,
            "image": null,
            "template": null,
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-06-29T03:29:52.000000Z",
            "updated_at": "2025-06-29T03:29:52.000000Z"
        },
        {
            "id": 7,
            "name": "Contact Us",
            "slug": "contact-us",
            "description": null,
            "image": null,
            "template": null,
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-06-29T03:29:52.000000Z",
            "updated_at": "2025-06-29T03:29:52.000000Z"
        },
        {
            "id": 8,
            "name": "Our Services",
            "slug": "our-services",
            "description": null,
            "image": null,
            "template": "full-width",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-06-29T03:29:52.000000Z",
            "updated_at": "2025-06-29T03:29:52.000000Z"
        },
        {
            "id": 9,
            "name": "FAQs",
            "slug": "faqs",
            "description": null,
            "image": null,
            "template": null,
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-06-29T03:29:52.000000Z",
            "updated_at": "2025-06-29T03:29:52.000000Z"
        },
        {
            "id": 10,
            "name": "About Us",
            "slug": "about-us",
            "description": null,
            "image": null,
            "template": "full-width",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": "2025-06-29T03:29:52.000000Z",
            "updated_at": "2025-06-29T03:29:52.000000Z"
        }
    ],
    "links": {
        "first": "http://homzen.test/api/v1/pages?page=1",
        "last": "http://homzen.test/api/v1/pages?page=2",
        "prev": null,
        "next": "http://homzen.test/api/v1/pages?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 2,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/pages?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": "http://homzen.test/api/v1/pages?page=2",
                "label": "2",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/pages?page=2",
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "http://homzen.test/api/v1/pages",
        "per_page": 10,
        "to": 10,
        "total": 16
    },
    "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 "http://homzen.test/api/v1/pages/1562?id=17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/pages/1562"
);

const params = {
    "id": "17",
};
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: 1562

Query Parameters

id   integer  optional  

Find by ID of page. Example: 17

Profile

Get the user profile information.

requires authentication

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/me" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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 \
    "http://homzen.test/api/v1/me" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"vmqeopfuudtdsufvyvddqamniihfqcoynlazghdtqtqxbajwbpilpmufinllwloauydlsmsjur\",
    \"last_name\": \"yvojcybzvrbyickznkygloigmkwxphlvazjrcnfbaqywuxhgjjmzuxjubqouzswiwxtrkimfca\",
    \"name\": \"consequatur\",
    \"phone\": \"consequatur\",
    \"dob\": \"consequatur\",
    \"gender\": \"consequatur\",
    \"description\": \"Dolores dolorum amet iste laborum eius est dolor.\",
    \"email\": \"[email protected]\"
}"
const url = new URL(
    "http://homzen.test/api/v1/me"
);

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

let body = {
    "first_name": "vmqeopfuudtdsufvyvddqamniihfqcoynlazghdtqtqxbajwbpilpmufinllwloauydlsmsjur",
    "last_name": "yvojcybzvrbyickznkygloigmkwxphlvazjrcnfbaqywuxhgjjmzuxjubqouzswiwxtrkimfca",
    "name": "consequatur",
    "phone": "consequatur",
    "dob": "consequatur",
    "gender": "consequatur",
    "description": "Dolores dolorum amet iste laborum eius est dolor.",
    "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: vmqeopfuudtdsufvyvddqamniihfqcoynlazghdtqtqxbajwbpilpmufinllwloauydlsmsjur

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: yvojcybzvrbyickznkygloigmkwxphlvazjrcnfbaqywuxhgjjmzuxjubqouzswiwxtrkimfca

name   string   

Name. Example: consequatur

phone   string   

Phone. Example: consequatur

dob   date  optional  

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

gender   string  optional  

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

description   string  optional  

Description Example: Dolores dolorum amet iste laborum eius est dolor.

email   string  optional  

Email. Example: [email protected]

Update Avatar

requires authentication

Example request:
curl --request POST \
    "http://homzen.test/api/v1/update/avatar" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "avatar=@/private/var/folders/pv/8ss1l0s14ylczgg_279blg680000gn/T/phpdIUode" 
const url = new URL(
    "http://homzen.test/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: /private/var/folders/pv/8ss1l0s14ylczgg_279blg680000gn/T/phpdIUode

Update password

requires authentication

Example request:
curl --request PUT \
    "http://homzen.test/api/v1/update/password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"password\": \"O[2UZ5ij-e\\/dl4m{o,\",
    \"old_password\": \"consequatur\"
}"
const url = new URL(
    "http://homzen.test/api/v1/update/password"
);

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

let body = {
    "password": "O[2UZ5ij-e\/dl4m{o,",
    "old_password": "consequatur"
};

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: O[2UZ5ij-e/dl4m{o,

old_password   string   

The current password of user. Example: consequatur

Get user settings

requires authentication

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/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 \
    "http://homzen.test/api/v1/settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"biometric_enabled\": false,
    \"notification_enabled\": false,
    \"language\": \"consequatur\",
    \"currency\": \"consequatur\",
    \"theme\": \"consequatur\",
    \"timezone\": \"Europe\\/Malta\"
}"
const url = new URL(
    "http://homzen.test/api/v1/settings"
);

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

let body = {
    "biometric_enabled": false,
    "notification_enabled": false,
    "language": "consequatur",
    "currency": "consequatur",
    "theme": "consequatur",
    "timezone": "Europe\/Malta"
};

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: consequatur

currency   string  optional  

User's preferred currency. Example: consequatur

theme   string  optional  

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

timezone   string  optional  

User's timezone. Example: Europe/Malta

Real Estate

List categories

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/categories?page=17&per_page=17&search=consequatur&parent_id=consequatur&order=consequatur&order_by=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/categories"
);

const params = {
    "page": "17",
    "per_page": "17",
    "search": "consequatur",
    "parent_id": "consequatur",
    "order": "consequatur",
    "order_by": "consequatur",
};
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": "http://homzen.test/api/v1/categories?page=1",
        "last": "http://homzen.test/api/v1/categories?page=1",
        "prev": "http://homzen.test/api/v1/categories?page=16",
        "next": null
    },
    "meta": {
        "current_page": 17,
        "from": null,
        "last_page": 1,
        "links": [
            {
                "url": "http://homzen.test/api/v1/categories?page=16",
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/categories?page=1",
                "label": "1",
                "active": false
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "http://homzen.test/api/v1/categories",
        "per_page": 17,
        "to": null,
        "total": 6
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/categories

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

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

per_page   integer  optional  

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

search   string  optional  

Limit results to those matching a string. Example: consequatur

parent_id   string  optional  

Filter by parent category ID. Example: consequatur

order   string  optional  

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

order_by   string  optional  

Sort collection by object attribute. Default: order. One of: created_at, updated_at, name, order Example: consequatur

Get category filters

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/categories/filters?parent_id=consequatur&order=consequatur&order_by=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/categories/filters"
);

const params = {
    "parent_id": "consequatur",
    "order": "consequatur",
    "order_by": "consequatur",
};
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": 1,
            "name": "Apartment",
            "description": null,
            "status": {
                "value": "published",
                "label": "Published"
            },
            "order": 0,
            "is_default": 1,
            "parent_id": 0,
            "created_at": "2025-06-29T03:29:37.000000Z",
            "updated_at": "2025-06-29T03:29:37.000000Z",
            "url": "http://homzen.test/property-category/apartment",
            "slug": "apartment"
        },
        {
            "id": 2,
            "name": "Villa",
            "description": null,
            "status": {
                "value": "published",
                "label": "Published"
            },
            "order": 1,
            "is_default": 0,
            "parent_id": 0,
            "created_at": "2025-06-29T03:29:37.000000Z",
            "updated_at": "2025-06-29T03:29:37.000000Z",
            "url": "http://homzen.test/property-category/villa",
            "slug": "villa"
        },
        {
            "id": 3,
            "name": "Condo",
            "description": null,
            "status": {
                "value": "published",
                "label": "Published"
            },
            "order": 2,
            "is_default": 0,
            "parent_id": 0,
            "created_at": "2025-06-29T03:29:37.000000Z",
            "updated_at": "2025-06-29T03:29:37.000000Z",
            "url": "http://homzen.test/property-category/condo",
            "slug": "condo"
        },
        {
            "id": 4,
            "name": "House",
            "description": null,
            "status": {
                "value": "published",
                "label": "Published"
            },
            "order": 3,
            "is_default": 0,
            "parent_id": 0,
            "created_at": "2025-06-29T03:29:37.000000Z",
            "updated_at": "2025-06-29T03:29:37.000000Z",
            "url": "http://homzen.test/property-category/house",
            "slug": "house"
        },
        {
            "id": 5,
            "name": "Land",
            "description": null,
            "status": {
                "value": "published",
                "label": "Published"
            },
            "order": 4,
            "is_default": 0,
            "parent_id": 0,
            "created_at": "2025-06-29T03:29:37.000000Z",
            "updated_at": "2025-06-29T03:29:37.000000Z",
            "url": "http://homzen.test/property-category/land",
            "slug": "land"
        },
        {
            "id": 6,
            "name": "Commercial property",
            "description": null,
            "status": {
                "value": "published",
                "label": "Published"
            },
            "order": 5,
            "is_default": 0,
            "parent_id": 0,
            "created_at": "2025-06-29T03:29:37.000000Z",
            "updated_at": "2025-06-29T03:29:37.000000Z",
            "url": "http://homzen.test/property-category/commercial-property",
            "slug": "commercial-property"
        }
    ],
    "error": false,
    "message": null
}
 

Request      

GET api/v1/categories/filters

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

parent_id   string  optional  

Filter by parent category ID. Example: consequatur

order   string  optional  

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

order_by   string  optional  

Sort collection by object attribute. Default: order. One of: created_at, updated_at, name, order Example: consequatur

Get category by slug

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/categories/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/categories/consequatur"
);

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": "Category 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: consequatur

List properties

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/properties?page=17&per_page=17&search=consequatur&type=consequatur&city_id=consequatur&state_id=consequatur&country_id=17&category_id=consequatur&project_id=consequatur&min_price=consequatur&max_price=consequatur&min_square=consequatur&max_square=consequatur&number_bedroom=17&number_bathroom=17&number_floor=17&features=consequatur&facilities=consequatur&is_featured=consequatur&order=consequatur&order_by=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/properties"
);

const params = {
    "page": "17",
    "per_page": "17",
    "search": "consequatur",
    "type": "consequatur",
    "city_id": "consequatur",
    "state_id": "consequatur",
    "country_id": "17",
    "category_id": "consequatur",
    "project_id": "consequatur",
    "min_price": "consequatur",
    "max_price": "consequatur",
    "min_square": "consequatur",
    "max_square": "consequatur",
    "number_bedroom": "17",
    "number_bathroom": "17",
    "number_floor": "17",
    "features": "consequatur",
    "facilities": "consequatur",
    "is_featured": "consequatur",
    "order": "consequatur",
    "order_by": "consequatur",
};
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": "http://homzen.test/api/v1/properties?page=1",
        "last": "http://homzen.test/api/v1/properties?page=4",
        "prev": "http://homzen.test/api/v1/properties?page=16",
        "next": null
    },
    "meta": {
        "current_page": 17,
        "from": null,
        "last_page": 4,
        "links": [
            {
                "url": "http://homzen.test/api/v1/properties?page=16",
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/properties?page=1",
                "label": "1",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/properties?page=2",
                "label": "2",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/properties?page=3",
                "label": "3",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/properties?page=4",
                "label": "4",
                "active": false
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "http://homzen.test/api/v1/properties",
        "per_page": 17,
        "to": null,
        "total": 61
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/properties

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

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

per_page   integer  optional  

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

search   string  optional  

Limit results to those matching a string. Example: consequatur

type   string  optional  

Filter by property type (sale, rent). Example: consequatur

city_id   string  optional  

Filter by city ID. Example: consequatur

state_id   string  optional  

Filter by state ID. Example: consequatur

country_id   integer  optional  

Filter by country ID. Example: 17

category_id   string  optional  

Filter by category ID. Example: consequatur

project_id   string  optional  

Filter by project ID. Example: consequatur

min_price   string  optional  

Filter by minimum price. Example: consequatur

max_price   string  optional  

Filter by maximum price. Example: consequatur

min_square   string  optional  

Filter by minimum square footage. Example: consequatur

max_square   string  optional  

Filter by maximum square footage. Example: consequatur

number_bedroom   integer  optional  

Filter by number of bedrooms. Example: 17

number_bathroom   integer  optional  

Filter by number of bathrooms. Example: 17

number_floor   integer  optional  

Filter by number of floors. Example: 17

features   string  optional  

Filter by feature IDs (comma-separated). Example: consequatur

facilities   string  optional  

Filter by facility IDs (comma-separated). Example: consequatur

is_featured   string  optional  

Filter by featured properties (1 or 0). Example: consequatur

order   string  optional  

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

order_by   string  optional  

Sort collection by object attribute. Default: created_at. One of: created_at, updated_at, name, price Example: consequatur

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/properties/search" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"q\": \"consequatur\"
}"
const url = new URL(
    "http://homzen.test/api/v1/properties/search"
);

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

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

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

Example response (500):

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

{
    "message": "Server Error"
}
 

Get property filters

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/properties/filters?page=17&per_page=17&search=consequatur&type=consequatur&city_id=consequatur&state_id=consequatur&country_id=17&category_id=consequatur&project_id=consequatur&min_price=consequatur&max_price=consequatur&min_square=consequatur&max_square=consequatur&number_bedroom=17&number_bathroom=17&number_floor=17&features=consequatur&facilities=consequatur&is_featured=consequatur&order=consequatur&order_by=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/properties/filters"
);

const params = {
    "page": "17",
    "per_page": "17",
    "search": "consequatur",
    "type": "consequatur",
    "city_id": "consequatur",
    "state_id": "consequatur",
    "country_id": "17",
    "category_id": "consequatur",
    "project_id": "consequatur",
    "min_price": "consequatur",
    "max_price": "consequatur",
    "min_square": "consequatur",
    "max_square": "consequatur",
    "number_bedroom": "17",
    "number_bathroom": "17",
    "number_floor": "17",
    "features": "consequatur",
    "facilities": "consequatur",
    "is_featured": "consequatur",
    "order": "consequatur",
    "order_by": "consequatur",
};
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": "http://homzen.test/api/v1/properties/filters?page=1",
        "last": "http://homzen.test/api/v1/properties/filters?page=4",
        "prev": "http://homzen.test/api/v1/properties/filters?page=16",
        "next": null
    },
    "meta": {
        "current_page": 17,
        "from": null,
        "last_page": 4,
        "links": [
            {
                "url": "http://homzen.test/api/v1/properties/filters?page=16",
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/properties/filters?page=1",
                "label": "1",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/properties/filters?page=2",
                "label": "2",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/properties/filters?page=3",
                "label": "3",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/properties/filters?page=4",
                "label": "4",
                "active": false
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "http://homzen.test/api/v1/properties/filters",
        "per_page": 17,
        "to": null,
        "total": 61
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/properties/filters

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

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

per_page   integer  optional  

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

search   string  optional  

Limit results to those matching a string. Example: consequatur

type   string  optional  

Filter by property type (sale, rent). Example: consequatur

city_id   string  optional  

Filter by city ID. Example: consequatur

state_id   string  optional  

Filter by state ID. Example: consequatur

country_id   integer  optional  

Filter by country ID. Example: 17

category_id   string  optional  

Filter by category ID. Example: consequatur

project_id   string  optional  

Filter by project ID. Example: consequatur

min_price   string  optional  

Filter by minimum price. Example: consequatur

max_price   string  optional  

Filter by maximum price. Example: consequatur

min_square   string  optional  

Filter by minimum square footage. Example: consequatur

max_square   string  optional  

Filter by maximum square footage. Example: consequatur

number_bedroom   integer  optional  

Filter by number of bedrooms. Example: 17

number_bathroom   integer  optional  

Filter by number of bathrooms. Example: 17

number_floor   integer  optional  

Filter by number of floors. Example: 17

features   string  optional  

Filter by feature IDs (comma-separated). Example: consequatur

facilities   string  optional  

Filter by facility IDs (comma-separated). Example: consequatur

is_featured   string  optional  

Filter by featured properties (1 or 0). Example: consequatur

order   string  optional  

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

order_by   string  optional  

Sort collection by object attribute. Default: created_at. One of: created_at, updated_at, name, price Example: consequatur

Get property by slug

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/properties/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/properties/consequatur"
);

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": "Property not found"
}
 

Request      

GET api/v1/properties/{slug}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

slug   string   

The slug of the property. Example: consequatur

Get property by ID

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/properties/id/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/properties/id/17"
);

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": "Property not found"
}
 

Request      

GET api/v1/properties/id/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the property. Example: 17

List projects

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/projects?page=17&per_page=17&search=consequatur&city_id=consequatur&state_id=consequatur&country_id=17&category_id=consequatur&investor_id=consequatur&min_price=consequatur&max_price=consequatur&is_featured=consequatur&order=consequatur&order_by=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/projects"
);

const params = {
    "page": "17",
    "per_page": "17",
    "search": "consequatur",
    "city_id": "consequatur",
    "state_id": "consequatur",
    "country_id": "17",
    "category_id": "consequatur",
    "investor_id": "consequatur",
    "min_price": "consequatur",
    "max_price": "consequatur",
    "is_featured": "consequatur",
    "order": "consequatur",
    "order_by": "consequatur",
};
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": "http://homzen.test/api/v1/projects?page=1",
        "last": "http://homzen.test/api/v1/projects?page=2",
        "prev": "http://homzen.test/api/v1/projects?page=16",
        "next": null
    },
    "meta": {
        "current_page": 17,
        "from": null,
        "last_page": 2,
        "links": [
            {
                "url": "http://homzen.test/api/v1/projects?page=16",
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/projects?page=1",
                "label": "1",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/projects?page=2",
                "label": "2",
                "active": false
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "http://homzen.test/api/v1/projects",
        "per_page": 17,
        "to": null,
        "total": 18
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/projects

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

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

per_page   integer  optional  

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

search   string  optional  

Limit results to those matching a string. Example: consequatur

city_id   string  optional  

Filter by city ID. Example: consequatur

state_id   string  optional  

Filter by state ID. Example: consequatur

country_id   integer  optional  

Filter by country ID. Example: 17

category_id   string  optional  

Filter by category ID. Example: consequatur

investor_id   string  optional  

Filter by investor ID. Example: consequatur

min_price   string  optional  

Filter by minimum price. Example: consequatur

max_price   string  optional  

Filter by maximum price. Example: consequatur

is_featured   string  optional  

Filter by featured projects (1 or 0). Example: consequatur

order   string  optional  

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

order_by   string  optional  

Sort collection by object attribute. Default: created_at. One of: created_at, updated_at, name, price_from Example: consequatur

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/projects/search" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"q\": \"consequatur\"
}"
const url = new URL(
    "http://homzen.test/api/v1/projects/search"
);

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

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

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

Example response (500):

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

{
    "message": "Server Error"
}
 

Get project filters

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/projects/filters?page=17&per_page=17&search=consequatur&city_id=consequatur&state_id=consequatur&country_id=17&category_id=consequatur&investor_id=consequatur&min_price=consequatur&max_price=consequatur&is_featured=consequatur&order=consequatur&order_by=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/projects/filters"
);

const params = {
    "page": "17",
    "per_page": "17",
    "search": "consequatur",
    "city_id": "consequatur",
    "state_id": "consequatur",
    "country_id": "17",
    "category_id": "consequatur",
    "investor_id": "consequatur",
    "min_price": "consequatur",
    "max_price": "consequatur",
    "is_featured": "consequatur",
    "order": "consequatur",
    "order_by": "consequatur",
};
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": "http://homzen.test/api/v1/projects/filters?page=1",
        "last": "http://homzen.test/api/v1/projects/filters?page=2",
        "prev": "http://homzen.test/api/v1/projects/filters?page=16",
        "next": null
    },
    "meta": {
        "current_page": 17,
        "from": null,
        "last_page": 2,
        "links": [
            {
                "url": "http://homzen.test/api/v1/projects/filters?page=16",
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/projects/filters?page=1",
                "label": "1",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/projects/filters?page=2",
                "label": "2",
                "active": false
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "http://homzen.test/api/v1/projects/filters",
        "per_page": 17,
        "to": null,
        "total": 18
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/projects/filters

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

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

per_page   integer  optional  

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

search   string  optional  

Limit results to those matching a string. Example: consequatur

city_id   string  optional  

Filter by city ID. Example: consequatur

state_id   string  optional  

Filter by state ID. Example: consequatur

country_id   integer  optional  

Filter by country ID. Example: 17

category_id   string  optional  

Filter by category ID. Example: consequatur

investor_id   string  optional  

Filter by investor ID. Example: consequatur

min_price   string  optional  

Filter by minimum price. Example: consequatur

max_price   string  optional  

Filter by maximum price. Example: consequatur

is_featured   string  optional  

Filter by featured projects (1 or 0). Example: consequatur

order   string  optional  

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

order_by   string  optional  

Sort collection by object attribute. Default: created_at. One of: created_at, updated_at, name, price_from Example: consequatur

Get project by slug

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/projects/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/projects/consequatur"
);

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": "Project not found"
}
 

Request      

GET api/v1/projects/{slug}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

slug   string   

The slug of the project. Example: consequatur

Get project by ID

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/projects/id/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/projects/id/17"
);

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": "Project not found"
}
 

Request      

GET api/v1/projects/id/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the project. Example: 17

Get properties of a project

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/projects/id/17/properties?page=17&per_page=17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/projects/id/17/properties"
);

const params = {
    "page": "17",
    "per_page": "17",
};
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": "Project not found"
}
 

Request      

GET api/v1/projects/id/{id}/properties

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the project. Example: 17

Query Parameters

page   integer  optional  

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

per_page   integer  optional  

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

Get category by ID

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/categories/id/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/categories/id/17"
);

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": "Category not found"
}
 

Request      

GET api/v1/categories/id/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the category. Example: 17

Get properties of a category

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/categories/id/17/properties?page=17&per_page=17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/categories/id/17/properties"
);

const params = {
    "page": "17",
    "per_page": "17",
};
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": "Category not found"
}
 

Request      

GET api/v1/categories/id/{id}/properties

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the category. Example: 17

Query Parameters

page   integer  optional  

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

per_page   integer  optional  

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

List features

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/features?page=17&per_page=17&search=consequatur&order=consequatur&order_by=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/features"
);

const params = {
    "page": "17",
    "per_page": "17",
    "search": "consequatur",
    "order": "consequatur",
    "order_by": "consequatur",
};
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": "http://homzen.test/api/v1/features?page=1",
        "last": "http://homzen.test/api/v1/features?page=1",
        "prev": "http://homzen.test/api/v1/features?page=16",
        "next": null
    },
    "meta": {
        "current_page": 17,
        "from": null,
        "last_page": 1,
        "links": [
            {
                "url": "http://homzen.test/api/v1/features?page=16",
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/features?page=1",
                "label": "1",
                "active": false
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "http://homzen.test/api/v1/features",
        "per_page": 17,
        "to": null,
        "total": 12
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/features

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

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

per_page   integer  optional  

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

search   string  optional  

Limit results to those matching a string. Example: consequatur

order   string  optional  

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

order_by   string  optional  

Sort collection by object attribute. Default: name. One of: created_at, updated_at, name Example: consequatur

Get all features (without pagination)

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/features/all?search=consequatur&order=consequatur&order_by=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/features/all"
);

const params = {
    "search": "consequatur",
    "order": "consequatur",
    "order_by": "consequatur",
};
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": 1,
            "name": "Wifi",
            "icon": "ti ti-wifi",
            "status": "published",
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 2,
            "name": "Parking",
            "icon": "ti ti-parking",
            "status": "published",
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 3,
            "name": "Swimming pool",
            "icon": "ti ti-pool",
            "status": "published",
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 4,
            "name": "Balcony",
            "icon": "ti ti-building-skyscraper",
            "status": "published",
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 5,
            "name": "Garden",
            "icon": "ti ti-trees",
            "status": "published",
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 6,
            "name": "Security",
            "icon": "ti ti-shield-lock",
            "status": "published",
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 7,
            "name": "Fitness center",
            "icon": "ti ti-stretching",
            "status": "published",
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 8,
            "name": "Air Conditioning",
            "icon": "ti ti-air-conditioning",
            "status": "published",
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 9,
            "name": "Central Heating",
            "icon": "ti ti-thermometer",
            "status": "published",
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 10,
            "name": "Laundry Room",
            "icon": "ti ti-wash-machine",
            "status": "published",
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 11,
            "name": "Pets Allow",
            "icon": "ti ti-paw",
            "status": "published",
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 12,
            "name": "Spa & Massage",
            "icon": "ti ti-bath",
            "status": "published",
            "created_at": null,
            "updated_at": null
        }
    ],
    "error": false,
    "message": null
}
 

Request      

GET api/v1/features/all

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

search   string  optional  

Limit results to those matching a string. Example: consequatur

order   string  optional  

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

order_by   string  optional  

Sort collection by object attribute. Default: name. One of: created_at, updated_at, name Example: consequatur

Get feature by ID

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/features/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/features/17"
);

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": "Feature not found"
}
 

Request      

GET api/v1/features/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the feature. Example: 17

List facilities

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/facilities?page=17&per_page=17&search=consequatur&order=consequatur&order_by=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/facilities"
);

const params = {
    "page": "17",
    "per_page": "17",
    "search": "consequatur",
    "order": "consequatur",
    "order_by": "consequatur",
};
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": "http://homzen.test/api/v1/facilities?page=1",
        "last": "http://homzen.test/api/v1/facilities?page=1",
        "prev": "http://homzen.test/api/v1/facilities?page=16",
        "next": null
    },
    "meta": {
        "current_page": 17,
        "from": null,
        "last_page": 1,
        "links": [
            {
                "url": "http://homzen.test/api/v1/facilities?page=16",
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/facilities?page=1",
                "label": "1",
                "active": false
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "http://homzen.test/api/v1/facilities",
        "per_page": 17,
        "to": null,
        "total": 11
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/facilities

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

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

per_page   integer  optional  

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

search   string  optional  

Limit results to those matching a string. Example: consequatur

order   string  optional  

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

order_by   string  optional  

Sort collection by object attribute. Default: name. One of: created_at, updated_at, name Example: consequatur

Get all facilities (without pagination)

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/facilities/all?search=consequatur&order=consequatur&order_by=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/facilities/all"
);

const params = {
    "search": "consequatur",
    "order": "consequatur",
    "order_by": "consequatur",
};
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": 1,
            "name": "Hospital",
            "icon": "ti ti-hospital",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 2,
            "name": "Super Market",
            "icon": "ti ti-shopping-cart",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 3,
            "name": "School",
            "icon": "ti ti-school",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 4,
            "name": "Entertainment",
            "icon": "ti ti-movie",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 5,
            "name": "Pharmacy",
            "icon": "ti ti-pill",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 6,
            "name": "Airport",
            "icon": "ti ti-plane-departure",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 7,
            "name": "Railways",
            "icon": "ti ti-train",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 8,
            "name": "Bus Stop",
            "icon": "ti ti-bus",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 9,
            "name": "Beach",
            "icon": "ti ti-beach",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 10,
            "name": "Mall",
            "icon": "ti ti-shopping-cart",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 11,
            "name": "Bank",
            "icon": "ti ti-building-bank",
            "status": {
                "value": "published",
                "label": "Published"
            },
            "created_at": null,
            "updated_at": null
        }
    ],
    "error": false,
    "message": null
}
 

Request      

GET api/v1/facilities/all

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

search   string  optional  

Limit results to those matching a string. Example: consequatur

order   string  optional  

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

order_by   string  optional  

Sort collection by object attribute. Default: name. One of: created_at, updated_at, name Example: consequatur

Get facility by ID

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/facilities/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/facilities/17"
);

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": "Facility not found"
}
 

Request      

GET api/v1/facilities/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the facility. Example: 17

List agents/accounts

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/agents?page=17&per_page=17&search=consequatur&is_featured=consequatur&order=consequatur&order_by=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/agents"
);

const params = {
    "page": "17",
    "per_page": "17",
    "search": "consequatur",
    "is_featured": "consequatur",
    "order": "consequatur",
    "order_by": "consequatur",
};
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": "http://homzen.test/api/v1/agents?page=1",
        "last": "http://homzen.test/api/v1/agents?page=1",
        "prev": "http://homzen.test/api/v1/agents?page=16",
        "next": null
    },
    "meta": {
        "current_page": 17,
        "from": null,
        "last_page": 1,
        "links": [
            {
                "url": "http://homzen.test/api/v1/agents?page=16",
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "http://homzen.test/api/v1/agents?page=1",
                "label": "1",
                "active": false
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "http://homzen.test/api/v1/agents",
        "per_page": 17,
        "to": null,
        "total": 2
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/agents

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

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

per_page   integer  optional  

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

search   string  optional  

Limit results to those matching a string. Example: consequatur

is_featured   string  optional  

Filter by featured agents (1 or 0). Example: consequatur

order   string  optional  

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

order_by   string  optional  

Sort collection by object attribute. Default: created_at. One of: created_at, updated_at, first_name, last_name Example: consequatur

Get account by ID

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/agents/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/agents/17"
);

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": "Account not found"
}
 

Request      

GET api/v1/agents/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the account. Example: 17

Get properties of an account

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/agents/17/properties?page=17&per_page=17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/agents/17/properties"
);

const params = {
    "page": "17",
    "per_page": "17",
};
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": "Account not found"
}
 

Request      

GET api/v1/agents/{id}/properties

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the account. Example: 17

Query Parameters

page   integer  optional  

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

per_page   integer  optional  

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

Get projects of an account

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/agents/17/projects?page=17&per_page=17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/agents/17/projects"
);

const params = {
    "page": "17",
    "per_page": "17",
};
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": "Account not found"
}
 

Request      

GET api/v1/agents/{id}/projects

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the account. Example: 17

Query Parameters

page   integer  optional  

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

per_page   integer  optional  

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

List reviews for a property

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/properties/17/reviews?page=17&per_page=17&order=consequatur&order_by=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/properties/17/reviews"
);

const params = {
    "page": "17",
    "per_page": "17",
    "order": "consequatur",
    "order_by": "consequatur",
};
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": "Property not found"
}
 

Request      

GET api/v1/properties/{property_id}/reviews

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

property_id   integer   

The ID of the property. Example: 17

Query Parameters

page   integer  optional  

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

per_page   integer  optional  

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

order   string  optional  

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

order_by   string  optional  

Sort collection by object attribute. Default: created_at. One of: created_at, updated_at, star Example: consequatur

Get review by ID

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/reviews/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/reviews/17"
);

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": "Review not found"
}
 

Request      

GET api/v1/reviews/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the review. Example: 17

Send consultation request

Example request:
curl --request POST \
    "http://homzen.test/api/v1/consults" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"John Doe\",
    \"email\": \"[email protected]\",
    \"phone\": \"+1234567890\",
    \"content\": \"I\'m interested in this property.\",
    \"consult_custom_fields\": [
        \"consequatur\"
    ],
    \"type\": \"property\",
    \"data_id\": 1
}"
const url = new URL(
    "http://homzen.test/api/v1/consults"
);

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

let body = {
    "name": "John Doe",
    "email": "[email protected]",
    "phone": "+1234567890",
    "content": "I'm interested in this property.",
    "consult_custom_fields": [
        "consequatur"
    ],
    "type": "property",
    "data_id": 1
};

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

Request      

POST api/v1/consults

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

The name of the person. Example: John Doe

email   string   

The email address. Example: [email protected]

phone   string  optional  

The phone number. Example: +1234567890

content   string   

The consultation message. Example: I'm interested in this property.

consult_custom_fields   string[]  optional  

Custom field values.

1   string  optional  

Must not be greater than 255 characters. Example: Custom field value 1

type   string   

The type of consultation (property or project). Example: property

data_id   integer   

The ID of the property or project. Example: 1

Get consultation custom fields

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/consults/custom-fields" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/consults/custom-fields"
);

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": "Schedule a Tour (optional)",
            "type": "date",
            "options": []
        }
    ],
    "error": false,
    "message": null
}
 

Request      

GET api/v1/consults/custom-fields

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Get account profile

requires authentication

Example request:
curl --request GET \
    --get "http://homzen.test/api/v1/account/profile" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/account/profile"
);

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/account/profile

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Create a review for a property

requires authentication

Example request:
curl --request POST \
    "http://homzen.test/api/v1/properties/17/reviews" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reviewable_type\": \"Botble\\\\RealEstate\\\\Models\\\\Property\",
    \"star\": 5,
    \"content\": \"This is an excellent property with great amenities.\",
    \"comment\": \"Great property!\"
}"
const url = new URL(
    "http://homzen.test/api/v1/properties/17/reviews"
);

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

let body = {
    "reviewable_type": "Botble\\RealEstate\\Models\\Property",
    "star": 5,
    "content": "This is an excellent property with great amenities.",
    "comment": "Great property!"
};

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

Request      

POST api/v1/properties/{property_id}/reviews

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

property_id   integer   

The ID of the property. Example: 17

Body Parameters

reviewable_type   string  optional  

Type of reviewable entity (Property or Project). Example: Botble\RealEstate\Models\Property

Must be one of:
  • Botble\RealEstate\Models\Property
  • Botble\RealEstate\Models\Project
star   integer   

The rating (1-5). Example: 5

content   string   

Content of the review. Must be at least 4 characters. Must not be greater than 500 characters. Example: This is an excellent property with great amenities.

comment   string   

The review comment. Example: Great property!

Update a review

requires authentication

Example request:
curl --request PUT \
    "http://homzen.test/api/v1/reviews/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reviewable_type\": \"Botble\\\\RealEstate\\\\Models\\\\Property\",
    \"star\": 5,
    \"content\": \"This is an excellent property with great amenities.\",
    \"comment\": \"Updated review!\"
}"
const url = new URL(
    "http://homzen.test/api/v1/reviews/17"
);

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

let body = {
    "reviewable_type": "Botble\\RealEstate\\Models\\Property",
    "star": 5,
    "content": "This is an excellent property with great amenities.",
    "comment": "Updated review!"
};

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

Request      

PUT api/v1/reviews/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the review. Example: 17

Body Parameters

reviewable_type   string  optional  

Type of reviewable entity (Property or Project). Example: Botble\RealEstate\Models\Property

Must be one of:
  • Botble\RealEstate\Models\Property
  • Botble\RealEstate\Models\Project
star   integer   

The rating (1-5). Example: 5

content   string   

Content of the review. Must be at least 4 characters. Must not be greater than 500 characters. Example: This is an excellent property with great amenities.

comment   string   

The review comment. Example: Updated review!

Delete a review

requires authentication

Example request:
curl --request DELETE \
    "http://homzen.test/api/v1/reviews/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://homzen.test/api/v1/reviews/17"
);

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

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

Request      

DELETE api/v1/reviews/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the review. Example: 17