Requests
The Request object represents a buyer's property search request in the EstatePrime system. This object is returned in JSON format, containing all available values for a request including its search criteria, locations, and related contacts.
Object
The Request object represents an individual buyer request. Below are the fields included in a Request object:
Example
json
{
"id": 88,
"date_created": "2025-02-05 11:20:00",
"date_updated": "2025-03-10 09:15:00",
"created_by": 3,
"store_id": 2,
"source_id": 1,
"status": "active",
"availability": "sale",
"category": "residential",
"subcategories": ["apartment", "maisonette"],
"price_min": 100000,
"price_max": 220000,
"price_per_sqm_min": null,
"price_per_sqm_max": null,
"size_min": 70,
"size_max": 120,
"year_built_min": 2000,
"year_built_max": null,
"rooms_min": 2,
"rooms_max": 3,
"floor_min": null,
"floor_max": null,
"has_elevator": false,
"extra_fields": {
"1": "some value",
"3": [2, 5]
},
"contacts": [23, 45],
"users": [3, 8],
"tags": [7, 12],
"locations": [
{
"area_level1": 5,
"area_level2": 12,
"area_level3": null
},
{
"area_level1": 5,
"area_level2": 14,
"area_level3": null
}
]
}- id (int): The system id of the request.
- date_created (string): The date and time the request was created in
YYYY-MM-DD HH:MM:SSformat. - date_updated (string): The date and time the request was last updated in
YYYY-MM-DD HH:MM:SSformat. - created_by (int): The user ID of the user who created the request.
- store_id (int): The ID of the office/store this request belongs to.
- source_id (int, nullable): The ID of the source from which the request originated.
- status (string): The request status. Possible values:
active,inactive. - availability (string): The desired availability type. Possible values:
sale,rent,auction,shortterm. - category (string): The desired property category. Possible values:
residential,commercial,land,other. - subcategories (array of strings): A list of desired property subcategory keys. Possible values:
apartment,maisonette,detached,villa,loft,residential_building,apartment_complex,farmhouse,houseboat,other_residential,office,store,warehouse,hotel,commercial_building,hall,industrial_space,craft_space,other_commercial,plot,parcel,island,parking,business,air,other. - price_min (int, nullable): Minimum desired price.
- price_max (int, nullable): Maximum desired price.
- price_per_sqm_min (int, nullable): Minimum desired price per square meter.
- price_per_sqm_max (int, nullable): Maximum desired price per square meter.
- size_min (int, nullable): Minimum desired size in square meters.
- size_max (int, nullable): Maximum desired size in square meters.
- year_built_min (int, nullable): Minimum desired year of construction.
- year_built_max (int, nullable): Maximum desired year of construction.
- rooms_min (int, nullable): Minimum desired number of rooms/bedrooms.
- rooms_max (int, nullable): Maximum desired number of rooms/bedrooms.
- floor_min (float, nullable): Minimum desired floor number.
- floor_max (float, nullable): Maximum desired floor number.
- has_elevator (boolean): Whether the buyer requires an elevator.
- extra_fields (object): Custom field values keyed by custom field ID. Values vary by field type. Empty object
{}if none are set. - contacts (array of integers): A list of contact IDs associated with this request (the buyers).
- users (array of integers): A list of user IDs (agents) responsible for this request.
- tags (array of integers): A list of tag IDs associated with the request.
- locations (array of objects): A list of desired location areas. Each object includes:
- area_level1 (int): Region ID. Always present.
- area_level2 (int, nullable): Municipality/district ID, or
nullif the entire region is desired. - area_level3 (int, nullable): Neighbourhood ID, or
nullif the entire municipality is desired.
Get requests
/api/requests (GET)
Fetch a paginated list of requests. Deleted requests (status = 99) are always excluded.
Request
- Method:
GET - Headers: Include authentication headers as described in the Authentication section.
- Body: JSON object with the following optional parameters:
page(int): The page number to fetch. Defaults to1.status(string): Filter by status. Possible values:active,inactive.availability(string): Filter by availability type. Possible values:sale,rent,auction,shortterm.category(string): Filter by property category. Possible values:residential,commercial,land,other.store_id(int): Filter by office/store ID.contact_id(int): Filter by associated contact ID.user_id(int): Filter by associated agent user ID.date_created(object): Filter by creation date range. Must include:min(string): The minimum date inYYYY-MM-DD HH:MM:SSformat, ornullfor no lower limit.max(string): The maximum date inYYYY-MM-DD HH:MM:SSformat, ornullfor no upper limit.
date_updated(object): Filter by last update date range. Must include:min(string): The minimum date inYYYY-MM-DD HH:MM:SSformat, ornullfor no lower limit.max(string): The maximum date inYYYY-MM-DD HH:MM:SSformat, ornullfor no upper limit.
Example Body
json
{
"page": 1,
"status": "active",
"availability": "sale",
"category": "residential",
"date_created": {
"min": "2025-01-01 00:00:00",
"max": null
}
}Response
- 200 OK: Returns a JSON array of request objects.
Example Response
json
{
"status": 200,
"page": 1,
"total_pages": 4,
"results_per_page": 50,
"total_results": 183,
"data": [
{
"id": 88,
"date_created": "2025-02-05 11:20:00",
"date_updated": "2025-03-10 09:15:00",
"created_by": 3,
"store_id": 2,
"source_id": 1,
"status": "active",
"availability": "sale",
"category": "residential",
"subcategories": ["apartment", "maisonette"],
"price_min": 100000,
"price_max": 220000,
"size_min": 70,
"size_max": 120,
"rooms_min": 2,
"rooms_max": 3,
"has_elevator": false,
"extra_fields": {},
"contacts": [23, 45],
"users": [3, 8],
"tags": [7, 12],
"locations": [
{
"area_level1": 5,
"area_level2": 12,
"area_level3": null
}
]
}
//Rest of the data...
]
}Get single request
/api/requests/{id} (GET)
Get a single request by its id.
Request
- Method:
GET - Headers: Include authentication headers.
- Path Params: The request id to be fetched.
Example Response
json
{
"status": 200,
"data": {
"id": 88,
"date_created": "2025-02-05 11:20:00",
"date_updated": "2025-03-10 09:15:00",
"created_by": 3,
"store_id": 2,
"source_id": 1,
"status": "active",
"availability": "sale",
"category": "residential",
"subcategories": ["apartment", "maisonette"],
"price_min": 100000,
"price_max": 220000,
"price_per_sqm_min": null,
"price_per_sqm_max": null,
"size_min": 70,
"size_max": 120,
"year_built_min": 2000,
"year_built_max": null,
"rooms_min": 2,
"rooms_max": 3,
"floor_min": null,
"floor_max": null,
"has_elevator": false,
"extra_fields": {
"1": "some value",
"3": [2, 5]
},
"contacts": [23, 45],
"users": [3, 8],
"tags": [7, 12],
"locations": [
{
"area_level1": 5,
"area_level2": 12,
"area_level3": null
},
{
"area_level1": 5,
"area_level2": 14,
"area_level3": null
}
]
}
}Response
- 200 OK: Returns the JSON object of the request.
Delete request
/api/requests/{id} (DELETE)
Soft-delete a request. The record is marked as deleted and excluded from all future list and single-fetch responses.
Request
- Method:
DELETE - Headers: Include authentication headers.
- Path Params: The request id to be deleted.
Response
- 200 OK: Returns the deleted request ID.
Example Response
json
{
"status": 200,
"deleted_id": 88
}Get request sources
/api/requests/sources (GET)
Fetch the available request sources.
Request
- Method:
GET - Headers: Include authentication headers.
Response
- 200 OK: Returns a JSON array of available request sources.
Example Response
json
{
"status": 200,
"data": [
{
"id": 1,
"name": "Company Website"
},
{
"id": 2,
"name": "Social Media"
}
]
}Get request tags
/api/requests/tags (GET)
Fetch the available request tags.
Request
- Method:
GET - Headers: Include authentication headers.
Response
- 200 OK: Returns a JSON array of available request tags.
Example Response
json
{
"status": 200,
"data": [
{
"id": 7,
"name": "Urgent"
},
{
"id": 12,
"name": "High Budget"
}
]
}Get request custom fields
/api/requests/custom-fields (GET)
Fetch the available custom fields for requests.
Request
- Method:
GET - Headers: Include authentication headers.
Response
- 200 OK: Returns a JSON array of available custom fields for requests.
Example Response
json
{
"status": 200,
"data": [
{
"id": 1,
"name": "Preferred Neighbourhood Notes",
"type": "textarea"
},
{
"id": 2,
"name": "Financing Method",
"type": "select",
"options": [
{
"id": 1,
"name": "Cash"
},
{
"id": 2,
"name": "Bank Loan"
},
{
"id": 3,
"name": "Mixed"
}
]
}
]
}Available custom field types
- text: Text up to 255 characters.
- textarea: Text up to 2500 characters.
- wysiwyg: Text with HTML format.
- number: Integer or decimal.
- formatted_number: Integer or decimal that is formatted. E.g.
1,000,000.25. - select: Single select with options.
- select_multi: Multiple select with options.
- checkbox: Boolean.
- file: Single file. (As a URL)
- file_multi: Array of multiple files. (As URLs)
- image: Single image. (As a URL)
- image_multi: Array of multiple images. (As URLs)
- address: Address. (E.g.
Bellariastraße 6, 1010 Wien, Austria) - url: URL.
- date: Date in
YYYY-MM-DDformat. (E.g.2025-10-18) - datetime: Datetime in
YYYY-MM-DD HH:MM:SSformat. (E.g.2025-10-18 18:24:10) - currency: Integer or decimal formatted as a currency. E.g.
1,000,000.25€. - user: Application
user_id. - user_multi: An array of application
user_idvalues. - contact: Another contact's id.
- contact_multi: An array of multiple contact ids.

