---
title: "Salary after tax at home vs in Dubai (0% personal income tax), or with household=\"business_owner\" and profit, company tax plus dividend tax at home vs UAE mainland and qualifying free zone. Uses the published home-country tax model and CBUAE exchange rate, registered Dubai rent and projected monthly savings. Estimate, not tax advice; Small Business Relief is a notice only."
method: POST
path: "/api/v1/move"
---

# Salary after tax at home vs in Dubai (0% personal income tax), or with household="business_owner" and profit, company tax plus dividend tax at home vs UAE mainland and qualifying free zone. Uses the published home-country tax model and CBUAE exchange rate, registered Dubai rent and projected monthly savings. Estimate, not tax advice; Small Business Relief is a notice only.

`POST /api/v1/move`

## Request

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

## Request body

- union
  - object
    - `country` string, required: Home country: ISO code (GB, US, IN…) or English name.
    - `gross_annual` number, required: Gross annual salary, in `currency` (default: the country's currency).
    - `profit` number: Annual company profit before corporate tax; requires household="business_owner". Whole after-tax profit distributed as a dividend.
    - `currency` string
    - `household` union
      - object
        - `status` 'single' | 'married'
        - `children` integer
      - 'business_owner'
    - `area` string
    - `bedrooms` integer
    - `property_type` 'apartment' | 'villa'
    - `variant` string
    - `dubai_gross_annual_aed` number: Dubai offer in AED, if different from the same gross converted.
    - `home_monthly_costs` number: Current monthly spending at home, in `currency`.
    - `spouse_employed` boolean: Spouse insurance is employer-paid when true. Default: dependent spouse.
  - object
    - `country` string, required: Home country: ISO code (GB, US, IN…) or English name.
    - `gross_annual` number: Gross annual salary, in `currency` (default: the country's currency).
    - `profit` number, required: Annual company profit before corporate tax; requires household="business_owner". Whole after-tax profit distributed as a dividend.
    - `currency` string
    - `household` union, required
      - object
        - `status` 'single' | 'married'
        - `children` integer
      - 'business_owner'
    - `area` string
    - `bedrooms` integer
    - `property_type` 'apartment' | 'villa'
    - `variant` string
    - `dubai_gross_annual_aed` number: Dubai offer in AED, if different from the same gross converted.
    - `home_monthly_costs` number: Current monthly spending at home, in `currency`.
    - `spouse_employed` boolean: Spouse insurance is employer-paid when true. Default: dependent spouse.

## 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
  - `country` object, required
    - `iso2` string, required
    - `name` string, required
    - `currency` string, required
    - `tax_year` string, nullable, required
    - `tax_year_period` string, nullable, required
    - `variant` string, nullable, required
    - `variant_label` string, nullable, required
  - `household` object, required
    - `status` string, required
    - `children` integer, required
  - `gross_annual` object, required
    - `amount` number, required
    - `currency` string, required
    - `aed` number, nullable, required: AED. Unknown amounts are null, never 0.
  - `home` object, required
    - `currency` string, required
    - `net_annual` number, required
    - `net_monthly` number, required
    - `income_tax` number, required
    - `social_contributions` number, required
    - `effective_rate` number, required
    - `breakdown` object[], required
      - `id` string, required
      - `label` string, required
      - `kind` string, required
      - `amount` number, required
    - `net_annual_aed` number, nullable, required: AED. Unknown amounts are null, never 0.
  - `dubai` object, required
    - `gross_annual_aed` number, required
    - `net_annual_aed` number, required
    - `net_monthly_aed` number, required
    - `income_tax` number, required
  - `fx` object, required
    - `aed_per_unit` number, nullable, required
    - `date` string, nullable, required
    - `source` string, nullable, required
  - `dubai_monthly_costs_aed` object, required
    - `rent` number, nullable, required: AED. Unknown amounts are null, never 0.
    - `school` number, nullable, required: AED. Unknown amounts are null, never 0.
    - `groceries` number, nullable, required: AED. Unknown amounts are null, never 0.
    - `utilities` number, nullable, required: AED. Unknown amounts are null, never 0.
    - `transport` number, nullable, required: AED. Unknown amounts are null, never 0.
    - `health` number, nullable, required: AED. Unknown amounts are null, never 0.
  - `cost_sources` object, required
  - `savings` object, required
  - `transport_reference` object, nullable, required
  - `notices` string[], required
  - `country_notes` string[], required
  - `not_modelled` string[], required
  - `assumptions` string[], required
  - `groceries_estimate` object
  - `health_insurance` object
  - `transport_budget` object
  - `left_over_after_groceries_aed` object
  - `left_over_after_fixed_costs_aed` number, nullable: AED. Unknown amounts are null, never 0.
  - `groceries_basket` object
    - `items` integer, required
    - `observed_aed` number, required
    - `estimated_aed` object, required
      - `value_aed` number, required
      - `low_aed` number, required
      - `high_aed` number, required
    - `items_observed` integer, required
    - `items_estimated` integer, required
    - `items_unknown` integer, required
    - `note` string, required
  - `household_type` 'business_owner'
  - `profit_annual` object
    - `amount` number, required
    - `currency` string, required
    - `aed` number, required
  - `owner_comparison` object
    - `currency` string, required
    - `tax_year` string, required
    - `observed_on` string, nullable, required
    - `home` object, required
      - `corporate_tax` number, required
      - `dividend_tax` number, required
      - `total_tax` number, required
      - `distributed_profit` number, required
      - `net_annual` number, required
      - `effective_rate` number, required
    - `dubai` object, required
      - `mainland` object, required
        - `corporate_tax_aed` number, required
        - `corporate_tax` number, required
        - `net_annual` number, required
        - `net_annual_aed` number, required
        - `effective_rate` number, required
        - `saving_annual` number, required
        - `saving_annual_aed` number, required
      - `free_zone` object, required
        - `corporate_tax_aed` number, required
        - `corporate_tax` number, required
        - `net_annual` number, required
        - `net_annual_aed` number, required
        - `effective_rate` number, required
        - `saving_annual` number, required
        - `saving_annual_aed` number, required
      - `free_zone_condition` string, required
    - `sources` object, required
      - `home` object[], required
        - `title` string, required
        - `url` string, uri, required
        - `accessed_on` string, nullable, required
      - `dubai` object[], required
        - `title` string, required
        - `url` string, uri, required
        - `accessed_on` string, nullable, required
      - `fx` object, required
        - `title` string, required
        - `url` string, uri, required
        - `observed_on` string, nullable, required
    - `leaving` object[], required
      - `id` string, required
      - `text` string, required
      - `sources` object[], required
        - `title` string, required
        - `url` string, uri, required
        - `accessed_on` string, nullable, required
    - `small_business_relief` object, required
      - `applied` unknown, required
      - `notice` string, required
      - `sources` object[], required
        - `title` string, required
        - `url` string, uri, required
        - `accessed_on` string, nullable, 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)
