CORE APIS

Filters API

Turn a natural-language search into standard property filters and sorting, in English and Arabic.

Overview

POST/api/v1/parse
AuthenticationUse a key with filters and sort permission: Authorization: Bearer <key>.
Manage API keys

Request

Parse a search query

Send a sentence; get back filters, sorting and what was not understood.

Places, budgets, bedrooms, property types, amenities and more, in English or Arabic.
curl -X POST https://nabdaq.dev/api/v1/parse \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "query": "2 bed apartment in Dubai Marina under 2m",
  "locale": "en"
}'

Parameters

NameTypeRequiredDescription
querystringYesThe search as people write it, up to 2,000 characters.
locale"en" or "ar"NoThe language of the page it came from (default "en"). Mixed English and Arabic is read either way.

Response

Example response
{
  "request_id": "req_01J…",
  "query": "2 bed apartment in Dubai Marina under 2m",
  "mode": "local",
  "schema_version": "nabdaq-uae-v1@sha256:dcf734d1649bbca5",
  "status": "resolved",
  "filters": [
    {
      "field": "location",
      "operator": "eq",
      "value": "dubai_marina",
      "confidence": 1,
      "source": "exact",
      "evidence": [
        {
          "start": 19,
          "end": 31
        }
      ]
    },
    {
      "field": "property_type",
      "operator": "eq",
      "value": "apartment",
      "confidence": 1,
      "source": "exact",
      "evidence": [
        {
          "start": 6,
          "end": 15
        }
      ]
    },
    {
      "field": "bedrooms",
      "operator": "eq",
      "value": 2,
      "confidence": 1,
      "source": "exact",
      "evidence": [
        {
          "start": 0,
          "end": 5
        }
      ]
    },
    {
      "field": "price",
      "operator": "lt",
      "value": 2000000,
      "confidence": 1,
      "source": "exact",
      "evidence": [
        {
          "start": 32,
          "end": 40
        }
      ]
    }
  ],
  "sort": [],
  "unresolved": [],
  "offset_unit": "unicode_code_point",
  "refinement": {
    "status": "not_needed"
  }
}
FieldMeaning
statusresolved: everything understood; partially_resolved: some words are in unresolved; unresolved: nothing could be used.
filters[]field, operator (eq neq gt gte lt lte between in not_in exists) and value, with source (exact, lexicon, fuzzy for a corrected typo, classifier) and confidence.
sort[]Ordering the words asked for, in order: { field, direction }. See Sorting.
unresolved[]Words that were not turned into a filter, each with a code and a message; nothing is dropped silently.
evidenceThe words behind each filter, as { start, end } offsets in Unicode code points of query (offset_unit).
schema_versionThe version of the published fields the answer uses.
refinementWhen words are left, an AI refinement may follow: GET /api/v1/parse/{request_id} returns it once ready. Local answers never wait for it.

Examples

Arabic

JSON
{
  "request_id": "req_01J…",
  "query": "شقة غرفتين للإيجار في دبي مارينا مفروشة",
  "mode": "local",
  "schema_version": "nabdaq-uae-v1@sha256:dcf734d1649bbca5",
  "status": "resolved",
  "filters": [
    {
      "field": "location",
      "operator": "eq",
      "value": "dubai_marina",
      "confidence": 1,
      "source": "exact",
      "evidence": [
        {
          "start": 22,
          "end": 32
        }
      ]
    },
    {
      "field": "purpose",
      "operator": "eq",
      "value": "rent",
      "confidence": 1,
      "source": "exact",
      "evidence": [
        {
          "start": 11,
          "end": 18
        }
      ]
    },
    {
      "field": "furnishing",
      "operator": "eq",
      "value": "furnished",
      "confidence": 1,
      "source": "exact",
      "evidence": [
        {
          "start": 33,
          "end": 39
        }
      ]
    },
    {
      "field": "property_type",
      "operator": "eq",
      "value": "apartment",
      "confidence": 1,
      "source": "exact",
      "evidence": [
        {
          "start": 0,
          "end": 3
        }
      ]
    },
    {
      "field": "bedrooms",
      "operator": "eq",
      "value": 2,
      "confidence": 1,
      "source": "lexicon",
      "evidence": [
        {
          "start": 4,
          "end": 10
        }
      ]
    }
  ],
  "sort": [],
  "unresolved": [],
  "offset_unit": "unicode_code_point",
  "refinement": {
    "status": "not_needed"
  }
}

A community and a sort

JBR resolves to its registry id; "cheapest" becomes a sort, not a filter.

