Appearance
Accounts API Reference
List Accounts
GET /api/v1/websites
Retrieve a list of accounts based on various filter criteria.
Query Parameters
Parameter | Type | Description |
---|---|---|
page | Number | Page number (default: 1) |
limit | Number | Number of items per page (default: 20, max: 100) |
s | String | Search term for name, link, hostname, folderName, or address |
id | Number | Website ID |
name | String | Account name (case-insensitive, partial match) |
link | String | Account link (case-insensitive, partial match) |
hostname | String | Account hostname (case-sensitive, exact match) |
primaryID | Number | Main website ID for sub-accounts |
type | String | Type of listings ('forsale', 'forrent', or 'both') |
agencyType | String | Type of agency account |
main | Number | Main website ID for filtering sub-accounts |
status | Boolean/String | Account status (true/false, 1/0, 'live'/'active') |
fullSuburb | String | Full suburb for location-based filtering |
suburb | String | Suburb for location-based filtering |
state | String | State for location-based filtering |
postcode | String | Postcode for location-based filtering |
region | String | Region Names(s), can be comma-separated |
areaname | String | Area Names(s), can be comma-separated |
Example Request
javascript
const headers = {
"x-access-key": "your_access_key_here",
"x-secret-key": "your_secret_key_here",
};
fetch("https://agencyhubapi.stepps.net/api/v1/websites?name=Real&type=forsale&status=true", { headers })
.then((response) => response.json())
.then((data) => console.log(data));
Example Response
json
{
"total": 352,
"totalPage": 36,
"data": [
{
"websiteID": 123,
"logo": {
"light": "",
"dark": "",
"override": "https://assets-agencyhub.stepps.net/realestatwebsite/account-logo.png"
},
"favicon": "https://assets-agencyhub.stepps.net/realestatwebsite/fav.jpg",
"name": "Real Estat Website",
"link": "https://www.realestatwebsite.com.au/",
"hostname": "realestatwebsite.com.au",
"isWebsiteClient": false,
"config": {
"primaryColor": "#000000",
"secondaryColor": "#f2f2f2",
"tertiaryColor": "",
"video": "",
"cloudFrontCDN": "",
"cloudFlareCDN": "",
"listingTypes": {
"hasForSale": true,
"hasForRent": true
}
}
}
// ... more accounts
]
}
Get a Single Account
GET /api/v1/websites/{id}
Retrieve details of a specific account by its ID.
Path Parameters
Parameter | Type | Description |
---|---|---|
id | String/Number | Unique identifier of the account (can be MongoDB ObjectId or websiteID) |
Example Request
javascript
const headers = {
"x-access-key": "your_access_key_here",
"x-secret-key": "your_secret_key_here",
};
fetch("https://agencyhubapi.stepps.net/api/v1/websites/123", { headers })
.then((response) => response.json())
.then((data) => console.log(data));
Example Response
json
{
"websiteID": 364,
"logo": {
"light": "",
"dark": "",
"override": "https://assets-agencyhub.stepps.net/realestatwebsite/logo.png"
},
"favicon": "https://assets-agencyhub.stepps.net/realestatwebsite/fav.jpg",
"address": {
"streetAddress": "370 Glen Huntly Road",
"fullSuburb": "Elsternwick, VIC 3185",
"fullAddress": "370 Glen Huntly Road, Elsternwick, VIC 3185",
"subNumber": "",
"lotNumber": "",
"streetNumber": "370",
"street": "Glen Huntly Road",
"suburb": "Elsternwick",
"state": "VIC",
"postcode": "3185",
"latitude": "",
"longitude": ""
},
"name": "Real Estat Website",
"link": "https://www.realestatwebsite.com.au/",
"hostname": "realestatwebsite.com.au",
"isWebsiteClient": false,
"type": "primary-account",
"subsiteDetails": {
"mainWebsiteID": ,
"listingSource": "",
"listingOfficeIDs": []
},
"config": {
"primaryColor": "#000000",
"secondaryColor": "#f2f2f2",
"tertiaryColor": "",
"video": "",
"cloudFrontCDN": "",
"cloudFlareCDN": "",
"listingTypes": {
"hasForSale": true,
"hasForRent": true
}
},
"about": "office description",
"contacts": {
"email": {
"office": "info@realestatwebsite.com.au",
"sales": "",
"pm": ""
},
"phone": {
"office": "",
"sales": "",
"pm": ""
},
"fax": {
"office": "",
"sales": "",
"pm": ""
}
},
"socialMedia": {
"facebook": "",
"twitter": "",
"instagram": "",
"linkedIn": "",
"youtube": ""
},
"integrations": {
"reviews": "",
"offmarketLink": "",
"propertyEstimateLink": "",
"propertyAppraisalLink": "",
"switchToUsLink": "",
"suburbProfileLink": "https://www.realestatwebsite.com.au/suburb/",
"privacyPolicyLink": "https://www.realestatwebsite.com.au/privacy-policy/"
}
}
Accounts API Reference
Create an Account
POST /api/v1/accounts
Create a new account.
Request Body
The request body should contain the account details based on the following fields:
Field | Type | Description | Example |
---|---|---|---|
name | String | Name of the account (required) | Real Estate Experts |
link | String | Website link (required) | https://realestateexperts.com |
status | Boolean | Account status | true |
type | String | Type of account | primary-account |
logo | Object | Logo URLs for light and dark themes | See detailed example below |
favicon | String | Favicon URL | https://example.com/favicon.png |
accessKey | String | Access key for the account | "abc123xyz789" |
secretKey | String | Secret key for the account | "secretkey123" |
sendToWP | Boolean | WordPress integration status | true |
isDisplayToFrontEnd | Boolean | Display status on front end | true |
showOnListdBubble | Boolean | Show on ListdBubble | true |
isWebsiteClient | Boolean | Is a website client | true |
config | Object | Configuration details | See detailed example below |
about | String | About information | "Real Estate Experts has been serving the community for over 20 years..." |
contacts | Object | Contact information | See detailed example below |
socialMedia | Object | Social media links | See detailed example below |
integrations | Object | Integration links | See detailed example below |
subsiteDetails | Object | Subsite Details | See detailed example below |
address | Object | Office Address | See detailed example below |
hooks | Array | API Integrations for managing listing updates | See detailed example below |
enabledSlug | Boolean | Set true if want to use the listing slug format | true, default is false |
slugs | Array | Plotted slug format for each postypes | See detailed example below |
Detailed examples for complex fields:
- logo
json
{
"light": "https://example.com/logo-light.png",
"dark": "https://example.com/logo-dark.png",
"override": "https://example.com/logo-override.png"
}
- config
json
{
"primaryColor": "#FF5733",
"secondaryColor": "#33FF57",
"tertiaryColor": "#5733FF",
"video": "https://youtube.com/watch?v=abcdefghijk",
"cloudFrontCDN": "https://d1234abcd.cloudfront.net",
"cloudFlareCDN": "https://your-domain.com",
"suburbProfileLink": "https://realestateexperts.com/suburbs/{{suburb}}",
"listingTypes": {
"hasForSale": true,
"hasForRent": true
}
}
- contacts
json
{
"email": {
"office": "info@realestateexperts.com",
"sales": "sales@realestateexperts.com",
"pm": "propertymanagement@realestateexperts.com"
},
"phone": {
"office": "+61 2 1234 5678",
"sales": "+61 2 8765 4321",
"pm": "+61 2 1357 9024"
},
"fax": {
"office": "+61 2 9876 5432"
}
}
- socialMedia
json
{
"facebook": "https://facebook.com/realestateexperts",
"twitter": "https://twitter.com/realestateexp",
"instagram": "https://instagram.com/realestateexperts",
"linkedIn": "https://linkedin.com/company/real-estate-experts",
"youtube": "https://youtube.com/c/realestateexperts"
}
- integrations
json
{
"reviews": "https://reviews.realestateexperts.com",
"offmarketLink": "https://realestateexperts.com/off-market",
"propertyEstimateLink": "https://realestateexperts.com/estimate",
"propertyAppraisalLink": "https://realestateexperts.com/appraisal",
"switchToUsLink": "https://realestateexperts.com/switch-to-us",
"suburbProfileLink": "https://realestateexperts.com/suburbs/{{suburb}}",
"privacyPolicyLink": "https://realestateexperts.com/privacy-policy"
}
- subsiteDetails
json
{
"mainWebsiteID": 12345,
"listingSource": "officeID",
"listingOfficeIDs": ["OFF001", "OFF002"]
}
- address
json
{
"streetAddress": "123 Main Street",
"suburb": "Sydney",
"state": "NSW",
"postcode": "2000",
"country": "Australia"
}
- hooks
json
[
{
"name": "New Current Listings",
"url": "https://example.com/webhook",
"trigger": "new-current-listing"
}
]
- slugs
json
[
{
"listingType": "residential",
"slug": "/property/{category}-{address.state}-{address.suburb}-{uniqueID}"
},
{
"listingType": "rental",
"slug": "/rental/{category}-{address.state}-{address.suburb}-{uniqueID}"
}
]
Example Request
javascript
const headers = {
"x-access-key": "your_access_key_here",
"x-secret-key": "your_secret_key_here",
"Content-Type": "application/json",
};
const body = JSON.stringify({
name: "Real Estate Experts",
link: "https://realestateexperts.com",
status: true,
type: "sub-account",
logo: {
light: "https://example.com/logo-light.png",
dark: "https://example.com/logo-dark.png",
override: "https://example.com/logo-override.png",
},
favicon: "https://example.com/favicon.png",
accessKey: "abc123xyz789",
secretKey: "secretkey123",
sendToWP: true,
isDisplayToFrontEnd: true,
showOnListdBubble: true,
isWebsiteClient: true,
config: {
primaryColor: "#FF5733",
secondaryColor: "#33FF57",
listingTypes: {
hasForSale: true,
hasForRent: true,
},
},
about: "Real Estate Experts has been serving the community for over 20 years...",
contacts: {
email: {
office: "info@realestateexperts.com",
sales: "sales@realestateexperts.com",
},
phone: {
office: "+61 2 1234 5678",
},
},
socialMedia: {
facebook: "https://facebook.com/realestateexperts",
instagram: "https://instagram.com/realestateexperts",
},
integrations: {
reviews: "https://reviews.realestateexperts.com",
propertyEstimateLink: "https://realestateexperts.com/estimate",
},
subsiteDetails: {
mainWebsiteID: 12345,
listingSource: "officeID",
listingOfficeIDs: ["OFF001", "OFF002"],
},
address: {
streetAddress: "123 Main Street",
suburb: "Sydney",
state: "NSW",
postcode: "2000",
},
hooks: [
{
name: "New Current Listings",
url: "https://example.com/webhook",
trigger: "new-current-listing",
},
],
slugs: [
{
listingType: "residential",
slug: "/property/{category}-{address.state}-{address.suburb}-{uniqueID}",
},
{
listingType: "rental",
slug: "/rental/{category}-{address.state}-{address.suburb}-{uniqueID}",
},
],
});
fetch("https://agencyhubapi.stepps.net/api/v1/accounts", {
method: "POST",
headers: headers,
body: body,
})
.then((response) => response.json())
.then((data) => console.log(data));
Example Response
json
{
"message": "Account created successfully",
"account": {
"websiteID": 12346,
"name": "Real Estate Experts",
"link": "https://realestateexperts.com",
"status": true,
"type": "sub-account",
"logo": {
"light": "https://example.com/logo-light.png",
"dark": "https://example.com/logo-dark.png",
"override": "https://example.com/logo-override.png"
},
"favicon": "https://example.com/favicon.png",
"accessKey": "abc123xyz789",
"secretKey": "secretkey123",
"sendToWP": true,
"isDisplayToFrontEnd": true,
"showOnListdBubble": true,
"isWebsiteClient": true,
"config": {
"primaryColor": "#FF5733",
"secondaryColor": "#33FF57",
"listingTypes": {
"hasForSale": true,
"hasForRent": true
}
},
"about": "Real Estate Experts has been serving the community for over 20 years...",
"contacts": {
"email": {
"office": "info@realestateexperts.com",
"sales": "sales@realestateexperts.com"
},
"phone": {
"office": "+61 2 1234 5678"
}
},
"socialMedia": {
"facebook": "https://facebook.com/realestateexperts",
"instagram": "https://instagram.com/realestateexperts"
},
"integrations": {
"reviews": "https://reviews.realestateexperts.com",
"propertyEstimateLink": "https://realestateexperts.com/estimate"
},
"subsiteDetails": {
"mainWebsiteID": 12345,
"listingSource": "officeID",
"listingOfficeIDs": ["OFF001", "OFF002"]
},
"address": {
"streetAddress": "123 Main Street",
"suburb": "Sydney",
"state": "NSW",
"postcode": "2000"
}
}
}
Update an Account
PUT /api/v1/websites/{id}
Update an existing account's information.
Path Parameters
Parameter | Type | Description |
---|---|---|
id | String/Number | Unique identifier of the account (can be MongoDB ObjectId or websiteID) |
Request Body
Include any fields from the IWebsite
interface that you want to update.
Example Request
javascript
const headers = {
"x-access-key": "your_access_key_here",
"x-secret-key": "your_secret_key_here",
"Content-Type": "application/json",
};
const body = JSON.stringify({
config: {
primaryColor: "#00FF00",
listingTypes: {
hasForRent: true,
},
},
contacts: {
email: {
sales: "sales@newrealestatecompany.com",
},
},
});
fetch("https://agencyhubapi.stepps.net/api/v1/websites/12346", {
method: "PUT",
headers: headers,
body: body,
})
.then((response) => response.json())
.then((data) => console.log(data));
Example Response
json
{
"name": "Real Estate Experts",
"link": "https://realestateexperts.com",
"status": true,
"type": "primary-account",
"logo": {
"light": "https://example.com/logo-light.png",
"dark": "https://example.com/logo-dark.png",
"override": "https://example.com/logo-override.png"
},
"favicon": "https://example.com/favicon.png",
"accessKey": "abc123xyz789",
"secretKey": "secretkey123",
"sendToWP": true,
"isDisplayToFrontEnd": true,
"showOnListdBubble": true,
"isWebsiteClient": true,
"config": {
"primaryColor": "#00FF00",
"secondaryColor": "#33FF57",
"listingTypes": {
"hasForSale": true,
"hasForRent": true
}
},
"about": "Real Estate Experts has been serving the community for over 20 years...",
"contacts": {
"email": {
"office": "info@realestateexperts.com",
"sales": "sales@newrealestatecompany.com"
},
"phone": {
"office": "+61 2 1234 5678"
}
},
"socialMedia": {
"facebook": "https://facebook.com/realestateexperts",
"instagram": "https://instagram.com/realestateexperts"
},
"integrations": {
"reviews": "https://reviews.realestateexperts.com",
"propertyEstimateLink": "https://realestateexperts.com/estimate"
},
"subsiteDetails": {
"mainWebsiteID": 12345,
"listingSource": "officeID",
"listingOfficeIDs": ["OFF001", "OFF002"]
},
"address": {
"streetAddress": "123 Main Street",
"suburb": "Sydney",
"state": "NSW",
"postcode": "2000"
},
"hooks": [
{
"name": "New Current Listings",
"url": "https://example.com/webhook",
"trigger": "new-current-listing"
}
],
"slugs": [
{
"listingType": "residential",
"slug": "/property/{category}-{address.state}-{address.suburb}-{uniqueID}"
},
{
"listingType": "rental",
"slug": "/rental/{category}-{address.state}-{address.suburb}-{uniqueID}"
}
]
}
Delete an Account
DELETE /api/v1/websites/{id}
Delete an account from the system.
Path Parameters
Parameter | Type | Description |
---|---|---|
id | String/Number | Unique identifier of the account (can be MongoDB ObjectId or websiteID) |
Example Request
javascript
const headers = {
"x-access-key": "your_access_key_here",
"x-secret-key": "your_secret_key_here",
};
fetch("https://agencyhubapi.stepps.net/api/v1/websites/12346", {
method: "DELETE",
headers: headers,
})
.then((response) => response.json())
.then((data) => console.log(data));
Example Response
json
{
"message": "Account deleted successfully",
"deletedAccount": {
"websiteID": 12346,
"name": "New Real Estate Co"
// ... other details of the deleted account
}
}
Error Handling
The API uses conventional HTTP response codes to indicate the success or failure of an API request. Codes in the 2xx range indicate success, codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted), and codes in the 5xx range indicate an error with our servers.
Code | Description |
---|---|
200 | OK - The request was successful |
201 | Created - The request was successful and a resource was created |
400 | Bad Request - The request was invalid or cannot be served |
401 | Unauthorized - The request requires authentication |
403 | Forbidden - The server understood the request but refuses to authorize it |
404 | Not Found - The requested resource could not be found |
500 | Internal Server Error - The server encountered an unexpected condition |
For more information on using these endpoints, please refer to our Authentication Guide and Quick Start Guide.