---
title: "Fixed monthly costs in Dubai this month for a single person (studio), a couple (1-bedroom) and a family of four (2-bedroom, two children in private school): registered rent (DLD median), housing fee, DEWA, getting to work (own car by default when published, with a partial no-car alternative; legacy fuel-only otherwise), mobile, home internet and, for the family, school fees; each line with its assumption, source and date. Fixed subtotals may include explicitly marked doubtful transport figures. Estimated groceries, when enabled, and health insurance legal minimums are separate labelled lines; with_estimates_aed is a separate range. Never present fixed totals as the full cost of living. The legacy grocery basket remains a separate reference. Not an official statistic."
method: GET
path: "/api/v1/cost-of-living"
---

# Fixed monthly costs in Dubai this month for a single person (studio), a couple (1-bedroom) and a family of four (2-bedroom, two children in private school): registered rent (DLD median), housing fee, DEWA, getting to work (own car by default when published, with a partial no-car alternative; legacy fuel-only otherwise), mobile, home internet and, for the family, school fees; each line with its assumption, source and date. Fixed subtotals may include explicitly marked doubtful transport figures. Estimated groceries, when enabled, and health insurance legal minimums are separate labelled lines; with_estimates_aed is a separate range. Never present fixed totals as the full cost of living. The legacy grocery basket remains a separate reference. Not an official statistic.

`GET /api/v1/cost-of-living`

## Request

- Base URL: `https://prices.brainy.ae`
- URL: `https://prices.brainy.ae/api/v1/cost-of-living`
- Auth: none declared

## Query parameters

- `profile` 'single' | 'couple' | 'family4': Only this household profile. Default: all three.

## Response `200`

Success. All money is AED; unknown values are null.

- object
  - `currency` 'AED', required
  - `observed_at` string, nullable, required
  - `stale` boolean, required
  - `source` object, required
    - `name` string, required
    - `url` string, nullable, required
  - `attribution` string, required
  - `open_in_browser` string, uri, required
  - `month` string, nullable, required
  - `profiles` object[], required
    - `id` string, required
    - `label` string, required
    - `home` object, required
    - `covers` string, required
    - `fixed_monthly_costs_aed` number, nullable, required: AED. Unknown amounts are null, never 0.
    - `lines` object[], required
      - `id` string, required
      - `label` string, required
      - `monthly_aed` number, nullable, required: AED. Unknown amounts are null, never 0.
      - `range_aed` object, nullable, required
        - `low_aed` number, required
        - `high_aed` number, required
      - `assumption` string, nullable, required
      - `source` object, nullable, required
        - `name` string, required
        - `url` string, nullable, required
        - `date` string, nullable, required
      - `options` object
      - `status` string
      - `missing_parts` string[]
      - `doubtful_parts` string[]
      - `second_commuter_not_included` boolean
      - `persons` integer
      - `dependents` integer
      - `per_dependent_monthly_aed` object, nullable
      - `variants` object
      - `group_coverage` object[]
      - `missing_groups` string[]
      - `kind` string
      - `method` string
      - `basis` object
      - `coverage` union[]
        - union
          - string
          - object
      - `attribution` string
      - `use_condition` string
      - `doubtful` boolean
    - `with_estimates_aed` object
  - `groceries_reference` object, nullable, required
    - `total_aed` number, nullable, required: AED. Unknown amounts are null, never 0.
    - `products` integer, required
    - `basket_size` integer, required
    - `note` string, required
    - `sources` object[], required
      - `name` string, required
      - `date` string, nullable, required
  - `not_included` string[], required

## Other responses

- `400`: Request failed.
- `404`: Request failed.
- `405`: Request failed.
- `413`: Request failed.
- `422`: Request failed.
- `429`: Rate limit exceeded. Retry-After gives seconds to wait.
- `503`: Request failed.

---

[API](https://skmtc.dev/brainy/apis/dubai-cost-of-living-brainy-prices.md) · [All operations](https://skmtc.dev/brainy/apis/dubai-cost-of-living-brainy-prices/llms.txt) · [OpenAPI document](https://skmtc.dev/brainy/apis/dubai-cost-of-living-brainy-prices/revisions/a548a841d58c?raw)