JSON
{
  "request_id": "req_01J…",
  "query": "cheapest villa in JBR with a pool",
  "mode": "local",
  "schema_version": "nabdaq-uae-v1@sha256:dcf734d1649bbca5",
  "status": "resolved",
  "filters": [
    {
      "field": "property_type",
      "operator": "eq",
      "value": "villa",
      "confidence": 1,
      "source": "exact",
      "evidence": [
        {
          "start": 9,
          "end": 14
        }
      ]
    },
    {
      "field": "pool",
      "operator": "eq",
      "value": true,
      "confidence": 1,
      "source": "exact",
      "evidence": [
        {
          "start": 29,
          "end": 33
        }
      ]
    },
    {
      "field": "location",
      "operator": "eq",
      "value": "wikidata:Q1466585",
      "confidence": 1,
      "source": "exact",
      "evidence": [
        {
          "start": 18,
          "end": 21
        }
      ]
    }
  ],
  "sort": [
    {
      "field": "price",
      "direction": "asc",
      "source": "lexicon",
      "confidence": 1,
      "evidence": [
        {
          "start": 0,
          "end": 8
        }
      ]
    }
  ],
  "unresolved": [],
  "offset_unit": "unicode_code_point",
  "refinement": {
    "status": "not_needed"
  }
}

Words it could not use

"near a good school" stays unresolved rather than guessed; the rest still works.

JSON
{
  "request_id": "req_01J…",
  "query": "villa near a good school in Arabian Ranches under 5m",
  "mode": "local",
  "schema_version": "nabdaq-uae-v1@sha256:dcf734d1649bbca5",
  "status": "partially_resolved",
  "filters": [
    {
      "field": "location",
      "operator": "eq",
      "value": "arabian_ranches",
      "confidence": 1,
      "source": "exact",
      "evidence": [
        {
          "start": 28,
          "end": 43
        }
      ]
    },
    {
      "field": "property_type",
      "operator": "eq",
      "value": "villa",
      "confidence": 1,
      "source": "exact",
      "evidence": [
        {
          "start": 0,
          "end": 5
        }
      ]
    },
    {
      "field": "price",
      "operator": "lt",
      "value": 5000000,
      "confidence": 1,
      "source": "exact",
      "evidence": [
        {
          "start": 44,
          "end": 52
        }
      ]
    }
  ],
  "sort": [],
  "unresolved": [
    {
      "text": "near",
      "code": "VETO_CUE_UNRESOLVED",
      "message": "\"near\" needs refinement.",
      "evidence": [
        {
          "start": 6,
          "end": 10
        }
      ]
    },
    {
      "text": "good school",
      "code": "UNKNOWN_PHRASE",
      "message": "This phrase could not be mapped safely to the published schema.",
      "evidence": [
        {
          "start": 13,
          "end": 24
        }
      ]
    }
  ],
  "offset_unit": "unicode_code_point",
  "refinement": {
    "status": "pending"
  }
}

Field reference

Filter fields

84 live fields. Parse returns them; listings and index search use the same ones.

