Source-backed UAE costs: groceries, schools, housing, transport, utilities, telecom and relocation
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Monthly/annual car commute cost (fuel+Salik), or published area routes. No parking.
Monthly/annual car commute cost (fuel+Salik), or published area routes. No parking.
| Argument | Type | Description |
|---|---|---|
| fuel | any | |
| sort | any | |
| cursor | string | |
| to_area | string | |
| from_area | string | |
| page_size | integer | |
| to_hub_id | any | |
| emirate_id | any | |
| km_per_day | number | |
| l_per_100km | number | |
| days_per_week | number | |
| salik_per_day | integer |
{
"type": "object",
"properties": {
"fuel": {
"enum": [
"super98",
"special95",
"eplus91",
"diesel"
],
"default": "special95"
},
"sort": {
"enum": [
"distance_km",
"car_monthly_aed",
"from_area"
],
"default": "distance_km"
},
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"to_area": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"from_area": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"to_hub_id": {
"enum": [
"downtown_difc",
"internet_city_marina",
"jafza_dubai_south",
"dxb_deira"
]
},
"emirate_id": {
"enum": [
"dubai",
"abu_dhabi",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
]
},
"km_per_day": {
"type": "number",
"maximum": 1000,
"minimum": 0
},
"l_per_100km": {
"type": "number",
"default": 8,
"maximum": 40,
"minimum": 1
},
"days_per_week": {
"type": "number",
"default": 5,
"maximum": 7,
"minimum": 0
},
"salik_per_day": {
"type": "integer",
"maximum": 30,
"minimum": 0
}
},
"additionalProperties": false
}Dubai areas ranked by monthly cost: rent, fees, bills (+school). Not full budgets.
| Argument | Type | Description |
|---|---|---|
| area | string | |
| sort | any | |
| cursor | string | |
| zone_id | string | |
| bedrooms | integer | |
| page_size | integer | |
| transport | any | |
| min_contracts | integer | |
| property_type | any | |
| include_school | boolean |
{
"type": "object",
"properties": {
"area": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"sort": {
"enum": [
"total_monthly_aed",
"-total_monthly_aed",
"rent_monthly_aed",
"total_with_school_monthly_aed",
"name"
],
"default": "total_monthly_aed"
},
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"zone_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{0,119}$"
},
"bedrooms": {
"type": "integer",
"maximum": 10,
"minimum": 0
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"transport": {
"enum": [
"car_commute_no_tolls",
"car_commute_with_salik",
"public_transport_one_zone",
"public_transport_two_zones"
]
},
"min_contracts": {
"type": "integer",
"maximum": 100000,
"minimum": 10
},
"property_type": {
"enum": [
"apartment",
"villa"
]
},
"include_school": {
"type": "boolean"
}
},
"additionalProperties": false
}Compare emirates: rent, utilities, schools. Non-Dubai rent unknown.
| Argument | Type | Description |
|---|---|---|
| cursor | string | |
| page_size | integer | |
| emirate_id | any |
{
"type": "object",
"properties": {
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"emirate_id": {
"enum": [
"dubai",
"abu_dhabi",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
]
}
},
"additionalProperties": false
}Where each number comes from: publishers, licences, dates, paused sources.
| Argument | Type | Description |
|---|---|---|
| cursor | string | |
| status | any | |
| page_size | integer | |
| source_id | any | |
| dataset_id | any | |
| license_status | any |
{
"type": "object",
"$defs": {
"Code": {
"type": "string",
"pattern": "^[a-z0-9]+(_[a-z0-9]+)*$",
"maxLength": 80
}
},
"properties": {
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"status": {
"enum": [
"ok",
"paused",
"unreadable",
"not_published"
]
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"source_id": {
"$ref": "#/$defs/Code"
},
"dataset_id": {
"$ref": "#/$defs/Code"
},
"license_status": {
"enum": [
"confirmed",
"restricted",
"unconfirmed",
"paused"
]
}
},
"additionalProperties": false
}DEWA electricity/water: tariff slabs, or bill estimate from kwh (+water, VAT, fee).
| Argument | Type | Description |
|---|---|---|
| kwh | number | |
| water_m3 | number | null | |
| water_gallons | number | null | Imperial gallons. |
| annual_rent_aed | number | null |
{
"type": "object",
"properties": {
"kwh": {
"type": "number",
"maximum": 1000000,
"minimum": 0
},
"water_m3": {
"type": [
"number",
"null"
],
"maximum": 1000000,
"minimum": 0
},
"water_gallons": {
"type": [
"number",
"null"
],
"maximum": 100000000,
"minimum": 0,
"description": "Imperial gallons."
},
"annual_rent_aed": {
"type": [
"number",
"null"
],
"maximum": 100000000,
"minimum": 0
}
},
"additionalProperties": false
}UAE private-sector end-of-service gratuity estimate (Decree-Law 33/2021 art. 51): basic wage + dates → amount or range; not legal advice.
| Argument | Type | Description |
|---|---|---|
| end_date* | string | |
| start_date* | string | |
| unpaid_days | integer | |
| work_pattern | any | |
| basic_monthly_aed* | number | |
| total_monthly_wage_aed | number |
{
"type": "object",
"required": [
"basic_monthly_aed",
"start_date",
"end_date"
],
"properties": {
"end_date": {
"type": "string",
"format": "date"
},
"start_date": {
"type": "string",
"format": "date"
},
"unpaid_days": {
"type": "integer",
"default": 0,
"minimum": 0
},
"work_pattern": {
"enum": [
"full-time",
"part-time",
"other-pay"
],
"default": "full-time"
},
"basic_monthly_aed": {
"type": "number",
"exclusiveMinimum": 0
},
"total_monthly_wage_aed": {
"type": "number"
}
},
"additionalProperties": false
}Monthly fixed costs for a household profile, with assumptions. Not a full budget.
| Argument | Type | Description |
|---|---|---|
| profile | any | |
| page_size | integer |
{
"type": "object",
"properties": {
"profile": {
"enum": [
"single",
"couple",
"family4"
]
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
}
},
"additionalProperties": false
}Free zone company setup: package prices, annual/monthly cost, visas.
| Argument | Type | Description |
|---|---|---|
| zone | string | |
| cursor | string | |
| emirate | any | |
| page_size | integer | |
| published | any |
{
"type": "object",
"properties": {
"zone": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"emirate": {
"enum": [
"dubai",
"abu_dhabi",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
]
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"published": {
"enum": [
"one_visa",
"partial",
"none",
"paused"
]
}
},
"additionalProperties": false
}UAE petrol/diesel prices this month and last, change, 50/70 L tank cost, history.
| Argument | Type | Description |
|---|---|---|
| to | string | |
| from | string | |
| sort | any | |
| cursor | string | |
| page_size | integer | |
| include_history | boolean |
{
"type": "object",
"properties": {
"to": {
"type": "string",
"pattern": "^[0-9]{4}-(0[1-9]|1[0-2])$"
},
"from": {
"type": "string",
"pattern": "^[0-9]{4}-(0[1-9]|1[0-2])$"
},
"sort": {
"enum": [
"month",
"-month"
],
"default": "-month"
},
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"include_history": {
"type": "boolean"
}
},
"additionalProperties": false
}AED exchange rates (CBUAE, dated). Not bank quotes.
| Argument | Type | Description |
|---|---|---|
| currency | string |
{
"type": "object",
"properties": {
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$"
}
},
"additionalProperties": false
}Cheapest store for a shopping list: per-store subtotals, delivery fees, minimums. Observed + labelled estimates.
| Argument | Type | Description |
|---|---|---|
| area | string | null | |
| items* | array |
{
"type": "object",
"required": [
"items"
],
"properties": {
"area": {
"type": [
"string",
"null"
],
"maxLength": 80
},
"items": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"maxItems": 40,
"minItems": 1
}
},
"additionalProperties": false
}Dubai supermarket prices: search by name; product_id for per-store pack/unit offers, dates, history. Not MOET.
| Argument | Type | Description |
|---|---|---|
| sort | any | |
| query | string | |
| cursor | string | |
| store_id | string | |
| page_size | integer | |
| comparison | any | |
| product_id | string | |
| availability | any | |
| available_only | boolean | |
| include_offers | boolean |
{
"type": "object",
"properties": {
"sort": {
"enum": [
"relevance",
"name",
"-name",
"lowest_price_aed",
"-lowest_price_aed"
],
"default": "relevance"
},
"query": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"store_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{0,119}$"
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"comparison": {
"enum": [
"exact",
"equivalent"
]
},
"product_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{0,119}$"
},
"availability": {
"enum": [
"available",
"unavailable",
"unknown"
]
},
"available_only": {
"type": "boolean"
},
"include_offers": {
"type": "boolean"
}
},
"additionalProperties": false
}Grocery stores: delivery fees, free-delivery thresholds, minimum orders.
| Argument | Type | Description |
|---|---|---|
| sort | any | |
| cursor | string | |
| store_id | string | |
| page_size | integer | |
| delivery_rule_status | any |
{
"type": "object",
"properties": {
"sort": {
"enum": [
"name",
"-name"
],
"default": "name"
},
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"store_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{0,119}$"
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"delivery_rule_status": {
"enum": [
"valid",
"stale",
"invalid",
"none"
]
}
},
"additionalProperties": false
}Dubai health insurance rules: who pays, basic plan band/benefits, fines. Not quotes.
| Argument | Type | Description |
|---|---|---|
| emirate | any | |
| page_size | integer |
{
"type": "object",
"properties": {
"emirate": {
"enum": [
"dubai",
"abu_dhabi",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
]
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
}
},
"additionalProperties": false
}Rent in a Dubai area: registered annual/monthly medians and contract counts. Not listings.
| Argument | Type | Description |
|---|---|---|
| q | string | |
| sort | any | |
| zone | string | |
| cursor | string | |
| zone_id | string | |
| bedrooms | integer | |
| contract | any | |
| page_size | integer | |
| min_contracts | integer | |
| property_type | any |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"sort": {
"enum": [
"median_annual_aed",
"-median_annual_aed",
"-contracts",
"zone_name"
],
"default": "median_annual_aed"
},
"zone": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"zone_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{0,119}$"
},
"bedrooms": {
"type": "integer",
"maximum": 10,
"minimum": 0
},
"contract": {
"enum": [
"new",
"renewal"
]
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"min_contracts": {
"type": "integer",
"maximum": 100000,
"minimum": 10
},
"property_type": {
"enum": [
"apartment",
"villa"
]
}
},
"additionalProperties": false
}Sale prices by Dubai area: ready/off-plan registered medians. Not listings.
| Argument | Type | Description |
|---|---|---|
| sort | any | |
| zone | string | |
| cursor | string | |
| market | any | |
| zone_id | string | |
| bedrooms | integer | |
| page_size | integer | |
| property_type | any |
{
"type": "object",
"properties": {
"sort": {
"enum": [
"median_price_aed",
"-median_price_aed",
"median_aed_per_sqft",
"-median_aed_per_sqft",
"-transactions",
"zone_name"
],
"default": "median_price_aed"
},
"zone": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"market": {
"enum": [
"ready",
"off_plan"
]
},
"zone_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{0,119}$"
},
"bedrooms": {
"type": "integer",
"maximum": 10,
"minimum": 0
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"property_type": {
"enum": [
"apartment",
"villa"
]
}
},
"additionalProperties": false
}UAE labour law estimates (Decree-Law 33/2021): overtime pay, annual leave, final settlement. Not legal advice.
| Argument | Type | Description |
|---|---|---|
| end_date | string | |
| day_hours | number | |
| calculator* | any | |
| start_date | string | |
| night_hours | number | |
| notice_days | integer | |
| notice_cut_by | any | |
| wages_owed_aed | number | |
| leave_taken_days | number | |
| basic_monthly_aed* | number | |
| unused_leave_days |
MOET-published shop prices of Dubai essentials by chain/category.
| Argument | Type | Description |
|---|---|---|
| q | string | |
| sort | any | |
| cursor | string | |
| category | any | |
| chain_id | any | |
| page_size | integer | |
| product_id | string |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"sort": {
"enum": [
"name",
"category"
],
"default": "name"
},
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"category": {
"enum": [
"bread",
"chicken",
"cooking_oil",
"dairy",
"eggs",
"legumes",
"rice",
"sugar"
]
},
"chain_id": {
"enum": [
"al_maya",
"carrefour",
"emirates_coop",
"lulu",
"nesto",
"safeer",
"spinneys",
"union_coop"
]
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"product_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{0,119}$"
}
},
"additionalProperties": false
}UAE mobile and home internet plans: VAT-inclusive price, data, contract.
| Argument | Type | Description |
|---|---|---|
| sort | any | |
| type | any | |
| cursor | string | |
| status | any | |
| max_aed | number | |
| plan_id | string | |
| operator | string | |
| page_size | integer | |
| min_data_gb | number |
{
"type": "object",
"properties": {
"sort": {
"enum": [
"price_aed_per_month",
"aed_per_gb",
"-data_gb",
"name"
],
"default": "price_aed_per_month"
},
"type": {
"enum": [
"mobile_postpaid",
"mobile_prepaid",
"home_internet"
]
},
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"status": {
"enum": [
"ranked",
"unverified",
"excluded"
]
},
"max_aed": {
"type": "number",
"maximum": 100000,
"minimum": 0
},
"plan_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{0,119}$"
},
"operator": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"min_data_gb": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}Move to Dubai? Home vs Dubai net pay, taxes, FX, costs, savings. No country: models. Owner: household=business_owner + profit. Not tax advice.
| Argument | Type | Description |
|---|---|---|
| area | string | null | |
| iso2 | string | |
| sort | any | |
| cursor | string | |
| profit | number | |
| status | any | |
| country | string | |
| variant | string | null | |
| bedrooms | integer | null | |
| currency | string | null | |
| household | any | |
UAE residence visas by route: payer, requirements, fees, medical/insurance bands.
| Argument | Type | Description |
|---|---|---|
| route_id | any | |
| page_size | integer | |
| include_common_fees | boolean |
{
"type": "object",
"properties": {
"route_id": {
"enum": [
"employment",
"family",
"golden",
"remote",
"freelance",
"investor"
]
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"include_common_fees": {
"type": "boolean"
}
},
"additionalProperties": false
}Dubai school fees: KHDA tuition by grade/year, bus fees, distance. q: school name; near: zone; school_id: detail. Year ≠ Grade; uniforms paused.
| Argument | Type | Description |
|---|---|---|
| q | string | school name or part of it |
| area | string | |
| near | string | Zone, not school. |
| sort | any | |
| grade | string | |
| cursor | string | |
| rating | string | |
| page_size | integer | |
| radius_km | any | |
| school_id | string | |
| curriculum | string | |
Community price reports by product/store, with date and promos.
| Argument | Type | Description |
|---|---|---|
| area | string | |
| sort | any | |
| cursor | string | |
| store_id | string | |
| page_size | integer | |
| product_id | string | |
| purchased_since | string |
{
"type": "object",
"properties": {
"area": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"sort": {
"enum": [
"-purchased_on",
"purchased_on",
"unit_price_aed"
],
"default": "-purchased_on"
},
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"store_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{0,119}$"
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"product_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{0,119}$"
},
"purchased_since": {
"type": "string",
"format": "date"
}
},
"additionalProperties": false
}Call first: coverage, the 5 most useful calls with ready arguments, data freshness and how to cite.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Tax saved by moving to Dubai, per country, typical pay. Not tax advice.
| Argument | Type | Description |
|---|---|---|
| cursor | string | |
| country | string | |
| household | any | |
| page_size | integer |
{
"type": "object",
"properties": {
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$"
},
"household": {
"enum": [
"employee",
"business_owner"
]
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
}
},
"additionalProperties": false
}Taxi fare estimate, or metro/bus fares, parking and toll tariffs. Not app quotes.
| Argument | Type | Description |
|---|---|---|
| km | number | |
| mode* | any | |
| booking | any | |
| emirate | any | |
| page_size | integer | |
| to_sharjah | boolean | |
| operator_id | any | |
| wait_minutes | number |
{
"type": "object",
"required": [
"mode"
],
"properties": {
"km": {
"type": "number",
"maximum": 300,
"minimum": 0.1
},
"mode": {
"enum": [
"taxi",
"public",
"parking",
"tolls"
]
},
"booking": {
"enum": [
"street_day",
"street_night",
"ehail_offpeak",
"ehail_peak",
"ehail_night"
]
},
"emirate": {
"enum": [
"dubai",
"abu_dhabi",
"sharjah",
"ajman",
"umm_al_quwain",
"ras_al_khaimah",
"fujairah"
]
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"to_sharjah": {
"type": "boolean"
},
"operator_id": {
"enum": [
"salik",
"darb"
]
},
"wait_minutes": {
"type": "number",
"maximum": 180,
"minimum": 0
}
},
"additionalProperties": false
}| number |
| notice_worked_days | integer |
| total_monthly_wage_aed | number |
{
"type": "object",
"required": [
"calculator",
"basic_monthly_aed"
],
"properties": {
"end_date": {
"type": "string"
},
"day_hours": {
"type": "number"
},
"calculator": {
"enum": [
"overtime",
"annual_leave",
"final_settlement"
]
},
"start_date": {
"type": "string"
},
"night_hours": {
"type": "number"
},
"notice_days": {
"type": "integer"
},
"notice_cut_by": {
"enum": [
"employer",
"worker"
]
},
"wages_owed_aed": {
"type": "number"
},
"leave_taken_days": {
"type": "number"
},
"basic_monthly_aed": {
"type": "number"
},
"unused_leave_days": {
"type": "number"
},
"notice_worked_days": {
"type": "integer"
},
"total_monthly_wage_aed": {
"type": "number"
}
},
"additionalProperties": false
}| page_size |
| integer |
| gross_annual | number |
| property_type | any |
| spouse_employed | boolean |
| home_monthly_costs | number | null |
| dubai_gross_annual_aed | number | null |
{
"type": "object",
"properties": {
"area": {
"type": [
"string",
"null"
],
"maxLength": 80
},
"iso2": {
"type": "string",
"pattern": "^[A-Z]{2}$"
},
"sort": {
"enum": [
"name",
"iso2"
],
"default": "name"
},
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"profit": {
"type": "number",
"maximum": 10000000000000,
"exclusiveMinimum": 0
},
"status": {
"enum": [
"complete",
"incomplete"
]
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"maxLength": 2,
"minLength": 2
},
"variant": {
"type": [
"string",
"null"
],
"maxLength": 40
},
"bedrooms": {
"type": [
"integer",
"null"
],
"maximum": 10,
"minimum": 0
},
"currency": {
"type": [
"string",
"null"
],
"pattern": "^[A-Z]{3}$"
},
"household": {
"anyOf": [
{
"type": [
"object",
"null"
],
"properties": {
"status": {
"enum": [
"single",
"married"
]
},
"children": {
"type": "integer",
"maximum": 10,
"minimum": 0
}
},
"additionalProperties": false
},
{
"const": "business_owner"
}
]
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"gross_annual": {
"type": "number",
"maximum": 10000000000000,
"exclusiveMinimum": 0
},
"property_type": {
"enum": [
"apartment",
"villa",
null
]
},
"spouse_employed": {
"type": "boolean",
"default": false
},
"home_monthly_costs": {
"type": [
"number",
"null"
],
"maximum": 10000000000000,
"minimum": 0
},
"dubai_gross_annual_aed": {
"type": [
"number",
"null"
],
"maximum": 10000000000000,
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}| max_fee_aed |
| number |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "school name or part of it"
},
"area": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"near": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Zone, not school."
},
"sort": {
"enum": [
"name",
"distance_km",
"annual_fee_aed",
"-annual_fee_aed"
],
"default": "name"
},
"grade": {
"type": "string",
"maxLength": 30,
"minLength": 1
},
"cursor": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"rating": {
"type": "string",
"maxLength": 40
},
"page_size": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"radius_km": {
"enum": [
5,
10,
15,
20,
30
],
"default": 10
},
"school_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{0,119}$"
},
"curriculum": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"max_fee_aed": {
"type": "number",
"maximum": 1000000,
"minimum": 0
}
},
"additionalProperties": false
}