Skip to content

List listings

Listings API · listings.list

URL · Fields · Example · Response · Try it

URL and authentication

POST https://YOUR-BACKEND/api/automation/v1/execute

Send Authorization: Bearer <connection key>, Accept: application/json and Content-Type: application/json. Create a connection.

This operation requires read access and CRM permission view_listing. The gateway invokes GET /api/v1/app/listing internally. Use the POST URL above with your automation key, including for read and delete operations.

Request parameters

KeyTypeRequirement
operationstringRequired; exactly listings.list
dataobjectOptional; see fields below

Fields

Fields below belong inside data. Dot paths describe nested objects; * means each array item. nullable permits null and sometimes validates a supplied field. in: lists allowed values; min: and max: limit the value, length or item count. exists: and exists_in_company: require a valid record ID. Conditional rules such as required_if and required_with refer to other fields in the same payload. Use YYYY-MM-DD for date-only values and timestamps with timezone offsets for follow-ups.

FieldTypeRequirementFormat / validation
searchstringOptional— Search by listing title, location address, or listing reference. Example: luxury villa or BRX-1001
listing_purposestringOptional— Filter by listing purpose (rent, sell). Example: rent
listing_typearrayOptional— Filter by listing type IDs (apartment, villa, etc.). Example: [1, 2, 3]
statusstringOptional— Filter by listing status. Example: available
price_startnumericOptional— Filter by minimum price. Example: 100000
price_endnumericOptional— Filter by maximum price. Example: 500000
source_idarrayOptional— Filter by listing source id(s). Example: [1, 2]
locationarrayOptional— Filter by location IDs. Example: [1, 2, 3]
bedroomsintegerOptional— Filter by number of bedrooms. Example: 2
bathroomsintegerOptional— Filter by number of bathrooms. Example: 2
developerarrayOptional— Filter by developer IDs. Example: [1, 2, 3]
created_byarrayOptional— Filter by creator IDs. Example: [1, 2, 3]
assigned_toarrayOptional— Filter by assigned user IDs. Example: [1, 2, 3]
start_datedateOptional— Filter by creation start date. Example: 2024-01-01
end_datedateOptional— Filter by creation end date. Example: 2024-12-31
sort_typestringOptional— Field to sort by (default: created_at). Example: price
sortstringOptional— Direction of sort (ASC, DESC) — default: DESC. Example: DESC
pageintegerOptionalinteger; min:1 — Default 1.
per_pageintegerOptionalinteger; min:1; max:100 — Gateway default 25; clamped to 1–100.
aggregatestringOptional— Aggregation operation. Supported: sum, avg, min, max, count. When provided, returns aggregated result instead of paginated listings. Example: sum
fieldstringOptional— Field to aggregate on. Required for sum/avg/min/max, optional for count. Allowed fields: price, size, plot_size, bedrooms, bathrooms, parkings, build_year, floor_number, total_floors, viewings. Example: price

Example request

Replace the example IDs and values with records in your installation. Supply any additional custom fields required by your company.

{
  "operation": "listings.list",
  "data": {
    "page": 1,
    "per_page": 25
  }
}

Response

Returns matching records in data. Paginated results include meta.current_page, meta.last_page, meta.per_page, meta.total and meta.has_more_pages. Increment the request’s data.page while more pages remain. Related fields depend on record visibility and the resource.

The gateway preserves the underlying HTTP status and JSON body. Successful requests return HTTP 200. A response may also include localized message fields.

Illustrative response excerpt (additional fields may be returned):

{
  "status": "success",
  "data": [],
  "meta": {
    "current_page": 1,
    "last_page": 1,
    "per_page": 25,
    "total": 0,
    "has_more_pages": false
  }
}

Errors

HTTP statusMeaning
400A CRM business rule rejected the action.
401Missing, invalid, expired or revoked connection key.
403Connection access or CRM permissions do not allow this action.
404Operation or record unavailable.
413Request or result exceeds its size limit; reduce payload or page size.
422Missing or invalid fields, or a CRM business rule rejected the operation.
429Rate limit exceeded; wait before retrying.
500The server could not complete the operation.

Validation failures may return message / errors, or an error string with an optional fields array. The tester shows the actual HTTP status and full body. Read about limits and retries.

Try it

Brixit API v1

Try this request

listings.list

Requests run from your browser to your installation. Enter the backend URL shown in Brixit. Your connection key stays in this component’s memory and is cleared when you leave this page.

CRM permission: view_listing. Underlying route: GET /api/v1/app/listing. Send this operation to POST /execute.

Example IDs are placeholders. Use your own record and lookup IDs. Required custom fields depend on your installation.

POST /api/automation/v1/execute

Accept: application/json
Authorization: Bearer <connection key>
Content-Type: application/json

curl --request POST 'https://crm.example.com/api/automation/v1/execute' \
  --header "Authorization: Bearer $BRIXIT_CONNECTION_KEY" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "operation": "listings.list",
  "data": {
    "page": 1,
    "per_page": 25
  }
}'

Code uses a connection-key variable; your entered key is never included in copied examples.