FieldTypeDescriptionExample
purposePurposestring (value)Buy or rent property; never infer a transaction type from budget alone.buy
property_categoryProperty categorystring (value)Residential, commercial, industrial or land.residential
property_typeProperty typestring (value)The requested real-estate unit type.apartment
locationLocationstring (value)Named UAE emirate or community; values are locations, not verified listing inventory.dubai
bedroomsBedroomsnumberCount of bedrooms; studio means zero.2
bathroomsBathroomsnumberCount of bathrooms.3
parking_spacesParking spacesnumberNumber of parking spaces.2
rent_chequesRent chequesnumberNumber of rent payment cheques.4
area_floorFloor areanumber · sqftRequested floor area in square feet.1200
area_plotPlot areanumber · sqftRequested plot area in square feet.5000
floor_levelFloor levelnumberFloor number or level when an exact numeric constraint is stated.20
year_builtYear builtnumberConstruction year if explicitly requested.2018
pricePricenumber (AED)Asking price or rent amount in AED; rent period is a separate field.150000
rent_periodRent periodstring (value)Period to which a rental price applies.year
furnishingFurnishingstring (value)Furnishing condition.furnished
completion_statusCompletion statusstring (value)Ready, off-plan or under construction.ready
poolSwimming poolbooleanA swimming pool of any kind; private_pool and shared_pool name its access.true
gymGymbooleanGym or fitness facility requested.true
balconyBalconybooleanBalcony requested.true
gardenGardenbooleanA garden; private_garden names the unit's own.true
maid_roomMaid roombooleanSeparate maid room requested.true
studyStudybooleanDedicated study room requested.true
storage_roomStorage roombooleanSeparate storage room requested.true
pet_friendlyPet friendlybooleanPermission for pets requested.true
sea_viewSea viewbooleanSea view requested; actual visibility is not verified.true
chiller_freeChiller freebooleanCooling cost included or paid by landlord, subject to listing verification.true
no_commissionNo commissionbooleanNo brokerage commission requested.true
bills_includedBills includedbooleanUtility bills included, exact services require verification.true
short_termShort-term staybooleanShort-term rental requested.true
availability_dateAvailability datedate (YYYY-MM-DD)Desired availability date; relative dates depend on request time.2026-11-01
tenureTenurestring (value)Ownership tenure where explicitly requested.freehold
property_conditionProperty conditionstring (value)Advertised condition, not a verified inspection.new
payment_methodPurchase payment methodstring (value)Requested purchase payment method.cash
viewViewstring (value)Requested advertised view.sea
price_per_sqftPrice per sqftnumber · AED/sqftAsking price or rent per square foot in AED.0
down_paymentDown paymentnumber · %Down payment as a percentage of the price.0
handover_dateHandover datedate (YYYY-MM-DD)Expected handover (completion) date of an off-plan unit.2027-03-31
completion_percentageCompletion percentagenumber · %Construction progress of an off-plan project, in percent.0
sale_typeSale typestring (value)Initial sale from the developer or resale by an owner.initial_sale
post_handover_payment_planPost-handover payment planbooleanPart of the price is paid in instalments after handover.true
payment_plan_yearsPayment plan yearsnumber · yearLength of the instalment payment plan in years.1
dld_registeredDLD registeredbooleanListing registered with the Dubai Land Department (permit), as advertised.true
developerDeveloperstring (value)Developer of the project; values are the major UAE developers.emaar
central_acCentral ACbooleanCentral air conditioning.true
private_poolPrivate poolbooleanA pool for the unit alone.true
shared_poolShared poolbooleanA pool shared by the building or community.true
private_gymPrivate gymbooleanA gym for the unit alone.true
spaSpabooleanSpa facilities, usually shared in the building.true
private_jacuzziPrivate jacuzzibooleanA jacuzzi for the unit alone.true
private_gardenPrivate gardenbooleanA garden for the unit alone.true
conciergeConciergebooleanConcierge service in the building.true
covered_parkingCovered parkingbooleanCovered, shaded or underground parking.true
water_viewWater viewbooleanA view of water: sea, lake, canal, creek or marina.true
landmark_viewLandmark viewbooleanA view of a landmark such as Burj Khalifa or Burj Al Arab.true
built_in_wardrobesBuilt-in wardrobesbooleanBuilt-in or fitted wardrobes.true
walk_in_closetWalk-in closetbooleanA walk-in closet or dressing room.true
kitchen_appliancesKitchen appliancesbooleanKitchen equipped with appliances.true
maid_serviceMaid servicebooleanHousekeeping or cleaning service.true
childrens_play_areaChildren's play areabooleanA play area or playground for children.true
childrens_poolChildren's poolbooleanA children's pool.true
bbq_areaBarbecue areabooleanA barbecue area.true
security_24h24-hour securitybooleanSecurity guards or CCTV, around the clock.true
lobbyLobbybooleanA lobby or reception in the building.true
service_elevatorService elevatorbooleanA service or goods elevator.true
prayer_roomPrayer roombooleanA prayer room in the building.true
laundry_roomLaundry roombooleanA laundry room or area.true
broadbandBroadband internetbooleanBroadband or fibre internet in the unit.true
intercomIntercombooleanAn intercom system.true
double_glazed_windowsDouble-glazed windowsbooleanDouble-glazed windows.true
day_careDay carebooleanA day care or nursery in the building or community.true
onsite_business_centreOn-site business centrebooleanA business centre in the residential building.true
saunaSaunabooleanA sauna.true
steam_roomSteam roombooleanA steam room.true
verified_listingVerified listingbooleanThe listing is marked verified by the portal or agency.true
video_tourVideo tourbooleanThe listing has a video.true
virtual_tourVirtual tourbooleanThe listing has a 360 or 3D virtual tour.true
live_viewingLive viewingbooleanThe agent offers a live video viewing.true
floor_planFloor planbooleanThe listing has a floor plan.true
price_reducedPrice reducedbooleanThe asking price was reduced.true
listed_atListing datedate (YYYY-MM-DD)When the listing was published; relative periods depend on request time.2027-03-31
upgradedUpgradedbooleanThe unit was upgraded (finishes, kitchen, bathrooms), as advertised.true
extendedExtendedbooleanThe unit or villa was extended, as advertised.true
landscapedLandscapedbooleanThe garden or plot is landscaped, as advertised.true
occupancyOccupancystring (value)Whether the unit is vacant or tenanted, as advertised.vacant